@inixiative/json-rules 3.11.0 → 3.12.2
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/README.md +1 -1
- package/dist/index.cjs +3 -3
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +2 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/dist/index.cjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
'use strict';var wt=require('dayjs'),gb=require('dayjs/plugin/isoWeek.js'),yb=require('dayjs/plugin/quarterOfYear.js'),hb=require('dayjs/plugin/timezone.js'),wb=require('dayjs/plugin/utc.js'),vb=require('dayjs/plugin/isSameOrAfter.js'),Ab=require('dayjs/plugin/isSameOrBefore.js'),fastestLevenshtein=require('fastest-levenshtein'),re2js=require('re2js');var _documentCurrentScript=typeof document!=='undefined'?document.currentScript:null;function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var wt__default=/*#__PURE__*/_interopDefault(wt);var gb__default=/*#__PURE__*/_interopDefault(gb);var yb__default=/*#__PURE__*/_interopDefault(yb);var hb__default=/*#__PURE__*/_interopDefault(hb);var wb__default=/*#__PURE__*/_interopDefault(wb);var vb__default=/*#__PURE__*/_interopDefault(vb);var Ab__default=/*#__PURE__*/_interopDefault(Ab);var Ps=(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 Wc=typeof global=="object"&&global&&global.Object===Object&&global,Vn=Wc;var Uc=typeof self=="object"&&self&&self.Object===Object&&self,Kc=Vn||Uc||Function("return this")(),re=Kc;var Gc=re.Symbol,Se=Gc;var Ya=Object.prototype,zc=Ya.hasOwnProperty,Hc=Ya.toString,rn=Se?Se.toStringTag:void 0;function Jc(e){var t=zc.call(e,rn),r=e[rn];try{e[rn]=void 0;var o=!0;}catch{}var n=Hc.call(e);return o&&(t?e[rn]=r:delete e[rn]),n}var Xa=Jc;var Qc=Object.prototype,Zc=Qc.toString;function Yc(e){return Zc.call(e)}var el=Yc;var Xc="[object Null]",em="[object Undefined]",tl=Se?Se.toStringTag:void 0;function tm(e){return e==null?e===void 0?em:Xc:tl&&tl in Object(e)?Xa(e):el(e)}var ke=tm;function rm(e){return e!=null&&typeof e=="object"}var ie=rm;var om="[object Symbol]";function nm(e){return typeof e=="symbol"||ie(e)&&ke(e)==om}var Qr=nm;function im(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 rl=im;var sm=Array.isArray,H=sm;var ol=Se?Se.prototype:void 0,nl=ol?ol.toString:void 0;function il(e){if(typeof e=="string")return e;if(H(e))return rl(e,il)+"";if(Qr(e))return nl?nl.call(e):"";var t=e+"";return t=="0"&&1/e==-Infinity?"-0":t}var sl=il;function lm(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var J=lm;function pm(e){return e}var Zr=pm;var fm="[object AsyncFunction]",dm="[object Function]",um="[object GeneratorFunction]",cm="[object Proxy]";function mm(e){if(!J(e))return false;var t=ke(e);return t==dm||t==um||t==fm||t==cm}var Yr=mm;var gm=re["__core-js_shared__"],qn=gm;var al=(function(){var e=/[^.]+$/.exec(qn&&qn.keys&&qn.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""})();function ym(e){return !!al&&al in e}var ll=ym;var hm=Function.prototype,wm=hm.toString;function Sm(e){if(e!=null){try{return wm.call(e)}catch{}try{return e+""}catch{}}return ""}var Nt=Sm;var bm=/[\\^$.*+?()[\]{}|]/g,Rm=/^\[object .+?Constructor\]$/,Om=Function.prototype,xm=Object.prototype,Em=Om.toString,$m=xm.hasOwnProperty,Pm=RegExp("^"+Em.call($m).replace(bm,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function vm(e){if(!J(e)||ll(e))return false;var t=Yr(e)?Pm:Rm;return t.test(Nt(e))}var pl=vm;function Am(e,t){return e?.[t]}var fl=Am;function Nm(e,t){var r=fl(e,t);return pl(r)?r:void 0}var ve=Nm;var Tm=ve(re,"WeakMap"),Bn=Tm;var dl=Object.create,Cm=(function(){function e(){}return function(t){if(!J(t))return {};if(dl)return dl(t);e.prototype=t;var r=new e;return e.prototype=void 0,r}})(),ul=Cm;function Mm(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 cl=Mm;function km(e,t){var r=-1,o=e.length;for(t||(t=Array(o));++r<o;)t[r]=e[r];return t}var Wn=km;var Lm=800,_m=16,Dm=Date.now;function Fm(e){var t=0,r=0;return function(){var o=Dm(),n=_m-(o-r);if(r=o,n>0){if(++t>=Lm)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}var ml=Fm;function jm(e){return function(){return e}}var gl=jm;var Im=(function(){try{var e=ve(Object,"defineProperty");return e({},"",{}),e}catch{}})(),Xr=Im;var Vm=Xr?function(e,t){return Xr(e,"toString",{configurable:true,enumerable:false,value:gl(t),writable:true})}:Zr,yl=Vm;var qm=ml(yl),hl=qm;function Bm(e,t){for(var r=-1,o=e==null?0:e.length;++r<o&&t(e[r],r,e)!==false;);return e}var wl=Bm;var Wm=9007199254740991,Um=/^(?:0|[1-9]\d*)$/;function Km(e,t){var r=typeof e;return t=t??Wm,!!t&&(r=="number"||r!="symbol"&&Um.test(e))&&e>-1&&e%1==0&&e<t}var zt=Km;function Gm(e,t,r){t=="__proto__"&&Xr?Xr(e,t,{configurable:true,enumerable:true,value:r,writable:true}):e[t]=r;}var eo=Gm;function zm(e,t){return e===t||e!==e&&t!==t}var it=zm;var Hm=Object.prototype,Jm=Hm.hasOwnProperty;function Qm(e,t,r){var o=e[t];(!(Jm.call(e,t)&&it(o,r))||r===void 0&&!(t in e))&&eo(e,t,r);}var to=Qm;function Zm(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?eo(r,a,l):to(r,a,l);}return r}var st=Zm;var Sl=Math.max;function Ym(e,t,r){return t=Sl(t===void 0?e.length-1:t,0),function(){for(var o=arguments,n=-1,i=Sl(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),cl(e,this,a)}}var bl=Ym;function Xm(e,t){return hl(bl(e,t,Zr),e+"")}var Rl=Xm;var eg=9007199254740991;function tg(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=eg}var ro=tg;function rg(e){return e!=null&&ro(e.length)&&!Yr(e)}var at=rg;function og(e,t,r){if(!J(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 Un=og;function ng(e){return Rl(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&&Un(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 Ol=ng;var ig=Object.prototype;function sg(e){var t=e&&e.constructor,r=typeof t=="function"&&t.prototype||ig;return e===r}var oo=sg;function ag(e,t){for(var r=-1,o=Array(e);++r<e;)o[r]=t(r);return o}var xl=ag;var lg="[object Arguments]";function pg(e){return ie(e)&&ke(e)==lg}var vs=pg;var El=Object.prototype,fg=El.hasOwnProperty,dg=El.propertyIsEnumerable,ug=vs((function(){return arguments})())?vs:function(e){return ie(e)&&fg.call(e,"callee")&&!dg.call(e,"callee")},$r=ug;function cg(){return false}var $l=cg;var Al=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Pl=Al&&typeof module=="object"&&module&&!module.nodeType&&module,mg=Pl&&Pl.exports===Al,vl=mg?re.Buffer:void 0,gg=vl?vl.isBuffer:void 0,yg=gg||$l,Tt=yg;var hg="[object Arguments]",wg="[object Array]",Sg="[object Boolean]",bg="[object Date]",Rg="[object Error]",Og="[object Function]",xg="[object Map]",Eg="[object Number]",$g="[object Object]",Pg="[object RegExp]",vg="[object Set]",Ag="[object String]",Ng="[object WeakMap]",Tg="[object ArrayBuffer]",Cg="[object DataView]",Mg="[object Float32Array]",kg="[object Float64Array]",Lg="[object Int8Array]",_g="[object Int16Array]",Dg="[object Int32Array]",Fg="[object Uint8Array]",jg="[object Uint8ClampedArray]",Ig="[object Uint16Array]",Vg="[object Uint32Array]",G={};G[Mg]=G[kg]=G[Lg]=G[_g]=G[Dg]=G[Fg]=G[jg]=G[Ig]=G[Vg]=true;G[hg]=G[wg]=G[Tg]=G[Sg]=G[Cg]=G[bg]=G[Rg]=G[Og]=G[xg]=G[Eg]=G[$g]=G[Pg]=G[vg]=G[Ag]=G[Ng]=false;function qg(e){return ie(e)&&ro(e.length)&&!!G[ke(e)]}var Nl=qg;function Bg(e){return function(t){return e(t)}}var no=Bg;var Tl=typeof exports=="object"&&exports&&!exports.nodeType&&exports,on=Tl&&typeof module=="object"&&module&&!module.nodeType&&module,Wg=on&&on.exports===Tl,As=Wg&&Vn.process,Ug=(function(){try{var e=on&&on.require&&on.require("util").types;return e||As&&As.binding&&As.binding("util")}catch{}})(),Ct=Ug;var Cl=Ct&&Ct.isTypedArray,Kg=Cl?no(Cl):Nl,io=Kg;var Gg=Object.prototype,zg=Gg.hasOwnProperty;function Hg(e,t){var r=H(e),o=!r&&$r(e),n=!r&&!o&&Tt(e),i=!r&&!o&&!n&&io(e),s=r||o||n||i,a=s?xl(e.length,String):[],l=a.length;for(var p in e)(t||zg.call(e,p))&&!(s&&(p=="length"||n&&(p=="offset"||p=="parent")||i&&(p=="buffer"||p=="byteLength"||p=="byteOffset")||zt(p,l)))&&a.push(p);return a}var Kn=Hg;function Jg(e,t){return function(r){return e(t(r))}}var Gn=Jg;var Qg=Gn(Object.keys,Object),Ml=Qg;var Zg=Object.prototype,Yg=Zg.hasOwnProperty;function Xg(e){if(!oo(e))return Ml(e);var t=[];for(var r in Object(e))Yg.call(e,r)&&r!="constructor"&&t.push(r);return t}var kl=Xg;function ey(e){return at(e)?Kn(e):kl(e)}var lt=ey;function ty(e){var t=[];if(e!=null)for(var r in Object(e))t.push(r);return t}var Ll=ty;var ry=Object.prototype,oy=ry.hasOwnProperty;function ny(e){if(!J(e))return Ll(e);var t=oo(e),r=[];for(var o in e)o=="constructor"&&(t||!oy.call(e,o))||r.push(o);return r}var _l=ny;function iy(e){return at(e)?Kn(e,true):_l(e)}var pt=iy;var sy=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,ay=/^\w*$/;function ly(e,t){if(H(e))return false;var r=typeof e;return r=="number"||r=="symbol"||r=="boolean"||e==null||Qr(e)?true:ay.test(e)||!sy.test(e)||t!=null&&e in Object(t)}var so=ly;var py=ve(Object,"create"),Mt=py;function fy(){this.__data__=Mt?Mt(null):{},this.size=0;}var Dl=fy;function dy(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var Fl=dy;var uy="__lodash_hash_undefined__",cy=Object.prototype,my=cy.hasOwnProperty;function gy(e){var t=this.__data__;if(Mt){var r=t[e];return r===uy?void 0:r}return my.call(t,e)?t[e]:void 0}var jl=gy;var yy=Object.prototype,hy=yy.hasOwnProperty;function wy(e){var t=this.__data__;return Mt?t[e]!==void 0:hy.call(t,e)}var Il=wy;var Sy="__lodash_hash_undefined__";function by(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=Mt&&t===void 0?Sy:t,this}var Vl=by;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=Dl;ao.prototype.delete=Fl;ao.prototype.get=jl;ao.prototype.has=Il;ao.prototype.set=Vl;var Ns=ao;function Ry(){this.__data__=[],this.size=0;}var ql=Ry;function Oy(e,t){for(var r=e.length;r--;)if(it(e[r][0],t))return r;return -1}var Ht=Oy;var xy=Array.prototype,Ey=xy.splice;function $y(e){var t=this.__data__,r=Ht(t,e);if(r<0)return false;var o=t.length-1;return r==o?t.pop():Ey.call(t,r,1),--this.size,true}var Bl=$y;function Py(e){var t=this.__data__,r=Ht(t,e);return r<0?void 0:t[r][1]}var Wl=Py;function vy(e){return Ht(this.__data__,e)>-1}var Ul=vy;function Ay(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 Kl=Ay;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=ql;lo.prototype.delete=Bl;lo.prototype.get=Wl;lo.prototype.has=Ul;lo.prototype.set=Kl;var Jt=lo;var Ny=ve(re,"Map"),Qt=Ny;function Ty(){this.size=0,this.__data__={hash:new Ns,map:new(Qt||Jt),string:new Ns};}var Gl=Ty;function Cy(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var zl=Cy;function My(e,t){var r=e.__data__;return zl(t)?r[typeof t=="string"?"string":"hash"]:r.map}var Zt=My;function ky(e){var t=Zt(this,e).delete(e);return this.size-=t?1:0,t}var Hl=ky;function Ly(e){return Zt(this,e).get(e)}var Jl=Ly;function _y(e){return Zt(this,e).has(e)}var Ql=_y;function Dy(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=Dy;function po(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]);}}po.prototype.clear=Gl;po.prototype.delete=Hl;po.prototype.get=Jl;po.prototype.has=Ql;po.prototype.set=Zl;var Pr=po;var Fy="Expected a function";function Ts(e,t){if(typeof e!="function"||t!=null&&typeof t!="function")throw new TypeError(Fy);var r=function(){var o=arguments,n=t?t.apply(this,o):o[0],i=r.cache;if(i.has(n))return i.get(n);var s=e.apply(this,o);return r.cache=i.set(n,s)||i,s};return r.cache=new(Ts.Cache||Pr),r}Ts.Cache=Pr;var Yl=Ts;var jy=500;function Iy(e){var t=Yl(e,function(o){return r.size===jy&&r.clear(),o}),r=t.cache;return t}var Xl=Iy;var Vy=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,qy=/\\(\\)?/g,By=Xl(function(e){var t=[];return e.charCodeAt(0)===46&&t.push(""),e.replace(Vy,function(r,o,n,i){t.push(n?i.replace(qy,"$1"):o||r);}),t}),ep=By;function Wy(e){return e==null?"":sl(e)}var tp=Wy;function Uy(e,t){return H(e)?e:so(e,t)?[e]:ep(tp(e))}var fo=Uy;function Gy(e){if(typeof e=="string"||Qr(e))return e;var t=e+"";return t=="0"&&1/e==-Infinity?"-0":t}var ft=Gy;function zy(e,t){t=fo(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 zn=zy;function Hy(e,t,r){var o=e==null?void 0:zn(e,t);return o===void 0?r:o}var rp=Hy;function Jy(e,t){for(var r=-1,o=t.length,n=e.length;++r<o;)e[n+r]=t[r];return e}var Hn=Jy;var Qy=Gn(Object.getPrototypeOf,Object),uo=Qy;var Zy="[object Object]",Yy=Function.prototype,Xy=Object.prototype,op=Yy.toString,eh=Xy.hasOwnProperty,th=op.call(Object);function rh(e){if(!ie(e)||ke(e)!=Zy)return false;var t=uo(e);if(t===null)return true;var r=eh.call(t,"constructor")&&t.constructor;return typeof r=="function"&&r instanceof r&&op.call(r)==th}var Le=rh;function oh(){this.__data__=new Jt,this.size=0;}var np=oh;function nh(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var ip=nh;function ih(e){return this.__data__.get(e)}var sp=ih;function sh(e){return this.__data__.has(e)}var ap=sh;var ah=200;function lh(e,t){var r=this.__data__;if(r instanceof Jt){var o=r.__data__;if(!Qt||o.length<ah-1)return o.push([e,t]),this.size=++r.size,this;r=this.__data__=new Pr(o);}return r.set(e,t),this.size=r.size,this}var lp=lh;function co(e){var t=this.__data__=new Jt(e);this.size=t.size;}co.prototype.clear=np;co.prototype.delete=ip;co.prototype.get=sp;co.prototype.has=ap;co.prototype.set=lp;var dt=co;function ph(e,t){return e&&st(t,lt(t),e)}var pp=ph;function fh(e,t){return e&&st(t,pt(t),e)}var fp=fh;var mp=typeof exports=="object"&&exports&&!exports.nodeType&&exports,dp=mp&&typeof module=="object"&&module&&!module.nodeType&&module,dh=dp&&dp.exports===mp,up=dh?re.Buffer:void 0,cp=up?up.allocUnsafe:void 0;function uh(e,t){if(t)return e.slice();var r=e.length,o=cp?cp(r):new e.constructor(r);return e.copy(o),o}var Jn=uh;function ch(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 gp=ch;function mh(){return []}var Qn=mh;var gh=Object.prototype,yh=gh.propertyIsEnumerable,yp=Object.getOwnPropertySymbols,hh=yp?function(e){return e==null?[]:(e=Object(e),gp(yp(e),function(t){return yh.call(e,t)}))}:Qn,mo=hh;function wh(e,t){return st(e,mo(e),t)}var hp=wh;var Sh=Object.getOwnPropertySymbols,bh=Sh?function(e){for(var t=[];e;)Hn(t,mo(e)),e=uo(e);return t}:Qn,Zn=bh;function Rh(e,t){return st(e,Zn(e),t)}var wp=Rh;function Oh(e,t,r){var o=t(e);return H(e)?o:Hn(o,r(e))}var Yn=Oh;function xh(e){return Yn(e,lt,mo)}var nn=xh;function Eh(e){return Yn(e,pt,Zn)}var Sp=Eh;var $h=ve(re,"DataView"),Xn=$h;var Ph=ve(re,"Promise"),ei=Ph;var vh=ve(re,"Set"),ti=vh;var bp="[object Map]",Ah="[object Object]",Rp="[object Promise]",Op="[object Set]",xp="[object WeakMap]",Ep="[object DataView]",Nh=Nt(Xn),Th=Nt(Qt),Ch=Nt(ei),Mh=Nt(ti),kh=Nt(Bn),vr=ke;(Xn&&vr(new Xn(new ArrayBuffer(1)))!=Ep||Qt&&vr(new Qt)!=bp||ei&&vr(ei.resolve())!=Rp||ti&&vr(new ti)!=Op||Bn&&vr(new Bn)!=xp)&&(vr=function(e){var t=ke(e),r=t==Ah?e.constructor:void 0,o=r?Nt(r):"";if(o)switch(o){case Nh:return Ep;case Th:return bp;case Ch:return Rp;case Mh:return Op;case kh:return xp}return t});var kt=vr;var Lh=Object.prototype,_h=Lh.hasOwnProperty;function Dh(e){var t=e.length,r=new e.constructor(t);return t&&typeof e[0]=="string"&&_h.call(e,"index")&&(r.index=e.index,r.input=e.input),r}var $p=Dh;var Fh=re.Uint8Array,go=Fh;function jh(e){var t=new e.constructor(e.byteLength);return new go(t).set(new go(e)),t}var yo=jh;function Ih(e,t){var r=t?yo(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.byteLength)}var Pp=Ih;var Vh=/\w*$/;function qh(e){var t=new e.constructor(e.source,Vh.exec(e));return t.lastIndex=e.lastIndex,t}var vp=qh;var Ap=Se?Se.prototype:void 0,Np=Ap?Ap.valueOf:void 0;function Bh(e){return Np?Object(Np.call(e)):{}}var Tp=Bh;function Wh(e,t){var r=t?yo(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.length)}var ri=Wh;var Uh="[object Boolean]",Kh="[object Date]",Gh="[object Map]",zh="[object Number]",Hh="[object RegExp]",Jh="[object Set]",Qh="[object String]",Zh="[object Symbol]",Yh="[object ArrayBuffer]",Xh="[object DataView]",ew="[object Float32Array]",tw="[object Float64Array]",rw="[object Int8Array]",ow="[object Int16Array]",nw="[object Int32Array]",iw="[object Uint8Array]",sw="[object Uint8ClampedArray]",aw="[object Uint16Array]",lw="[object Uint32Array]";function pw(e,t,r){var o=e.constructor;switch(t){case Yh:return yo(e);case Uh:case Kh:return new o(+e);case Xh:return Pp(e,r);case ew:case tw:case rw:case ow:case nw:case iw:case sw:case aw:case lw:return ri(e,r);case Gh:return new o;case zh:case Qh:return new o(e);case Hh:return vp(e);case Jh:return new o;case Zh:return Tp(e)}}var Cp=pw;function fw(e){return typeof e.constructor=="function"&&!oo(e)?ul(uo(e)):{}}var oi=fw;var dw="[object Map]";function uw(e){return ie(e)&&kt(e)==dw}var Mp=uw;var kp=Ct&&Ct.isMap,cw=kp?no(kp):Mp,Lp=cw;var mw="[object Set]";function gw(e){return ie(e)&&kt(e)==mw}var _p=gw;var Dp=Ct&&Ct.isSet,yw=Dp?no(Dp):_p,Fp=yw;var hw=1,ww=2,Sw=4,jp="[object Arguments]",bw="[object Array]",Rw="[object Boolean]",Ow="[object Date]",xw="[object Error]",Ip="[object Function]",Ew="[object GeneratorFunction]",$w="[object Map]",Pw="[object Number]",Vp="[object Object]",vw="[object RegExp]",Aw="[object Set]",Nw="[object String]",Tw="[object Symbol]",Cw="[object WeakMap]",Mw="[object ArrayBuffer]",kw="[object DataView]",Lw="[object Float32Array]",_w="[object Float64Array]",Dw="[object Int8Array]",Fw="[object Int16Array]",jw="[object Int32Array]",Iw="[object Uint8Array]",Vw="[object Uint8ClampedArray]",qw="[object Uint16Array]",Bw="[object Uint32Array]",U={};U[jp]=U[bw]=U[Mw]=U[kw]=U[Rw]=U[Ow]=U[Lw]=U[_w]=U[Dw]=U[Fw]=U[jw]=U[$w]=U[Pw]=U[Vp]=U[vw]=U[Aw]=U[Nw]=U[Tw]=U[Iw]=U[Vw]=U[qw]=U[Bw]=true;U[xw]=U[Ip]=U[Cw]=false;function ni(e,t,r,o,n,i){var s,a=t&hw,l=t&ww,p=t&Sw;if(r&&(s=n?r(e,o,n,i):r(e)),s!==void 0)return s;if(!J(e))return e;var f=H(e);if(f){if(s=$p(e),!a)return Wn(e,s)}else {var d=kt(e),u=d==Ip||d==Ew;if(Tt(e))return Jn(e,a);if(d==Vp||d==jp||u&&!n){if(s=l||u?{}:oi(e),!a)return l?wp(e,fp(s,e)):hp(e,pp(s,e))}else {if(!U[d])return n?e:{};s=Cp(e,d,a);}}i||(i=new dt);var m=i.get(e);if(m)return m;i.set(e,s),Fp(e)?e.forEach(function(y){s.add(ni(y,t,r,y,e,i));}):Lp(e)&&e.forEach(function(y,S){s.set(S,ni(y,t,r,S,e,i));});var g=p?l?Sp:nn:l?pt:lt,c=f?void 0:g(e);return wl(c||e,function(y,S){c&&(S=y,y=e[S]),to(s,S,ni(y,t,r,S,e,i));}),s}var ii=ni;var Ww=1,Uw=4;function Kw(e){return ii(e,Ww|Uw)}var si=Kw;var Gw=1,zw=4;function Hw(e,t){return t=typeof t=="function"?t:void 0,ii(e,Gw|zw,t)}var Cs=Hw;var Jw="__lodash_hash_undefined__";function Qw(e){return this.__data__.set(e,Jw),this}var qp=Qw;function Zw(e){return this.__data__.has(e)}var Bp=Zw;function ai(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Pr;++t<r;)this.add(e[t]);}ai.prototype.add=ai.prototype.push=qp;ai.prototype.has=Bp;var Wp=ai;function Yw(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 li=Yw;function Xw(e,t){return e.has(t)}var Up=Xw;var eS=1,tS=2;function rS(e,t,r,o,n,i){var s=r&eS,a=e.length,l=t.length;if(a!=l&&!(s&&l>a))return false;var p=i.get(e),f=i.get(t);if(p&&f)return p==t&&f==e;var d=-1,u=true,m=r&tS?new Wp: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(!li(t,function(S,R){if(!Up(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 pi=rS;function oS(e){var t=-1,r=Array(e.size);return e.forEach(function(o,n){r[++t]=[n,o];}),r}var Kp=oS;function nS(e){var t=-1,r=Array(e.size);return e.forEach(function(o){r[++t]=o;}),r}var Gp=nS;var iS=1,sS=2,aS="[object Boolean]",lS="[object Date]",pS="[object Error]",fS="[object Map]",dS="[object Number]",uS="[object RegExp]",cS="[object Set]",mS="[object String]",gS="[object Symbol]",yS="[object ArrayBuffer]",hS="[object DataView]",zp=Se?Se.prototype:void 0,Ms=zp?zp.valueOf:void 0;function wS(e,t,r,o,n,i,s){switch(r){case hS:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return false;e=e.buffer,t=t.buffer;case yS:return !(e.byteLength!=t.byteLength||!i(new go(e),new go(t)));case aS:case lS:case dS:return it(+e,+t);case pS:return e.name==t.name&&e.message==t.message;case uS:case mS:return e==t+"";case fS:var a=Kp;case cS:var l=o&iS;if(a||(a=Gp),e.size!=t.size&&!l)return false;var p=s.get(e);if(p)return p==t;o|=sS,s.set(e,t);var f=pi(a(e),a(t),o,n,i,s);return s.delete(e),f;case gS:if(Ms)return Ms.call(e)==Ms.call(t)}return false}var Hp=wS;var SS=1,bS=Object.prototype,RS=bS.hasOwnProperty;function OS(e,t,r,o,n,i){var s=r&SS,a=nn(e),l=a.length,p=nn(t),f=p.length;if(l!=f&&!s)return false;for(var d=l;d--;){var u=a[d];if(!(s?u in t:RS.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,$=t.constructor;w!=$&&"constructor"in e&&"constructor"in t&&!(typeof w=="function"&&w instanceof w&&typeof $=="function"&&$ instanceof $)&&(c=false);}return i.delete(e),i.delete(t),c}var Jp=OS;var xS=1,Qp="[object Arguments]",Zp="[object Array]",fi="[object Object]",ES=Object.prototype,Yp=ES.hasOwnProperty;function $S(e,t,r,o,n,i){var s=H(e),a=H(t),l=s?Zp:kt(e),p=a?Zp:kt(t);l=l==Qp?fi:l,p=p==Qp?fi:p;var f=l==fi,d=p==fi,u=l==p;if(u&&Tt(e)){if(!Tt(t))return false;s=true,f=false;}if(u&&!f)return i||(i=new dt),s||io(e)?pi(e,t,r,o,n,i):Hp(e,t,l,r,o,n,i);if(!(r&xS)){var m=f&&Yp.call(e,"__wrapped__"),g=d&&Yp.call(t,"__wrapped__");if(m||g){var c=m?e.value():e,y=g?t.value():t;return i||(i=new dt),n(c,y,r,o,i)}}return u?(i||(i=new dt),Jp(e,t,r,o,n,i)):false}var Xp=$S;function ef(e,t,r,o,n){return e===t?true:e==null||t==null||!ie(e)&&!ie(t)?e!==e&&t!==t:Xp(e,t,r,o,ef,n)}var ho=ef;var PS=1,vS=2;function AS(e,t,r,o){var n=r.length,i=n,s=!o;if(e==null)return !i;for(e=Object(e);n--;){var a=r[n];if(s&&a[2]?a[1]!==e[a[0]]:!(a[0]in e))return false}for(;++n<i;){a=r[n];var l=a[0],p=e[l],f=a[1];if(s&&a[2]){if(p===void 0&&!(l in e))return false}else {var d=new dt;if(o)var u=o(p,f,l,e,t,d);if(!(u===void 0?ho(f,p,PS|vS,o,d):u))return false}}return true}var tf=AS;function NS(e){return e===e&&!J(e)}var di=NS;function TS(e){for(var t=lt(e),r=t.length;r--;){var o=t[r],n=e[o];t[r]=[o,n,di(n)];}return t}var rf=TS;function CS(e,t){return function(r){return r==null?false:r[e]===t&&(t!==void 0||e in Object(r))}}var ui=CS;function MS(e){var t=rf(e);return t.length==1&&t[0][2]?ui(t[0][0],t[0][1]):function(r){return r===e||tf(r,e,t)}}var of=MS;function kS(e,t){return e!=null&&t in Object(e)}var nf=kS;function LS(e,t,r){t=fo(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&&ro(n)&&zt(s,n)&&(H(e)||$r(e)))}var sf=LS;function _S(e,t){return e!=null&&sf(e,t,nf)}var af=_S;var DS=1,FS=2;function jS(e,t){return so(e)&&di(t)?ui(ft(e),t):function(r){var o=rp(r,e);return o===void 0&&o===t?af(r,e):ho(t,o,DS|FS)}}var lf=jS;function IS(e){return function(t){return t?.[e]}}var pf=IS;function VS(e){return function(t){return zn(t,e)}}var ff=VS;function qS(e){return so(e)?pf(ft(e)):ff(e)}var df=qS;function BS(e){return typeof e=="function"?e:e==null?Zr:typeof e=="object"?H(e)?lf(e[0],e[1]):of(e):df(e)}var uf=BS;function WS(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 cf=WS;var US=cf(),ci=US;function KS(e,t){return e&&ci(e,t,lt)}var mf=KS;function GS(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 gf=GS;var zS=gf(mf),yf=zS;function HS(e,t,r){(r!==void 0&&!it(e[t],r)||r===void 0&&!(t in e))&&eo(e,t,r);}var sn=HS;function JS(e){return ie(e)&&at(e)}var hf=JS;function QS(e,t){if(!(t==="constructor"&&typeof e[t]=="function")&&t!="__proto__")return e[t]}var an=QS;function ZS(e){return st(e,pt(e))}var wf=ZS;function YS(e,t,r,o,n,i,s){var a=an(e,r),l=an(t,r),p=s.get(l);if(p){sn(e,r,p);return}var f=i?i(a,l,r+"",e,t,s):void 0,d=f===void 0;if(d){var u=H(l),m=!u&&Tt(l),g=!u&&!m&&io(l);f=l,u||m||g?H(a)?f=a:hf(a)?f=Wn(a):m?(d=false,f=Jn(l,true)):g?(d=false,f=ri(l,true)):f=[]:Le(l)||$r(l)?(f=a,$r(a)?f=wf(a):(!J(a)||Yr(a))&&(f=oi(l))):d=false;}d&&(s.set(l,f),n(f,l,o,i,s),s.delete(l)),sn(e,r,f);}var Sf=YS;function bf(e,t,r,o,n){e!==t&&ci(t,function(i,s){if(n||(n=new dt),J(i))Sf(e,t,s,r,bf,o,n);else {var a=o?o(an(e,s),i,s+"",e,t,n):void 0;a===void 0&&(a=i),sn(e,s,a);}},pt);}var Rf=bf;function XS(e,t){return ho(e,t)}var Ar=XS;var eb=Ol(function(e,t,r){Rf(e,t,r);}),ks=eb;function tb(e,t,r,o){if(!J(e))return e;t=fo(t,e);for(var n=-1,i=t.length,s=i-1,a=e;a!=null&&++n<i;){var l=ft(t[n]),p=r;if(l==="__proto__"||l==="constructor"||l==="prototype")return e;if(n!=s){var f=a[l];p=o?o(f,l,a):void 0,p===void 0&&(p=J(f)?f:zt(t[n+1])?[]:{});}to(a,l,p),a=a[l];}return e}var Of=tb;function rb(e,t,r){return e==null?e:Of(e,t,r)}var Ls=rb;function ob(e,t){var r;return yf(e,function(o,n,i){return r=t(o,n,i),!r}),!!r}var xf=ob;function nb(e,t,r){var o=H(e)?li:xf;return r&&Un(e,t,r)&&(t=void 0),o(e,uf(t))}var _s=nb;var ib=/^(\$+)\.(.*)$/,k=e=>{let t=ib.exec(e);return t?{depth:t[1].length,path:t[2]}:null},Ds=(e,t,r)=>`Scope ref '${e}' needs depth ${t} but only ${r} ${r===1?"scope is":"scopes are"} in reach`,Ve=(e,t)=>{let r=k(e);return r?r.depth>t.length?{outOfBounds:Ds(e,r.depth,t.length)}:{scope:t[t.length-r.depth],path:r.path}:{scope:t[t.length-1],path:e}},sb=/\[(\d+)\]|\[(["'])(.*?)\2\]|([^.[\]]+)/g,ab=e=>e===""?[""]:[...e.matchAll(sb)].map(t=>t[1]??t[3]??t[4]),lb=(e,t)=>{if(e==null)return;let r=Object(e);return Object.hasOwn(r,t)?r[t]:void 0},ye=(e,t)=>ab(t).reduce(lb,e),Yt=(e,t)=>{let r=Ve(e,t);if("outOfBounds"in r)throw new Error(r.outOfBounds);return ye(r.scope,r.path)},mi=(e,t)=>k(e)?Yt(e,t):ye(t[0],e),ln=(e,t)=>`Scope ref '${e}' is not supported by ${t}(); evaluate with check()`,gi=(e,t)=>{if(!(!("field"in e)||typeof e.field!="string")&&k(e.field))throw new Error(ln(e.field,t))};var So={postgres:"postgres",mysql:"mysql"},Ef=e=>Object.values(So).includes(e),$f={string:{caseInsensitive:false,fuzzy:false},prismaOptions:{datasource:{provider:"postgresql"}},sql:{dialect:So.postgres}},wo=si($f),Fs=e=>Cs(e,t=>typeof t=="object"&&t!==null&&!Array.isArray(t)&&!Le(t)?t:void 0),pb=e=>e!=null&&typeof e.then=="function",Lt={set:(e,t)=>{Ls(wo,e,Fs(t));},get:e=>ye(wo,e),reset:()=>{wo=si($f);},with:(e,t)=>{let r=wo;wo=ks(Fs(r),Fs(e));try{let o=t();if(pb(o))throw new Error("engineGlobals.with() callback must be synchronous (it returned a Promise).");return o}finally{wo=r;}}},fb=new Set(["postgresql","cockroachdb","mongodb"]),Pf=e=>fb.has(e),se=e=>e??Lt.get("string.caseInsensitive")??false,yi=e=>{let t=e??Lt.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"},E={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 Q={String:"String",Boolean:"Boolean",Int:"Int",BigInt:"BigInt",Float:"Float",Decimal:"Decimal",DateTime:"DateTime",Json:"Json",Bytes:"Bytes",Enum:"Enum"},ze=["Int","Float","Decimal","BigInt"],bo=["String",...ze,"DateTime"],Xt=["String"],hi=["String","Boolean","Int","BigInt","Float","Decimal","DateTime","Enum"],wi=Object.values(Q),vf=wi,db={check:"check",toPrisma:"toPrisma",toSql:"toSql"},Ri=e=>typeof e=="string"&&Object.hasOwn(Q,e),C=["check","toPrisma","toSql"],Ro=["check","toPrisma"],Si=["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"},Oo={[h.equals]:{kinds:hi,targets:C,valueShape:"scalar"},[h.notEquals]:{negates:h.equals,kinds:hi,targets:C,valueShape:"scalar"},[h.lessThan]:{kinds:bo,targets:C,valueShape:"ordered",comparator:"lt"},[h.lessThanEquals]:{kinds:bo,targets:C,valueShape:"ordered",comparator:"lte"},[h.greaterThan]:{kinds:bo,targets:C,valueShape:"ordered",comparator:"gt"},[h.greaterThanEquals]:{kinds:bo,targets:C,valueShape:"ordered",comparator:"gte"},[h.in]:{kinds:hi,targets:C,valueShape:"array"},[h.notIn]:{negates:h.in,kinds:hi,targets:C,valueShape:"array"},[h.contains]:{kinds:Xt,targets:C,valueShape:"string"},[h.notContains]:{negates:h.contains,kinds:Xt,targets:C,valueShape:"string"},[h.startsWith]:{kinds:Xt,targets:C,valueShape:"string"},[h.notStartsWith]:{negates:h.startsWith,kinds:Xt,targets:C,valueShape:"string"},[h.endsWith]:{kinds:Xt,targets:C,valueShape:"string"},[h.notEndsWith]:{negates:h.endsWith,kinds:Xt,targets:C,valueShape:"string"},[h.matches]:{kinds:Xt,targets:Si,valueShape:"pattern"},[h.notMatches]:{negates:h.matches,kinds:Xt,targets:Si,valueShape:"pattern"},[h.between]:{kinds:bo,targets:C,valueShape:"range"},[h.notBetween]:{negates:h.between,kinds:bo,targets:C,valueShape:"range"},[h.isEmpty]:{kinds:vf,targets:C,valueShape:"none"},[h.notEmpty]:{kinds:vf,targets:C,valueShape:"none"},[h.exists]:{kinds:wi,targets:C,valueShape:"none"},[h.notExists]:{kinds:wi,targets:C,valueShape:"none"}},xo={[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:Si,valueShape:"dayList",acceptsExpr:false},[v.dayNotIn]:{negates:v.dayIn,kinds:["DateTime"],targets:Si,valueShape:"dayList",acceptsExpr:false}},bi={[E.all]:{targets:Ro,valueShape:"predicate"},[E.any]:{targets:Ro,valueShape:"predicate"},[E.none]:{targets:Ro,valueShape:"predicate"},[E.atLeast]:{targets:Ro,valueShape:"count",comparator:"gte"},[E.atMost]:{targets:Ro,valueShape:"count",comparator:"lte"},[E.exactly]:{targets:Ro,valueShape:"count",comparator:"equals"},[E.empty]:{targets:C,valueShape:"none"},[E.notEmpty]:{targets:C,valueShape:"none"}},Af={field:Oo,date:xo,array:bi},_t=(e,t)=>Object.hasOwn(Af[t],e)?Af[t][e]:void 0,Eo=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},Oi=(e,t,r)=>_t(e,t)?.targets.includes(r)??false,ub=(e,t)=>{let r=Object.keys(Oo).filter(n=>{let i=Oo[n];return !(!i.kinds.includes(e)||t&&!i.targets.includes(t))}),o=Object.keys(xo).filter(n=>{let i=xo[n];return !(!i.kinds.includes(e)||t&&!i.targets.includes(t))});return {field:r,date:o}},cb=e=>Object.keys(bi).filter(t=>e?bi[t].targets.includes(e):true),Nf=[...Object.entries(Oo),...Object.entries(xo)],_e=(...e)=>Nf.flatMap(([t,r])=>e.includes(r.valueShape)?[t]:[]),tr=_e("none"),$o=_e("ordered"),pn=_e("dateWindow"),qe=_e("range","dateRange","dateWindow"),Tf=_e("ordered","string","pattern","array"),ut=[h.contains,h.notContains],js=[h.equals,h.notEquals,h.in,h.notIn,h.exists,h.notExists],xi=_e("scalar","ordered","range"),ct=["sum","avg"],mb=()=>xi,mt=_e("scalar"),rr=_e("array"),Cf=_e("scalar","array"),Mf=_e("dayList"),kf=_e("dateRange"),Lf=_e("scalar","ordered","range","dateValue","dateRange"),_f=(...e)=>Object.entries(bi).flatMap(([t,r])=>e.includes(r.valueShape)?[t]:[]),or=_f("count"),Ei=_f("predicate","count"),Is=[E.any,E.all,E.none,E.empty,E.notEmpty],Df=[E.any,E.atLeast],q=[...Object.entries(Oo),...Object.entries(xo)].flatMap(([e,t])=>t.negates?[e]:[]),$i=[...q,h.isEmpty,h.notExists],Ff=q.filter(e=>_e("string").includes(e)),Po=q.filter(e=>qe.includes(e)),jf=(...e)=>Nf.flatMap(([t,r])=>r.comparator&&e.includes(r.comparator)&&!q.includes(t)?[t]:[]),Pi=jf("lt","lte"),If=jf("gt","gte"),Vf=["Int","BigInt"],qf=[...ze,"DateTime","Boolean","String"],Bf=["Int","BigInt","Float","Boolean","String"],Wf=["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}},Uf=["months","days","secs"],Vs=e=>Object.hasOwn(nr,e),Nr=e=>Vs(e)&&nr[e].calendar,vi=["year","quarter","month","week","isoWeek","day","hour","minute","second"],vo=["sunday","monday","tuesday","wednesday","thursday","friday","saturday"],Kf=e=>vo.includes(e.toLowerCase()),Gf=(e,t=[])=>Object.fromEntries([...Object.entries(e).flatMap(([r,o])=>o.negates?[[o.negates,r]]:[]),...t].flatMap(([r,o])=>[[r,o],[o,r]])),fn=Gf(Oo,[[h.isEmpty,h.notEmpty],[h.exists,h.notExists]]),zf=Gf(xo),Ai={[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 Ni=e=>new Error(`${e}: ArrayRule.field is required (fieldless arrayOps are check-only)`),le=(e,t)=>new Error(`Unknown ${t} operator: ${String(e)}`),Ao=e=>new Error(`${e} requires a count`),He=e=>new Error(`${e} requires a range date expression (a period or rolling window), not a single point`),De=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>'.`),Ti=e=>new Error(`'${e}' is a list of rows: compare it with an arrayOperator (any / all / none / empty / atLeast \u2026).`),Ci=e=>ut.includes(e.operator)&&yi(e.fuzzy)?new Error("Fuzzy matching has no compiled form \u2014 evaluate it in memory with check()."):null,Mi=(e,t)=>!$o.includes(e)&&!qe.includes(e)?null:(qe.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]"),F=(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}'.`),To=(e,t)=>new Error(`'${e}' continues past '${t}', which is not a Json column`),D=class extends Error{name="UsageError"};wt__default.default.extend(wb__default.default);wt__default.default.extend(hb__default.default);wt__default.default.extend(yb__default.default);wt__default.default.extend(gb__default.default);var oe=e=>{if(!Le(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},Je="UTC",dn=e=>{if(e.now===void 0)throw new D("date expressions require `now` to be supplied to the evaluator");let t=wt__default.default(e.now).tz(e.timeZone);if(!t.isValid())throw new D(`invalid \`now\`: ${String(e.now)}`);return t},qs=(e,t)=>Object.entries(e).reduce((r,[o,n])=>nr[o].interval===t?r+n*nr[o].factor:r,0),Hf="YYYY-MM-DDTHH:mm:ss.SSS",ar=(e,t,r,o)=>{let n=qs(t,"months"),i=qs(t,"days"),s=qs(t,"secs"),a=wt__default.default.utc(e.tz(o).format(Hf));return n&&(a=a.add(r*n,"month")),i&&(a=a.add(r*i,"day")),s&&(a=a.add(r*s*1e3,"millisecond")),wt__default.default.tz(a.format(Hf),o)},Sb=e=>"ago"in e||"ahead"in e,ki=(e,t)=>t===-1?{ago:e}:{ahead:e},Ae=e=>Sb(e)?"ago"in e?[e.ago,-1]:[e.ahead,1]:null,un=e=>"this"in e||"last"in e||"next"in e,Bs=e=>"start"in e||"end"in e,Li=e=>"this"in e?e.this:"last"in e?e.last:e.next,bb=e=>{let t=Li(e);if(typeof t!="string"||!vi.includes(t))throw new Error(`Unknown period unit '${String(t)}'`);return t},Rb=(e,t)=>e==="week"?t.weekStart==="sunday"?"week":"isoWeek":e,Ws=(e,t)=>{let r=dn(t),o=bb(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=Rb(o,t);return [i.startOf(s),i.endOf(s)]},Us=(e,t)=>{let r=Ae(e);if(r)return ar(dn(t),...r,t.timeZone);if(Bs(e)){let o="start"in e?e.start:e.end,[n,i]=Ws(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")},Co=(e,t,r)=>{if(un(e)){let[o,n]=Ws(e,r),i=Eo({dateOperator:t})?.negates??t;return Pi.includes(i)?o:n}return Us(e,r)},Mo=(e,t)=>{if(un(e))return Ws(e,t);let r=Ae(e);if(r){let o=dn(t),n=ar(o,...r,t.timeZone);return r[1]===-1?[n,o]:[o,n]}throw He("within")};var Jf=["value","bind","path"],be=e=>typeof e.path=="string"&&e.path!=="",Cr=e=>be(e)?k(e.path)??{depth:0,path:e.path}:null,cn=(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(be(e))return t.path(e.path);throw new Error("No value, path or bind specified")},_i=e=>Le(e)&&(e.value!==void 0||be(e)||typeof e.bind=="string"),Ks=(e,t,r)=>{if(!r||!Object.hasOwn(r,e)){if(t===true)return null;throw new D(`Missing binding for "${e}"`)}let o=r[e];return o===void 0?null:o},Di=(e,t,r)=>{if(t===true)return null;throw new D(`Unresolved binding '${e}' \u2014 resolve bindings (bindRule / bindLens) before compiling with ${r}().`)},jt=(e,t,r)=>cn(e,{value:o=>o,bind:(o,n)=>Ks(o,n,r),path:o=>mi(o,t)??null});var Zf=e=>typeof e=="object"&&e!==null,zs=e=>"if"in e||"then"in e||"else"in e,Ne=e=>"arrayOperator"in e||"aggregate"in e,Yf=e=>[...["all","any"].flatMap(t=>Array.isArray(e[t])?e[t].map((r,o)=>({key:t,index:o,child:r,nested:false})):[]),...zs(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}]:[])],Fe=e=>"all"in e||"any"in e||zs(e),Z=(e,t,r)=>{if(!Zf(e))return;let o=e,n=t(o,r),i=n===void 0?r:n;for(let{child:s,nested:a}of Yf(o))a?i!==false&&Z(s,t,i):Z(s,t,r);},Xf=(e,t,r,o)=>{let n=false;return Z(e,(i,s)=>(!n&&t(i,s)&&(n=true),n?false:r?.(i,s)),o),n},lr=(e,t,r)=>{if(!Zf(e))return e;let o=r,n={...e},i=t.rewrite?t.rewrite(n,o):n,s=Yf(i),a=s.some(p=>p.nested)&&t.below?t.below(i,o):o;for(let p of ["all","any"])Array.isArray(i[p])&&(i[p]=[...i[p]]);for(let{key:p,index:f,child:d,nested:u}of s){if(u&&a===false)continue;let m=lr(d,t,u?a:o);f===void 0?i[p]=m:i[p][f]=m;}let l=t.after?t.after(i,o):i;return l===i&&Ob(i,e)?e:l},Ob=(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])})},xb=(e,t)=>Le(e)?Object.fromEntries(Object.entries(e).map(([r,o])=>[r,_i(o)?t(o,Nr(r)?"whole":"number"):o])):e,Gs=(e,t)=>{let r=oe(e)?Ae(e):null;return r?ki(xb(r[0],t),r[1]):e},ko=(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=>Gs(i,t)):Gs(e.value,t);o={...o,value:n};}if(_i(e.offset)){let n=r?{...e.offset,...e.offset.value!==void 0&&{value:Gs(e.offset.value,t)}}:e.offset;o={...o,offset:t(n,r?"shift":"number")};}return _i(o)&&(o=t(o,"value")),o},mn=e=>{let t=[];return ko(e,(r,o)=>(t.push({source:r,role:o}),r)),t},Hs=e=>mn(e).flatMap(({source:t,role:r})=>be(t)?[{ref:t.path,role:r}]:[]),pr=e=>Hs(e).map(t=>t.ref),Lo=e=>[...Array.isArray(e.orderBy)?e.orderBy.flatMap(t=>typeof t?.field=="string"?[t.field]:[]):[],...typeof e.aggregate?.field=="string"?[e.aggregate.field]:[]],Eb={all:"all",any:"any",if:"if",field:"field",aggregate:"aggregate",array:"array",date:"date"},Mr=()=>(e,t)=>({required:[...e],optional:[...t]}),Qf={all:Mr()(["all"],["error"]),any:Mr()(["any"],["error"]),if:Mr()(["if","then"],["else","error"]),field:Mr()(["field","operator"],["value","path","bind","bindOptional","offset","caseInsensitive","fuzzy","coerceType","error"]),aggregate:Mr()(["field","aggregate","operator"],["value","path","bind","bindOptional","condition","filter","orderBy","take","skip","error"]),array:Mr()(["arrayOperator"],["field","condition","count","filter","orderBy","take","skip","error"]),date:Mr()(["field","dateOperator"],["value","path","bind","bindOptional","offset","error"])},$b=e=>({required:[...Qf[e].required],optional:[...Qf[e].optional]}),ne=e=>{let t=new Set;return "all"in e&&t.add("all"),"any"in e&&t.add("any"),zs(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},K=e=>e.length===0?true:e.length===1?e[0]:{all:[...e]},Js=e=>typeof e=="object"&&"all"in e&&Array.isArray(e.all)?e.all.flatMap(Js):[e],It=e=>e.length===0?false:e.length===1?e[0]:{any:[...e]};var Pb=e=>mn(e).flatMap(({source:t})=>typeof t.bind=="string"?[t]:[]),gn=(e,{required:t=false}={})=>{let r=new Set;return Z(e,o=>{for(let n of Pb(o))(!t||n.bindOptional!==true)&&r.add(n.bind);}),[...r].sort()},Qs=(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:Ks(n,true,t)}};return lr(e,{rewrite:o=>ko(ko(o,r),r)})};var ed=BigInt(Number.MAX_SAFE_INTEGER),yn=e=>{if(e>ed||e<-ed)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"?yn(e):typeof e=="string"&&e.trim()!==""&&Number.isFinite(Number(e))?Number(e):e,Fi=(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},Be=([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]]},_o=(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},ji=e=>{if(!Array.isArray(e))throw new Error(`in / notIn requires a list (got ${JSON.stringify(e)})`);return e},We=e=>{let t=ji(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 Ys=(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)})`,Xs=(e,t,r)=>{let o=typeof e=="number"?e:Fi(t(e),e.path?`'${e.path}' (${r})`:r),n=o===null?null:Ys(o,r);if(n===null)return o;if(typeof e!="number"&&be(e))return null;throw new Error(n)},kr=(e,t)=>{let r={};for(let[o,n]of Object.entries(e)){if(n===void 0)continue;let i=Xs(n,t,o);if(i===null)return null;r[o]=i;}return r},ht=(e,t)=>{let r=Ae(e);if(!r)return e;let o=kr(r[0],t);return o?ki(o,r[1]):null};var Lr=(e,t)=>{if(e==null)return null;if(Array.isArray(e)){let o=e.map(n=>Lr(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},_r=e=>Fi(e,"an offset"),Do=e=>{if(e==null)return null;let t=oe(e)?Ae(e):null;if(!t)throw new Error(`a date offset reads { ago } or { ahead } (got ${JSON.stringify(e)})`);return t};wt__default.default.extend(wb__default.default);wt__default.default.extend(hb__default.default);wt__default.default.extend(Ab__default.default);wt__default.default.extend(vb__default.default);var od=(e,t,r={},o)=>{let n=Yt(e.field,t),i=Dr(r,u=>jt(u,t,o)),s=i.timeZone;if(n==null)return q.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(Mf.includes(e.dateOperator)){let u=ea(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=>vo[c]).join(" or ");return e.dateOperator===v.dayIn?m||l(`must be on ${g}`):!m||l(`must not be on ${g}`)}let p=Cb(e,t,i,s,o);if(p===null)return e.error||`${e.field} has no comparison value`;let[f,d=f]=p;switch(e.dateOperator){case v.before:return a.isBefore(f)||l(`must be before ${f.format()}`);case v.after:return a.isAfter(f)||l(`must be after ${f.format()}`);case v.onOrBefore:return a.isSameOrBefore(f)||l(`must be on or before ${f.format()}`);case v.onOrAfter:return a.isSameOrAfter(f)||l(`must be on or after ${f.format()}`);case v.within:return a.isSameOrAfter(f)&&a.isSameOrBefore(d)||l(`must be within ${f.format()} and ${d.format()}`);case v.notBefore:return a.isSameOrAfter(f)||l(`must not be before ${f.format()}`);case v.notAfter:return a.isSameOrBefore(f)||l(`must not be after ${f.format()}`);case v.notWithin:return a.isBefore(f)||a.isAfter(d)||l(`must not be within ${f.format()} and ${d.format()}`);case v.between:return a.isSameOrAfter(f)&&a.isSameOrBefore(d)||l(`must be between ${f.format()} and ${d.format()}`);case v.notBetween:return a.isBefore(f)||a.isAfter(d)||l(`must not be between ${f.format()} and ${d.format()}`);default:throw le(e.dateOperator,"date")}},Cb=(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:Do(s(e.offset));if(l===null)return null;let p=g=>{if(l===void 0)return g;let c=kr(l[0],s);return c&&ar(g,c,l[1],o)};if(pn.includes(i)){if(!oe(a))throw He(i);let g=ht(a,s);return g&&Mo(g,r)}let f=(g,c)=>{if(g==null)return null;if(oe(g)){let S=ht(g,s);return S&&Us(S,r)}let y=fr(g,o);if(!y.isValid())throw new Error(`Invalid ${c}: ${String(g)}`);return y};if(kf.includes(i)){let[g,c]=Qe(a,i),y=f(g,"start date"),S=f(c,"end date");if(!y||!S)return null;let[R,b]=Be([y,S]),w=p(R),$=p(b);return w&&$?[w,$]: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&&Co(c,i,r)},u=oe(a)?d(a):f(a,"comparison date");if(!u)return null;let m=p(u);return m&&[m]},Dr=(e,t)=>{let r=e.timeZone;if(r===void 0||typeof r=="string")return {...e,timeZone:rd(r??Je)};if(Cr(r))throw new D(`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 D(`timeZone reads a zone name (got ${String(o)})`);return {...e,timeZone:rd(o??Je)}},td=new Set,rd=e=>{if(td.has(e))return e;try{new Intl.DateTimeFormat("en-US",{timeZone:e});}catch{throw new D(`invalid time zone: ${e}`)}return td.add(e),e},Mb=/\d{2}:\d{2}(?::\d{2}(?:\.\d+)?)?\s*(?:[zZ]|[+-]\d{2}(?::?\d{2})?)$/,kb=e=>Mb.test(e.trim())||/\b(?:GMT|UTC)\b/.test(e),fr=(e,t)=>{if(typeof e=="string"&&/^-?\d+$/.test(e.trim()))return wt__default.default(Number(e));if(typeof e=="string"&&!kb(e)){let r=wt__default.default(e);return r.isValid()?wt__default.default.tz(e,t):r}return typeof e=="string"?wt__default.default(new Date(e.trim())):wt__default.default(e)},Ii=(e,t)=>{let r=de(e)?fr(e,t):wt__default.default(Number.NaN);if(!r.isValid())throw new Error(`Invalid date value: ${String(e)}`);return r.toDate()},ea=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=vo.indexOf(String(t).toLowerCase());if(r===-1)throw new Error(`Unknown day name: ${String(t)}`);return r})};var _b=e=>e<=3?0:e<=6?1:2,Db=(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):_b(t)},nd=e=>e.split(/[^a-z0-9\p{L}]+/u).filter(Boolean),Fb=e=>/^\d+$/.test(e),jb=(e,t,r)=>e===t?true:Math.abs(e.length-t.length)>r?false:fastestLevenshtein.distance(e,t)<=r,id=(e,t,r={})=>{let o=t.trim().toLowerCase();if(!o)return true;let n=e.toLowerCase();if(n.includes(o))return true;let i=nd(o);if(i.length===0)return false;let s=nd(n);return s.length===0?false:i.every(a=>{let l=Db(r,a.length);return l===0||Fb(a)?s.includes(a):s.some(p=>jb(a,p,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.RE2JS.compile(t,o?re2js.RE2JS.CASE_INSENSITIVE:0)}}catch(n){throw new Error(`Refused pattern /${t}/: ${n.message}`)}},Fo={d:"0-9",w:"0-9A-Za-z_",s:"\\t\\n\\f\\r "},ad={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"},Ib=/[\\^$.|?*+()[\]{}]/,ta=255,ld=e=>e<=65535?`\\u${e.toString(16).padStart(4,"0")}`:`\\U${e.toString(16).padStart(8,"0")}`,Vb=e=>Ib.test(e)?`\\${e}`:e,hn=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(Fo,a))return s?Fo[a]:`[${Fo[a]}]`;let l=a.toLowerCase();if(a!==l&&Object.hasOwn(Fo,l))return s&&t(`a negated class \\${a} inside brackets`),`[^${Fo[l]}]`;if(a==="p"||a==="P")return t("a Unicode class");if(a==="C")return t("\\C");if(a==="x"){let p=e[o]==="{",f=p?e.indexOf("}",o):o+2,d=e.slice(p?o+1:o,f);return o=p?f+1:f,ld(Number.parseInt(d,16))}if(a>="0"&&a<="7"){let p=a;for(;p.length<3&&e[o]>="0"&&e[o]<="7";)p+=e[o++];return ld(Number.parseInt(p,8))}if(!s&&(a==="b"||a==="B")){let p=`[${Fo.w}]`;return a==="b"?`(?:(?<=${p})(?!${p})|(?<!${p})(?=${p}))`:`(?:(?<=${p})(?=${p})|(?<!${p})(?!${p}))`}if(!s&&(a==="z"||a==="A"))return n(),a==="z"?"\\Z":"\\A";if(a==="Q"){let p=e.indexOf("\\E",o),f=e.slice(o,p===-1?void 0:p);return o=p===-1?e.length:p+2,[...f].map(s?d=>/[\\\]^-]/.test(d)?`\\${d}`:d:Vb).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])>ta||Number(a[2]??0)>ta)&&t(`a repeat count past ${ta}`),r+=a[0],o+=a[0].length;}else if(s==="["){r+="[",o++,e[o]==="^"&&(r+="^",o++),e[o]==="]"&&(r+="\\]",o++);let a=false,l=false,p=0;for(;o<e.length&&e[o]!=="]";){let f=l?null:/^\[:(\^?)([a-z]+):\]/.exec(e.slice(o)),d=!!f||/^\\[dswDSW]/.test(e.slice(o)),u=e[o]==="-"&&p>0&&e[o+1]!=="]"&&!l;f?(f[1]&&t(`a negated class [:^${f[2]}:]`),Object.hasOwn(ad,f[2])||t(`the class [:${f[2]}:]`),r+=ad[f[2]],o+=f[0].length):e[o]==="\\"?r+=i(true):u&&a?(r+="\\-",o++):(r+=e[o]==="["?"\\[":e[o],o++);let m=l;l=u&&!a,a=d||m,p++;}r+="]",o++;}else r+=s,o++,(s==="^"||s==="$")&&n();}return r},pd=(e,t)=>{try{let{source:r}=dr(e);return t==="toSql"&&hn(r),null}catch(r){return r.message}};var fd=e=>e==null||e===""||Array.isArray(e)&&e.length===0,he=(e,t)=>{let r=t==null;return r&&(e.offset!==void 0||Tf.includes(e.operator))?true:qe.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,qi=(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?It(o(h.equals)):K(o(h.notEquals))},jr=e=>typeof e=="string"?e.toLowerCase():Array.isArray(e)?e.map(jr):e,dd=e=>typeof e=="bigint"?yn(e):Array.isArray(e)&&e.some(t=>typeof t=="bigint")?e.map(t=>typeof t=="bigint"?yn(t):t):e,ud=(e,t,r)=>{if(e==null)return e;if(ze.includes(t)){if(typeof e!="string"||e.trim()==="")return e;if(t==="BigInt"&&/^-?\d+$/.test(e.trim()))return yn(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}},Fr=(e,t,r=Je)=>t===void 0?e:Array.isArray(e)?e.map(o=>ud(o,t,r)):ud(e,t,r),wn=(e,t,r,o={},n)=>{let i=n?n.value:Yt(e.field,t);if(o.absent==="unknown"&&!$i.includes(e.operator)&&(i===void 0||be(e)&&mi(e.path,t)===void 0))return e.error||`${e.field} is unknown`;let s=i??null,a=e.coerceType??(s instanceof Date?"DateTime":void 0),l=a==="DateTime"?Dr(o,b=>jt(b,t,r)).timeZone:Je,p=Fr(dd(s),a,l),f=!tr.includes(e.operator),d=f?qb(Fr(dd(jt(e,t,r)??null),a,l),e,t,r):void 0;if(f&&he(e,d))return q.includes(e.operator)&&p==null?true:e.error||`${e.field} has no comparison value`;let u=b=>e.error||`${e.field} ${b}${f?` ${d instanceof RegExp?String(d):JSON.stringify(d)}`:""}`,m=se(e.caseInsensitive),g=b=>m?jr(b):b,c=g(p),y=g(d),S=yi(e.fuzzy),R=()=>S&&typeof p=="string"&&typeof d=="string"?id(p,d,S):Array.isArray(p)?c.some(b=>Ar(b,y)):Bb(c,y);switch(e.operator){case h.equals:return Ar(c,y)||u("must equal");case h.notEquals:return !Ar(c,y)||u("must not equal");case h.lessThan:return Vi(p,d,"lt")||u("must be less than");case h.lessThanEquals:return Vi(p,d,"lte")||u("must be less than or equal to");case h.greaterThan:return Vi(p,d,"gt")||u("must be greater than");case h.greaterThanEquals:return Vi(p,d,"gte")||u("must be greater than or equal to");case h.in:return ji(y).some(b=>Ar(b,c))||u("must be one of");case h.notIn:return !ji(y).some(b=>Ar(b,c))||u("must not be one of");case h.contains:return R()||u("must contain");case h.notContains:return !R()||u("must not contain");case h.matches:return cd(p)&&md(d)&&dr(d).re.test(p)||u("must match pattern");case h.notMatches:return !cd(p)||!md(d)||!dr(d).re.test(p)||u("must not match pattern");case h.between:{let b=gd(d,e.operator);if(!hd(p,b))return u("must be between");let w=jo(p),[$,x]=b;return w>=$&&w<=x||u("must be between")}case h.notBetween:{let b=gd(d,e.operator);if(!hd(p,b))return true;let w=jo(p),[$,x]=b;return w<$||w>x||u("must not be between")}case h.isEmpty:return fd(p)||u("must be empty");case h.notEmpty:return !fd(p)||u("must not be empty");case h.exists:return p!=null||u("must exist");case h.notExists:return p==null||u("must not exist");case h.startsWith:return typeof c=="string"&&typeof y=="string"&&c.startsWith(y)||u("must start with");case h.endsWith:return typeof c=="string"&&typeof y=="string"&&c.endsWith(y)||u("must end with");case h.notStartsWith:return !(typeof c=="string"&&typeof y=="string"&&c.startsWith(y))||u("must not start with");case h.notEndsWith:return !(typeof c=="string"&&typeof y=="string"&&c.endsWith(y))||u("must not end with");default:throw new Error("Unknown operator")}},qb=(e,t,r,o)=>{if(t.offset===void 0)return e;let n=_r(jt(t.offset,r,o));return n===null?null:Lr(e,n)},jo=e=>e instanceof Date?e.getTime():e,Vi=(e,t,r)=>{if(!Wb(e,t)||!de(t))return false;let o=jo(e),n=jo(t);switch(r){case "lt":return o<n;case "lte":return o<=n;case "gt":return o>n;case "gte":return o>=n}},cd=e=>typeof e=="string",md=e=>typeof e=="string"||e instanceof RegExp,gd=(e,t)=>Be(_o(e,t).map(r=>jo(r))),Bb=(e,t)=>typeof e=="string"&&typeof t=="string"&&e.includes(t),Wb=(e,t)=>de(e)&&de(t)&&yd(e)===yd(t),yd=e=>e instanceof Date?"date":typeof e,hd=(e,t)=>de(e)&&typeof jo(e)==typeof t[0];var Re=e=>e.filter!==void 0||!!e.orderBy?.length||e.take!==void 0||e.skip!==void 0,Ub=e=>{if(typeof e!="object"||e===null)return null;let t=e,r=ne(t);return r!=="field"&&r!=="date"||typeof t.field!="string"?null:{op:String(r==="date"?t.dateOperator:t.operator),field:t.field}},Kb=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===E.all?o="all":(e.arrayOperator===E.any||e.arrayOperator===E.atLeast&&e.count===1)&&(o="any"),!o)return null;let n=Ub(e.condition);if(!n||n.field!==t)return null;let i=Pi.includes(n.op),s=If.includes(n.op);if(!i&&!s)return null;let a=r==="desc";if(!(o==="all"?a&&i||!a&&s:a&&s||!a&&i))return null;let{orderBy:p,take:f,skip:d,count:u,...m}=e;if(o==="any")return {...m,arrayOperator:E.any};let g={field:t,operator:h.exists};return {any:[{field:e.field,arrayOperator:E.empty},{all:[{field:e.field,arrayOperator:E.any,condition:g},{...m,arrayOperator:E.all,condition:{if:g,then:e.condition}}]}]}},ra=(e,t,r)=>{let o=e;return t.filter!==void 0&&r&&(o=o.filter(r)),t.orderBy?.length&&(o=wd(o,t.orderBy)),t.skip!==void 0&&(o=o.slice(t.skip)),t.take!==void 0&&(o=o.slice(0,t.take)),o},wd=(e,t)=>[...e].sort((r,o)=>{for(let{field:n,dir:i}of t){let s=Gb(ye(r,n),ye(o,n),i);if(s!==0)return s}return 0}),Gb=(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},Io=e=>{if(!Re(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:K([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:K([r,e.condition])}}}return "aggregate"in e||e.filter!==void 0?null:Kb(e)};var zb=e=>Z(e,t=>{let r=ne(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)&&zb(e),St(e,t,{...r,scopes:[t]})),St=(e,t,r)=>{if(typeof e=="boolean")return e;let o=e;switch(ne(e)){case "all":return Hb(o.all,t,r,o.error);case "any":return Jb(o.any,t,r,o.error);case "if":return Qb(o,t,r);case "array":return Yb(o,r);case "aggregate":return Zb(o,r);case "date":return od(o,r.scopes,r,r.bindings);case "field":return wn(o,r.scopes,r.bindings,r);default:throw gt()}},Bi=(e,t)=>({...e,scopes:[...e.scopes,t]}),Hb=(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},Jb=(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 ")}`)},Qb=(e,t,r)=>St(e.if,t,r)===true?St(e.then,t,r):e.else!==void 0?St(e.else,t,r):true,Sd=(e,t)=>{if(e==null)return [];if(!Array.isArray(e))throw new Error(`${t} must be an array`);return e},Zb=(e,t)=>{let r=Sd(Yt(e.field,t.scopes),e.field),o=e.filter,n=ra(r,e,o?m=>St(o,m,Bi(t,m))===true:void 0),{mode:i,field:s}=e.aggregate;if(!ct.includes(i))throw sr(i);let a=e.condition,p=(a?n.filter(m=>St(a,m,Bi(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 y=`${e.field}[${g}]${s?`.${s}`:""}`;throw new Error(`${y} must be a finite number`)}return [c]}),f=p.reduce((m,g)=>m+g,0),d=i==="sum"||p.length===0?f:f/p.length,u={...e,field:`${e.field} ${i}`};return wn(u,t.scopes,t.bindings,t,{value:d})},Yb=(e,t)=>{let r=Sd(e.field?Yt(e.field,t.scopes):t.scopes[t.scopes.length-1],e.field||"(root)"),o=e.filter,n=ra(r,e,o?d=>St(o,d,Bi(t,d))===true:void 0),i=d=>e.error||`${e.field} ${d}`,s=e.condition,a=Ei.includes(e.arrayOperator);if(a&&s===void 0)throw De(e.arrayOperator);let l=e.count??0;if(or.includes(e.arrayOperator)&&e.count===void 0)throw Ao(e.arrayOperator);let p=0,f=0;if(a&&s!==void 0){if(n.length>0&&!_s(n,J))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,Bi(t,u)));p=d.filter(u=>u===true).length,f=d.filter(u=>typeof u=="string").length;}switch(e.arrayOperator){case E.empty:return !n.length||i("must be empty");case E.notEmpty:return !!n.length||i("must not be empty");case E.all:return p===n.length||i(`all elements must match (${f} failed)`);case E.any:return !!p||i("at least one element must match");case E.none:return !p||i(`no elements should match (${p} matched)`);case E.atLeast:return p>=l||i(`at least ${l} elements must match (${p} matched)`);case E.atMost:return p<=l||i(`at most ${l} elements must match (${p} matched)`);case E.exactly:return p===l||i(`exactly ${l} elements must match (${p} 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]),T=(e,t)=>O(e?.models,t),Oe=(e,t,r)=>O(T(e,t)?.fields,r);var Te=({fieldMap:e,model:t})=>`${e}:${t}`,bd=(e,t)=>{let r=e.indexOf(":");return r===-1?{mapName:t,modelName:e}:{mapName:e.slice(0,r),modelName:e.slice(r+1)}};var Rd=(e,t,r,o)=>{let n={};for(let i of e){let s=O(i,t);if(s==null)continue;let a=String(s);if(Object.hasOwn(n,a)){let l=o==="one"?`endpoint[0] must be the "one" side of a oneToMany bridge \u2014 swap endpoints if '${r}' is the "many" side`:`oneToOne bridges require unique '${t}' on both endpoints`;throw new Error(`indexBridges: duplicate '${t}' value '${a}' on '${r}' \u2014 ${l}.`)}n[a]=i;}return n},Xb=(e,t)=>{let r={};for(let o of e){let n=O(o,t);n!=null&&qt(r,String(n),()=>[]).push(o);}return r},Od=(e,t)=>{let r={};for(let o of e.bridges??[]){let[n,i]=o.endpoints,s=Te(n),a=Te(i),l=o.cardinality==="oneToMany"?"one":"oneToOne",p=(u,m)=>qt(qt(r,u,()=>({})),m,()=>({})),f=O(t,s);f&&(p(n.fieldMap,n.model)[n.on]=Rd(f,n.on,s,l));let d=O(t,a);d&&(o.cardinality==="oneToMany"?p(i.fieldMap,i.model)[i.on]=Xb(d,i.on):p(i.fieldMap,i.model)[i.on]=Rd(d,i.on,a,"oneToOne"));}return r};var Wi=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=Te(o),s=Te(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 p=r.cardinality==="oneToMany";a.fields[s]={kind:"bridge",type:s,isList:p},l.fields[i]={kind:"bridge",type:i,isList:false};}return t};var Vo=(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 je=e=>e.kind==="scalar"&&e.type==="Json",V=e=>e.kind==="object"||e.kind==="bridge",Ir=(e,t)=>e.values??O(t,e.type);var xe=(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"?bd(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=Oe(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 ee=(e,t,r)=>{let o=e.split("."),n=[],i={mapName:"",modelName:r,relPath:[]};for(let{index:s,field:a,at:l,entry:p}of ur({"":t},i,e)){let f=l.modelName;if(!p)return {kind:"fallback",hops:n};if(p.kind==="bridge")return {kind:"bridge",hops:n};let d=s===o.length-1;if(p.kind==="object"){if(!T(t,p.type))return {kind:"fallback",hops:n};if(d)return {kind:"direct",hops:n,entry:p,model:f,column:a};n.push({field:a,prefix:o.slice(0,s+1).join("."),entry:p,from:f});continue}return d?{kind:"direct",hops:n,entry:p,model:f,column:a}:je(p)?{kind:"json-path",hops:n,entry:p,model:f,column:a,stopIndex:s+1,jsonPath:o.slice(s+1)}:{kind:"past-scalar",hops:n,column:a}}return {kind:"fallback",hops:n}},cr=(e,t,r)=>t&&r?ee(e,t,r):void 0,Y=(e,t,r)=>{let o=cr(e,t,r);return o?.kind==="direct"?o.entry:void 0},xd=(e,t,r)=>ee(e,t,r).hops.filter(o=>!o.entry.isList&&o.entry.isRequired===false).map(o=>o.prefix),Sn=(e,t,r)=>{let o=ee(e,t,r);return o.kind==="direct"&&o.entry.kind==="object"?o.entry.type:null},mr=(e,t,r)=>ee(e,t,r).kind==="bridge",bt=(e,t,r)=>!!t&&!!r&&Xf(e,(o,n)=>typeof o.field=="string"&&o.field!==""&&mr(o.field,t,n),(o,n)=>(typeof o.field=="string"?Sn(o.field,t,n):n)??false,r);var Vr=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":Ed(e.entry.type),Ed=e=>e===Q.Json?"json":e===Q.Enum?"enum":e===Q.DateTime?"instant":e===Q.String?"text":"scalar",Ui=(e,t,r)=>{let o=Y(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"},Ki=(e,t,r)=>{if(Vr(cr(e,t,r))==="relations")throw Ti(e)},qr=e=>e!=="scalar"&&e!=="instant"&&e!=="list"&&e!=="enum"&&e!=="relation"&&e!=="relations",gr=(e,t)=>qr(e)&&$d(t),$d=e=>typeof e=="string"||Array.isArray(e)&&e.some($d),Ie=(e,t,r)=>{let o=Vr(cr(e.field,t,r));return o==="unknown"&&e.coerceType!==void 0?Ed(e.coerceType):o},Ye=e=>{if(!e.isList){if(e.kind==="enum")return Q.Enum;if(!(e.kind!=="scalar"||e.type===Q.Json))return Ri(e.type)?e.type:void 0}};var Pd=new WeakSet,zi=e=>(Pd.add(e),e),vd=e=>{if(e===null||typeof e!="object")return false;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null},Ad=e=>{let t=[],r=(o,n)=>{if(o!==null&&typeof o=="object"&&Pd.has(o)){t.push({path:n});return}if(Array.isArray(o))for(let[i,s]of o.entries())r(s,[...n,i]);else if(vd(o))for(let[i,s]of Object.entries(o))r(s,[...n,i]);};return r(e,[]),t},eR=["__step","__field"],Gi=e=>Array.isArray(e)?e.some(Gi):vd(e)?Object.entries(e).some(([t,r])=>eR.includes(t)||Gi(r)):false;var tR={[h.equals]:"equals",[h.notEquals]:"equals",[h.lessThan]:"lt",[h.lessThanEquals]:"lte",[h.greaterThan]:"gt",[h.greaterThanEquals]:"gte"},Nd=(e,t,r)=>{let o=ee(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 V(n)?`'${e}' is a relation`:je(n)?`'${e}' is a Json column`:n.isList?`'${e}' is a list column`:n},Hi=(e,t,r,o,n=false)=>{let i=e.path;if(n)return {problem:"inside a counting step (a count or relation aggregate) a groupBy carries no column reference"};let s=k(i);if(s&&s.depth>1)return {problem:`'${i}' reads an enclosing scope, which a Prisma filter can't reach`};if(!s&&o)return {problem:`'${i}' reads the root row, which a Prisma relation filter can't reach`};if(!t||!r)return {problem:"comparing two columns needs the map and model"};let a=tR[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=Nd(e.field,t,r);if(typeof l=="string")return {problem:l};let p=s?s.path:i,f=Nd(p,t,r);if(typeof f=="string")return {problem:f};if(l.kind!==f.kind||l.type!==f.type)return {problem:`'${e.field}' (${l.type}) and '${p}' (${f.type}) are not the same type`};let d=Vo(l,f,e.operator);return d?{problem:d}:l.type==="String"&&se(e.caseInsensitive)?{problem:"a case-insensitive column comparison compiles to ILIKE"}:{key:a,ref:zi({__field:{model:r,field:p}}),field:l,column:f,columnPath:p}},Ji=(e,t)=>new Error(`Path '${e}' compares to a column, which the Prisma rail supports only between columns of the same model and type: ${t}. Use toSql() or check().`),Td=new WeakSet,oa=new WeakSet,Br=(e,t,r=false)=>(Td.add(e),(r||t!==void 0&&oa.has(t))&&oa.add(e),e),Cd=e=>e!==void 0&&Td.has(e),Md=e=>e!==void 0&&oa.has(e);var na=e=>({field:e,operator:"notExists"}),rR=(e,t)=>{let r=t(e);if(r===null){let i=e.operator??e.dateOperator;return q.includes(i)?{field:e.field,operator:"exists"}:true}if("aggregate"in r){let i=O(fn,r.operator);return i?{...r,operator:i}:{...r,operator:O(Ai,r.operator)}}if(typeof r.dateOperator=="string"){let i=O(zf,r.dateOperator);return i?{...r,dateOperator:i}:It([{...r,dateOperator:O(Ai,r.dateOperator)},na(r.field)])}if(typeof r.arrayOperator=="string"){let i=r.count;switch(r.arrayOperator){case E.any:return {...r,arrayOperator:E.none};case E.none:return {...r,arrayOperator:E.any};case E.all:return {...r,arrayOperator:E.any,condition:Ue(r.condition,t)};case E.empty:return {...r,arrayOperator:E.notEmpty};case E.notEmpty:return {...r,arrayOperator:E.empty};case E.atLeast:return i<=0?false:{...r,arrayOperator:E.atMost,count:i-1};case E.atMost:return {...r,arrayOperator:E.atLeast,count:i+1};case E.exactly:return It([...i>0?[{...r,arrayOperator:E.atMost,count:i-1}]:[],{...r,arrayOperator:E.atLeast,count:i+1}])}}let o=O(fn,r.operator);if(o)return {...r,operator:o};let n=typeof r.path=="string"&&r.path!==""?k(r.path)??{depth:1,path:r.path}:null;return It([{...r,operator:O(Ai,r.operator)},na(r.field),...n&&n.depth===1?[na(n.path)]:[]])},Ue=(e,t=r=>r)=>{if(typeof e=="boolean")return !e;let r=e;if(Array.isArray(r.all))return It(r.all.map(o=>Ue(o,t)));if(Array.isArray(r.any))return K(r.any.map(o=>Ue(o,t)));if("if"in r){let o=K([r.if,Ue(r.then,t)]);return r.else===void 0?o:{any:[o,K([Ue(r.if,t),Ue(r.else,t)])]}}return rR(r,t)},kd=e=>ne(e)==="field"&&e.value!==void 0&&he(e,e.value)?null:e;var Ld,_d=e=>{Ld=e;},ae=(e,t,r)=>Ld(e,t,r);var oR=e=>{let t=k(e);throw t&&t.depth>1?new Error(ln(e,"toPrisma")):new Error(`Path '${e}' compares to a column, which isn't supported on the Prisma rail; use toSql() or check().`)},Rt=e=>cn(e,{value:t=>{if(Gi(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=>oR(t),bind:(t,r)=>Di(t,r,"toPrisma")}),bn=e=>Rt(e),qo=e=>Dr({now:e?.now,timeZone:e?.timeZone,weekStart:e?.weekStart},bn),Bo=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=Ie({field:String(t.field)},e?.map,e?.model);if((n==="json"||n==="json-path")&&typeof t.operator=="string"&&$o.includes(t.operator))throw F("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:p,...f}=t,d={...f,value:i,...t.offset!==void 0&&{offset:{value:s}}};return typeof t.dateOperator=="string"?i==null||he({operator:t.dateOperator},i)?null:d:kd(d)};var Xe=()=>({}),Wr=Xe,Ot=()=>({OR:[]}),ia=e=>Object.keys(e).length===0,Dd=e=>{let t=Object.keys(e);return t.length===1&&t[0]==="OR"&&Array.isArray(e.OR)&&e.OR.length===0},Ke=e=>{if(e.some(Dd))return Ot();let t=e.filter(r=>!ia(r));return t.length===0?Xe():t.length===1?t[0]:{AND:t}},B=e=>{if(e.some(ia))return Xe();let t=e.filter(r=>!Dd(r));return t.length===0?Ot():t.length===1?t[0]:{OR:t}},Ce=e=>ia(e)?e:{NOT:e},Fd=(e,t,r)=>Ke(e.all.map(o=>ae(o,t,r))),jd=(e,t,r)=>B(e.any.map(o=>ae(o,t,r))),Id=(e,t,r)=>{if(bt(e,t?.map,t?.model))return Wr();let o=ae(Ue(e.if,Bo(t)),t,r),n=ae(e.then,t,r),i=B([o,n]);if(e.else!==void 0){let s=ae(e.if,t,r),a=ae(e.else,t,r);return Ke([i,B([s,a])])}return i};var nR=(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},yr=(e,t,r)=>{if(r.fromFields?.length)return r.fromFields.map((n,i)=>({here:n,there:r.toFields?.[i]??"id"}));let o=nR(e,r.type,t,r.relationName);return o?.fromFields?.length?o.fromFields.map((n,i)=>({here:o.toFields?.[i]??"id",there:n})):null},Qi=(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 Ur=(e,t)=>{let r=e.split("."),o=t;for(let n=r.length-1;n>=0;n--)o={[r[n]]:o};return o};var Wo=(e,t,r,o)=>{let n=e.split("."),i=ee(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=yr(t,i.model,i.entry);if(!a){let l=Object.values(T(t,i.entry.type)?.fields??{}).some(p=>p.kind==="object"&&p.type===i.model&&p.isList&&!p.fromFields?.length);throw new Error(l?`'${i.model}.${i.column}' is an implicit many-to-many relation. ${o} require an explicit join model with a FK \u2014 convert to an explicit @relation or use prisma.$queryRaw.`:`Cannot determine FK relationship between '${i.model}' and '${i.entry.type}'. Ensure the FieldMap contains both sides of the relation.`)}if(a.length>1)throw new Error(`${o} do not support composite FK relations ('${i.model}.${i.column}'). Use prisma.$queryRaw.`);return {through:i.hops.map(l=>l.field).join("."),target:i.entry.type,parentKey:a[0].here,targetKey:a[0].there}},Zi=(e,t,r,o,n)=>{let i={operation:"groupBy",model:t.target,args:{by:[t.targetKey],where:r,having:o},extract:t.targetKey},s=zi({__step:e.steps.length});e.steps.push(i);let a={[t.parentKey]:{in:s}},l=n?Ce(a):a;return t.through?Ur(t.through,l):l};var wr=e=>({ok:e.length===0,errors:e}),Rn=(e,t)=>{if(!e.ok)throw new Error(`${t}:
|
|
1
|
+
'use strict';var wt=require('dayjs'),bb=require('dayjs/plugin/isoWeek.js'),Rb=require('dayjs/plugin/quarterOfYear.js'),Ob=require('dayjs/plugin/timezone.js'),xb=require('dayjs/plugin/utc.js'),Mb=require('dayjs/plugin/isSameOrAfter.js'),kb=require('dayjs/plugin/isSameOrBefore.js'),fastestLevenshtein=require('fastest-levenshtein'),re2js=require('re2js');var _documentCurrentScript=typeof document!=='undefined'?document.currentScript:null;function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var wt__default=/*#__PURE__*/_interopDefault(wt);var bb__default=/*#__PURE__*/_interopDefault(bb);var Rb__default=/*#__PURE__*/_interopDefault(Rb);var Ob__default=/*#__PURE__*/_interopDefault(Ob);var xb__default=/*#__PURE__*/_interopDefault(xb);var Mb__default=/*#__PURE__*/_interopDefault(Mb);var kb__default=/*#__PURE__*/_interopDefault(kb);var vs=(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 Hc=typeof global=="object"&&global&&global.Object===Object&&global,qn=Hc;var Jc=typeof self=="object"&&self&&self.Object===Object&&self,Qc=qn||Jc||Function("return this")(),re=Qc;var Zc=re.Symbol,Se=Zc;var tl=Object.prototype,Yc=tl.hasOwnProperty,Xc=tl.toString,tn=Se?Se.toStringTag:void 0;function em(e){var t=Yc.call(e,tn),r=e[tn];try{e[tn]=void 0;var o=!0;}catch{}var n=Xc.call(e);return o&&(t?e[tn]=r:delete e[tn]),n}var rl=em;var tm=Object.prototype,rm=tm.toString;function om(e){return rm.call(e)}var ol=om;var nm="[object Null]",im="[object Undefined]",nl=Se?Se.toStringTag:void 0;function sm(e){return e==null?e===void 0?im:nm:nl&&nl in Object(e)?rl(e):ol(e)}var ke=sm;function am(e){return e!=null&&typeof e=="object"}var ie=am;var lm="[object Symbol]";function pm(e){return typeof e=="symbol"||ie(e)&&ke(e)==lm}var Jr=pm;function fm(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 il=fm;var dm=Array.isArray,H=dm;var sl=Se?Se.prototype:void 0,al=sl?sl.toString:void 0;function ll(e){if(typeof e=="string")return e;if(H(e))return il(e,ll)+"";if(Jr(e))return al?al.call(e):"";var t=e+"";return t=="0"&&1/e==-Infinity?"-0":t}var pl=ll;function cm(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var J=cm;function mm(e){return e}var Qr=mm;var gm="[object AsyncFunction]",ym="[object Function]",hm="[object GeneratorFunction]",wm="[object Proxy]";function Sm(e){if(!J(e))return false;var t=ke(e);return t==ym||t==hm||t==gm||t==wm}var Zr=Sm;var bm=re["__core-js_shared__"],Bn=bm;var fl=(function(){var e=/[^.]+$/.exec(Bn&&Bn.keys&&Bn.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""})();function Rm(e){return !!fl&&fl in e}var dl=Rm;var Om=Function.prototype,xm=Om.toString;function Em(e){if(e!=null){try{return xm.call(e)}catch{}try{return e+""}catch{}}return ""}var At=Em;var $m=/[\\^$.*+?()[\]{}|]/g,Pm=/^\[object .+?Constructor\]$/,vm=Function.prototype,Nm=Object.prototype,Am=vm.toString,Tm=Nm.hasOwnProperty,Cm=RegExp("^"+Am.call(Tm).replace($m,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Mm(e){if(!J(e)||dl(e))return false;var t=Zr(e)?Cm:Pm;return t.test(At(e))}var ul=Mm;function km(e,t){return e?.[t]}var cl=km;function Lm(e,t){var r=cl(e,t);return ul(r)?r:void 0}var ve=Lm;var _m=ve(re,"WeakMap"),Wn=_m;var ml=Object.create,Dm=(function(){function e(){}return function(t){if(!J(t))return {};if(ml)return ml(t);e.prototype=t;var r=new e;return e.prototype=void 0,r}})(),gl=Dm;function Fm(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 yl=Fm;function jm(e,t){var r=-1,o=e.length;for(t||(t=Array(o));++r<o;)t[r]=e[r];return t}var Un=jm;var Im=800,Vm=16,qm=Date.now;function Bm(e){var t=0,r=0;return function(){var o=qm(),n=Vm-(o-r);if(r=o,n>0){if(++t>=Im)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}var hl=Bm;function Wm(e){return function(){return e}}var wl=Wm;var Um=(function(){try{var e=ve(Object,"defineProperty");return e({},"",{}),e}catch{}})(),Yr=Um;var Km=Yr?function(e,t){return Yr(e,"toString",{configurable:true,enumerable:false,value:wl(t),writable:true})}:Qr,Sl=Km;var Gm=hl(Sl),bl=Gm;function zm(e,t){for(var r=-1,o=e==null?0:e.length;++r<o&&t(e[r],r,e)!==false;);return e}var Rl=zm;var Hm=9007199254740991,Jm=/^(?:0|[1-9]\d*)$/;function Qm(e,t){var r=typeof e;return t=t??Hm,!!t&&(r=="number"||r!="symbol"&&Jm.test(e))&&e>-1&&e%1==0&&e<t}var zt=Qm;function Zm(e,t,r){t=="__proto__"&&Yr?Yr(e,t,{configurable:true,enumerable:true,value:r,writable:true}):e[t]=r;}var Xr=Zm;function Ym(e,t){return e===t||e!==e&&t!==t}var it=Ym;var Xm=Object.prototype,eg=Xm.hasOwnProperty;function tg(e,t,r){var o=e[t];(!(eg.call(e,t)&&it(o,r))||r===void 0&&!(t in e))&&Xr(e,t,r);}var eo=tg;function rg(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=rg;var Ol=Math.max;function og(e,t,r){return t=Ol(t===void 0?e.length-1:t,0),function(){for(var o=arguments,n=-1,i=Ol(o.length-t,0),s=Array(i);++n<i;)s[n]=o[t+n];n=-1;for(var a=Array(t+1);++n<t;)a[n]=o[n];return a[t]=r(s),yl(e,this,a)}}var xl=og;function ng(e,t){return bl(xl(e,t,Qr),e+"")}var El=ng;var ig=9007199254740991;function sg(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=ig}var to=sg;function ag(e){return e!=null&&to(e.length)&&!Zr(e)}var at=ag;function lg(e,t,r){if(!J(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 Kn=lg;function pg(e){return El(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&&Kn(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 $l=pg;var fg=Object.prototype;function dg(e){var t=e&&e.constructor,r=typeof t=="function"&&t.prototype||fg;return e===r}var ro=dg;function ug(e,t){for(var r=-1,o=Array(e);++r<e;)o[r]=t(r);return o}var Pl=ug;var cg="[object Arguments]";function mg(e){return ie(e)&&ke(e)==cg}var Ns=mg;var vl=Object.prototype,gg=vl.hasOwnProperty,yg=vl.propertyIsEnumerable,hg=Ns((function(){return arguments})())?Ns:function(e){return ie(e)&&gg.call(e,"callee")&&!yg.call(e,"callee")},Er=hg;function wg(){return false}var Nl=wg;var Cl=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Al=Cl&&typeof module=="object"&&module&&!module.nodeType&&module,Sg=Al&&Al.exports===Cl,Tl=Sg?re.Buffer:void 0,bg=Tl?Tl.isBuffer:void 0,Rg=bg||Nl,Tt=Rg;var Og="[object Arguments]",xg="[object Array]",Eg="[object Boolean]",$g="[object Date]",Pg="[object Error]",vg="[object Function]",Ng="[object Map]",Ag="[object Number]",Tg="[object Object]",Cg="[object RegExp]",Mg="[object Set]",kg="[object String]",Lg="[object WeakMap]",_g="[object ArrayBuffer]",Dg="[object DataView]",Fg="[object Float32Array]",jg="[object Float64Array]",Ig="[object Int8Array]",Vg="[object Int16Array]",qg="[object Int32Array]",Bg="[object Uint8Array]",Wg="[object Uint8ClampedArray]",Ug="[object Uint16Array]",Kg="[object Uint32Array]",G={};G[Fg]=G[jg]=G[Ig]=G[Vg]=G[qg]=G[Bg]=G[Wg]=G[Ug]=G[Kg]=true;G[Og]=G[xg]=G[_g]=G[Eg]=G[Dg]=G[$g]=G[Pg]=G[vg]=G[Ng]=G[Ag]=G[Tg]=G[Cg]=G[Mg]=G[kg]=G[Lg]=false;function Gg(e){return ie(e)&&to(e.length)&&!!G[ke(e)]}var Ml=Gg;function zg(e){return function(t){return e(t)}}var oo=zg;var kl=typeof exports=="object"&&exports&&!exports.nodeType&&exports,rn=kl&&typeof module=="object"&&module&&!module.nodeType&&module,Hg=rn&&rn.exports===kl,As=Hg&&qn.process,Jg=(function(){try{var e=rn&&rn.require&&rn.require("util").types;return e||As&&As.binding&&As.binding("util")}catch{}})(),Ct=Jg;var Ll=Ct&&Ct.isTypedArray,Qg=Ll?oo(Ll):Ml,no=Qg;var Zg=Object.prototype,Yg=Zg.hasOwnProperty;function Xg(e,t){var r=H(e),o=!r&&Er(e),n=!r&&!o&&Tt(e),i=!r&&!o&&!n&&no(e),s=r||o||n||i,a=s?Pl(e.length,String):[],l=a.length;for(var p in e)(t||Yg.call(e,p))&&!(s&&(p=="length"||n&&(p=="offset"||p=="parent")||i&&(p=="buffer"||p=="byteLength"||p=="byteOffset")||zt(p,l)))&&a.push(p);return a}var Gn=Xg;function ey(e,t){return function(r){return e(t(r))}}var zn=ey;var ty=zn(Object.keys,Object),_l=ty;var ry=Object.prototype,oy=ry.hasOwnProperty;function ny(e){if(!ro(e))return _l(e);var t=[];for(var r in Object(e))oy.call(e,r)&&r!="constructor"&&t.push(r);return t}var Dl=ny;function iy(e){return at(e)?Gn(e):Dl(e)}var lt=iy;function sy(e){var t=[];if(e!=null)for(var r in Object(e))t.push(r);return t}var Fl=sy;var ay=Object.prototype,ly=ay.hasOwnProperty;function py(e){if(!J(e))return Fl(e);var t=ro(e),r=[];for(var o in e)o=="constructor"&&(t||!ly.call(e,o))||r.push(o);return r}var jl=py;function fy(e){return at(e)?Gn(e,true):jl(e)}var pt=fy;var dy=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,uy=/^\w*$/;function cy(e,t){if(H(e))return false;var r=typeof e;return r=="number"||r=="symbol"||r=="boolean"||e==null||Jr(e)?true:uy.test(e)||!dy.test(e)||t!=null&&e in Object(t)}var io=cy;var my=ve(Object,"create"),Mt=my;function gy(){this.__data__=Mt?Mt(null):{},this.size=0;}var Il=gy;function yy(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var Vl=yy;var hy="__lodash_hash_undefined__",wy=Object.prototype,Sy=wy.hasOwnProperty;function by(e){var t=this.__data__;if(Mt){var r=t[e];return r===hy?void 0:r}return Sy.call(t,e)?t[e]:void 0}var ql=by;var Ry=Object.prototype,Oy=Ry.hasOwnProperty;function xy(e){var t=this.__data__;return Mt?t[e]!==void 0:Oy.call(t,e)}var Bl=xy;var Ey="__lodash_hash_undefined__";function $y(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=Mt&&t===void 0?Ey:t,this}var Wl=$y;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=Il;so.prototype.delete=Vl;so.prototype.get=ql;so.prototype.has=Bl;so.prototype.set=Wl;var Ts=so;function Py(){this.__data__=[],this.size=0;}var Ul=Py;function vy(e,t){for(var r=e.length;r--;)if(it(e[r][0],t))return r;return -1}var Ht=vy;var Ny=Array.prototype,Ay=Ny.splice;function Ty(e){var t=this.__data__,r=Ht(t,e);if(r<0)return false;var o=t.length-1;return r==o?t.pop():Ay.call(t,r,1),--this.size,true}var Kl=Ty;function Cy(e){var t=this.__data__,r=Ht(t,e);return r<0?void 0:t[r][1]}var Gl=Cy;function My(e){return Ht(this.__data__,e)>-1}var zl=My;function ky(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 Hl=ky;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=Ul;ao.prototype.delete=Kl;ao.prototype.get=Gl;ao.prototype.has=zl;ao.prototype.set=Hl;var Jt=ao;var Ly=ve(re,"Map"),Qt=Ly;function _y(){this.size=0,this.__data__={hash:new Ts,map:new(Qt||Jt),string:new Ts};}var Jl=_y;function Dy(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var Ql=Dy;function Fy(e,t){var r=e.__data__;return Ql(t)?r[typeof t=="string"?"string":"hash"]:r.map}var Zt=Fy;function jy(e){var t=Zt(this,e).delete(e);return this.size-=t?1:0,t}var Zl=jy;function Iy(e){return Zt(this,e).get(e)}var Yl=Iy;function Vy(e){return Zt(this,e).has(e)}var Xl=Vy;function qy(e,t){var r=Zt(this,e),o=r.size;return r.set(e,t),this.size+=r.size==o?0:1,this}var ep=qy;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=Jl;lo.prototype.delete=Zl;lo.prototype.get=Yl;lo.prototype.has=Xl;lo.prototype.set=ep;var $r=lo;var By="Expected a function";function Cs(e,t){if(typeof e!="function"||t!=null&&typeof t!="function")throw new TypeError(By);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(Cs.Cache||$r),r}Cs.Cache=$r;var tp=Cs;var Wy=500;function Uy(e){var t=tp(e,function(o){return r.size===Wy&&r.clear(),o}),r=t.cache;return t}var rp=Uy;var Ky=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Gy=/\\(\\)?/g,zy=rp(function(e){var t=[];return e.charCodeAt(0)===46&&t.push(""),e.replace(Ky,function(r,o,n,i){t.push(n?i.replace(Gy,"$1"):o||r);}),t}),op=zy;function Hy(e){return e==null?"":pl(e)}var np=Hy;function Jy(e,t){return H(e)?e:io(e,t)?[e]:op(np(e))}var po=Jy;function Zy(e){if(typeof e=="string"||Jr(e))return e;var t=e+"";return t=="0"&&1/e==-Infinity?"-0":t}var ft=Zy;function Yy(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 Hn=Yy;function Xy(e,t,r){var o=e==null?void 0:Hn(e,t);return o===void 0?r:o}var ip=Xy;function eh(e,t){for(var r=-1,o=t.length,n=e.length;++r<o;)e[n+r]=t[r];return e}var Jn=eh;var th=zn(Object.getPrototypeOf,Object),fo=th;var rh="[object Object]",oh=Function.prototype,nh=Object.prototype,sp=oh.toString,ih=nh.hasOwnProperty,sh=sp.call(Object);function ah(e){if(!ie(e)||ke(e)!=rh)return false;var t=fo(e);if(t===null)return true;var r=ih.call(t,"constructor")&&t.constructor;return typeof r=="function"&&r instanceof r&&sp.call(r)==sh}var Le=ah;function lh(){this.__data__=new Jt,this.size=0;}var ap=lh;function ph(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var lp=ph;function fh(e){return this.__data__.get(e)}var pp=fh;function dh(e){return this.__data__.has(e)}var fp=dh;var uh=200;function ch(e,t){var r=this.__data__;if(r instanceof Jt){var o=r.__data__;if(!Qt||o.length<uh-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 dp=ch;function uo(e){var t=this.__data__=new Jt(e);this.size=t.size;}uo.prototype.clear=ap;uo.prototype.delete=lp;uo.prototype.get=pp;uo.prototype.has=fp;uo.prototype.set=dp;var dt=uo;function mh(e,t){return e&&st(t,lt(t),e)}var up=mh;function gh(e,t){return e&&st(t,pt(t),e)}var cp=gh;var hp=typeof exports=="object"&&exports&&!exports.nodeType&&exports,mp=hp&&typeof module=="object"&&module&&!module.nodeType&&module,yh=mp&&mp.exports===hp,gp=yh?re.Buffer:void 0,yp=gp?gp.allocUnsafe:void 0;function hh(e,t){if(t)return e.slice();var r=e.length,o=yp?yp(r):new e.constructor(r);return e.copy(o),o}var Qn=hh;function wh(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 wp=wh;function Sh(){return []}var Zn=Sh;var bh=Object.prototype,Rh=bh.propertyIsEnumerable,Sp=Object.getOwnPropertySymbols,Oh=Sp?function(e){return e==null?[]:(e=Object(e),wp(Sp(e),function(t){return Rh.call(e,t)}))}:Zn,co=Oh;function xh(e,t){return st(e,co(e),t)}var bp=xh;var Eh=Object.getOwnPropertySymbols,$h=Eh?function(e){for(var t=[];e;)Jn(t,co(e)),e=fo(e);return t}:Zn,Yn=$h;function Ph(e,t){return st(e,Yn(e),t)}var Rp=Ph;function vh(e,t,r){var o=t(e);return H(e)?o:Jn(o,r(e))}var Xn=vh;function Nh(e){return Xn(e,lt,co)}var on=Nh;function Ah(e){return Xn(e,pt,Yn)}var Op=Ah;var Th=ve(re,"DataView"),ei=Th;var Ch=ve(re,"Promise"),ti=Ch;var Mh=ve(re,"Set"),ri=Mh;var xp="[object Map]",kh="[object Object]",Ep="[object Promise]",$p="[object Set]",Pp="[object WeakMap]",vp="[object DataView]",Lh=At(ei),_h=At(Qt),Dh=At(ti),Fh=At(ri),jh=At(Wn),Pr=ke;(ei&&Pr(new ei(new ArrayBuffer(1)))!=vp||Qt&&Pr(new Qt)!=xp||ti&&Pr(ti.resolve())!=Ep||ri&&Pr(new ri)!=$p||Wn&&Pr(new Wn)!=Pp)&&(Pr=function(e){var t=ke(e),r=t==kh?e.constructor:void 0,o=r?At(r):"";if(o)switch(o){case Lh:return vp;case _h:return xp;case Dh:return Ep;case Fh:return $p;case jh:return Pp}return t});var kt=Pr;var Ih=Object.prototype,Vh=Ih.hasOwnProperty;function qh(e){var t=e.length,r=new e.constructor(t);return t&&typeof e[0]=="string"&&Vh.call(e,"index")&&(r.index=e.index,r.input=e.input),r}var Np=qh;var Bh=re.Uint8Array,mo=Bh;function Wh(e){var t=new e.constructor(e.byteLength);return new mo(t).set(new mo(e)),t}var go=Wh;function Uh(e,t){var r=t?go(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.byteLength)}var Ap=Uh;var Kh=/\w*$/;function Gh(e){var t=new e.constructor(e.source,Kh.exec(e));return t.lastIndex=e.lastIndex,t}var Tp=Gh;var Cp=Se?Se.prototype:void 0,Mp=Cp?Cp.valueOf:void 0;function zh(e){return Mp?Object(Mp.call(e)):{}}var kp=zh;function Hh(e,t){var r=t?go(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.length)}var oi=Hh;var Jh="[object Boolean]",Qh="[object Date]",Zh="[object Map]",Yh="[object Number]",Xh="[object RegExp]",ew="[object Set]",tw="[object String]",rw="[object Symbol]",ow="[object ArrayBuffer]",nw="[object DataView]",iw="[object Float32Array]",sw="[object Float64Array]",aw="[object Int8Array]",lw="[object Int16Array]",pw="[object Int32Array]",fw="[object Uint8Array]",dw="[object Uint8ClampedArray]",uw="[object Uint16Array]",cw="[object Uint32Array]";function mw(e,t,r){var o=e.constructor;switch(t){case ow:return go(e);case Jh:case Qh:return new o(+e);case nw:return Ap(e,r);case iw:case sw:case aw:case lw:case pw:case fw:case dw:case uw:case cw:return oi(e,r);case Zh:return new o;case Yh:case tw:return new o(e);case Xh:return Tp(e);case ew:return new o;case rw:return kp(e)}}var Lp=mw;function gw(e){return typeof e.constructor=="function"&&!ro(e)?gl(fo(e)):{}}var ni=gw;var yw="[object Map]";function hw(e){return ie(e)&&kt(e)==yw}var _p=hw;var Dp=Ct&&Ct.isMap,ww=Dp?oo(Dp):_p,Fp=ww;var Sw="[object Set]";function bw(e){return ie(e)&&kt(e)==Sw}var jp=bw;var Ip=Ct&&Ct.isSet,Rw=Ip?oo(Ip):jp,Vp=Rw;var Ow=1,xw=2,Ew=4,qp="[object Arguments]",$w="[object Array]",Pw="[object Boolean]",vw="[object Date]",Nw="[object Error]",Bp="[object Function]",Aw="[object GeneratorFunction]",Tw="[object Map]",Cw="[object Number]",Wp="[object Object]",Mw="[object RegExp]",kw="[object Set]",Lw="[object String]",_w="[object Symbol]",Dw="[object WeakMap]",Fw="[object ArrayBuffer]",jw="[object DataView]",Iw="[object Float32Array]",Vw="[object Float64Array]",qw="[object Int8Array]",Bw="[object Int16Array]",Ww="[object Int32Array]",Uw="[object Uint8Array]",Kw="[object Uint8ClampedArray]",Gw="[object Uint16Array]",zw="[object Uint32Array]",U={};U[qp]=U[$w]=U[Fw]=U[jw]=U[Pw]=U[vw]=U[Iw]=U[Vw]=U[qw]=U[Bw]=U[Ww]=U[Tw]=U[Cw]=U[Wp]=U[Mw]=U[kw]=U[Lw]=U[_w]=U[Uw]=U[Kw]=U[Gw]=U[zw]=true;U[Nw]=U[Bp]=U[Dw]=false;function ii(e,t,r,o,n,i){var s,a=t&Ow,l=t&xw,p=t&Ew;if(r&&(s=n?r(e,o,n,i):r(e)),s!==void 0)return s;if(!J(e))return e;var f=H(e);if(f){if(s=Np(e),!a)return Un(e,s)}else {var d=kt(e),u=d==Bp||d==Aw;if(Tt(e))return Qn(e,a);if(d==Wp||d==qp||u&&!n){if(s=l||u?{}:ni(e),!a)return l?Rp(e,cp(s,e)):bp(e,up(s,e))}else {if(!U[d])return n?e:{};s=Lp(e,d,a);}}i||(i=new dt);var m=i.get(e);if(m)return m;i.set(e,s),Vp(e)?e.forEach(function(y){s.add(ii(y,t,r,y,e,i));}):Fp(e)&&e.forEach(function(y,S){s.set(S,ii(y,t,r,S,e,i));});var g=p?l?Op:on:l?pt:lt,c=f?void 0:g(e);return Rl(c||e,function(y,S){c&&(S=y,y=e[S]),eo(s,S,ii(y,t,r,S,e,i));}),s}var si=ii;var Hw=1,Jw=4;function Qw(e){return si(e,Hw|Jw)}var ai=Qw;var Zw=1,Yw=4;function Xw(e,t){return t=typeof t=="function"?t:void 0,si(e,Zw|Yw,t)}var Ms=Xw;var eS="__lodash_hash_undefined__";function tS(e){return this.__data__.set(e,eS),this}var Up=tS;function rS(e){return this.__data__.has(e)}var Kp=rS;function li(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new $r;++t<r;)this.add(e[t]);}li.prototype.add=li.prototype.push=Up;li.prototype.has=Kp;var Gp=li;function oS(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 pi=oS;function nS(e,t){return e.has(t)}var zp=nS;var iS=1,sS=2;function aS(e,t,r,o,n,i){var s=r&iS,a=e.length,l=t.length;if(a!=l&&!(s&&l>a))return false;var p=i.get(e),f=i.get(t);if(p&&f)return p==t&&f==e;var d=-1,u=true,m=r&sS?new Gp: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(!pi(t,function(S,R){if(!zp(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 fi=aS;function lS(e){var t=-1,r=Array(e.size);return e.forEach(function(o,n){r[++t]=[n,o];}),r}var Hp=lS;function pS(e){var t=-1,r=Array(e.size);return e.forEach(function(o){r[++t]=o;}),r}var Jp=pS;var fS=1,dS=2,uS="[object Boolean]",cS="[object Date]",mS="[object Error]",gS="[object Map]",yS="[object Number]",hS="[object RegExp]",wS="[object Set]",SS="[object String]",bS="[object Symbol]",RS="[object ArrayBuffer]",OS="[object DataView]",Qp=Se?Se.prototype:void 0,ks=Qp?Qp.valueOf:void 0;function xS(e,t,r,o,n,i,s){switch(r){case OS:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return false;e=e.buffer,t=t.buffer;case RS:return !(e.byteLength!=t.byteLength||!i(new mo(e),new mo(t)));case uS:case cS:case yS:return it(+e,+t);case mS:return e.name==t.name&&e.message==t.message;case hS:case SS:return e==t+"";case gS:var a=Hp;case wS:var l=o&fS;if(a||(a=Jp),e.size!=t.size&&!l)return false;var p=s.get(e);if(p)return p==t;o|=dS,s.set(e,t);var f=fi(a(e),a(t),o,n,i,s);return s.delete(e),f;case bS:if(ks)return ks.call(e)==ks.call(t)}return false}var Zp=xS;var ES=1,$S=Object.prototype,PS=$S.hasOwnProperty;function vS(e,t,r,o,n,i){var s=r&ES,a=on(e),l=a.length,p=on(t),f=p.length;if(l!=f&&!s)return false;for(var d=l;d--;){var u=a[d];if(!(s?u in t:PS.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,$=t.constructor;w!=$&&"constructor"in e&&"constructor"in t&&!(typeof w=="function"&&w instanceof w&&typeof $=="function"&&$ instanceof $)&&(c=false);}return i.delete(e),i.delete(t),c}var Yp=vS;var NS=1,Xp="[object Arguments]",ef="[object Array]",di="[object Object]",AS=Object.prototype,tf=AS.hasOwnProperty;function TS(e,t,r,o,n,i){var s=H(e),a=H(t),l=s?ef:kt(e),p=a?ef:kt(t);l=l==Xp?di:l,p=p==Xp?di:p;var f=l==di,d=p==di,u=l==p;if(u&&Tt(e)){if(!Tt(t))return false;s=true,f=false;}if(u&&!f)return i||(i=new dt),s||no(e)?fi(e,t,r,o,n,i):Zp(e,t,l,r,o,n,i);if(!(r&NS)){var m=f&&tf.call(e,"__wrapped__"),g=d&&tf.call(t,"__wrapped__");if(m||g){var c=m?e.value():e,y=g?t.value():t;return i||(i=new dt),n(c,y,r,o,i)}}return u?(i||(i=new dt),Yp(e,t,r,o,n,i)):false}var rf=TS;function of(e,t,r,o,n){return e===t?true:e==null||t==null||!ie(e)&&!ie(t)?e!==e&&t!==t:rf(e,t,r,o,of,n)}var yo=of;var CS=1,MS=2;function kS(e,t,r,o){var n=r.length,i=n,s=!o;if(e==null)return !i;for(e=Object(e);n--;){var a=r[n];if(s&&a[2]?a[1]!==e[a[0]]:!(a[0]in e))return false}for(;++n<i;){a=r[n];var l=a[0],p=e[l],f=a[1];if(s&&a[2]){if(p===void 0&&!(l in e))return false}else {var d=new dt;if(o)var u=o(p,f,l,e,t,d);if(!(u===void 0?yo(f,p,CS|MS,o,d):u))return false}}return true}var nf=kS;function LS(e){return e===e&&!J(e)}var ui=LS;function _S(e){for(var t=lt(e),r=t.length;r--;){var o=t[r],n=e[o];t[r]=[o,n,ui(n)];}return t}var sf=_S;function DS(e,t){return function(r){return r==null?false:r[e]===t&&(t!==void 0||e in Object(r))}}var ci=DS;function FS(e){var t=sf(e);return t.length==1&&t[0][2]?ci(t[0][0],t[0][1]):function(r){return r===e||nf(r,e,t)}}var af=FS;function jS(e,t){return e!=null&&t in Object(e)}var lf=jS;function IS(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)&&(H(e)||Er(e)))}var pf=IS;function VS(e,t){return e!=null&&pf(e,t,lf)}var ff=VS;var qS=1,BS=2;function WS(e,t){return io(e)&&ui(t)?ci(ft(e),t):function(r){var o=ip(r,e);return o===void 0&&o===t?ff(r,e):yo(t,o,qS|BS)}}var df=WS;function US(e){return function(t){return t?.[e]}}var uf=US;function KS(e){return function(t){return Hn(t,e)}}var cf=KS;function GS(e){return io(e)?uf(ft(e)):cf(e)}var mf=GS;function zS(e){return typeof e=="function"?e:e==null?Qr:typeof e=="object"?H(e)?df(e[0],e[1]):af(e):mf(e)}var gf=zS;function HS(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 yf=HS;var JS=yf(),mi=JS;function QS(e,t){return e&&mi(e,t,lt)}var hf=QS;function ZS(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 wf=ZS;var YS=wf(hf),Sf=YS;function XS(e,t,r){(r!==void 0&&!it(e[t],r)||r===void 0&&!(t in e))&&Xr(e,t,r);}var nn=XS;function eb(e){return ie(e)&&at(e)}var bf=eb;function tb(e,t){if(!(t==="constructor"&&typeof e[t]=="function")&&t!="__proto__")return e[t]}var sn=tb;function rb(e){return st(e,pt(e))}var Rf=rb;function ob(e,t,r,o,n,i,s){var a=sn(e,r),l=sn(t,r),p=s.get(l);if(p){nn(e,r,p);return}var f=i?i(a,l,r+"",e,t,s):void 0,d=f===void 0;if(d){var u=H(l),m=!u&&Tt(l),g=!u&&!m&&no(l);f=l,u||m||g?H(a)?f=a:bf(a)?f=Un(a):m?(d=false,f=Qn(l,true)):g?(d=false,f=oi(l,true)):f=[]:Le(l)||Er(l)?(f=a,Er(a)?f=Rf(a):(!J(a)||Zr(a))&&(f=ni(l))):d=false;}d&&(s.set(l,f),n(f,l,o,i,s),s.delete(l)),nn(e,r,f);}var Of=ob;function xf(e,t,r,o,n){e!==t&&mi(t,function(i,s){if(n||(n=new dt),J(i))Of(e,t,s,r,xf,o,n);else {var a=o?o(sn(e,s),i,s+"",e,t,n):void 0;a===void 0&&(a=i),nn(e,s,a);}},pt);}var Ef=xf;function nb(e,t){return yo(e,t)}var vr=nb;var ib=$l(function(e,t,r){Ef(e,t,r);}),Ls=ib;function sb(e,t,r,o){if(!J(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]),p=r;if(l==="__proto__"||l==="constructor"||l==="prototype")return e;if(n!=s){var f=a[l];p=o?o(f,l,a):void 0,p===void 0&&(p=J(f)?f:zt(t[n+1])?[]:{});}eo(a,l,p),a=a[l];}return e}var $f=sb;function ab(e,t,r){return e==null?e:$f(e,t,r)}var _s=ab;function lb(e,t){var r;return Sf(e,function(o,n,i){return r=t(o,n,i),!r}),!!r}var Pf=lb;function pb(e,t,r){var o=H(e)?pi:Pf;return r&&Kn(e,t,r)&&(t=void 0),o(e,gf(t))}var Ds=pb;var fb=/^(\$+)\.(.*)$/,k=e=>{let t=fb.exec(e);return t?{depth:t[1].length,path:t[2]}:null},Fs=(e,t,r)=>`Scope ref '${e}' needs depth ${t} but only ${r} ${r===1?"scope is":"scopes are"} in reach`,Ve=(e,t)=>{let r=k(e);return r?r.depth>t.length?{outOfBounds:Fs(e,r.depth,t.length)}:{scope:t[t.length-r.depth],path:r.path}:{scope:t[t.length-1],path:e}},db=/\[(\d+)\]|\[(["'])(.*?)\2\]|([^.[\]]+)/g,ub=e=>e===""?[""]:[...e.matchAll(db)].map(t=>t[1]??t[3]??t[4]),cb=(e,t)=>{if(e==null)return;let r=Object(e);return Object.hasOwn(r,t)?r[t]:void 0},ye=(e,t)=>ub(t).reduce(cb,e),Yt=(e,t)=>{let r=Ve(e,t);if("outOfBounds"in r)throw new Error(r.outOfBounds);return ye(r.scope,r.path)},gi=(e,t)=>k(e)?Yt(e,t):ye(t[0],e),an=(e,t)=>`Scope ref '${e}' is not supported by ${t}(); evaluate with check()`,yi=(e,t)=>{if(!(!("field"in e)||typeof e.field!="string")&&k(e.field))throw new Error(an(e.field,t))};var wo={postgres:"postgres",mysql:"mysql"},vf=e=>Object.values(wo).includes(e),Nf={string:{caseInsensitive:false,fuzzy:false},prismaOptions:{datasource:{provider:"postgresql"}},sql:{dialect:wo.postgres}},ho=ai(Nf),js=e=>Ms(e,t=>typeof t=="object"&&t!==null&&!Array.isArray(t)&&!Le(t)?t:void 0),mb=e=>e!=null&&typeof e.then=="function",Lt={set:(e,t)=>{_s(ho,e,js(t));},get:e=>ye(ho,e),reset:()=>{ho=ai(Nf);},with:(e,t)=>{let r=ho;ho=Ls(js(r),js(e));try{let o=t();if(mb(o))throw new Error("engineGlobals.with() callback must be synchronous (it returned a Promise).");return o}finally{ho=r;}}},gb=new Set(["postgresql","cockroachdb","mongodb"]),Af=e=>gb.has(e),se=e=>e??Lt.get("string.caseInsensitive")??false,hi=e=>{let t=e??Lt.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"},x={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 Q={String:"String",Boolean:"Boolean",Int:"Int",BigInt:"BigInt",Float:"Float",Decimal:"Decimal",DateTime:"DateTime",Json:"Json",Bytes:"Bytes",Enum:"Enum"},ze=["Int","Float","Decimal","BigInt"],So=["String",...ze,"DateTime"],Xt=["String"],wi=["String","Boolean","Int","BigInt","Float","Decimal","DateTime","Enum"],Si=Object.values(Q),Tf=Si,yb={check:"check",toPrisma:"toPrisma",toSql:"toSql"},Oi=e=>typeof e=="string"&&Object.hasOwn(Q,e),C=["check","toPrisma","toSql"],bo=["check","toPrisma"],bi=["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={[h.equals]:{kinds:wi,targets:C,valueShape:"scalar"},[h.notEquals]:{negates:h.equals,kinds:wi,targets:C,valueShape:"scalar"},[h.lessThan]:{kinds:So,targets:C,valueShape:"ordered",comparator:"lt"},[h.lessThanEquals]:{kinds:So,targets:C,valueShape:"ordered",comparator:"lte"},[h.greaterThan]:{kinds:So,targets:C,valueShape:"ordered",comparator:"gt"},[h.greaterThanEquals]:{kinds:So,targets:C,valueShape:"ordered",comparator:"gte"},[h.in]:{kinds:wi,targets:C,valueShape:"array"},[h.notIn]:{negates:h.in,kinds:wi,targets:C,valueShape:"array"},[h.contains]:{kinds:Xt,targets:C,valueShape:"string"},[h.notContains]:{negates:h.contains,kinds:Xt,targets:C,valueShape:"string"},[h.startsWith]:{kinds:Xt,targets:C,valueShape:"string"},[h.notStartsWith]:{negates:h.startsWith,kinds:Xt,targets:C,valueShape:"string"},[h.endsWith]:{kinds:Xt,targets:C,valueShape:"string"},[h.notEndsWith]:{negates:h.endsWith,kinds:Xt,targets:C,valueShape:"string"},[h.matches]:{kinds:Xt,targets:bi,valueShape:"pattern"},[h.notMatches]:{negates:h.matches,kinds:Xt,targets:bi,valueShape:"pattern"},[h.between]:{kinds:So,targets:C,valueShape:"range"},[h.notBetween]:{negates:h.between,kinds:So,targets:C,valueShape:"range"},[h.isEmpty]:{kinds:Tf,targets:C,valueShape:"none"},[h.notEmpty]:{kinds:Tf,targets:C,valueShape:"none"},[h.exists]:{kinds:Si,targets:C,valueShape:"none"},[h.notExists]:{kinds:Si,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:bi,valueShape:"dayList",acceptsExpr:false},[v.dayNotIn]:{negates:v.dayIn,kinds:["DateTime"],targets:bi,valueShape:"dayList",acceptsExpr:false}},Ri={[x.all]:{targets:bo,valueShape:"predicate"},[x.any]:{targets:bo,valueShape:"predicate"},[x.none]:{targets:bo,valueShape:"predicate"},[x.atLeast]:{targets:bo,valueShape:"count",comparator:"gte"},[x.atMost]:{targets:bo,valueShape:"count",comparator:"lte"},[x.exactly]:{targets:bo,valueShape:"count",comparator:"equals"},[x.empty]:{targets:C,valueShape:"none"},[x.notEmpty]:{targets:C,valueShape:"none"}},Cf={field:Ro,date:Oo,array:Ri},_t=(e,t)=>Object.hasOwn(Cf[t],e)?Cf[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},xi=(e,t,r)=>_t(e,t)?.targets.includes(r)??false,hb=(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}},wb=e=>Object.keys(Ri).filter(t=>e?Ri[t].targets.includes(e):true),Mf=[...Object.entries(Ro),...Object.entries(Oo)],_e=(...e)=>Mf.flatMap(([t,r])=>e.includes(r.valueShape)?[t]:[]),tr=_e("none"),Eo=_e("ordered"),ln=_e("dateWindow"),qe=_e("range","dateRange","dateWindow"),kf=_e("ordered","string","pattern","array"),ut=[h.contains,h.notContains],Is=[h.equals,h.notEquals,h.in,h.notIn,h.exists,h.notExists],Ei=_e("scalar","ordered","range"),ct=["sum","avg"],Sb=()=>Ei,mt=_e("scalar"),rr=_e("array"),Lf=_e("scalar","array"),_f=_e("dayList"),Df=_e("dateRange"),Ff=_e("scalar","ordered","range","dateValue","dateRange"),jf=(...e)=>Object.entries(Ri).flatMap(([t,r])=>e.includes(r.valueShape)?[t]:[]),pn=jf("count"),Vs=e=>typeof e.condition!="object"||e.condition===null?null:e.arrayOperator===x.atLeast&&e.count===1?x.any:(e.arrayOperator===x.atMost||e.arrayOperator===x.exactly)&&e.count===0?x.none:null,fn=e=>pn.includes(e.arrayOperator)&&Vs(e)===null,$i=jf("predicate","count"),qs=[x.any,x.all,x.none,x.empty,x.notEmpty],If=[x.any,x.atLeast],q=[...Object.entries(Ro),...Object.entries(Oo)].flatMap(([e,t])=>t.negates?[e]:[]),Pi=[...q,h.isEmpty,h.notExists],Vf=q.filter(e=>_e("string").includes(e)),$o=q.filter(e=>qe.includes(e)),qf=(...e)=>Mf.flatMap(([t,r])=>r.comparator&&e.includes(r.comparator)&&!q.includes(t)?[t]:[]),vi=qf("lt","lte"),Bf=qf("gt","gte"),Wf=["Int","BigInt"],Uf=[...ze,"DateTime","Boolean","String"],Kf=["Int","BigInt","Float","Boolean","String"],Gf=["scalar","ordered","string"],or={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}},zf=["months","days","secs"],Bs=e=>Object.hasOwn(or,e),Nr=e=>Bs(e)&&or[e].calendar,Ni=["year","quarter","month","week","isoWeek","day","hour","minute","second"],Po=["sunday","monday","tuesday","wednesday","thursday","friday","saturday"],Hf=e=>Po.includes(e.toLowerCase()),Jf=(e,t=[])=>Object.fromEntries([...Object.entries(e).flatMap(([r,o])=>o.negates?[[o.negates,r]]:[]),...t].flatMap(([r,o])=>[[r,o],[o,r]])),dn=Jf(Ro,[[h.isEmpty,h.notEmpty],[h.exists,h.notExists]]),Qf=Jf(Oo),Ai={[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 Ti=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`),He=e=>new Error(`${e} requires a range date expression (a period or rolling window), not a single point`),De=e=>new Error(`${e} requires a condition to check against array elements`),nr=e=>new Error(`'${e}' is a relation: it exists or not; compare its fields with '${e}.<field>'.`),Ci=e=>new Error(`'${e}' is a list of rows: compare it with an arrayOperator (any / all / none / empty / atLeast \u2026).`),Mi=e=>ut.includes(e.operator)&&hi(e.fuzzy)?new Error("Fuzzy matching has no compiled form \u2014 evaluate it in memory with check()."):null,ki=(e,t)=>!Eo.includes(e)&&!qe.includes(e)?null:(qe.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,ir=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]"),F=(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`),D=class extends Error{name="UsageError"};wt__default.default.extend(xb__default.default);wt__default.default.extend(Ob__default.default);wt__default.default.extend(Rb__default.default);wt__default.default.extend(bb__default.default);var oe=e=>{if(!Le(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},Je="UTC",un=e=>{if(e.now===void 0)throw new D("date expressions require `now` to be supplied to the evaluator");let t=wt__default.default(e.now).tz(e.timeZone);if(!t.isValid())throw new D(`invalid \`now\`: ${String(e.now)}`);return t},Ws=(e,t)=>Object.entries(e).reduce((r,[o,n])=>or[o].interval===t?r+n*or[o].factor:r,0),Zf="YYYY-MM-DDTHH:mm:ss.SSS",sr=(e,t,r,o)=>{let n=Ws(t,"months"),i=Ws(t,"days"),s=Ws(t,"secs"),a=wt__default.default.utc(e.tz(o).format(Zf));return n&&(a=a.add(r*n,"month")),i&&(a=a.add(r*i,"day")),s&&(a=a.add(r*s*1e3,"millisecond")),wt__default.default.tz(a.format(Zf),o)},Eb=e=>"ago"in e||"ahead"in e,Li=(e,t)=>t===-1?{ago:e}:{ahead:e},Ne=e=>Eb(e)?"ago"in e?[e.ago,-1]:[e.ahead,1]:null,cn=e=>"this"in e||"last"in e||"next"in e,Us=e=>"start"in e||"end"in e,_i=e=>"this"in e?e.this:"last"in e?e.last:e.next,$b=e=>{let t=_i(e);if(typeof t!="string"||!Ni.includes(t))throw new Error(`Unknown period unit '${String(t)}'`);return t},Pb=(e,t)=>e==="week"?t.weekStart==="sunday"?"week":"isoWeek":e,Ks=(e,t)=>{let r=un(t),o=$b(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=Pb(o,t);return [i.startOf(s),i.endOf(s)]},Gs=(e,t)=>{let r=Ne(e);if(r)return sr(un(t),...r,t.timeZone);if(Us(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")},To=(e,t,r)=>{if(cn(e)){let[o,n]=Ks(e,r),i=xo({dateOperator:t})?.negates??t;return vi.includes(i)?o:n}return Gs(e,r)},Co=(e,t)=>{if(cn(e))return Ks(e,t);let r=Ne(e);if(r){let o=un(t),n=sr(o,...r,t.timeZone);return r[1]===-1?[n,o]:[o,n]}throw He("within")};var Yf=["value","bind","path"],be=e=>typeof e.path=="string"&&e.path!=="",Tr=e=>be(e)?k(e.path)??{depth:0,path:e.path}:null,mn=(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(be(e))return t.path(e.path);throw new Error("No value, path or bind specified")},Di=e=>Le(e)&&(e.value!==void 0||be(e)||typeof e.bind=="string"),zs=(e,t,r)=>{if(!r||!Object.hasOwn(r,e)){if(t===true)return null;throw new D(`Missing binding for "${e}"`)}let o=r[e];return o===void 0?null:o},Fi=(e,t,r)=>{if(t===true)return null;throw new D(`Unresolved binding '${e}' \u2014 resolve bindings (bindRule / bindLens) before compiling with ${r}().`)},jt=(e,t,r)=>mn(e,{value:o=>o,bind:(o,n)=>zs(o,n,r),path:o=>gi(o,t)??null});var ed=e=>typeof e=="object"&&e!==null,Js=e=>"if"in e||"then"in e||"else"in e,Ae=e=>"arrayOperator"in e||"aggregate"in e,td=e=>[...["all","any"].flatMap(t=>Array.isArray(e[t])?e[t].map((r,o)=>({key:t,index:o,child:r,nested:false})):[]),...Js(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}]:[])],Fe=e=>"all"in e||"any"in e||Js(e),Z=(e,t,r)=>{if(!ed(e))return;let o=e,n=t(o,r),i=n===void 0?r:n;for(let{child:s,nested:a}of td(o))a?i!==false&&Z(s,t,i):Z(s,t,r);},rd=(e,t,r,o)=>{let n=false;return Z(e,(i,s)=>(!n&&t(i,s)&&(n=true),n?false:r?.(i,s)),o),n},ar=(e,t,r)=>{if(!ed(e))return e;let o=r,n={...e},i=t.rewrite?t.rewrite(n,o):n,s=td(i),a=s.some(p=>p.nested)&&t.below?t.below(i,o):o;for(let p of ["all","any"])Array.isArray(i[p])&&(i[p]=[...i[p]]);for(let{key:p,index:f,child:d,nested:u}of s){if(u&&a===false)continue;let m=ar(d,t,u?a:o);f===void 0?i[p]=m:i[p][f]=m;}let l=t.after?t.after(i,o):i;return l===i&&vb(i,e)?e:l},vb=(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])})},Nb=(e,t)=>Le(e)?Object.fromEntries(Object.entries(e).map(([r,o])=>[r,Di(o)?t(o,Nr(r)?"whole":"number"):o])):e,Hs=(e,t)=>{let r=oe(e)?Ne(e):null;return r?Li(Nb(r[0],t),r[1]):e},Mo=(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=>Hs(i,t)):Hs(e.value,t);o={...o,value:n};}if(Di(e.offset)){let n=r?{...e.offset,...e.offset.value!==void 0&&{value:Hs(e.offset.value,t)}}:e.offset;o={...o,offset:t(n,r?"shift":"number")};}return Di(o)&&(o=t(o,"value")),o},gn=e=>{let t=[];return Mo(e,(r,o)=>(t.push({source:r,role:o}),r)),t},Qs=e=>gn(e).flatMap(({source:t,role:r})=>be(t)?[{ref:t.path,role:r}]:[]),lr=e=>Qs(e).map(t=>t.ref),ko=e=>[...Array.isArray(e.orderBy)?e.orderBy.flatMap(t=>typeof t?.field=="string"?[t.field]:[]):[],...typeof e.aggregate?.field=="string"?[e.aggregate.field]:[]],Ab={all:"all",any:"any",if:"if",field:"field",aggregate:"aggregate",array:"array",date:"date"},Cr=()=>(e,t)=>({required:[...e],optional:[...t]}),Xf={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"])},Tb=e=>({required:[...Xf[e].required],optional:[...Xf[e].optional]}),ne=e=>{let t=new Set;return "all"in e&&t.add("all"),"any"in e&&t.add("any"),Js(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},K=e=>e.length===0?true:e.length===1?e[0]:{all:[...e]},Zs=e=>typeof e=="object"&&"all"in e&&Array.isArray(e.all)?e.all.flatMap(Zs):[e],It=e=>e.length===0?false:e.length===1?e[0]:{any:[...e]};var Cb=e=>gn(e).flatMap(({source:t})=>typeof t.bind=="string"?[t]:[]),yn=(e,{required:t=false}={})=>{let r=new Set;return Z(e,o=>{for(let n of Cb(o))(!t||n.bindOptional!==true)&&r.add(n.bind);}),[...r].sort()},Ys=(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:zs(n,true,t)}};return ar(e,{rewrite:o=>Mo(Mo(o,r),r)})};var od=BigInt(Number.MAX_SAFE_INTEGER),hn=e=>{if(e>od||e<-od)throw new RangeError(`BigInt ${e} is outside the safe integer range (\xB12^53); json-rules compares BigInt as Int.`);return Number(e)},Xs=e=>typeof e=="bigint"?hn(e):typeof e=="string"&&e.trim()!==""&&Number.isFinite(Number(e))?Number(e):e,ji=(e,t)=>{if(e==null)return null;let r=Xs(e);if(typeof r!="number"||!Number.isFinite(r))throw new Error(`${t} reads a number (got ${String(e)})`);return r},Be=([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]]},Lo=(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},Ii=e=>{if(!Array.isArray(e))throw new Error(`in / notIn requires a list (got ${JSON.stringify(e)})`);return e},We=e=>{let t=Ii(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 ea=(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)})`,ta=(e,t,r)=>{let o=typeof e=="number"?e:ji(t(e),e.path?`'${e.path}' (${r})`:r),n=o===null?null:ea(o,r);if(n===null)return o;if(typeof e!="number"&&be(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=ta(n,t,o);if(i===null)return null;r[o]=i;}return r},ht=(e,t)=>{let r=Ne(e);if(!r)return e;let o=Mr(r[0],t);return o?Li(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=Xs(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=>ji(e,"an offset"),_o=e=>{if(e==null)return null;let t=oe(e)?Ne(e):null;if(!t)throw new Error(`a date offset reads { ago } or { ahead } (got ${JSON.stringify(e)})`);return t};wt__default.default.extend(xb__default.default);wt__default.default.extend(Ob__default.default);wt__default.default.extend(kb__default.default);wt__default.default.extend(Mb__default.default);var sd=(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 q.includes(e.dateOperator)?true:e.error||`${e.field} has no value`;let a=de(n)?pr(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(_f.includes(e.dateOperator)){let u=ra(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 p=Db(e,t,i,s,o);if(p===null)return e.error||`${e.field} has no comparison value`;let[f,d=f]=p;switch(e.dateOperator){case v.before:return a.isBefore(f)||l(`must be before ${f.format()}`);case v.after:return a.isAfter(f)||l(`must be after ${f.format()}`);case v.onOrBefore:return a.isSameOrBefore(f)||l(`must be on or before ${f.format()}`);case v.onOrAfter:return a.isSameOrAfter(f)||l(`must be on or after ${f.format()}`);case v.within:return a.isSameOrAfter(f)&&a.isSameOrBefore(d)||l(`must be within ${f.format()} and ${d.format()}`);case v.notBefore:return a.isSameOrAfter(f)||l(`must not be before ${f.format()}`);case v.notAfter:return a.isSameOrBefore(f)||l(`must not be after ${f.format()}`);case v.notWithin:return a.isBefore(f)||a.isAfter(d)||l(`must not be within ${f.format()} and ${d.format()}`);case v.between:return a.isSameOrAfter(f)&&a.isSameOrBefore(d)||l(`must be between ${f.format()} and ${d.format()}`);case v.notBetween:return a.isBefore(f)||a.isAfter(d)||l(`must not be between ${f.format()} and ${d.format()}`);default:throw le(e.dateOperator,"date")}},Db=(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:_o(s(e.offset));if(l===null)return null;let p=g=>{if(l===void 0)return g;let c=Mr(l[0],s);return c&&sr(g,c,l[1],o)};if(ln.includes(i)){if(!oe(a))throw He(i);let g=ht(a,s);return g&&Co(g,r)}let f=(g,c)=>{if(g==null)return null;if(oe(g)){let S=ht(g,s);return S&&Gs(S,r)}let y=pr(g,o);if(!y.isValid())throw new Error(`Invalid ${c}: ${String(g)}`);return y};if(Df.includes(i)){let[g,c]=Qe(a,i),y=f(g,"start date"),S=f(c,"end date");if(!y||!S)return null;let[R,b]=Be([y,S]),w=p(R),$=p(b);return w&&$?[w,$]: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=oe(a)?d(a):f(a,"comparison date");if(!u)return null;let m=p(u);return m&&[m]},_r=(e,t)=>{let r=e.timeZone;if(r===void 0||typeof r=="string")return {...e,timeZone:id(r??Je)};if(Tr(r))throw new D(`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 D(`timeZone reads a zone name (got ${String(o)})`);return {...e,timeZone:id(o??Je)}},nd=new Set,id=e=>{if(nd.has(e))return e;try{new Intl.DateTimeFormat("en-US",{timeZone:e});}catch{throw new D(`invalid time zone: ${e}`)}return nd.add(e),e},Fb=/\d{2}:\d{2}(?::\d{2}(?:\.\d+)?)?\s*(?:[zZ]|[+-]\d{2}(?::?\d{2})?)$/,jb=e=>Fb.test(e.trim())||/\b(?:GMT|UTC)\b/.test(e),pr=(e,t)=>{if(typeof e=="string"&&/^-?\d+$/.test(e.trim()))return wt__default.default(Number(e));if(typeof e=="string"&&!jb(e)){let r=wt__default.default(e);return r.isValid()?wt__default.default.tz(e,t):r}return typeof e=="string"?wt__default.default(new Date(e.trim())):wt__default.default(e)},Vi=(e,t)=>{let r=de(e)?pr(e,t):wt__default.default(Number.NaN);if(!r.isValid())throw new Error(`Invalid date value: ${String(e)}`);return r.toDate()},ra=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 Vb=e=>e<=3?0:e<=6?1:2,qb=(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):Vb(t)},ad=e=>e.split(/[^a-z0-9\p{L}]+/u).filter(Boolean),Bb=e=>/^\d+$/.test(e),Wb=(e,t,r)=>e===t?true:Math.abs(e.length-t.length)>r?false:fastestLevenshtein.distance(e,t)<=r,ld=(e,t,r={})=>{let o=t.trim().toLowerCase();if(!o)return true;let n=e.toLowerCase();if(n.includes(o))return true;let i=ad(o);if(i.length===0)return false;let s=ad(n);return s.length===0?false:i.every(a=>{let l=qb(r,a.length);return l===0||Bb(a)?s.includes(a):s.some(p=>Wb(a,p,l))})};var fr=e=>{let t=e instanceof RegExp?e.source:e,r=e instanceof RegExp?e.flags:"";if(/[^i]/.test(r))throw new Error(`Refused pattern /${t}/${r}: only the 'i' flag is supported`);let o=r==="i";try{return {source:t,caseInsensitive:o,re:re2js.RE2JS.compile(t,o?re2js.RE2JS.CASE_INSENSITIVE:0)}}catch(n){throw new Error(`Refused pattern /${t}/: ${n.message}`)}},Do={d:"0-9",w:"0-9A-Za-z_",s:"\\t\\n\\f\\r "},fd={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"},Ub=/[\\^$.|?*+()[\]{}]/,oa=255,dd=e=>e<=65535?`\\u${e.toString(16).padStart(4,"0")}`:`\\U${e.toString(16).padStart(8,"0")}`,Kb=e=>Ub.test(e)?`\\${e}`:e,wn=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(Do,a))return s?Do[a]:`[${Do[a]}]`;let l=a.toLowerCase();if(a!==l&&Object.hasOwn(Do,l))return s&&t(`a negated class \\${a} inside brackets`),`[^${Do[l]}]`;if(a==="p"||a==="P")return t("a Unicode class");if(a==="C")return t("\\C");if(a==="x"){let p=e[o]==="{",f=p?e.indexOf("}",o):o+2,d=e.slice(p?o+1:o,f);return o=p?f+1:f,dd(Number.parseInt(d,16))}if(a>="0"&&a<="7"){let p=a;for(;p.length<3&&e[o]>="0"&&e[o]<="7";)p+=e[o++];return dd(Number.parseInt(p,8))}if(!s&&(a==="b"||a==="B")){let p=`[${Do.w}]`;return a==="b"?`(?:(?<=${p})(?!${p})|(?<!${p})(?=${p}))`:`(?:(?<=${p})(?=${p})|(?<!${p})(?!${p}))`}if(!s&&(a==="z"||a==="A"))return n(),a==="z"?"\\Z":"\\A";if(a==="Q"){let p=e.indexOf("\\E",o),f=e.slice(o,p===-1?void 0:p);return o=p===-1?e.length:p+2,[...f].map(s?d=>/[\\\]^-]/.test(d)?`\\${d}`:d:Kb).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])>oa||Number(a[2]??0)>oa)&&t(`a repeat count past ${oa}`),r+=a[0],o+=a[0].length;}else if(s==="["){r+="[",o++,e[o]==="^"&&(r+="^",o++),e[o]==="]"&&(r+="\\]",o++);let a=false,l=false,p=0;for(;o<e.length&&e[o]!=="]";){let f=l?null:/^\[:(\^?)([a-z]+):\]/.exec(e.slice(o)),d=!!f||/^\\[dswDSW]/.test(e.slice(o)),u=e[o]==="-"&&p>0&&e[o+1]!=="]"&&!l;f?(f[1]&&t(`a negated class [:^${f[2]}:]`),Object.hasOwn(fd,f[2])||t(`the class [:${f[2]}:]`),r+=fd[f[2]],o+=f[0].length):e[o]==="\\"?r+=i(true):u&&a?(r+="\\-",o++):(r+=e[o]==="["?"\\[":e[o],o++);let m=l;l=u&&!a,a=d||m,p++;}r+="]",o++;}else r+=s,o++,(s==="^"||s==="$")&&n();}return r},ud=(e,t)=>{try{let{source:r}=fr(e);return t==="toSql"&&wn(r),null}catch(r){return r.message}};var cd=e=>e==null||e===""||Array.isArray(e)&&e.length===0,he=(e,t)=>{let r=t==null;return r&&(e.offset!==void 0||kf.includes(e.operator))?true:qe.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,Bi=(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?It(o(h.equals)):K(o(h.notEquals))},Fr=e=>typeof e=="string"?e.toLowerCase():Array.isArray(e)?e.map(Fr):e,md=e=>typeof e=="bigint"?hn(e):Array.isArray(e)&&e.some(t=>typeof t=="bigint")?e.map(t=>typeof t=="bigint"?hn(t):t):e,gd=(e,t,r)=>{if(e==null)return e;if(ze.includes(t)){if(typeof e!="string"||e.trim()==="")return e;if(t==="BigInt"&&/^-?\d+$/.test(e.trim()))return hn(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=pr(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=Je)=>t===void 0?e:Array.isArray(e)?e.map(o=>gd(o,t,r)):gd(e,t,r),Sn=(e,t,r,o={},n)=>{let i=n?n.value:Yt(e.field,t);if(o.absent==="unknown"&&!Pi.includes(e.operator)&&(i===void 0||be(e)&&gi(e.path,t)===void 0))return e.error||`${e.field} is unknown`;let s=i??null,a=e.coerceType??(s instanceof Date?"DateTime":void 0),l=a==="DateTime"?_r(o,b=>jt(b,t,r)).timeZone:Je,p=Dr(md(s),a,l),f=!tr.includes(e.operator),d=f?Gb(Dr(md(jt(e,t,r)??null),a,l),e,t,r):void 0;if(f&&he(e,d))return q.includes(e.operator)&&p==null?true:e.error||`${e.field} has no comparison value`;let u=b=>e.error||`${e.field} ${b}${f?` ${d instanceof RegExp?String(d):JSON.stringify(d)}`:""}`,m=se(e.caseInsensitive),g=b=>m?Fr(b):b,c=g(p),y=g(d),S=hi(e.fuzzy),R=()=>S&&typeof p=="string"&&typeof d=="string"?ld(p,d,S):Array.isArray(p)?c.some(b=>vr(b,y)):zb(c,y);switch(e.operator){case h.equals:return vr(c,y)||u("must equal");case h.notEquals:return !vr(c,y)||u("must not equal");case h.lessThan:return qi(p,d,"lt")||u("must be less than");case h.lessThanEquals:return qi(p,d,"lte")||u("must be less than or equal to");case h.greaterThan:return qi(p,d,"gt")||u("must be greater than");case h.greaterThanEquals:return qi(p,d,"gte")||u("must be greater than or equal to");case h.in:return Ii(y).some(b=>vr(b,c))||u("must be one of");case h.notIn:return !Ii(y).some(b=>vr(b,c))||u("must not be one of");case h.contains:return R()||u("must contain");case h.notContains:return !R()||u("must not contain");case h.matches:return yd(p)&&hd(d)&&fr(d).re.test(p)||u("must match pattern");case h.notMatches:return !yd(p)||!hd(d)||!fr(d).re.test(p)||u("must not match pattern");case h.between:{let b=wd(d,e.operator);if(!bd(p,b))return u("must be between");let w=Fo(p),[$,E]=b;return w>=$&&w<=E||u("must be between")}case h.notBetween:{let b=wd(d,e.operator);if(!bd(p,b))return true;let w=Fo(p),[$,E]=b;return w<$||w>E||u("must not be between")}case h.isEmpty:return cd(p)||u("must be empty");case h.notEmpty:return !cd(p)||u("must not be empty");case h.exists:return p!=null||u("must exist");case h.notExists:return p==null||u("must not exist");case h.startsWith:return typeof c=="string"&&typeof y=="string"&&c.startsWith(y)||u("must start with");case h.endsWith:return typeof c=="string"&&typeof y=="string"&&c.endsWith(y)||u("must end with");case h.notStartsWith:return !(typeof c=="string"&&typeof y=="string"&&c.startsWith(y))||u("must not start with");case h.notEndsWith:return !(typeof c=="string"&&typeof y=="string"&&c.endsWith(y))||u("must not end with");default:throw new Error("Unknown operator")}},Gb=(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)},Fo=e=>e instanceof Date?e.getTime():e,qi=(e,t,r)=>{if(!Hb(e,t)||!de(t))return false;let o=Fo(e),n=Fo(t);switch(r){case "lt":return o<n;case "lte":return o<=n;case "gt":return o>n;case "gte":return o>=n}},yd=e=>typeof e=="string",hd=e=>typeof e=="string"||e instanceof RegExp,wd=(e,t)=>Be(Lo(e,t).map(r=>Fo(r))),zb=(e,t)=>typeof e=="string"&&typeof t=="string"&&e.includes(t),Hb=(e,t)=>de(e)&&de(t)&&Sd(e)===Sd(t),Sd=e=>e instanceof Date?"date":typeof e,bd=(e,t)=>de(e)&&typeof Fo(e)==typeof t[0];var Re=e=>e.filter!==void 0||!!e.orderBy?.length||e.take!==void 0||e.skip!==void 0,Jb=e=>{if(typeof e!="object"||e===null)return null;let t=e,r=ne(t);return r!=="field"&&r!=="date"||typeof t.field!="string"?null:{op:String(r==="date"?t.dateOperator:t.operator),field:t.field}},Qb=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===x.all?o="all":(e.arrayOperator===x.any||e.arrayOperator===x.atLeast&&e.count===1)&&(o="any"),!o)return null;let n=Jb(e.condition);if(!n||n.field!==t)return null;let i=vi.includes(n.op),s=Bf.includes(n.op);if(!i&&!s)return null;let a=r==="desc";if(!(o==="all"?a&&i||!a&&s:a&&s||!a&&i))return null;let{orderBy:p,take:f,skip:d,count:u,...m}=e;if(o==="any")return {...m,arrayOperator:x.any};let g={field:t,operator:h.exists};return {any:[{field:e.field,arrayOperator:x.empty},{all:[{field:e.field,arrayOperator:x.any,condition:g},{...m,arrayOperator:x.all,condition:{if:g,then:e.condition}}]}]}},na=(e,t,r)=>{let o=e;return t.filter!==void 0&&r&&(o=o.filter(r)),t.orderBy?.length&&(o=Rd(o,t.orderBy)),t.skip!==void 0&&(o=o.slice(t.skip)),t.take!==void 0&&(o=o.slice(0,t.take)),o},Rd=(e,t)=>[...e].sort((r,o)=>{for(let{field:n,dir:i}of t){let s=Zb(ye(r,n),ye(o,n),i);if(s!==0)return s}return 0}),Zb=(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},jo=e=>{if(!Re(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:K([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:K([r,e.condition])}}}return "aggregate"in e||e.filter!==void 0?null:Qb(e)};var Yb=e=>Z(e,t=>{let r=ne(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)&&Yb(e),St(e,t,{...r,scopes:[t]})),St=(e,t,r)=>{if(typeof e=="boolean")return e;let o=e;switch(ne(e)){case "all":return Xb(o.all,t,r,o.error);case "any":return eR(o.any,t,r,o.error);case "if":return tR(o,t,r);case "array":return oR(o,r);case "aggregate":return rR(o,r);case "date":return sd(o,r.scopes,r,r.bindings);case "field":return Sn(o,r.scopes,r.bindings,r);default:throw gt()}},Wi=(e,t)=>({...e,scopes:[...e.scopes,t]}),Xb=(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},eR=(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 ")}`)},tR=(e,t,r)=>St(e.if,t,r)===true?St(e.then,t,r):e.else!==void 0?St(e.else,t,r):true,Od=(e,t)=>{if(e==null)return [];if(!Array.isArray(e))throw new Error(`${t} must be an array`);return e},rR=(e,t)=>{let r=Od(Yt(e.field,t.scopes),e.field),o=e.filter,n=na(r,e,o?m=>St(o,m,Wi(t,m))===true:void 0),{mode:i,field:s}=e.aggregate;if(!ct.includes(i))throw ir(i);let a=e.condition,p=(a?n.filter(m=>St(a,m,Wi(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 y=`${e.field}[${g}]${s?`.${s}`:""}`;throw new Error(`${y} must be a finite number`)}return [c]}),f=p.reduce((m,g)=>m+g,0),d=i==="sum"||p.length===0?f:f/p.length,u={...e,field:`${e.field} ${i}`};return Sn(u,t.scopes,t.bindings,t,{value:d})},oR=(e,t)=>{let r=Od(e.field?Yt(e.field,t.scopes):t.scopes[t.scopes.length-1],e.field||"(root)"),o=e.filter,n=na(r,e,o?d=>St(o,d,Wi(t,d))===true:void 0),i=d=>e.error||`${e.field} ${d}`,s=e.condition,a=$i.includes(e.arrayOperator);if(a&&s===void 0)throw De(e.arrayOperator);let l=e.count??0;if(pn.includes(e.arrayOperator)&&e.count===void 0)throw vo(e.arrayOperator);let p=0,f=0;if(a&&s!==void 0){if(n.length>0&&!Ds(n,J))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,Wi(t,u)));p=d.filter(u=>u===true).length,f=d.filter(u=>typeof u=="string").length;}switch(e.arrayOperator){case x.empty:return !n.length||i("must be empty");case x.notEmpty:return !!n.length||i("must not be empty");case x.all:return p===n.length||i(`all elements must match (${f} failed)`);case x.any:return !!p||i("at least one element must match");case x.none:return !p||i(`no elements should match (${p} matched)`);case x.atLeast:return p>=l||i(`at least ${l} elements must match (${p} matched)`);case x.atMost:return p<=l||i(`at most ${l} elements must match (${p} matched)`);case x.exactly:return p===l||i(`exactly ${l} elements must match (${p} 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]),T=(e,t)=>O(e?.models,t),Oe=(e,t,r)=>O(T(e,t)?.fields,r);var Te=({fieldMap:e,model:t})=>`${e}:${t}`,xd=(e,t)=>{let r=e.indexOf(":");return r===-1?{mapName:t,modelName:e}:{mapName:e.slice(0,r),modelName:e.slice(r+1)}};var Ed=(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},nR=(e,t)=>{let r={};for(let o of e){let n=O(o,t);n!=null&&qt(r,String(n),()=>[]).push(o);}return r},$d=(e,t)=>{let r={};for(let o of e.bridges??[]){let[n,i]=o.endpoints,s=Te(n),a=Te(i),l=o.cardinality==="oneToMany"?"one":"oneToOne",p=(u,m)=>qt(qt(r,u,()=>({})),m,()=>({})),f=O(t,s);f&&(p(n.fieldMap,n.model)[n.on]=Ed(f,n.on,s,l));let d=O(t,a);d&&(o.cardinality==="oneToMany"?p(i.fieldMap,i.model)[i.on]=nR(d,i.on):p(i.fieldMap,i.model)[i.on]=Ed(d,i.on,a,"oneToOne"));}return r};var Ui=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=Te(o),s=Te(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 p=r.cardinality==="oneToMany";a.fields[s]={kind:"bridge",type:s,isList:p},l.fields[i]={kind:"bridge",type:i,isList:false};}return t};var Io=(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 je=e=>e.kind==="scalar"&&e.type==="Json",V=e=>e.kind==="object"||e.kind==="bridge",jr=(e,t)=>e.values??O(t,e.type);var xe=(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"?xd(e.type,t):null;function*dr(e,t,r){let o=r.split("."),n=t;for(let i=0;i<o.length;i++){let s=o[i],a=Oe(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 ee=(e,t,r)=>{let o=e.split("."),n=[],i={mapName:"",modelName:r,relPath:[]};for(let{index:s,field:a,at:l,entry:p}of dr({"":t},i,e)){let f=l.modelName;if(!p)return {kind:"fallback",hops:n};if(p.kind==="bridge")return {kind:"bridge",hops:n};let d=s===o.length-1;if(p.kind==="object"){if(!T(t,p.type))return {kind:"fallback",hops:n};if(d)return {kind:"direct",hops:n,entry:p,model:f,column:a};n.push({field:a,prefix:o.slice(0,s+1).join("."),entry:p,from:f});continue}return d?{kind:"direct",hops:n,entry:p,model:f,column:a}:je(p)?{kind:"json-path",hops:n,entry:p,model:f,column:a,stopIndex:s+1,jsonPath:o.slice(s+1)}:{kind:"past-scalar",hops:n,column:a}}return {kind:"fallback",hops:n}},ur=(e,t,r)=>t&&r?ee(e,t,r):void 0,Y=(e,t,r)=>{let o=ur(e,t,r);return o?.kind==="direct"?o.entry:void 0},Pd=(e,t,r)=>ee(e,t,r).hops.filter(o=>!o.entry.isList&&o.entry.isRequired===false).map(o=>o.prefix),bn=(e,t,r)=>{let o=ee(e,t,r);return o.kind==="direct"&&o.entry.kind==="object"?o.entry.type:null},cr=(e,t,r)=>ee(e,t,r).kind==="bridge",bt=(e,t,r)=>!!t&&!!r&&rd(e,(o,n)=>typeof o.field=="string"&&o.field!==""&&cr(o.field,t,n),(o,n)=>(typeof o.field=="string"?bn(o.field,t,n):n)??false,r);var Ir=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":vd(e.entry.type),vd=e=>e===Q.Json?"json":e===Q.Enum?"enum":e===Q.DateTime?"instant":e===Q.String?"text":"scalar",Ki=(e,t,r)=>{let o=Y(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"},Gi=(e,t,r)=>{if(Ir(ur(e,t,r))==="relations")throw Ci(e)},Vr=e=>e!=="scalar"&&e!=="instant"&&e!=="list"&&e!=="enum"&&e!=="relation"&&e!=="relations",mr=(e,t)=>Vr(e)&&Nd(t),Nd=e=>typeof e=="string"||Array.isArray(e)&&e.some(Nd),Ie=(e,t,r)=>{let o=Ir(ur(e.field,t,r));return o==="unknown"&&e.coerceType!==void 0?vd(e.coerceType):o},Ye=e=>{if(!e.isList){if(e.kind==="enum")return Q.Enum;if(!(e.kind!=="scalar"||e.type===Q.Json))return Oi(e.type)?e.type:void 0}};var Ad=new WeakSet,Hi=e=>(Ad.add(e),e),Td=e=>{if(e===null||typeof e!="object")return false;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null},Cd=e=>{let t=[],r=(o,n)=>{if(o!==null&&typeof o=="object"&&Ad.has(o)){t.push({path:n});return}if(Array.isArray(o))for(let[i,s]of o.entries())r(s,[...n,i]);else if(Td(o))for(let[i,s]of Object.entries(o))r(s,[...n,i]);};return r(e,[]),t},iR=["__step","__field"],zi=e=>Array.isArray(e)?e.some(zi):Td(e)?Object.entries(e).some(([t,r])=>iR.includes(t)||zi(r)):false;var sR={[h.equals]:"equals",[h.notEquals]:"equals",[h.lessThan]:"lt",[h.lessThanEquals]:"lte",[h.greaterThan]:"gt",[h.greaterThanEquals]:"gte"},Md=(e,t,r)=>{let o=ee(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 V(n)?`'${e}' is a relation`:je(n)?`'${e}' is a Json column`:n.isList?`'${e}' is a list column`:n},Ji=(e,t,r,o,n=false)=>{let i=e.path;if(n)return {problem:"inside a counting step (a count or relation aggregate) a groupBy carries no column reference"};let s=k(i);if(s&&s.depth>1)return {problem:`'${i}' reads an enclosing scope, which a Prisma filter can't reach`};if(!s&&o)return {problem:`'${i}' reads the root row, which a Prisma relation filter can't reach`};if(!t||!r)return {problem:"comparing two columns needs the map and model"};let a=sR[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=Md(e.field,t,r);if(typeof l=="string")return {problem:l};let p=s?s.path:i,f=Md(p,t,r);if(typeof f=="string")return {problem:f};if(l.kind!==f.kind||l.type!==f.type)return {problem:`'${e.field}' (${l.type}) and '${p}' (${f.type}) are not the same type`};let d=Io(l,f,e.operator);return d?{problem:d}:l.type==="String"&&se(e.caseInsensitive)?{problem:"a case-insensitive column comparison compiles to ILIKE"}:{key:a,ref:Hi({__field:{model:r,field:p}}),field:l,column:f,columnPath:p}},Qi=(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().`),kd=new WeakSet,ia=new WeakSet,qr=(e,t,r=false)=>(kd.add(e),(r||t!==void 0&&ia.has(t))&&ia.add(e),e),Ld=e=>e!==void 0&&kd.has(e),_d=e=>e!==void 0&&ia.has(e);var sa=e=>({field:e,operator:"notExists"}),aR=(e,t)=>{let r=t(e);if(r===null){let i=e.operator??e.dateOperator;return q.includes(i)?{field:e.field,operator:"exists"}:true}if("aggregate"in r){let i=O(dn,r.operator);return i?{...r,operator:i}:{...r,operator:O(Ai,r.operator)}}if(typeof r.dateOperator=="string"){let i=O(Qf,r.dateOperator);return i?{...r,dateOperator:i}:It([{...r,dateOperator:O(Ai,r.dateOperator)},sa(r.field)])}if(typeof r.arrayOperator=="string"){let i=r.count;switch(r.arrayOperator){case x.any:return {...r,arrayOperator:x.none};case x.none:return {...r,arrayOperator:x.any};case x.all:return {...r,arrayOperator:x.any,condition:Ue(r.condition,t)};case x.empty:return {...r,arrayOperator:x.notEmpty};case x.notEmpty:return {...r,arrayOperator:x.empty};case x.atLeast:return i<=0?false:{...r,arrayOperator:x.atMost,count:i-1};case x.atMost:return {...r,arrayOperator:x.atLeast,count:i+1};case x.exactly:return It([...i>0?[{...r,arrayOperator:x.atMost,count:i-1}]:[],{...r,arrayOperator:x.atLeast,count:i+1}])}}let o=O(dn,r.operator);if(o)return {...r,operator:o};let n=typeof r.path=="string"&&r.path!==""?k(r.path)??{depth:1,path:r.path}:null;return It([{...r,operator:O(Ai,r.operator)},sa(r.field),...n&&n.depth===1?[sa(n.path)]:[]])},Ue=(e,t=r=>r)=>{if(typeof e=="boolean")return !e;let r=e;if(Array.isArray(r.all))return It(r.all.map(o=>Ue(o,t)));if(Array.isArray(r.any))return K(r.any.map(o=>Ue(o,t)));if("if"in r){let o=K([r.if,Ue(r.then,t)]);return r.else===void 0?o:{any:[o,K([Ue(r.if,t),Ue(r.else,t)])]}}return aR(r,t)},Dd=e=>ne(e)==="field"&&e.value!==void 0&&he(e,e.value)?null:e;var Fd,jd=e=>{Fd=e;},ae=(e,t,r)=>Fd(e,t,r);var lR=e=>{let t=k(e);throw t&&t.depth>1?new Error(an(e,"toPrisma")):new Error(`Path '${e}' compares to a column, which isn't supported on the Prisma rail; use toSql() or check().`)},Rt=e=>mn(e,{value:t=>{if(zi(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=>lR(t),bind:(t,r)=>Fi(t,r,"toPrisma")}),Rn=e=>Rt(e),Vo=e=>_r({now:e?.now,timeZone:e?.timeZone,weekStart:e?.weekStart},Rn),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=Ie({field:String(t.field)},e?.map,e?.model);if((n==="json"||n==="json-path")&&typeof t.operator=="string"&&Eo.includes(t.operator))throw F("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:p,...f}=t,d={...f,value:i,...t.offset!==void 0&&{offset:{value:s}}};return typeof t.dateOperator=="string"?i==null||he({operator:t.dateOperator},i)?null:d:Dd(d)};var Xe=()=>({}),Br=Xe,Ot=()=>({OR:[]}),aa=e=>Object.keys(e).length===0,Id=e=>{let t=Object.keys(e);return t.length===1&&t[0]==="OR"&&Array.isArray(e.OR)&&e.OR.length===0},Ke=e=>{if(e.some(Id))return Ot();let t=e.filter(r=>!aa(r));return t.length===0?Xe():t.length===1?t[0]:{AND:t}},B=e=>{if(e.some(aa))return Xe();let t=e.filter(r=>!Id(r));return t.length===0?Ot():t.length===1?t[0]:{OR:t}},Ce=e=>aa(e)?e:{NOT:e},Vd=(e,t,r)=>Ke(e.all.map(o=>ae(o,t,r))),qd=(e,t,r)=>B(e.any.map(o=>ae(o,t,r))),Bd=(e,t,r)=>{if(bt(e,t?.map,t?.model))return Br();let o=ae(Ue(e.if,qo(t)),t,r),n=ae(e.then,t,r),i=B([o,n]);if(e.else!==void 0){let s=ae(e.if,t,r),a=ae(e.else,t,r);return Ke([i,B([s,a])])}return i};var pR=(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},gr=(e,t,r)=>{if(r.fromFields?.length)return r.fromFields.map((n,i)=>({here:n,there:r.toFields?.[i]??"id"}));let o=pR(e,r.type,t,r.relationName);return o?.fromFields?.length?o.fromFields.map((n,i)=>({here:o.toFields?.[i]??"id",there:n})):null},Zi=(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 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=ee(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=gr(t,i.model,i.entry);if(!a){let l=Object.values(T(t,i.entry.type)?.fields??{}).some(p=>p.kind==="object"&&p.type===i.model&&p.isList&&!p.fromFields?.length);throw new Error(l?`'${i.model}.${i.column}' is an implicit many-to-many relation. ${o} require an explicit join model with a FK \u2014 convert to an explicit @relation or use prisma.$queryRaw.`:`Cannot determine FK relationship between '${i.model}' and '${i.entry.type}'. Ensure the FieldMap contains both sides of the relation.`)}if(a.length>1)throw new Error(`${o} do not support composite FK relations ('${i.model}.${i.column}'). Use prisma.$queryRaw.`);return {through:i.hops.map(l=>l.field).join("."),target:i.entry.type,parentKey:a[0].here,targetKey:a[0].there}},Yi=(e,t,r,o,n)=>{let i={operation:"groupBy",model:t.target,args:{by:[t.targetKey],where:r,having:o},extract:t.targetKey},s=Hi({__step:e.steps.length});e.steps.push(i);let a={[t.parentKey]:{in:s}},l=n?Ce(a):a;return t.through?Wr(t.through,l):l};var hr=e=>({ok:e.length===0,errors:e}),On=(e,t)=>{if(!e.ok)throw new Error(`${t}:
|
|
2
2
|
${e.errors.map(r=>`${r.path}: ${r.message}`).join(`
|
|
3
|
-
`)}`)},Ko=(e,t={})=>{let r={target:t.target??"check",errors:[],map:xe(t.map,t.mapName,"toPrisma"),scopeModels:[t.model],stepScopes:[false]};return Bt(e,"$",r,1),t.positive&&sR(e,r),wr(r.errors)},iR=["if","array","aggregate"],sR=(e,t)=>Z(e,r=>{let o=ne(r),n=r.operator??r.dateOperator;return (o&&iR.includes(o)||typeof n=="string"&&$i.includes(n))&&P(t,"$","notPositive",`${o==="field"||o==="date"?n:o} can hold on a missing value`),false}),aR=(e,t={})=>{Rn(Ko(e,t),"validateRule");},Bt=(e,t,r,o)=>{if(typeof e=="boolean")return;if(!hr(e)){P(r,t,"invalid_condition","Condition must be a boolean or object");return}let n=ne(e);if(!n){P(r,t,"ambiguous_condition",gt().message);return}switch(n){case "all":Vd(e.all,`${t}.all`,r,o);break;case "any":Vd(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":lR(e,t,r,o);break;case "aggregate":dR(e,t,r,o);break;case "array":uR(e,t,r,o);break;case "date":cR(e,t,r,o);break}},Vd=(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)=>{Bt(n,`${t}[${i}]`,r,o);});},Xi=(e,t,r,o)=>{typeof e.field=="string"&&Wd(e.field,"field",`${t}.field`,r,o);},Wd=(e,t,r,o,n,i=false)=>{let s=k(e)??(t==="path"?{depth:n}:null);if(!s)return;let a=t==="field"?"Field":"Path";s.depth>n&&P(o,r,"scope_out_of_bounds",Ds(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()`);},Yi=(e,t,r,o=false)=>{e.stepScopes[t]=o||e.stepScopes[t-1]===true;let n=e.scopeModels[t-1];e.scopeModels[t]=e.map&&n&&typeof r=="string"?Sn(r,e.map,n)??void 0:void 0;},Uo=(e,t,r,o,n=false)=>{let i=Jf.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"&&Wd(e.path,"path",`${t}.path`,r,o,n),s)},Ud=(e,t,r,o,n,i)=>{let{offset:s}=e;if(s===void 0)return;let a=`${o}.offset`;if(!Lf.includes(r)){P(n,a,"unsupported_offset_operator",`Operator '${r}' has no comparison point to offset`);return}if(!hr(s)){P(n,a,"invalid_offset","An offset is one of { value }, { path } or { bind }");return}let l=Uo(s,a,n,i);if(l==="path"){let d=s.path,u=Cr(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 p=s.value;if(t==="field"){(typeof p!="number"||!Number.isFinite(p))&&P(n,`${a}.value`,"invalid_offset","A field offset value is a number");return}let f=hr(p)&&Object.keys(p).length===1&&oe(p)?Ae(p):null;if(!f){P(n,`${a}.value`,"invalid_offset","A date offset value is { ago } or { ahead }");return}zd(f[0],`${a}.value.${Object.keys(p)[0]}`,n,i);},Kd=(e,t,r,o)=>{o.target!=="toSql"||!qe.includes(t)||Cr(e)&&P(o,`${r}.path`,"unsupported_sql_path",`A range read from the row ('${e.path}') is not supported by toSql()`);},lR=(e,t,r,o)=>{if(typeof e.field!="string"&&P(r,`${t}.field`,"field_required","Field rule requires a string field"),Xi(e,t,r,o),typeof e.operator!="string"||!_t(e.operator,"field")){P(r,`${t}.operator`,"invalid_operator",le(e.operator,"field").message);return}let n=e.operator;Ud(e,"field",n,t,r,o),Oi(n,"field",r.target)||P(r,`${t}.operator`,`unsupported_${es(r.target)}_operator`,`Operator '${n}' is not supported by ${r.target}()`),e.coerceType!==void 0&&!Ri(e.coerceType)&&P(r,`${t}.coerceType`,"invalid_coerce_type",`coerceType must be one of: ${Object.keys(Q).join(", ")}`);let i=Ft(n,"field");if(i==="none"){mR(e,t,r);return}if(Uo(e,t,r,o,true)!==null){if(Kd(e,n,t,r),r.target==="toPrisma"&&typeof e.path=="string"){let s=Hi(e,r.map,r.scopeModels[o-1],o>1,r.stepScopes[o-1]===true);"problem"in s&&P(r,`${t}.path`,"unsupported_prisma_path",Ji(e.path,s.problem).message);}if(r.target==="toSql"&&typeof e.path=="string"&&r.map){let s=r.scopeModels[o-1],a=(k(e.path)??{path:e.path}).path,l=Vo(Y(e.field,r.map,s),Y(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?Y(e.field,r.map,r.scopeModels[o-1]):void 0)?.isList&&ut.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")&&(pR(e,n,t,r,o),fR(i,e.value,n,`${t}.value`,r));}},pR=(e,t,r,o,n)=>{if(o.target!=="toPrisma"||!o.map||typeof e.field!="string")return;let i=Y(e.field,o.map,o.scopeModels[n-1]);if(!i)return;let s=e.value,a=se(e.caseInsensitive),l=rr.includes(t)&&Array.isArray(s),p=f=>P(o,`${r}.value`,"unsupported_prisma_operator",F("toPrisma",f).message);i.isList&&!l&&Array.isArray(s)&&s.includes(null)?p(`A list holding null in '${e.field}'`):i.isList&&!l&&a&&gr("text",s)?p(`A case-insensitive comparison on the list '${e.field}'`):je(i)&&a&&p(`A case-insensitive comparison on the Json column '${e.field}'`);},fR=(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=pd(t,n.target);i&&P(n,o,"unsupported_pattern",i);return}case "range":try{_o(t,r);}catch(i){P(n,o,"invalid_range_value",i.message);}return}},Gd=(e,t,r,o,n)=>{let i=r.scopeModels[o-1];if(!(r.target!=="toPrisma"||!r.map||!i||typeof e.field!="string"))try{Wo(e.field,r.map,i,n);}catch(s){P(r,`${t}.field`,"unsupported_prisma_relation",s.message);}},dR=(e,t,r,o)=>{if(Gd(e,t,r,o,"Aggregate rules"),e.offset!==void 0&&P(r,`${t}.offset`,"unexpected_offset","Aggregate rules take no offset"),Hd(e,t,r,o),typeof e.field!="string"&&P(r,`${t}.field`,"field_required","Aggregate rule requires a string field"),Xi(e,t,r,o),!hr(e.aggregate)){P(r,`${t}.aggregate`,"invalid_aggregate","aggregate must be an object");return}let n=e.aggregate;if(ct.includes(n.mode)||P(r,`${t}.aggregate.mode`,"invalid_aggregate_mode",sr(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"),!xi.includes(e.operator)){P(r,`${t}.operator`,"invalid_aggregate_operator",`Aggregate rules only support: ${xi.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()"),Yi(r,o,e.field,true),Bt(e.condition,`${t}.condition`,r,o+1)),Uo(e,t,r,o)===null||typeof e.path=="string"||typeof e.bind=="string")return;let i=e.value;qe.includes(e.operator)?gR(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");},uR=(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"),Xi(e,t,r,o),Hd(e,t,r,o),typeof e.arrayOperator!="string"||!_t(e.arrayOperator,"array")){P(r,`${t}.arrayOperator`,"invalid_array_operator",le(e.arrayOperator,"array").message);return}let n=e.arrayOperator;or.includes(n)&&Gd(e,t,r,o,"Count operators");let i=r.target==="toPrisma"&&r.map&&typeof e.field=="string"?Y(e.field,r.map,r.scopeModels[o-1]):void 0;i&&!V(i)&&n!=="empty"&&n!=="notEmpty"&&P(r,`${t}.arrayOperator`,"unsupported_prisma_array_operator",F("toPrisma",`'${n}' over the array column '${e.field}'`).message),Oi(n,"array",r.target)||P(r,`${t}.arrayOperator`,`unsupported_${es(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&&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?(Yi(r,o,e.field),Bt(e.condition,`${t}.condition`,r,o+1)):P(r,`${t}.condition`,"missing_condition",De(n).message),l()):s==="count"&&(typeof e.count!="number"?P(r,`${t}.count`,"missing_count",Ao(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?(Yi(r,o,e.field,true),Bt(e.condition,`${t}.condition`,r,o+1)):P(r,`${t}.condition`,"missing_condition",De(n).message));},cR=(e,t,r,o)=>{if(typeof e.field!="string"&&P(r,`${t}.field`,"field_required","Date rule requires a string field"),Xi(e,t,r,o),typeof e.dateOperator!="string"||!_t(e.dateOperator,"date")){P(r,`${t}.dateOperator`,"invalid_date_operator",le(e.dateOperator,"date").message);return}let n=e.dateOperator;Ud(e,"date",n,t,r,o),Oi(n,"date",r.target)||P(r,`${t}.dateOperator`,`unsupported_${es(r.target)}_date_operator`,`Date operator '${n}' is not supported by ${r.target}()`);let i=Ft(n,"date");if(i==="dayList"){if(Uo(e,t,r,o)!=="value")return;let s=e.value;(!Array.isArray(s)||!s.every(a=>typeof a=="string"&&Kf(a)))&&P(r,`${t}.value`,"invalid_day_list",`Date operator '${n}' requires an array of day names (${vo.join(", ")})`);return}if(Uo(e,t,r,o)!==null&&(Kd(e,n,t,r),!(typeof e.path=="string"||typeof e.bind=="string"))){if(oe(e.value)){Bd(e.value,n,`${t}.value`,r,o);return}if(pn.includes(n)){P(r,`${t}.value`,"invalid_date_range",He(n).message);return}if(i==="dateRange"){if(!yR(e.value)){P(r,`${t}.value`,"invalid_date_range",`Date operator '${n}' requires a two-item date range`);return}e.value.forEach((s,a)=>{oe(s)?Bd(s,n,`${t}.value[${a}]`,r,o):de(s)&&!fr(s,Je).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}fr(e.value,Je).isValid()||P(r,`${t}.value`,"invalid_date_value",`Date operator '${n}' value '${String(e.value)}' does not parse as a date`);}},zd=(e,t,r,o)=>{if(!hr(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(!Vs(n)){P(r,`${t}.${n}`,"invalid_relative_unit",`Unknown relative unit '${n}'`);continue}let s=hr(i)?Uo(i,`${t}.${n}`,r,o):"literal";if(s===null||s==="path"||s==="bind")continue;let a=s==="value"?i.value:i,l=Ys(a,n);l&&P(r,`${t}.${n}`,"invalid_relative_magnitude",l);}},qd=(e,t,r)=>{(typeof e!="string"||!vi.includes(e))&&P(r,t,"invalid_period_unit",`Unknown period unit '${String(e)}'`);},Bd=(e,t,r,o,n)=>{let i=pn.includes(t),s=Ae(e);if(s){zd(s[0],r,o,n);return}if(un(e)){qd(Li(e),r,o);return}if(Bs(e)){if(i){P(o,r,"invalid_date_range",He(t).message);return}let a="start"in e?e.start:e.end;if(!hr(a)||!un(a)){P(o,r,"invalid_period_unit","start/end requires a this/last/next period");return}qd(Li(a),r,o);return}P(o,r,"invalid_date_expression","Unrecognized date expression");},mR=(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");},es=e=>e==="toPrisma"?"prisma":e==="toSql"?"sql":"check",hr=e=>Le(e),gR=e=>Array.isArray(e)&&e.length===2&&typeof e[0]=="number"&&typeof e[1]=="number",yR=e=>Array.isArray(e)&&e.length===2&&(de(e[0])||oe(e[0]))&&(de(e[1])||oe(e[1])),Hd=(e,t,r,o)=>{if(Re(e)&&r.target!=="check"&&(r.target==="toPrisma"&&Io(e)!==null||P(r,t,`unsupported_${es(r.target)}_window`,yt(r.target).message)),"filter"in e&&e.filter!==void 0&&(Yi(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)=>{(!hr(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 hR=/[.:]/,sa=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"&&hR.test(s)&&t.push({path:`${Te({fieldMap:r,model:n})}.${s}`,message:"contains forbidden character . or :",code:"invalid_field_name"});return wr(t)},Jd=e=>Rn(sa(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 aa=(e,t)=>t.length?K([...t,e]):e,wR=e=>{if(pr(e).length)return false;let t=e.field,r=typeof t=="string"?k(t):null;try{return ue(r?{...e,field:r.path}:e,{})===!0}catch{return false}},la=(e,t)=>{if(!t.length)return e;if(!wR(e))return K([...t.flatMap(n=>n.clamps),e]);let[r,...o]=t;return It([K([...r.clamps,la(e,o)]),K([{field:r.prefix,operator:"notExists"},e])])},zo=(e,t,{paths:r=false}={})=>lr(e,{rewrite:o=>{if(Fe(o))return o;if(typeof o.field!="string"||o.field==="")throw new N(`narrowRule: cannot re-root a relation clamp of unknown shape under '${t}'`,"unsupported_clamp");let n=pr(o),i=n.find(a=>k(a));if(r&&i)throw new N(`prefixConditionFields: cannot re-root a scope ref ('${i}') under '${t}'`,"unsupported_clamp");if(n.length&&!r)throw new N(`narrowRule: cannot re-root a relation clamp with a path reference ('${n[0]}') under '${t}'. Author the clamp without 'path', or anchor it at the relation itself.`,"unsupported_clamp");if(k(o.field))throw new N(`narrowRule: cannot re-root a relation clamp with a scope ref field ('${o.field}') under '${t}'. Author the clamp against the model's own columns.`,"unsupported_clamp");if(Ne(o)){for(let a of [o.condition,o.filter])if(a!==void 0&&Go(a).escaping!==null)throw new N(`narrowRule: cannot re-root a relation clamp on '${o.field}' under '${t}': '${Go(a).escaping}' inside it reads the row being re-rooted. Anchor such clamps at the relation's own model.`,"unsupported_clamp")}return {...r?ko(o,a=>be(a)?{...a,path:`${t}.${a.path}`}:a):o,field:`${t}.${o.field}`}},below:()=>false}),pa=(e,t)=>t.flatMap(r=>{let o=_(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=>zo(n,r.prefix))}]}),Qd=(e,t)=>pa(e,t).flatMap(r=>r.clamps),Yd=(e,t,r)=>{let o=Ve(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 Ee(t.lens.maps,o.scope,o.path,n==="$."?"":n)},SR=(e,t,r)=>{if(k(e))return Yd(e,t,r).hops;let o=r.length===1?"":`${"$".repeat(r.length)}.`;return r[0]?Ee(t.lens.maps,r[0],e,o).hops:[]},Zd=(e,t,r)=>{if(Fe(e)||typeof e.field!="string"||e.field==="")return null;let{hops:o,end:n}=Yd(e.field,t,r);return {hops:o,below:n}},Kr=(e,t,r)=>lr(e,{below:(o,n)=>{let i=Zd(o,t,n);return i?i.below?[...n,i.below]:Ne(o)?[...n,null]:false:false},after:(o,n)=>{let i=Zd(o,t,n);if(!i)return o;let s=Qd(t,pr(o).flatMap(d=>SR(d,t,n))),a=i.below;if(!a||!Ne(o))return aa(la(o,pa(t,i.hops)),s);let l=[..._(t,a.mapName,a.modelName,a.relPath).whereClauses,...Qd(t,Lo(o).flatMap(d=>Ee(t.lens.maps,a,d).hops))],p=o.condition===void 0||o.arrayOperator===E.all||Re(o),f={...o};return l.length&&p?f.filter=K([...o.filter!==void 0?[o.filter]:[],...l]):l.length&&(f.condition=K([...l,o.condition])),aa(la(f,pa(t,i.hops.slice(0,-1))),s)}},[r]),Ho=(e,t)=>{let r=M(t),o=_(r,r.lens.mapName,r.lens.model,[]),n=Kr(e,r,{mapName:r.lens.mapName,modelName:r.lens.model,relPath:[]});return aa(n,o.whereClauses)};var fa=(e,t)=>{let r=Fr(e,Q.DateTime,t);return typeof r=="number"&&!Number.isNaN(new Date(r).getTime())?r:void 0},bR=(e,t,r)=>o=>{if(o==null)return o;let n=fa(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()},Jo=(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)===Q.DateTime){let l=bR(e.field,o,n());return Array.isArray(t)?t.map(l):l(t)}if(e.coerceType===void 0&&s===Q.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&&(ze.includes(s)||s===Q.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===Q.Boolean?"boolean":"number"}, or stamp coerceType: '${s}'.`);return e.coerceType!==void 0&&Bf.includes(e.coerceType)?Fr(t,e.coerceType,e.coerceType===Q.DateTime?n():void 0):t};var Xd=e=>Array.isArray(e)?e.flatMap(Xd):[e],On=e=>e.value===void 0?null:Xd(e.value),RR=e=>fa(e)!==void 0,OR=/^-?\d+(\.\d+)?$/,xR={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"&&OR.test(e)},Boolean:{expected:"a boolean",fits:e=>typeof e=="boolean"},DateTime:{expected:"a date",fits:RR},Json:{expected:"a value",fits:()=>true},Bytes:{expected:"a value",fits:()=>true}},ER=e=>typeof e=="string"?`'${e}'`:typeof e=="object"&&e!==null?JSON.stringify(e):String(e),ts=(e,t)=>{let r="coerceType"in e?e.coerceType:void 0,o=r??t;if(o===void 0||o===Q.Json)return [];let n="operator"in e?e.operator:e.dateOperator,i=Eo(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===Q.DateTime:ze.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(Wf.includes(i.valueShape)&&Array.isArray(e.value))return [{path:e.field,code:"invalid_value_shape",message:`operator '${n}' compares one value, but ${a} was given a list`}];let{expected:l,fits:p}=xR[o],f=u=>{try{return p(Fr(u,o))}catch{return false}},d=u=>p(u)||r!==void 0&&f(u);return (On(e)??[]).filter(u=>u!==null&&!d(u)).map(u=>({path:e.field,code:"invalid_value",message:`value ${ER(u)} does not fit ${a} (expected ${l})`}))},eu=(e,t,r)=>{if(r.isList===true||je(r))return null;let o=V(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 $R=(e,t,r,o)=>Z(e,(n,i)=>{let s=ne(n);if(s===null)return o.push({path:typeof n.field=="string"?n.field:"",code:"ambiguous_condition",message:gt().message}),false;if(Fe(n))return;let a=n,l=S=>{let R=Ve(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}},p=i[i.length-1],f=true,d=null;if("field"in a&&typeof a.field=="string"&&a.field!==""){let S=Yo(t,i,a.field);"issue"in S?(o.push({path:a.field,...S.issue}),f=false):{next:p,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?os(d.terminalEffect,d.terminalFieldName):null;for(let{ref:S,role:R}of Hs(a)){let b=k(S)?l(S):{scope:Et(t),field:S};if(!b||b.scope.open)continue;let w=Qo(t,b.scope,b.field);if(!w){o.push({path:S,...rs(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(V(w.entry)){o.push({path:S,code:"not_in_lens",message:"a value ref reads a column, not a relation"});continue}let $=Ye(w.entry);if(R==="value"||R==="shift"||$===void 0)continue;(R==="whole"?Vf.includes($):ze.includes($))||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 ${$}`});}if(!f)return false;if("arrayOperator"in a&&typeof a.field=="string"&&u){let S=eu(a.field,a.arrayOperator,u);if(S)return o.push(S),false}if(u&&V(u)&&(s==="field"||s==="date")&&(u.isList||!Vt(a))){let S=a.field;return o.push({path:S,code:"operator_kind_mismatch",message:(u.isList?Ti(S):ir(S)).message}),false}if(!u?.isList&&(s==="field"||s==="date")&&o.push(...ts(a,u?Ye(u):void 0)),!p.open)for(let S of Lo(a))S!==""&&!Qo(t,p,S)&&o.push({path:S,...rs(t,p,S,"an orderBy or aggregate field does not resolve through the narrowed lens")});if(y&&"operator"in a&&m){let S=On(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,p]},[r]),xn=(e,t,r,o,n)=>{let i=[];return $R(e,t,{mapName:r,modelName:o,relPath:n,open:false},i),i},Zo=(e,t)=>{let r=M(t);try{let o=xn(e,r,r.lens.mapName,r.lens.model,[]);return o.length===0&&Ho(e,t),wr(o)}catch(o){if(!(o instanceof N))throw o;return wr([{path:"",code:o.code,message:o.message}])}};var Pn=e=>e===void 0?void 0:Array.isArray(e)?e:[e],vn=e=>typeof e=="object"&&e!==null&&!Array.isArray(e)&&("where"in e||"label"in e||"groupBy"in e||"from"in e),Sr=e=>{if(vn(e))return e;if(typeof e=="object"&&e!==null&&!Array.isArray(e)&&Object.keys(e).length===0)throw PR();return {where:e}},PR=()=>new N("sources: {} is not a Condition \u2014 use `true` for an unconstrained source","invalid_source"),ca=["__offpath__"],tu=new WeakMap,vR=(e,t)=>{if(!t)return new Map;let r=JSON.stringify([En(t.parent),En(e.maps),e.mapName,e.model,t.mapDefaults??null]),o=tu.get(t);if(o?.fingerprint===r)return o.trees;let n=new Map;return tu.set(t,{fingerprint:r,trees:n}),n},ru=new WeakMap,AR=0,En=e=>{let t=ru.get(e);return t===void 0&&(t=AR++,ru.set(e,t)),t},ce="\0",NR=e=>{let t=Object.entries(e.fields);return {relations:new Set(t.filter(([,r])=>V(r)).map(([r])=>r)),gated:t.filter(([,r])=>r.options!==void 0||r.kind==="enum"||r.values!==void 0)}},ns=e=>e?String(En(e)):"",M=e=>{let t=tt(e),r=et(e)?[]:xt(e);return {lens:t,chain:r,origin:r[0],memo:{trees:vR(t,r[0]),vetted:new Set,effects:new Map,places:new Map,models:new Map,refs:new Map,compiles:new Map}}},is=(e,t)=>e===null?new Set(t):new Set(t.filter(r=>e.has(r))),TR=(e,t)=>{if(t.picks&&(e.picks=is(e.picks,t.picks)),t.omits)for(let r of t.omits)e.omits.add(r);},iu=(e,t,r)=>{e.set(t,is(e.get(t)??null,r));},su=(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))iu(e,o,n);if(r.enumOmits)for(let[o,n]of Object.entries(r.enumOmits))su(t,o,n);},da=(e,t,r)=>JSON.stringify([e,t,r]),MR=(e,t,r,o,n,i,s,a)=>{if(s&&TR(e,t),t.where!==void 0&&i&&(n(t.where),e.whereClauses.push(r(t.where)),(a?e.modelWheres:e.pathWheres).push({where:t.where,layer:o})),t.sources)for(let[l,p]of Object.entries(t.sources)){let f=Sr(p),d=e.sources.get(l)??[],u=e.sourceWheres.get(l)??[];f.where!==void 0&&i&&(n(f.where,true),d.push(r(f.where)),u.push(f.where)),e.sources.set(l,d),e.sourceWheres.set(l,u);let m=Pn(f.groupBy);for(let[g,c,y]of [["label",f.label,e.sourceLabels.get(l)],["groupBy",m,e.sourceGroupBys.get(l)]]){if(c===void 0)continue;let S=da(l,g,c);y!==void 0&&da(l,g,y)===S||e.sourceDeclaredAt.set(S,o);}f.label!==void 0&&e.sourceLabels.set(l,f.label),m!==void 0&&e.sourceGroupBys.set(l,m),f.from==="mapDefaults"&&!e.sourcesFromMapDefaults.has(l)&&e.sourcesFromMapDefaults.set(l,o);}},N=class extends Error{constructor(r,o){super(r);this.code=o;}code;name="LensRefusal"},ma=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"),kR=(e,t,r)=>xn(e,t,r.mapName,r.modelName,r.relPath),LR=e=>new N(`a later layer's clamp reads what its parent does not show: '${e.path}' ${e.message}`,e.code),ga=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"),Go=e=>{let t=null,r=null;return Z(e,(o,n)=>{if(Fe(o))return;let i=pr(o);for(let s of [...typeof o.field=="string"?[o.field]:[],...i]){let a=k(s);r===null&&a&&a.depth>n&&(r=s);}for(let s of i)t===null&&!k(s)&&(t=s);return Ne(o)?n+1:void 0},1),{bare:t,escaping:r}},ua=(e,t)=>{let r={mapName:e.lens.mapName,modelName:e.lens.model,relPath:[]},o=[r];if(t.relPath.length>0)for(let i of Ee(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},$n=(e,t)=>{let r=e;for(let o of t)r=O(r?.relations,o);return r},ya=(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=$n(o(s),t.relPath.slice(i));a&&n.push(a);}return {defaults:n,path:$n(e.root,t.relPath)}},_R=(e,t,r,o)=>{let n=$n(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},p=ua(l,r)??[r],f=new Set(p.map(u=>`${u.mapName}:${u.modelName}`)),d=[{at:r,below:[]}];for(;d.length>0;){let{at:u,below:m}=d.shift(),g=T(O(e.maps,u.mapName),u.modelName)?.fields??{},{defaults:c,path:y}=ya(t,u,ua(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,$]of Object.entries(g)){if(!S.has(w)||R.has(w)||y?.relations!==void 0&&Object.hasOwn(y.relations,w))continue;let x=Ze($,u.mapName);if(!x||!T(O(e.maps,x.mapName),x.modelName))continue;let W=`${x.mapName}:${x.modelName}`;f.has(W)||(f.add(W),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},DR=(e,t,r,o)=>{if(!o)return ya(t,r,null).defaults.flatMap(p=>Object.keys(p.relations??{}));let n=r.relPath.length;for(;n>0&&$n(t.root,r.relPath.slice(0,n))===void 0;)n--;let i={...o[n],relPath:r.relPath.slice(0,n)},a=_R(e.lens,t,i,e.memo?.trees??new Map).get(r.relPath.slice(n).join("."))??[];return [...n===r.relPath.length?Object.keys($n(t.root,r.relPath)?.relations??{}):[],...a]},An=(e,t,r)=>{let o=t;for(let n of Ee(e.lens.maps,t,r).hops){let i=n.relPath[n.relPath.length-1];if(!_(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},_=(e,t,r,o)=>{let n=e.memo?ou(e,t,r,o):null,i=n===null?void 0:e.memo?.effects.get(n);if(i){if(!e.unvetted&&i.unchecked){for(let j of i.unchecked)j();i.unchecked=null;}return i.effect}let s=[],a={picks:null,omits:new Set,enumValuesByField:new Map,whereClauses:[],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),p=T(l,r);if(!p)return a;let f=e.memo?.models.get(p);f||(f=NR(p),e.memo?.models.set(p,f)),a.relationFields=f.relations;let d={mapName:t,modelName:r,relPath:o},u=e.origin??e.chain[0],m=`${ns(u)}${ce}${t}${ce}${r}${ce}${o.join(ce)}`,g=e.memo?.places.get(m);if(!g){let j=ua(e,d);g={trail:j,turnedOn:u?DR(e,u,d,j):[]},e.memo?.places.set(m,g);}let{trail:c}=g,y=new Map,S=new Map,R=new Map,b=new Map,w=j=>j,$=0,x=()=>{},W=true,pe=true,A=(j,I=false)=>{MR(a,j,w,$,x,W,pe,I),CR(y,S,j);};for(let[j,I]of e.chain.entries()){$=j;let xr={...e,clamp:false,skipClampsOf:void 0,skipHidingOf:void 0,chain:e.chain.slice(0,j)};W=I!==e.skipClampsOf,pe=I!==e.skipHidingOf,w=X=>j===0?X:Kr(X,xr,{mapName:t,modelName:r,relPath:o});for(let[X,me]of Object.entries(O(I.mapDefaults,t)?.enums??{}))me.picks&&iu(R,X,me.picks),me.omits&&su(b,X,me.omits);let{defaults:tn,path:Er}=ya(I,d,c),fe=j===0?null:xr,nt=X=>(me,ge=false)=>{let Pe=e.memo?.refs.get(me);if(Pe||(Pe=Go(me),e.memo?.refs.set(me,Pe)),Pe.bare!==null&&!(X&&!ge))throw ma(Pe.bare);if(Pe.escaping!==null)throw ga(Pe.escaping);if(!fe)return;let Qa=()=>{let In=typeof me=="object"&&me!==null?`${En(me)}${ce}${ou(fe,t,r,o)}`:null;if(In!==null&&fe.memo?.vetted.has(In))return;let[Za]=kR(me,fe,d);if(Za)throw LR(Za);In!==null&&fe.memo?.vetted.add(In);};e.unvetted?s.push(Qa):Qa();};x=nt(false);let Jr=O(O(I.mapDefaults,t)?.models,r);for(let X of tn)A(X,X===Jr);Er&&(x=nt(o.length===0&&c!==null),A(Er));}if(u&&e.chain.includes(u))for(let j of g.turnedOn)a.relationFields.has(j)&&!a.omits.has(j)&&a.relations.add(j);for(let[j,I]of f.gated){let xr=I.kind==="enum",Er=I.options?.map(X=>X.value)??(xr?Ir(I,l?.enums):I.values);if(!Er)continue;let fe=Er;if(xr){let X=R.get(I.type),me=b.get(I.type);X&&(fe=fe.filter(ge=>X.has(ge))),me&&(fe=fe.filter(ge=>!me.has(ge)));}let nt=y.get(j),Jr=S.get(j);nt&&(fe=fe.filter(X=>nt.has(X))),Jr&&(fe=fe.filter(X=>!Jr.has(X))),a.enumValuesByField.set(j,fe);}return n!==null&&e.memo?.effects.set(n,{effect:a,unchecked:s.length?s:null}),a},ou=(e,t,r,o)=>{let n=nu.get(e);if(n===void 0){n=`${ns(e.origin)}${ce}${ns(e.skipClampsOf)}${ce}${ns(e.skipHidingOf)}${ce}`;for(let i of e.chain)n+=`${En(i)},`;nu.set(e,n);}return `${n}${ce}${t}${ce}${r}${ce}${o.join(ce)}`},nu=new WeakMap,Wt=e=>{let t=[],r=(o,n)=>{let i=O(e.lens.maps,o.mapName);if(!T(i,o.modelName))return;let s=_(e,o.mapName,o.modelName,o.relPath);t.push({path:n,at:o,effect:s});for(let a of s.relations){let l=Oe(i,o.modelName,a),p=l&&Ze(l,o.mapName);p&&r({...p,relPath:[...o.relPath,a]},`${n}.${a}`);}};return r({mapName:e.lens.mapName,modelName:e.lens.model,relPath:[]},e.lens.model),t},ss=(e,t,r,o)=>_(e,t,r,ca).sources.has(o),as=(e,t,r,o)=>new N(`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)),os=(e,t)=>e.enumValuesByField.get(t)??null,Gr=(e,t,r)=>{let o=r.split("."),n=[],i=[];for(let{index:s,field:a,at:l,entry:p,next:f}of ur(e.lens.maps,t,r)){if(!p)return {resolution:{outcome:"missing",index:s,hops:n},effects:i};let d=_(e,l.mapName,l.modelName,l.relPath);if(!(e.clamp&&V(p)?!d.omits.has(a):$t(d,a)))return {resolution:{outcome:"hidden",index:s,hops:n},effects:i};let m={field:a,entry:p,mapName:l.mapName,model:l.modelName,relPath:[...l.relPath]};n.push(m),i.push(d);let g=s===o.length-1;if(g||je(p))return {resolution:{outcome:"resolved",hops:n,terminal:m,jsonSubPath:g?[]:o.slice(s+1)},effects:i};if(!f)return {resolution:{outcome:"pastScalar",index:s,hops:n},effects:i}}return {resolution:{outcome:"missing",index:o.length,hops:n},effects:i}},Xo=(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(da(o,n,i)),a=(f,d)=>Gr(f,r,d).resolution.outcome!=="hidden",l={...e,clamp:true},p={...l,skipHidingOf:s===void 0?void 0:e.chain[s]};return (typeof i=="string"?[i]:i).every(f=>An(e,r,f)===null&&(a(l,f)||a(p,f)))},Qo=(e,t,r)=>{let{resolution:o,effects:n}=Gr(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}},rs=(e,t,r,o)=>{let{resolution:n}=Gr(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),p=l?{...l,relPath:a.relPath}:t,f=_(e,p.mapName,p.modelName,p.relPath),d=i[n.index];return !f.relationFields.has(d)||f.omits.has(d)?{code:"not_in_lens",message:o}:{code:"not_in_lens",message:`'${i.slice(0,n.index+1).join(".")}' is a relation the lens does not turn on (turn it on with \`relations\`)`}},Et=e=>({mapName:e.lens.mapName,modelName:e.lens.model,relPath:[],open:false}),Yo=(e,t,r)=>{let o=Ve(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=Qo(e,o.scope,o.path);if(!n)return {issue:rs(e,o.scope,o.path,"path does not resolve through the narrowed lens")};let i=je(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}},Ee=(e,t,r,o="")=>{let n=r.split("."),i=[],s=null;for(let{index:a,field:l,at:p,entry:f,next:d}of ur(e,t,r)){if(!f||!d)break;let u=[...p.relPath,l];i.push({map:d.mapName,model:d.modelName,relPath:u,prefix:`${o}${n.slice(0,a+1).join(".")}`,isList:f.isList===true}),a===n.length-1&&(s={...d,relPath:[...u]});}return {hops:i,end:s}};var wa="parent:",Sa=e=>e.startsWith(wa),lu=e=>Sa(e)?e.slice(wa.length):e,ha=(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]=vn(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]=ha(i,t);r.relations=o;}return r},pu=(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]=ha(a,t);r[o]=n.models?{...n,models:i}:n;}return {...e,root:e.root?ha(e.root,t):void 0,mapDefaults:e.mapDefaults?r:void 0}},ba=e=>{let t=[];return pu(e,r=>(t.push(r),r)),t},au=e=>{let t=new Set;for(let r of ba(e))for(let o of gn(r))Sa(o)||t.add(o);return t},fu=e=>{let t=new Set;for(let r of xt(e))for(let o of ba(r))for(let n of gn(o,{required:true}))t.add(lu(n));return [...t].sort()},du=(e,t)=>{if(et(e))return e;let r={...t};for(let[o,n]of Object.entries(t))r[`${wa}${o}`]=n;return {...pu(e,o=>Qs(o,r)),parent:du(e.parent,t)}},uu=(e,t)=>du(e,t),cu=e=>{let t=[],r=new Set;for(let n of xt(e.parent))for(let i of au(n))r.add(i);for(let n of au(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 ba(e))for(let i of gn(n))Sa(i)&&o.add(lu(i));for(let n of o)r.has(n)||t.push(`bind 'parent:${n}' references an inherited binding no ancestor declares`);return t};var gu=(e,t)=>e===void 0?t:t===void 0?e:{all:[e,t]},FR=(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=Sr(i),a=Sr(n),l=gu(s.where,a.where);r[o]={...s,...a,...l===void 0?{}:{where:l}};}return r},yu=(e,t)=>{let r=gu(e?.where,t.where),o=FR(e?.sources,t.sources);return {...e,...r===void 0?{}:{where:r},...o?{sources:o}:{}}},jR=(e,t)=>{let r={...e?.models};for(let[o,n]of Object.entries(t))r[o]=yu(r[o],n);return {...e,models:r}},mu=(e,t)=>{let r={...e.mapDefaults};for(let[o,{models:n}]of Object.entries(t.mapDefaults??{}))r[o]=jR(r[o],n);return {...e,...t.root?{root:yu(e.root,t.root)}:{},...t.mapDefaults?{mapDefaults:r}:{}}},Ra=(e,t)=>et(e)?mu({parent:e},t):et(e.parent)?mu(e,t):{...e,parent:Ra(e.parent,t)};var hu=(e,t)=>{let r=M(t),o=(n,i)=>typeof n=="string"&&n!==""?Yo(r,i,n):null;return lr(e,{rewrite:(n,i)=>{if(ne(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"&&qf.includes(a.type)?{...n,coerceType:a.type}:n},below:(n,i)=>{if(!Ne(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&&V(a)?[...i,s.next]:false}},[Et(r)])};var wu=({maps:e,bridges:t,mapName:r,model:o})=>({...Wi({maps:e,bridges:t}),mapName:r,model:o});var IR=(e,t)=>Z(e,(r,o)=>{if(t.sources.add(o[o.length-1].mapName),Fe(r)||typeof r.field!="string"||r.field==="")return;let n=Yo(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)]),Su=(e,t)=>{let o={policy:M(t),sources:new Set,bridgesCrossed:false};return IR(e,o),{sources:[...o.sources].sort(),bridgesCrossed:o.bridgesCrossed,supportedTargets:C.filter(n=>(n==="check"||!o.bridgesCrossed)&&Ko(e,{target:n,map:o.policy.lens,mapName:o.policy.lens.mapName,model:o.policy.lens.model}).ok),errors:Zo(e,t).errors}};var VR=new Set([Dt.scalar,Dt.ordered,Dt.array,Dt.dayList,Dt.dateValue]),qR=new Set([Dt.none,Dt.count]),BR=e=>{if(e.offset!==void 0||mn(e).some(({source:r})=>r.value===void 0))return {values:[],dynamic:true};let t=Eo(e);return t?qR.has(t.valueShape)?{values:[],dynamic:false}:VR.has(t.valueShape)?"value"in e?{values:On(e)??[],dynamic:false}:{values:[],dynamic:false}:{values:[],dynamic:true}:{values:[],dynamic:true}},WR=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)}`,bu=(e,t)=>{let r=M(t),o=r.lens.model,n=new Map,i=new Map,s=(l,p)=>{if(l.length===0)return;let f=Qo(r,{mapName:r.lens.mapName,modelName:o,relPath:[]},l.join("."));if(!f||f.jsonSubPath.length>0)return;let{mapName:d,modelName:u,relPath:m,terminalEffect:g,terminalFieldName:c}=f;if(!g.sources.has(c))return;let 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=BR(p);b.dynamic&&(R.dynamic=true);let w=i.get(S)??new Set;i.set(S,w);for(let $ of b.values){let x=WR($);w.has(x)||(w.add(x),R.values.push($));}},a=(l,p)=>{let f=Ve(l,p);if(!("outOfBounds"in f))return [...f.scope,...f.path.split(".")]};return Z(e,(l,p)=>{if(Fe(l))return;let f=typeof l.field=="string"?a(l.field,p):p.at(-1);return f?(!Ne(l)&&typeof l.field=="string"&&s(f,l),[...p,f]):false},[[]]),[...n.values()]};var ls=(e,t,r,o)=>{let n=UR(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 D)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")}},UR=(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 D(`${r}: pass \`lens\` or \`map\` / \`mapName\` / \`model\`, not both \u2014 the lens names its own`);let n=Zo(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:Ho(e,o),options:{...t,lens:void 0,map:i,mapName:i.mapName,model:i.model}}};var ps=(e,t,r,o)=>{if(!Cf.includes(e.operator))throw new Error(`'${e.operator}' does not apply to the enum '${e.field}'; compare its values with equals / in.`);let n=se(e.caseInsensitive),i=Ir(r,o?.enums),{values:s,hasNull:a}=We(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,p=new Set(s.filter(d=>typeof d=="string").map(d=>l(d))),f=i.filter(d=>p.has(l(d)));return q.includes(e.operator)?{values:i.filter(d=>!f.includes(d)),matchesNull:!a}:{values:f,matchesNull:a}};var te=e=>`"${e.replace(/"/g,'""')}"`;var we=e=>e.replace(/\\/g,"\\\\").replace(/%/g,"\\%").replace(/_/g,"\\_"),Oa=(e,t,r=false)=>{let[o,...n]=e.split("."),i=t?`${te(t)}.${te(o)}`:te(o);if(n.length===0)return i;let s=n.map(xa),a=s.pop();return [i,...s].join("->")+(r?"->":"->>")+a},xa=e=>`'${e.replace(/'/g,"''")}'`;var KR=["@prisma/client/runtime/client","@prisma/client/runtime/library"],fs,GR=()=>{if(fs!==void 0)return fs;for(let e of zR())for(let t of KR)try{let r=e(t);if(r.AnyNull!==void 0)return fs=r.AnyNull,fs}catch{}},zR=()=>{let e=[];try{let t=globalThis.process?.getBuiltinModule?.("module")?.createRequire;t&&e.push(t((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('index.cjs', document.baseURI).href))));}catch{}return typeof Ps=="function"&&e.push(Ps),e},Ru=()=>{let e=Lt.get("prismaOptions.anyNull")??GR();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 Ou=(e,t)=>{let r=_r(Rt(t));return r===null?null:Lr(e,r)},xu=(e,t,r)=>{if(e===null)return null;let o=Do(Rt(t)),n=o&&kr(o[0],bn);return !o||!n?null:ar(wt__default.default(e),n,o[1],qo(r).timeZone).toDate()};var $a=(e,t)=>Ie(e,t?.map,t?.model),Pt=e=>e==="json"||e==="json-path",br=e=>Pt(e)?Ru():null,zr=(e,t)=>t?.map&&t?.model?xd(e,t.map,t.model).map(r=>Ur(r,{is:null})):[],Pa=(e,t)=>{let r=$a(e,t);return [...Pt(r)||r==="list"||Y(e.field,t?.map,t?.model)?.isRequired===false?[rt(e.field,{equals:br(r)},t)]:[],...zr(e.field,t)]},ds=(e,t,r,o)=>{if(r.mode&&Pt(o)&&Array.isArray(t))throw F("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 F("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}},va=(e,t,r,o)=>{let n=t?.datasource?.provider??Lt.get("prismaOptions.datasource.provider");return se(e.caseInsensitive)&&Pf(n)&&gr(r,o)?{mode:"insensitive"}:{}},Eu=(e,t)=>{if(e==="list")return [{isEmpty:true}];let r=t?[{equals:""}]:[];return Pt(e)?[...r,{equals:[]}]:r},$u=e=>"isEmpty"in e?{isEmpty:false}:{not:e.equals},Aa=(e,t,r,o,n)=>{let i=a=>rt(e,a,n),s=Eu(t,o);return r?B([i({equals:br(t)}),...zr(e,n),...s.map(a=>i(a))]):Ke([...t==="list"?[]:[i({not:br(t)})],...s.map(a=>i($u(a)))])},JR=(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?Ce(o):o},QR=(e,t)=>Y(e.field,t?.map,t?.model),Ea=Xe(),ZR=(e,t,r)=>{if(t==="list"||Pt(t)||QR(e,r)?.isRequired!==true)return null;let o=e.field.split(".").slice(0,-1).join(".");return o?rt(o,{is:{}},r):Ea},Pu=(e,t)=>{let r=c=>rt(e.field,c,t),o=$a(e,t),n=()=>Pa(e,t),i=Ui(e,t?.map,t?.model);if(o==="relation")return JR(e,t);let s=ZR(e,o,t),a=s&&(s===Ea?Ot():Ce(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=Eu(o,i);return e.operator===h.isEmpty?B([a,...c.map(r)]):e.operator===h.notEmpty?Ke([s,...c.map(y=>r($u(y)))]):l(e.operator)}switch(e.operator){case h.exists:case h.notExists:{if(e.operator===h.exists)return o==="list"?Ce(r({equals:null})):r({not:br(o)});let c=n();return c.length?B(c):r({equals:br(o)})}case h.isEmpty:case h.notEmpty:return Aa(e.field,o,e.operator===h.isEmpty,i,t)}if(be(e)){let c=Hi(e,t?.map,t?.model,Cd(t),Md(t));if("problem"in c)throw Ji(e.path,c.problem);let y=r({[c.key]:c.ref}),S=($,x)=>x.isRequired===false?rt($,{equals:null},t):null,R=($,x)=>x.isRequired===false?rt($,{not:null},t):Ea,b=S(e.field,c.field),w=S(c.columnPath,c.column);return e.operator===h.equals?b&&w?B([y,Ke([b,w])]):y:e.operator===h.notEquals?B([Ce(y),...b?[Ke([b,R(c.columnPath,c.column)])]:[],...w?[Ke([R(e.field,c.field),w])]:[]]):y}let p=vu(e,t);if(he(e,p))return B(q.includes(e.operator)?n():[]);if(p===null&&mt.includes(e.operator)){let c=l(e.operator);if(c)return c}if(o==="list"&&rr.includes(e.operator)&&Array.isArray(p))return ae(qi(e,p),t);if(o==="list"&&Array.isArray(p)&&p.includes(null))throw F("toPrisma",`A list holding null in '${e.field}'`);if(o==="list"&&se(e.caseInsensitive)&&gr("text",p))throw F("toPrisma",`A case-insensitive comparison on the list '${e.field}'`);let f=o==="enum"?Y(e.field,t?.map,t?.model):void 0,d=f?ps(e,p,f,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:y}=We(p),S=va(e,t,o,c),R=Pt(o)?e.operator===h.in?B(c.map(b=>r(ds("equals",b,S,o)))):Ke(c.map(b=>r(ds("not",b,S,o)))):r({[e.operator]:c,...S});return e.operator===h.in?y?B([R,...n()]):R:y?Ke([R,s??r({not:br(o)})]):B([R,...n()])}let u=c=>{if(!Pt(o)||c!==h.contains)return r(Nn({...e,operator:c},t));let y=r({array_contains:[YR(e,p,t,o)]});return typeof p=="string"?B([r(Nn({...e,operator:c},t)),y]):y};if(e.operator===h.contains)return u(h.contains);let m=Ff.includes(e.operator)?fn[e.operator]:Po.includes(e.operator)?h.between:void 0;if(m){if(Pt(o))throw F("toPrisma",`'${e.operator}' on the Json value '${e.field}'`,"it keeps values of other types");return B([Ce(u(m)),...n()])}let g=r(Nn(e,t));return e.operator===h.equals&&p===null?B([g,...zr(e.field,t)]):e.operator===h.notEquals&&o==="list"?p===null?Ce(r({equals:null})):B([Ce(r({equals:p})),...n()]):e.operator===h.notEquals&&p!==null?B([g,...n()]):g},vu=(e,t)=>{let r=Jo(e,Rt(e),cr(e.field,t?.map,t?.model),"toPrisma",()=>qo(t).timeZone);return e.offset===void 0?r:Ou(r,e.offset)},Nn=(e,t)=>{let r=Ci(e);if(r)throw r;let o=$a(e,t),n=()=>vu(e,t),i=p=>va(e,t,o,p),s=p=>{let f=n();if(o==="list"){if(p!=="contains")throw new Error(`Operator '${p}' does not apply to the list '${e.field}'.`);return {has:f}}let d=Pt(o)?XR[p]:p,u=typeof f=="string"?we(f):f;return {[d]:u,...i(f)}},a=Mi(e.operator,n());if(a)throw a;let l=er(e.operator,"field");if(l&&$o.includes(e.operator))return {[l]:n()};switch(e.operator){case h.equals:{let p=n()??br(o);return ds("equals",p,i(p),o)}case h.notEquals:{let p=n()??br(o);return ds("not",p,i(p),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 F("toPrisma",`'${e.operator}'`,"Prisma has no pattern filter");case h.between:case h.notBetween:{let[p,f]=Be(Qe(n(),e.operator));return {gte:p,lte:f}}default:throw new Error(`Operator '${e.operator}' is built by buildFieldRule`)}},YR=(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(va(e,r,o,t).mode)throw F("toPrisma",`A case-insensitive member of the Json array '${e.field}'`);return t},XR={contains:"string_contains",startsWith:"string_starts_with",endsWith:"string_ends_with"},rt=(e,t,r)=>{if(!r?.map||!r?.model)return Ur(e,t);let o=ee(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 Ur(e,t);case "bridge":return Wr();case "past-scalar":throw To(e,o.column);case "json-path":{let s={path:o.jsonPath,...t},a=i.slice(0,o.stopIndex).join(".");return Ur(a,s)}}};var Au=(e,t,r)=>{if(Re(e)){let o=Io(e);if(!o)throw yt("toPrisma");return ae(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 eO(e,t,r)},eO=(e,t,r)=>{let o=Wo(e.field,t.map,t.model,"Aggregate rules");if(e.condition&&bt(e.condition,t.map,o.target))return Wr();let n=e.aggregate.field??"",i=Oe(t.map,o.target,n);if(!i)throw new Error(`aggregate.field '${n}' does not exist on model '${o.target}'.`);if(i.kind!=="scalar"||je(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=Bo(t)(e);if(s===null||he(s,s.value))return Ot();let a=wn(s,[{}],void 0,{},{value:0})===true,l=a?Ue(s):s,p=Nn(l,t),f={[e.aggregate.mode==="sum"?"_sum":"_avg"]:p},d=Po.includes(l.operator)?Ce({[n]:f}):{[n]:f},u=e.condition?ae(e.condition,Br({...t,model:o.target},t,true),r):Xe(),m=Zi(r,o,u,d,a);return a?B([m,...zr(e.field,t)]):m};var Tu=(e,t,r)=>{if(!e.field)throw new Error("toPrisma: count-based ArrayRule requires a field path");let o=Wo(e.field,t.map,t.model,"Count operators");if(e.condition===void 0)throw De(e.arrayOperator);if(e.count===void 0)throw Ao(e.arrayOperator);let n=e.count;if(e.arrayOperator===E.atLeast&&n===0)return Xe();let i=ae(e.condition,Br({...t,model:o.target},t,true),r),s=Na(e),a=s?Nu(E.atLeast,e.arrayOperator===E.atMost?n+1:1,o.targetKey):Nu(e.arrayOperator,n,o.targetKey);return Zi(r,o,i,a,s)},Nu=(e,t,r)=>{let o=er(e,"array");if(!o)throw new Error(`'${e}' does not count`);return {[r]:{_count:{[o]:t}}}};var Cu=(e,t,r)=>{let o=tO(e,t,r);return e.field&&Na(e)&&!Mu(e.field,t)?B([o,...zr(e.field,t)]):o},Na=e=>ue({...e,field:"items"},{items:[]})===true,tO=(e,t,r)=>{if(Re(e)){let i=Io(e);if(!i)throw yt("toPrisma");return ae(i,t,r)}if(e.condition!==void 0&&!Df.includes(e.arrayOperator)&&bt(e.condition,t?.map,ku(e,t)?.model))return Wr();if(or.includes(e.arrayOperator)){if(t?.map&&t?.model&&r)return Tu(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 Ni("toPrisma");let{field:o}=e;if(Mu(o,t))return rO(e,o,Ie({field:o},t?.map,t?.model),t);let n=oO(e,t,r);return rt(e.field,n,t)},Mu=(e,t)=>{let r=Ie({field:e},t?.map,t?.model);return r==="list"||r==="json"||r==="json-path"},rO=(e,t,r,o)=>{switch(e.arrayOperator){case E.empty:case E.notEmpty:return Aa(t,r,e.arrayOperator===E.empty,false,o);default:throw F("toPrisma",`'${e.arrayOperator}' over the ${r==="list"?"list":"Json array"} '${t}'`,r==="list"?"test a list's membership with 'contains'":void 0)}},ku=(e,t)=>{if(!t?.map||!t?.model||!e.field)return t&&Br({...t});let r=Sn(e.field,t.map,t.model);return Br(r?{...t,model:r}:{...t})},oO=(e,t,r)=>{let o=ku(e,t);switch(e.arrayOperator){case E.all:if(!e.condition)throw De(e.arrayOperator);return {none:ae(Ue(e.condition,Bo(o)),o,r)};case E.any:if(!e.condition)throw De(e.arrayOperator);return {some:ae(e.condition,o,r)};case E.none:if(!e.condition)throw De(e.arrayOperator);return {none:ae(e.condition,o,r)};case E.empty:return {none:{}};case E.notEmpty:return {some:{}};default:throw le(e.arrayOperator,"array")}};var Lu=(e,t)=>{let r=t?.map,o=Ie({field:e.field},r,t?.model);if(o==="json"||o==="json-path")throw F("toPrisma",`A date rule on the Json value '${e.field}'`,"Prisma compares Json text");let n=Y(e.field,r,t?.model);if(n&&!V(n)&&Ye(n)!==Q.DateTime)throw F("toPrisma",`A date rule on the ${n.type} field '${e.field}'`,`Prisma compares it as ${n.type}, not as an instant`);let i=q.includes(e.dateOperator)?Pa(e,t):[],s=nO(e,t);if(s===null)return B(i);let a=rt(e.field,s,t),l=Po.includes(e.dateOperator)?Ce(a):a;return B([l,...i])},nO=(e,t)=>{let r=qo(t),o=bn,n=m=>e.offset===void 0?m:xu(m,e.offset,t),i=m=>{if(m==null)return null;if(!oe(m))return Ii(m,r.timeZone);let g=ht(m,o);return g&&Co(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,y]=Be(g).map(n);return c&&y?[c,y]:null},p=()=>{let m=s();if(m==null)return null;if(!oe(m))throw He(e.dateOperator);let g=ht(m,o);if(!g)return null;let[c,y]=Mo(g,r);return [c.toDate(),y.toDate()]},f=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 f(u);switch(e.dateOperator){case v.within:case v.notWithin:return d(p());case v.between:case v.notBetween:return d(l());case v.dayIn:case v.dayNotIn:throw F("toPrisma",`'${e.dateOperator}'`);default:throw le(e.dateOperator,"date")}};var Ta=(e,t,r)=>{if(typeof e=="boolean")return e?{}:Ot();gi(e,"toPrisma");let o=ne(e);(o==="field"||o==="date")&&Ki(e.field,t?.map,t?.model);let n=e;switch(o){case "all":return Fd(n,t,r);case "any":return jd(n,t,r);case "if":return Id(n,t,r);case "array":return Cu(n,t,r);case "aggregate":return Au(n,t,r);case "date":return Lu(n,t);case "field":return Pu(n,t);default:throw gt()}};_d(Ta);var Du=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=Fu(t,i.model),a=_u(i.args,i.refs,n,t),l=await s[i.operation](a);n.push(l.map(p=>p[i.extract]).filter(p=>p!=null));}return _u(o.where,o.refs,n,t)},Fu=(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},iO=(e,t)=>{let r=Fu(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},sO=(e,t)=>t.reduce((r,o)=>r!==null&&typeof r=="object"&&Object.hasOwn(r,o)?r[o]:void 0,e),Ca=(e,t,r)=>{if(t.length===0)return r;let[o,...n]=t,i=e,s=Array.isArray(e)?[...e]:{...i};return s[o]=Ca(i[o],n,r),s},_u=(e,t,r,o)=>{let n=e;for(let{path:i}of t??[]){let s=sO(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=Ca(n,i,r[a]);}else if(s&&typeof s.__field=="object"&&s.__field!==null)n=Ca(n,i,iO(o,s.__field));else throw new Error(`executePrismaPlan: no reference at the recorded location ${i.join(".")}`)}return n};var aO=e=>e?.map?{...e,map:xe(e.map,e.mapName,"toPrisma")}:e,Tn=(e,t)=>ls(e,t,"toPrisma",lO),lO=(e,t)=>{let r={steps:[]},o=Ta(e,aO(t),r),n=(i,s)=>{let a=Ad(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 us=(e,t,r,o,n)=>{let i=`${r.mapName}\0${r.modelName}`;for(let a of t){if(typeof a=="boolean")continue;let l=e.memo?.compiles.get(a)??new Map;e.memo?.compiles.set(a,l);let p=l.get(i);if(p===void 0){let[f]=Ko(a,{target:"toPrisma",map:e.lens,mapName:r.mapName,model:r.modelName}).errors;p=f?f.message:null,l.set(i,p);}if(p!==null)return new N(`${o}: ${p}`,"unsupported_clamp")}if(n)return null;let s=false;for(let a of t)Z(a,l=>{("aggregate"in l||or.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},cs=(e,t)=>{try{return t()}catch(r){throw r instanceof N||r instanceof D?r:new N(`${e}: ${r.message}`,"unsupported_clamp")}};var ju=(e,t)=>e===""?t:t===""?e:`${e}.${t}`,Ge=e=>{let t=new Set,r=n=>{n&&t.add(n);},o=(n,i)=>{let s=Ve(n,i);return "outOfBounds"in s?null:ju(s.scope,s.path)};return Z(e,(n,i)=>{if(Fe(n))return;for(let l of pr(n))r(k(l)?o(l,i):l);let s=typeof n.field=="string"&&n.field!==""?o(n.field,i):null;if(r(s),!Ne(n))return;let a=s??i[i.length-1];for(let l of Lo(n))r(ju(a,l));return [...i,a]},[""]),[...t]};var Ma=(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),p=n(s)?.filter(d=>l===void 0||l.includes(d.value)),f=Xo(e,t,r,s,"groupBy")?t.sourceGroupBys.get(s):void 0;i[s]={...a,...l!==void 0&&{values:l},...p!==void 0&&{options:p},...f!==void 0&&{groupBy:f}};}return i},Iu=(e,t,r,o,n)=>{let{mapName:i,modelName:s}=t,a=T(O(e.lens.maps,i),s),l=Ma(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}))}),p={};for(let[m,g]of r.sources)$t(r,m)&&(p[m]=g);let f={};for(let[m,g]of r.sourceLabels)$t(r,m)&&Xo(e,r,t,m,"label")&&(f[m]=g);let d={};for(let[m,g]of r.sourceGroupBys)$t(r,m)&&Xo(e,r,t,m,"groupBy")&&(d[m]=g);let u={};for(let m of r.sourcesFromMapDefaults.keys()){if(!ss(e,i,s,m))throw as(o,i,s,m);Object.hasOwn(p,m)&&(u[m]="mapDefaults");}return {mapName:i,model:s,fields:l,whereClauses:r.whereClauses,sources:p,sourceLabels:f,sourceGroupBys:d,sourceFrom:u}},Vu=e=>{let t=new Map;for(let r of e.sourceValues??[])t.set(`${r.path}|${r.field}`,r.options);return t},qu=(e,t={})=>Cn(M(e),t),Cn=(e,t={})=>{let r=Vu(t),o={};for(let{path:n,at:i,effect:s}of Wt(e))o[n]=Iu(e,i,s,n,r);return o},Bu=(e,t,r={})=>ka(M(e),t,r),ka=(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=_(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=_(e,o.mapName,o.modelName,o.relPath),i=[e.lens.model,...o.relPath].join(".");return Iu(e,o,n,i,Vu(r))};var ms=(e,t,r,o,n)=>{let i=e.split("."),{hops:s}=Ee(t,{mapName:r,modelName:o,relPath:[]},e),a=s.find((d,u)=>d.isList&&u<i.length-1);if(a)return `${n} cannot traverse to-many relation '${i[s.indexOf(a)]}'`;if(s.length===i.length)return `${n} must end on a scalar column, '${i.at(-1)}' is a relation`;let l=s.at(-1)??{map:r,model:o},p=i[s.length],f=Oe(O(t,l.map),l.model,p);return f?V(f)?`${n} relation '${p}' has no resolvable target`:s.length===i.length-1?null:`${n} segment '${p}' is not a relation`:`${n} segment '${p}' not on model '${l.model}'`},Wu=(e,t,r,o,n,i,s,a)=>{let l=ms(n,e.lens.maps,t,r,i);if(l)throw new N(`${i} '${n}': ${l}`,"invalid_source");let{hops:p}=Ee(e.lens.maps,{mapName:t,modelName:r,relPath:o},n),f=p.slice(0,n.split(".").length-1);for(let d of f){let u=d.relPath.join(".");if(s.has(u))continue;s.add(u);let m=_(e,d.map,d.model,d.relPath);for(let g of m.whereClauses)a.push(zo(g,d.prefix));}},pO=(e,t,r,o,n,i)=>{let s=[],a=new Set;for(let l of n)Wu(e,t,r,o,l,"groupBy",a,s);return i?.includes(".")&&Wu(e,t,r,o,i,"label",a,s),s},Mn=(e,t)=>{let r=ye(e,t);return r==null||typeof r=="object"?void 0:String(r)},gs=(e,t)=>{let r=[];for(let o of t){let n=Mn(e,o);if(n===void 0)return;r.push(n);}return r},La=(e,t)=>JSON.stringify([e??null,t]),fO=(e,t,r,o)=>{let n=La(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});},ys=(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"||fO(e,String(a),s,n);},hs=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})}),dO=(e,t,r,o,n)=>{let{hops:i}=ee(n,t,o),s=n.split("."),a=i.at(-1)?.entry.type??o,l=s[i.length];for(let{endpoints:p}of e.bridges??[]){let[f,d]=p;for(let[u,m]of [[f,d],[d,f]])if(u.fieldMap===r&&u.model===a&&Te(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")},ws=(e,t,r,o)=>{let n=xe(e,t,"toPrisma");return [...new Set(o.map(i=>mr(i,n,r)?dO(e,n,t,r,i):i))]},uO=(e,t,r,o)=>{if(t.length===0)return [];let n={mapName:e.lens.mapName,modelName:e.lens.model,relPath:[]},{hops:i,end:s}=Ee(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(f=>({mapName:f.map,modelName:f.model}))],l=t.length;for(;l>0&&!r.has(t.slice(0,l).join("."));)l--;let p=l>0?r.get(t.slice(0,l).join("."))??null:null;for(let f=l;f<t.length;f++){let d=x=>{p=x,r.set(t.slice(0,f+1).join("."),x);},u=a[f],m=_(e,u.mapName,u.modelName,t.slice(0,f)).whereClauses,g=p===null?m:[...m,p];if(g.length===0&&!o){d(null);continue}let c=O(e.lens.maps,u.mapName),y=c&&Oe(c,u.modelName,t[f]);if(!y)throw new N(`source at '${t.join(".")}': '${t[f]}' isn't declared on ${u.modelName}`,"not_in_lens");let S=a[f+1],R=Te({fieldMap:u.mapName,model:u.modelName}),b=y.kind==="bridge"?Oe(O(e.lens.maps,S.mapName),S.modelName,R):void 0,w=y.kind==="bridge"?b&&{field:R,entry:b}:c?Qi(c,u.modelName,t[f],y):null;if(!w&&g.length===0){d(null);continue}if(!w)throw new N(`source at '${t.join(".")}': '${t[f]}' on ${u.modelName} declares no inverse, so the clamps above can't be carried down to it`,"unsupported_clamp");let $=K(g);try{let x={field:w.field,operator:"exists"};d(w.entry.isList?{field:w.field,arrayOperator:"any",condition:$}:g.length?K([x,zo($,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 p===null?[]:[p]},Uu=e=>Rr(M(e)),Rr=(e,t=Cn(e))=>{let r=new Map,o=n=>{let i=r.get(n)??new Map;return r.set(n,i),i};return Object.entries(t).flatMap(([n,i])=>Object.keys(i.sources).map(s=>{let a=O(i.sourceLabels,s),l=O(i.sourceGroupBys,s),p=Object.hasOwn(i.sourceFrom,s),f={mapName:i.mapName,modelName:i.model,relPath:n.split(".").slice(1)},d=_(e,f.mapName,f.modelName,f.relPath),u=(d.sourceWheres.get(s)??[]).map(A=>Kr(A,e,f)),m=pO(e,f.mapName,f.modelName,f.relPath,l??[],a),g=O(i.fields,s)?.values,c=p?d.sourcesFromMapDefaults.get(s):void 0,y=c===void 0?void 0:e.chain[c],R=[...uO(y===void 0?e:{...e,skipClampsOf:y},f.relPath,o(y),y===void 0&&!p),...u,...m,...g?[{field:s,operator:"in",value:[...g]}]:[]],b=K([...i.whereClauses,...R]),w=K([...i.whereClauses,...u,...m,...g?[{field:s,operator:"in",value:[...g]}]:[]]),$=e.lens.bridges?.length?xe(e.lens,f.mapName,"toPrisma"):void 0,x=$?[...Ge(b),...a===void 0?[]:[a],...l??[]].find(A=>mr(A,$,f.modelName)):void 0,W=x!==void 0&&$?K(Js(b).filter(A=>bt(A,$,f.modelName))):void 0,pe=us(e,[...i.whereClauses,...R],f,`source '${s}' at '${n}'`,true);if(pe)throw pe;return {path:n,visit:i,field:s,...p&&{from:"mapDefaults"},...a!==void 0&&{label:a},...l!==void 0&&{groupBy:l},where:b,rowWhere:w,...x!==void 0&&{bridged:x},...W!==void 0&&{recheck:W}}}))};var Fa=(e,t)=>{for(let r of t){let o=e;for(let n of r.split("."))o=qt(o,n,()=>({}));}return e},Ss=(e,t)=>{for(let[r,o]of Object.entries(t))Ss(qt(e,r,()=>({})),o);return e},ja=e=>e.whereClauses.flatMap(Ge),Ku=(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??[],...Ge(o.rowWhere)];r.set(n,[...r.get(n)??[],...o.bridged===void 0?i:ws(e.lens,o.visit.mapName,o.visit.model,i)]);}return r},Gu=(e,t)=>e.get(t.relPath.join("."))??[],cO=(e,t,r)=>Fa(Ss({},r??{}),ja(_(e,t.mapName,t.modelName,t.relPath))),zu=e=>({mapName:e.lens.mapName,modelName:e.lens.model,relPath:[]}),Ia=(e,t,r)=>({...r,relPath:[...e.relPath,t]}),mO=(e,t,r,o)=>{if(!r.whereClauses.length)return;let n=K(r.whereClauses),i=us(e,r.whereClauses,t,`toLensSelect: the clamp on '${t.relPath.join(".")}'`,false);if(i)throw i;if(e.inspect)return;let s=cs(`toLensSelect: the clamp on '${t.relPath.join(".")}'`,()=>Tn(n,{...o,map:e.lens,mapName:t.mapName,model:t.modelName})),{where:a}=s.steps[0];return Object.keys(a).length?a:void 0},gO=(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&&!V(l)?a:void 0},s=e?Qi(e,t,r,o):null;return i(o.toFields?.[0])??i(s?.entry.fromFields?.[0])??i("id")},Hu=(e,t,r,o,n,i)=>{let s=T(O(e.lens.maps,t.mapName),t.modelName)?.fields??{},a=_(e,t.mapName,t.modelName,t.relPath),l=r==="paths"?o:Fa(Ss({},o),[...ja(a),...Gu(i,t)]),p={};for(let[f,d]of Object.entries(s)){let u=r!=="paths"&&$t(a,f),m=O(l,f);if(!u&&m===void 0||d.kind==="bridge")continue;if(d.kind!=="object"){p[f]=true;continue}let g=u?"declared":"paths";if(g==="paths"&&m===void 0)continue;let c=Ia(t,f,{mapName:t.mapName,modelName:d.type}),y=Hu(e,c,g,m??{},n,i),S=d.isList&&g!=="paths"&&m===void 0?mO(e,c,_(e,c.mapName,c.modelName,c.relPath),n):void 0,R=Object.keys(y).length?void 0:gO(O(e.lens.maps,t.mapName),t.modelName,f,d),b=R===void 0?y:{[R]:true};Object.keys(b).length&&(p[f]={select:b,...S&&{where:S}});}return p},Ju=(e,t={})=>Va(M(e),t),Va=(e,t={},r=Rr(e))=>{let o=Hu(e,zu(e),"declared",{},t,Ku(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&&!V(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,Da=(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),p=l?Ze(l,t.mapName):null;n[s]=p?_a(r[s],f=>Da(e,Ia(t,s,p),f,a)):r[s];}return n},Qu=(e,t,r,o,n,i,s)=>{let a=_(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??{},p=n?Fa(Ss({},o),[...ja(a),...Gu(s,t)]):{},f={};for(let[d,u]of Object.entries(l)){if(!Object.hasOwn(r,d))continue;let m=O(p,d),g=Ze(u,t.mapName);if(!g){($t(a,d)||m!==void 0)&&(f[d]=r[d]);continue}let c=Ia(t,d,g);if($t(a,d)){let y=!Array.isArray(r[d])||m!==void 0;f[d]=_a(r[d],S=>Qu(e,c,S,m??{},n,i,s)??(n&&y?Da(e,c,S,cO(e,c,m)):null));}else m!==void 0&&(f[d]=_a(r[d],y=>Da(e,c,y,m)));}return f},Zu=(e,t,{keepClampColumns:r=false,...o}={})=>{let n=M(e),i=zu(n),s=r?Ku(n,Rr(n)):new Map;return t.flatMap(a=>{let l=Qu(n,i,a,{},r,o,s);return l===null?[]:[l]})};var yO="materializeSources needs fetched or keepClampColumns rows, not viewer rows",qa=(e,t,r)=>new D(`${e}: a row at '${t}' ${r}${r.includes(":")?" \u2014 rows across a bridge hold the far side inline under its bridge field":""}`),kn=(e,t,r,o,n,i=yO)=>{for(let s of n){let a=[r];for(let{index:l,field:p,entry:f,next:d}of ur(e.lens.maps,t,s)){if(!f)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,p))throw qa(i,o,`lacks '${u}', which a read needs`);let c=g[p];if(d&&c==null&&f.fromFields?.some(y=>{let S=g[y];return S!=null}))throw qa(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)!==(f.isList===true))throw qa(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;}}},Ba=(e,t)=>{let r={mapName:e.lens.mapName,modelName:e.lens.model,relPath:[]};return [r,...Ee(e.lens.maps,r,t.split(".").slice(1).join(".")).hops.map(o=>({mapName:o.map,modelName:o.model,relPath:o.relPath}))]},hO=(e,t,r,o)=>{let n=r.split(".").slice(1),i=Ba(e,r),s=(l,p)=>{let f=i[l],d=_(e,f.mapName,f.modelName,f.relPath).whereClauses,u=K(d),m=d.flatMap(Ge),g=[e.lens.model,...n.slice(0,l)].join(".");return p.filter(c=>(kn(e,f,c,g,m),ue(u,c,o)===true))},a=s(0,t);for(let[l,p]of n.entries()){let f=[],d=[e.lens.model,...n.slice(0,l)].join(".");for(let u of a){kn(e,i[l],u,d,[p]);let m=ye(u,p);Array.isArray(m)?f.push(...m):m!=null&&f.push(m);}a=s(l+1,f);}return {rows:a,visit:i[i.length-1]}},Yu=(e,t,r)=>{let o=M(e);return Rr(o).map(({path:n,visit:i,field:s,from:a,label:l,groupBy:p,rowWhere:f})=>{if(a)throw new D(`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,...Ge(f),...l===void 0?[]:[l],...p??[]],u=new Map,m=hO(o,t,n,r);for(let g of m.rows)kn(o,m.visit,g,n,d),ue(f,g,r)===true&&ys(u,g,s,l===void 0?void 0:Mn(g,l),p===void 0?void 0:gs(g,p));return {path:n,mapName:i.mapName,model:i.model,field:s,options:hs(u)}})};var bs={value:"value",query:"query"},Xu=(e,t,r={})=>{let{rowShape:o="prisma",lens:n,order:i=bs.value,...s}=r,a=o==="sql",{recheck:l}=e,p=g=>false,f=g=>true;if(l!==void 0){if(n===void 0)throw new D(`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=Ba(g,e.path).at(-1);if(!c||c.mapName!==e.mapName||c.modelName!==e.model)throw new D(`materializeSourceQuery: the lens doesn't reach ${e.mapName}:${e.model} at '${e.path}' \u2014 pass the lens the query was compiled from`);let y=xe(g.lens,e.mapName,"toPrisma");p=b=>y!==void 0&&mr(b,y,e.model);let S=[...Ge(l),...e.label!==void 0&&p(e.label)?[e.label]:[],...(e.groupBy??[]).filter(p)],R="materializeSourceQuery needs candidate rows holding the far side of each bridge the source reads";f=b=>(kn(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(".")&&!p(e.label)?g.__label:Mn(g,e.label),u=e.groupBy?.map((g,c)=>a&&!p(g)?`__group_${c}`:g),m=new Map;for(let g of t)f(g)&&ys(m,g,e.field,d(g),u===void 0?void 0:gs(g,u));return {path:e.path,mapName:e.mapName,model:e.model,field:e.field,options:i===bs.query?[...m.values()]:hs(m)}};var wO=(e,t)=>`${e}::${t}`,SO=(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);},ec=(e,t={})=>Wa(M(e),t),Wa=(e,t={})=>{let{lens:r}=e,o=new Map;for(let l of t.sourceValues??[]){let p=`${l.mapName}::${l.model}::${l.field}`,f=o.get(p)??new Map;for(let d of l.options)f.set(La(d.groups,d.value),d);o.set(p,f);}let n=new Map;for(let{at:l,effect:p}of Wt(e)){let{mapName:f,modelName:d}=l,u=T(O(r.maps,f),d);if(!u)continue;let m=wO(f,d),g=n.get(m);g||(g={mapName:f,modelName:d,fields:new Map},n.set(m,g));let c=Ma(e,p,l,u,y=>{let S=o.get(`${f}::${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");SO(g.fields,y,S);}}let i={};for(let{mapName:l,modelName:p,fields:f}of n.values()){let d=O(i,l);d||(d={models:{}},i[l]=d);let u={},m=new Map;for(let[g,c]of f)if(u[g]=c.options===void 0&&c.values?{...c,options:c.values.map(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[p]={...T(O(r.maps,l),p),fields:u};for(let[g,c]of m)d.enums??={},d.enums[g]=[...c];}let s=r.bridges?.filter(l=>{let[p,f]=l.endpoints,d=Oe(O(i,p.fieldMap),p.model,Te(f)),u=Oe(O(i,f.fieldMap),f.model,Te(p));return d!==void 0||u!==void 0}),a={maps:i};return s&&s.length>0&&(a.bridges=s),{...a,mapName:r.mapName,model:r.model}};var tc=(e,t,r,o,n)=>{if(e===void 0)return;let i=Go(e),s=o==="root.where"?null:i.bare;if(s!==null){n.push({path:o,code:"invalid_value_source",message:ma(s).message});return}let{escaping:a}=i;if(a!==null){n.push({path:o,code:"scope_out_of_bounds",message:ga(a).message});return}let l=new Set,p={...t,clamp:t.chain.length===0};for(let{mapName:f,modelName:d,relPath:u}of r)for(let m of xn(e,p,f,d,u)){let g=`'${m.path}' ${m.message}`;l.has(g)||(l.add(g),n.push({path:o,code:m.code,message:g}));}},bO=(e,t,r,o,n,i)=>{let s={...r,chain:[...r.chain,t]},a=new Set;for(let l of o){let p=_(s,l.mapName,l.modelName,l.relPath);for(let[f,d]of Object.entries(e.sources??{})){let u=Sr(d);for(let m of ["label","groupBy"]){if(u[m]===void 0||a.has(`${f}|${m}`))continue;let g=m==="label"?u.label:Pn(u.groupBy),c=m==="label"?p.sourceLabels.get(f):p.sourceGroupBys.get(f);if(JSON.stringify(g)!==JSON.stringify(c))continue;let S=(typeof c=="string"?[c]:c??[]).map(R=>An(s,l,R)).find(R=>R!==null);if(S){a.add(`${f}|${m}`),i.push({path:`${n}.sources.${f}`,code:"invalid_source",message:`${m} '${String(u[m])}' crosses '${S}', a relation the lens does not show there (not turned on, or omitted)`});continue}Xo(s,p,l,f,m)||(a.add(`${f}|${m}`),i.push({path:`${n}.sources.${f}`,code:"invalid_source",message:`${m} '${String(u[m])}' reads a column hidden by another layer`}));}}}},RO=(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},OO=(e,t,r,o,n,i,s,a,l,p,f,d,u=false)=>{let m=e.omits?.some(c=>{let y=O(i,c);return y===void 0||!V(y)});e.picks&&m&&p.push({path:`${l}`,code:"conflicting_selection",message:"cannot specify both picks and omits of a column"});for(let c of ["picks","omits"])for(let y of e[c]??[]){let S=O(i,y);if(!S){p.push({path:`${l}.${c}`,code:"not_in_lens",message:`field '${y}' not on model`});continue}let R=V(S);if(R&&c==="picks"){p.push({path:`${l}.picks`,code:"wrong_kind",message:`'${y}' is a relation: picks names columns; turn a relation on with \`relations\``});continue}let b=RO(y,R,t,r);b&&p.push({path:`${l}.${c}`,code:"not_visible",message:`'${y}' ${b}`});}let g=(c,y,S)=>{let R=O(i,y);if(!R){p.push({path:`${l}.${c}`,code:"not_in_lens",message:`field '${y}' not on model`});return}if(R.kind!=="enum"){p.push({path:`${l}.${c}`,code:"wrong_kind",message:`field '${y}' is not an enum field`});return}let b=Ir(R,a);for(let w of S)b&&!b.includes(w)&&p.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);tc(e.where,f,d,`${l}.where`,p);for(let[c,y]of Object.entries(e.sources??{})){let S=O(i,c);if(!S){p.push({path:`${l}.sources`,code:"not_in_lens",message:`field '${c}' not on model`});continue}if(V(S)){p.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=Sr(y);}catch(x){if(!(x instanceof N))throw x;p.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&&p.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=ms(w,o,n,s,"label");x&&p.push({path:`${l}.sources.${c}`,code:"invalid_source",message:`${x}`});}else {let x=O(i,R.label);x?V(x)&&p.push({path:`${l}.sources.${c}`,code:"wrong_kind",message:`label '${R.label}' is a relation, not a column`}):p.push({path:`${l}.sources.${c}`,code:"not_in_lens",message:`label column '${R.label}' not on model`});}let $=Pn(R.groupBy);if($!==void 0||w!==void 0){let x=/^__(group(_\d+)?|label)$/;(x.test(c)||R.label!==void 0&&x.test(R.label))&&p.push({path:`${l}.sources.${c}`,code:"invalid_source",message:"'__group*' / '__label' names are reserved on grouped or path-labeled sources (sql column aliases)"});}if($!==void 0){for(let W of $){let pe=ms(W,o,n,s,"groupBy");pe&&p.push({path:`${l}.sources.${c}`,code:"invalid_source",message:`${pe}`});}let x=JSON.stringify($);for(let W of t){let pe=O(W.sources,c);if(pe===void 0)continue;let A=Pn(Sr(pe).groupBy);A!==void 0&&JSON.stringify(A)!==x&&p.push({path:`${l}.sources.${c}`,code:"not_visible",message:`groupBy [${$}] conflicts with an ancestor layer's groupBy [${A}]`});}}tc(R.where,f,d,`${l}.sources.${c}`,p);}},xO=(e,t,r,o,n)=>{for(let[i,s]of Object.entries(t)){let a=O(r,i);if(!a){n.push({path:`mapDefaults.${e}.enums.${i}`,code:"not_in_lens",message:"enum not in registry"});continue}let l=null,p=new Set;for(let d of o){let u=d[i];if(u&&(u.picks&&(l=is(l,u.picks)),u.omits))for(let m of u.omits)p.add(m);}let f=d=>!(p.has(d)||l&&!l.has(d));for(let d of s.picks??[])a.includes(d)?f(d)||n.push({path:`mapDefaults.${e}.enums.${i}.picks`,code:"not_visible",message:`'${d}' not visible from ancestors`}):n.push({path:`mapDefaults.${e}.enums.${i}.picks`,code:"value_not_allowed",message:`'${d}' not a known value`});for(let d of s.omits??[])a.includes(d)?f(d)||n.push({path:`mapDefaults.${e}.enums.${i}.omits`,code:"not_visible",message:`'${d}' already excluded by ancestors`}):n.push({path:`mapDefaults.${e}.enums.${i}.omits`,code:"value_not_allowed",message:`'${d}' not a known value`});}},EO=(e,t,r,o,n,i,s)=>{let a=_(t,r.mapName,r.modelName,r.relPath);for(let l of ["enumPicks","enumOmits"])for(let[p,f]of Object.entries(e[l]??{})){let d=O(o,p);if(d?.kind!=="enum")continue;let u=Ir(d,n)??[],m=os(a,p)??u;for(let g of f)u.includes(g)&&!m.includes(g)&&s.push({path:`${i}.${l}.${p}`,code:"not_visible",message:`'${g}' is not visible (not allowed by the inherited enum narrowing)`});}},rc=(e,t,r,o)=>e.map(n=>({mapName:o,modelName:r,relPath:[...n.relPath,t]})),Ua=(e,t,r,o,n,i,s,a,l,p,f)=>{let d=O(n,i),u=T(d,s);if(!u)return;let m=o.length===0,g={...p,chain:[...p.chain,r],unvetted:true},c=f.isDefault?void 0:O(O(r.mapDefaults,i)?.models,s),S=[...o.map(w=>O(O(w.mapDefaults,i)?.models,s)).filter(w=>w!==void 0),...t],R={mapName:i,modelName:s,relPath:ca};OO(e,S,c,n,i,u.fields,s,d?.enums,a,l,p,m?f.isDefault?[R,...f.parent]:f.parent:f.composed,f.isDefault),EO(e,f.isDefault?p:{...p,chain:[...p.chain,{parent:r.parent,mapDefaults:r.mapDefaults}],unvetted:true},f.isDefault?R:f.parent[0]??R,u.fields,d?.enums,a,l),bO(e,r,p,f.composed,a,l);let b={...p,chain:[...p.chain,r]};if(!f.isDefault)for(let[w,$]of Object.entries(e.sources??{}))!vn($)||$.from!=="mapDefaults"||ss(b,i,s,w)||l.push({path:`${a}.sources.${w}`,code:"invalid_source",message:as([tt(r).model,...f.parent[0]?.relPath??[]].join("."),i,s,w).message});for(let[w,$]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(!V(x)){l.push({path:`${a}.relations`,code:"wrong_kind",message:`'${w}' is not a relation (kind=${x.kind})`});continue}let W=I=>_(p,I.mapName,I.modelName,I.relPath).relations.has(w),pe=I=>_(g,I.mapName,I.modelName,I.relPath).relations.has(w);if(!m&&!(f.isDefault?f.parent.some(W):f.parent.every(W))){l.push({path:`${a}.relations`,code:"not_visible",message:`'${w}' is not shown by the parent${f.isDefault?` wherever ${s} is visited`:""}: only the first narrowing over the base lens turns a relation on`});continue}let A=Ze(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 j=t.map(I=>O(I.relations,w)).filter(I=>I!==void 0);Ua($,j,r,o,n,A.mapName,A.modelName,`${a}.relations.${w}`,l,p,{parent:rc(f.isDefault?f.parent.filter(W):f.parent,w,A.modelName,A.mapName),composed:rc(f.composed.filter(pe),w,A.modelName,A.mapName),isDefault:f.isDefault});}},Ka=e=>{let t=[];try{$O(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 wr(t)},$O=(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 N))throw m;s.push(m);}},l=null,p=()=>(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(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:W})=>W).filter(W=>W.mapName===u&&W.modelName===y),$=[];a(()=>{$=w(p());}),a(()=>Ua(S,b,e,o,r.maps,u,y,`mapDefaults.${u}.models.${y}`,t,n,{parent:w(i),composed:$,isDefault:!0}));}m.enums&&xO(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(()=>Ua(e.root,c,e,o,r.maps,u,m,"root",t,n,{parent:[y],composed:[y],isDefault:!1}));}}for(let u of cu(e))t.push({path:"bindings",code:"invalid_binding",message:u});let f={...n,chain:[...n.chain,e],inspect:true},d;a(()=>{d=Rr(f,Cn(f));}),a(()=>Wa(f)),a(()=>Va(f,{},d)),a(()=>{let u=new Map;for(let{at:m}of p()){u.set(m.relPath.join("."),m),a(()=>ka(f,m.relPath.join(".")));let g=m.relPath.at(-1),c=u.get(m.relPath.slice(0,-1).join("."));if(g===void 0||!c)continue;let S=Oe(O(r.maps,c.mapName),c.modelName,g)?.isList?{field:g,arrayOperator:"any",condition:!0}:{field:g,operator:"exists"};a(()=>Kr(S,f,c));}});for(let u of s)t.some(m=>u.message.includes(m.message))||t.push({path:"",code:u.code,message:u.message});},Rs=e=>Rn(Ka(e),"validateNarrowing");function oc(e,{by:t="path",...r}={}){return t==="model"?ec(e,r):qu(e,r)}var nc=(e,t,r,o={})=>{let n=M(e),{resolution:i}=Gr(n,Et(n),r);if(i.outcome!=="resolved")return {ok:false,reason:i.outcome};let{hops:s,terminal:a,jsonSubPath:l}=i;if(V(a.entry))return {ok:false,reason:"relation"};if(s.some(d=>d!==a&&d.entry.isList))return {ok:false,reason:"list"};let p=(d,u)=>u!==null&&typeof u=="object"&&_(n,d.mapName,d.model,d.relPath).whereClauses.every(m=>ue(m,u,o)===true),f=p(s[0],t)?t:null;for(let[d,u]of s.entries()){if(f===null||typeof f!="object")return {ok:true,value:null};let m=O(f,u.field);if(u===a)return {ok:true,value:l.length?ye(m,l.join(".")):m};f=p(s[d+1],m)?m:null;}return {ok:true,value:null}};var PO=e=>"maps"in e,ic=(e,t)=>{let r=i=>{let s=O(t,i);if(!s)throw new Error(`composeLens: no stored lens '${i}'`);return s},o=[...r(e).parents,e];if(new Set(o).size!==o.length)throw new Error(`composeLens: '${e}' lists a layer twice in its parents`);let n=null;for(let[i,s]of o.entries()){let a=r(s);if(Object.hasOwn(a,"parent"))throw new Error(`composeLens: '${s}' carries a parent; a layer composes only through \`parents\``);let{id:l,parents:p,...f}=a;if(p.join("\0")!==o.slice(0,i).join("\0"))throw new Error(`composeLens: '${s}' composes with [${p.join(", ")}], not [${o.slice(0,i).join(", ")}] as '${e}' lists`);if(PO(a)!==(i===0))throw new Error(i===0?`composeLens: '${s}' is not a base lens, so it can't head '${e}''s parents`:`composeLens: '${s}' is a base lens, so it can only head a chain`);if(n===null){n=f;continue}let u={parent:n,...f};Rs(u),n=u;}return n},sc=(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 ac=e=>e instanceof Date?e.toISOString():Array.isArray(e)&&e.some(t=>t instanceof Date)?e.map(ac):e,L=(e,t)=>(e.params.push(ac(t)),`$${++e.paramIndex}`);var Ut=(e,t,{jsonb:r=false}={})=>{let o=()=>({sql:Oa(e,void 0,r),shape:e.includes(".")?"json-path":"unknown"});if(!t.map||!t.currentModel||!t.currentAlias)return o();let n=ee(e,t.map,t.currentModel);if(n.kind==="past-scalar")throw To(e,n.column);if(n.kind==="bridge")throw new Error(`'${e}' crosses a bridge to another source; toSql() has no column for it`);if(n.kind==="fallback"||n.entry.kind==="object"&&n.entry.isList)return o();let i=n.hops.find(f=>f.entry.isList);if(i)throw No(e,i);let s=t.currentAlias;for(let f of n.hops){let d=lc(t,s,f);if(!d)return o();s=d;}let a=Vr(n);if(n.kind==="direct"&&n.entry.kind==="object"){let f={field:n.column,entry:n.entry,from:n.model},d=yr(t.map,n.model,n.entry),u=lc(t,s,f);return !d||!u?o():{sql:`${te(u)}.${te(d[0].there)}`,shape:a}}let l=n.kind==="json-path"?[n.column,...n.jsonPath]:[n.column],p=Oa(l.join("."),s,r);return {sql:a==="json"&&!r?`NULLIF(${p}, 'null'::jsonb)`:p,shape:a}},vt=(e,t,r)=>Ut(e,t,r).sql,lc=(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=vO(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},vO=(e,t,r,o,n)=>{let i=o.type,s=T(e,i)?.dbName??i,a=yr(e,t,o);if(!a)return null;let l=a.map(({here:p,there:f})=>`${te(n)}.${te(f)} = ${te(r)}.${te(p)}`).join(" AND ");return `LEFT JOIN ${te(s)} AS ${te(n)} ON ${l}`};var Kt={type:"value",value:null},Gt=e=>e.type==="value"&&(e.value===null||e.value===void 0),AO=(e,t)=>{let r=k(e)??{depth:1,path:e};if(r.depth>1)throw new Error(ln(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}},$e=(e,t)=>cn(e,{value:r=>({type:"value",value:r}),path:r=>AO(r,t),bind:(r,o)=>({type:"value",value:Di(r,o,"toSql")})}),Hr=e=>t=>{let r=$e(t,e);if(r.type==="column")throw new Error(`'${t.path}' is a row ref`);return r.value},ot=e=>Dr(e.dateConfig??{},Hr(e));var NO={lt:"<",lte:"<=",gt:">",gte:">=",equals:"="},en=(e,t)=>{let r=er(e,t);return r?{symbol:NO[r],negated:q.includes(e)}:void 0},pc=(e,t)=>e.type==="column"?e.sql:L(t,e.value),Me=(e,t)=>`(${t} OR ${e} IS NULL)`,At=(e,t,r=true)=>t&&r?`${e} IS NULL`:"FALSE",Os=(e,t,r,o,n)=>{if(Gt(r))return At(e,o);let i=`${e} ${t} ${pc(r,n)}`;return o?Me(e,i):i},Ln=(e,t,r,o,n=true)=>{if(!t||t.some(Gt))return At(e,r,n);let[i,s]=t.map(d=>pc(d,o)),a=t.some(d=>d.type==="column"),l=a?"SYMMETRIC ":"";if(!r)return `${e} BETWEEN ${l}${i} AND ${s}`;let p=`${e} NOT BETWEEN ${l}${i} AND ${s}`,f=a?`(${p} AND ${i} IS NOT NULL AND ${s} IS NOT NULL)`:p;return n?Me(e,f):f};var uc=()=>{let e=Lt.get("sql.dialect");if(!Ef(e))throw new D(`toWhereSql: sql.dialect '${String(e)}' is not a SQL dialect \u2014 ${Object.values(So).join(", ")} are`);return e},z=e=>new Error(`toWhereSql: ${e} has no SQL form here \u2014 it writes ${js.join(", ")}, all and any, and ${Is.join(", ")} over a to-many relation.`),cc=(e,t)=>Ga(e,t,""),fc=(e,t,r,o)=>{let n=Object.hasOwn(e,o)?e[o]:void 0;if(typeof n!="string"||n==="")throw new D(`toWhereSql: no ${r} for '${o}' in \`${t}\``);return n},Ga=(e,t,r,o=()=>[])=>{uc();let{columns:n,tables:i={},map:s,mapName:a,model:l}=t??{};if(typeof n!="object"||n===null)throw new D("toWhereSql: `columns` maps each field path to its SQL");if(typeof i!="object"||i===null)throw new D("toWhereSql: `tables` maps each to-many relation path to its table");if(!s||!l)throw new D("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 p=xe(s,a,"toWhereSql");if(!T(p,l))throw new D(`toWhereSql: the map has no model '${l}'`);return _n(e,{map:p,model:l,column:f=>fc(n,"columns","column",`${r}${f}`),table:f=>fc(i,"tables","table",`${r}${f}`),clamps:o})},_n=(e,t)=>{if(typeof e=="boolean")return e?"TRUE":"FALSE";let r=e;switch(ne(r)){case "all":{let o=r.all;return o.length?`(${o.map(n=>_n(n,t)).join(" AND ")})`:"TRUE"}case "any":{let o=r.any;return o.length?`(${o.map(n=>_n(n,t)).join(" OR ")})`:"FALSE"}case "field":return CO(e,t);case "if":throw z("if / then / else");case "array":return TO(e,t);case "aggregate":throw z("aggregate");case "date":throw z(`dateOperator '${String(r.dateOperator)}'`);default:throw z("a condition that is not exactly one node kind")}},TO=(e,t)=>{let{arrayOperator:r,field:o}=e;if(!Is.includes(r))throw z(`arrayOperator '${r}'`);if(Re(e))throw z(`a window (filter / orderBy / take / skip) on '${o}'`);if(!o)throw z(`the fieldless arrayOperator '${r}'`);let n=ee(o,t.map,t.model);if(n.kind==="fallback")throw new Error(`toWhereSql: '${o}' is not a field the map declares on ${t.model}`);if(n.kind==="bridge")throw z(`'${o}', which crosses a bridge`);if(n.hops.length)throw z(`arrayOperator '${r}' on '${o}', behind the relation '${n.hops[0].prefix}'`);if(n.kind!=="direct"||Vr(n)!=="relations")throw z(`arrayOperator '${r}' on '${o}', which is not a to-many relation`);let i=yr(t.map,n.model,n.entry);if(!i)throw z(`'${o}', whose relation keys the map does not declare`);if(Ei.includes(r)&&e.condition===void 0)throw De(r);let s={map:t.map,model:n.entry.type,column:f=>t.column(`${o}.${f}`),table:f=>t.table(`${o}.${f}`),clamps:f=>t.clamps(`${o}.${f}`)},a=[...i.map(({here:f,there:d})=>`${s.column(d)} = ${t.column(f)}`),...t.clamps(o).map(({where:f,clamps:d})=>`(${_n(f,{...s,clamps:d})})`)],l=f=>`(SELECT 1 FROM ${t.table(o)} WHERE ${[...a,...f?[f]:[]].join(" AND ")})`,p=()=>`(${_n(e.condition,s)})`;switch(r){case E.any:return `EXISTS ${l(p())}`;case E.none:return `NOT EXISTS ${l(p())}`;case E.all:return `NOT EXISTS ${l(`${p()} IS NOT TRUE`)}`;case E.empty:return `NOT EXISTS ${l()}`;default:return `EXISTS ${l()}`}},CO=(e,t)=>{if(!js.includes(e.operator))throw z(`operator '${e.operator}'`);if(e.bind!==void 0)throw z(`bind '${e.bind}' on '${e.field}'`);if(e.path!==void 0)throw z(`comparing '${e.field}' with the column '${e.path}'`);if(e.offset!==void 0)throw z(`an offset on '${e.field}'`);if(e.coerceType!==void 0)throw z(`coerceType on '${e.field}'`);if(se(e.caseInsensitive))throw z(`a case-insensitive comparison on '${e.field}'`);if(k(e.field))throw z(`the scoped field '${e.field}'`);let r=ee(e.field,t.map,t.model),o=MO(e,r,t),[n]=r.kind==="direct"?ts(e,Ye(r.entry)):[];if(n)throw new Error(`toWhereSql: ${n.message}`);if(e.operator===h.exists)return `${o} IS NOT NULL`;if(e.operator===h.notExists)return `${o} IS NULL`;if(e.value===void 0)throw new Error("No value, path or bind specified");let i=Jo(e,e.value,r,"toWhereSql",()=>Je);if(he(e,i))return At(o,q.includes(e.operator));let s=a=>kO(a,e.field);switch(e.operator){case h.equals:return i===null?`${o} IS NULL`:`${o} = ${s(i)}`;case h.notEquals:return i===null?`${o} IS NOT NULL`:Me(o,`${o} <> ${s(i)}`);case h.in:{let{values:a,hasNull:l}=We(dc(e,i));if(!a.length)return l?`${o} IS NULL`:"FALSE";let p=`${o} IN (${a.map(s).join(", ")})`;return l?Me(o,p):p}default:{let{values:a,hasNull:l}=We(dc(e,i));if(!a.length)return l?`${o} IS NOT NULL`:"TRUE";let p=`${o} NOT IN (${a.map(s).join(", ")})`;return l?`(${p} AND ${o} IS NOT NULL)`:Me(o,p)}}},MO=(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 To(e.field,t.column);if(t.kind==="bridge")throw z(`'${e.field}', which crosses a bridge`);let o=t.hops.find(s=>s.entry.isList);if(o)throw No(e.field,o);let n=Vr(t),i=Vt(e);if(n==="relation"&&t.kind==="direct"){if(!i)throw ir(e.field);let s=yr(r.map,t.model,t.entry);if(!s)throw z(`'${e.field}', whose relation keys the map does not declare`);return r.column(`${e.field}.${s[0].there}`)}if(n==="relations")throw z(`the list '${e.field}'`);if(n==="json"||n==="json-path")throw z(`the Json value '${e.field}'`);if(i)return r.column(e.field);if(n==="instant")throw z(`the date '${e.field}'`);if(n==="list")throw z(`the list '${e.field}'`);return r.column(e.field)},dc=(e,t)=>{if(!Array.isArray(t))throw new Error(`toWhereSql: '${e.operator}' on '${e.field}' takes a list of values`);return t},kO=(e,t)=>{if(typeof e=="string"){let r=e.replace(/'/g,"''");return `'${uc()===So.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 z(`the value ${e instanceof Date?"a Date":JSON.stringify(e)} for '${t}'`)};var LO=(e,t,r)=>{Z(r,(o,n)=>{if(typeof o.field!="string")return;let i=An(e,n,o.field);if(i!==null)throw new Error(`toLensWhereSql: '${o.field}' at ${n.relPath.length?`'${n.relPath.join(".")}'`:"the root"} crosses '${i}', 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`);return Ne(o)?Ee(e.lens.maps,n,o.field).end??false:void 0},t);},gc=(e,t,r)=>o=>{let{end:n}=Ee(e.lens.maps,t,o);if(!n)return [];let i=_(e,n.mapName,n.modelName,n.relPath);return [...i.pathWheres,...i.modelWheres].filter(s=>s.layer<r).map(s=>({where:s.where,clamps:gc(e,n,s.layer)}))},mc=(e,t,r,o,n)=>{let i=r.map(({where:s,layer:a})=>Ga(s,o,n,gc(e,t,a)));return i.length===1?i[0]:`(${i.join(" AND ")})`},yc=(e,{columns:t,tables:r})=>{let o=M(e),n={root:null,relations:{},mapDefaults:{}};for(let{at:i,effect:s}of Wt(o)){let a={columns:t,tables:r,map:o.lens,mapName:i.mapName,model:i.modelName};for(let{where:l}of [...s.pathWheres,...s.modelWheres])LO(o,i,l);if(s.pathWheres.length){let l=i.relPath.join("."),p=mc(o,i,s.pathWheres,a,l?`${l}.`:"");l?n.relations[l]=p:n.root=p;}if(s.modelWheres.length){let l=qt(n.mapDefaults,i.mapName,()=>({models:{}})),p=mc(o,i,s.modelWheres,a,`${i.modelName}.`),f=O(l.models,i.modelName);if(f!==void 0&&f!==p)throw new Error(`toLensWhereSql: the default where of ${i.modelName} reads a to-many relation whose clamps differ between the paths that reach ${i.modelName} \u2014 a model default compiles to one predicate for every path`);l.models[i.modelName]=p;}}return n};var hc=e=>Array.isArray(e)?e.some(hc):typeof e=="object"&&e!==null,wc=(e,t,r,o)=>{let n=`NULLIF(${t}, 'null'::jsonb)`,i=`jsonb_typeof(${n})`,s=`(${n} #>> '{}')`,a=b=>`${L(o,JSON.stringify(b))}::jsonb`,l=se(e.caseInsensitive),p=b=>l?`LOWER(${b})`:b,f=q.includes(e.operator),d=b=>Me(n,`NOT (${b})`);if(he(e,r))return At(n,f);let u=Mi(e.operator,r);if(u)throw u;let m=b=>{if(hc(b))throw F("toSql",`A case-insensitive comparison of '${e.field}' with a list holding objects`);return a(jr(b))},g=b=>l&&typeof b=="string"?`(${i} = 'string' AND LOWER(${s}) = LOWER(${L(o,b)}))`:l&&Array.isArray(b)?`(${i} = 'array' AND LOWER(${n}::text)::jsonb = ${m(b)})`:`${n} = ${a(b)}`,c=b=>`(${i} = 'string' AND ${p(s)} LIKE ${p(L(o,b))})`,y=b=>{let w=$=>`(CASE WHEN ${i} = 'array' THEN EXISTS (SELECT 1 FROM jsonb_array_elements(${n}) AS e WHERE ${$}) ELSE FALSE END)`;return l&&typeof b=="string"?w(`jsonb_typeof(e) = 'string' AND LOWER(e #>> '{}') = LOWER(${L(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(`%${we(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}=We(r),$=b.length?`(${b.map(g).join(" OR ")})`:"FALSE";return e.operator===h.in?w?`(${$} OR ${n} IS NULL)`:$:w?`(NOT ${$} AND ${n} IS NOT NULL)`:d($)}case h.between:case h.notBetween:{let[b,w]=r,$=`(${i} = jsonb_typeof(${a(b)}) AND ${n} BETWEEN ${a(b)} AND ${a(w)})`;return e.operator===h.between?$:d($)}case h.contains:return S(r);case h.notContains:return d(S(r));case h.startsWith:return c(`${we(String(r))}%`);case h.endsWith:return c(`%${we(String(r))}`);case h.notStartsWith:return d(c(`${we(String(r))}%`));case h.notEndsWith:return d(c(`%${we(String(r))}`));case h.matches:case h.notMatches:{let{source:b,caseInsensitive:w}=dr(r),$=`(${i} = 'string' AND ${s} ~${w?"*":""} ${L(o,hn(b))})`;return e.operator===h.matches?$:d($)}}let R=en(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 Sc=e=>typeof e=="object"&&Cr(e)!==null,Dn=({sql:e,shape:t},r)=>{if(t!=="json-path"&&t!=="text")return `to_timestamp(EXTRACT(EPOCH FROM ${e}))`;let o=L(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)`},xs=e=>Object.values(e).some(Sc),DO=(e,t,r)=>{let o=Nr(r),n=o?"int":"double precision";if(typeof e=="number"||!Sc(e)){let a=Xs(e,Hr(t),r);return `${L(t,a)}::${n}`}let i=$e(e,t).sql;return `(CASE WHEN ${o?`${i} >= 0 AND ${i} = trunc(${i})`:`${i} >= 0`} THEN ${i} END)::${n}`},FO=(e,t)=>`make_interval(${Uf.flatMap(o=>{let n=Object.keys(e).filter(i=>e[i]!==void 0&&nr[i].interval===o).map(i=>{let s=DO(e[i],t,i),{factor:a}=nr[i];return a===1?s:`${a} * ${s}`});return n.length?[`${o} => ${n.join(" + ")}`]:[]}).join(", ")})`,Fn=(e,t,r,o)=>{let n=ot(o).timeZone;if(e.type==="value"&&!xs(t)){let l=kr(t,Hr(o));return e.value===null||e.value===void 0||l===null?Kt:{type:"value",value:ar(wt__default.default(e.value),l,r,n).toDate()}}let i=e.type==="column"?e.computed?e.sql:Dn(e,o):`${L(o,e.value??null)}::timestamptz`,s=L(o,n);return {type:"column",computed:true,sql:`(((${i} AT TIME ZONE ${s}) ${r===1?"+":"-"} ${FO(t,o)}) AT TIME ZONE ${s})`}};var za=(e,t,r)=>{let o=$e(t,r);if(e.type==="value"&&o.type==="value"){let i=_r(o.value);return i===null?Kt:{type:"value",value:Lr(e.value,i)}}let n=(i,s)=>i.type==="column"?`(${i.sql})::double precision`:`${L(r,s(i.value)??null)}::double precision`;return {type:"column",computed:true,sql:`(${n(e,i=>i)} + ${n(o,_r)})`}},bc=(e,t,r)=>{if(Gt(e))return Kt;let o=$e(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=Do(o.value);return n===null?Kt:Fn(e,...n,r)};var Rc,Oc=e=>{Rc=e;},Or=(e,t)=>Rc(e,t);var $s=(e,t,r)=>{let o=Ci(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=be(e)&&t.map&&t.currentModel?(k(e.path)??{path:e.path}).path:null;if(s!==null){let w=Vo(Y(e.field,t.map,t.currentModel),Y(s,t.map,t.currentModel),e.operator);if(w)throw F("toSql",`Comparing '${e.field}' with the column '${e.path}'`,w)}if(n.shape==="enum"&&!tr.includes(e.operator)){let w=Ec(e,t),$=Y(e.field,t.map,t.currentModel),x=w!==Es&&$&&!he(e,w)?ps(e,w,$,t.map):null;if(x){let W=`${n.sql}::text = ANY(${L(t,x.values)})`;return x.matchesNull?Me(n.sql,W):W}}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 w=Ec(e,t);if(w===Es)throw new Error(`The Json value '${e.field}' compares against an operand known when compiling, not one read per row.`);return wc(e,vt(e.field,t,{jsonb:true}),w,t)}let p=w=>{if(w.type==="column"&&!w.computed&&(w.shape==="json"||w.shape==="json-path"))throw F("toSql",`'${e.field}' compared with a Json value read per row`,"SQL would compare its text")};if(qe.includes(e.operator)){let w=vc(e,t);return w?.forEach(p),Ln(a.sql,w,q.includes(e.operator),t,i)}let f=$c(e,t);if(p(f),f.type==="column"&&Ft(e.operator,"field")==="string"&&!qr(n.shape)&&n.shape!=="list")throw F("toSql",`'${e.operator}' on '${e.field}'`,"it is not text");if(f.type==="column"&&f.computed&&n.shape==="text"&&r===void 0)throw F("toSql",`'${e.field}' against a value moved by an offset`,"an offset moves a number or a date");let d=a.sql,u=en(e.operator,"field");if(u)return Os(d,u.symbol,f,false,t);if(f.type==="value"&&he(e,f.value))return At(d,q.includes(e.operator),i);let m=f.type==="column"&&f.computed===true,g=se(e.caseInsensitive)&&(f.type==="column"?!m&&qr(n.shape)&&qr(f.shape):gr(n.shape,f.value)),c=w=>g?`LOWER(${w})`:w,y=w=>g?jr(w):w;if(n.shape==="list"&&f.type==="column"&&ut.includes(e.operator)){if(Y(e.field,t.map,t.currentModel)?.type!=="String"||!qr(f.shape))throw F("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=se(e.caseInsensitive)&&qr(f.shape)?`EXISTS (SELECT 1 FROM unnest(${d}) AS e WHERE LOWER(e) = LOWER(${f.sql}))`:`array_position(${d}, ${f.sql}) IS NOT NULL`;return e.operator===h.contains?`(${f.sql} IS NOT NULL AND ${w})`:`(${d} IS NULL OR (${f.sql} IS NOT NULL AND NOT ${w}))`}if(n.shape==="list"&&f.type==="value"){let w=se(e.caseInsensitive)&&gr("text",f.value);if(ut.includes(e.operator)){let $=L(t,f.value),x=w?`EXISTS (SELECT 1 FROM unnest(${d}) AS e WHERE LOWER(e) = LOWER(${$}))`:`array_position(${d}, ${$}) IS NOT NULL`;return e.operator===h.contains?x:`NOT ${x}`}if(rr.includes(e.operator)&&Array.isArray(f.value))return Or(qi(e,f.value),t);if(jO(e.operator))throw new Error(`'${e.operator}' does not apply to the list '${e.field}'; test its members with contains.`);if(w&&mt.includes(e.operator)&&Array.isArray(f.value)){let $=L(t,jr(f.value)),x=`(${d} IS NOT NULL AND ARRAY(SELECT LOWER(e) FROM unnest(${d}) AS e) = ${$})`;return e.operator===h.equals?x:Me(d,`NOT ${x}`)}}let S=f.type==="value"?f.value:void 0,R=f.type==="column"?f.sql:void 0;if(R!==void 0&&(rr.includes(e.operator)||["pattern","string"].includes(Ft(e.operator,"field"))))throw F("toSql",`'${e.operator}' against an operand read per row ('${e.path}')`);let b=w=>i?Me(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(L(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(L(t,S))}`);case h.in:{let{values:w,hasNull:$}=We(S);if(!w.length)return $?`${d} IS NULL`:"FALSE";let x=`${c(d)} = ANY(${L(t,y(w))})`;return $?b(x):x}case h.notIn:{let{values:w,hasNull:$}=We(S);if(!w.length)return $?`${d} IS NOT NULL`:"TRUE";let x=`${c(d)} <> ALL(${L(t,y(w))})`;return $?`(${x} AND ${d} IS NOT NULL)`:b(x)}case h.contains:return `${c(d)} LIKE ${c(L(t,`%${we(String(S))}%`))}`;case h.notContains:return b(`${c(d)} NOT LIKE ${c(L(t,`%${we(String(S))}%`))}`);case h.startsWith:return `${c(d)} LIKE ${c(L(t,`${we(String(S))}%`))}`;case h.endsWith:return `${c(d)} LIKE ${c(L(t,`%${we(String(S))}`))}`;case h.notStartsWith:return b(`${c(d)} NOT LIKE ${c(L(t,`${we(String(S))}%`))}`);case h.notEndsWith:return b(`${c(d)} NOT LIKE ${c(L(t,`%${we(String(S))}`))}`);case h.matches:return xc(d,S,false,t);case h.notMatches:return b(xc(d,S,true,t));case h.isEmpty:case h.notEmpty:return Ha(e.field,n,e.operator===h.isEmpty,t,Ui(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}`)}},$c=(e,t)=>{if(tr.includes(e.operator))return {type:"value",value:void 0};let r=Pc(e,$e(e,t),t);return e.offset===void 0?r:za(r,e.offset,t)},Pc=(e,t,r)=>t.type==="column"?t:{type:"value",value:Jo(e,t.value,cr(e.field,r.map,r.currentModel),"toSql",()=>ot(r).timeZone)},vc=(e,t)=>{let r=Pc(e,$e(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))&&_o(o,e.operator),Be(n).map(i=>{let s={type:"value",value:i};return e.offset===void 0?s:za(s,e.offset,t)})},xc=(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?"*":""} ${L(o,hn(n))}`},Es=Symbol("not known"),Ec=(e,t)=>{if(qe.includes(e.operator)){let o=vc(e,t);return o?o.every(n=>n.type==="value")?o.map(n=>n.value):Es:null}let r=$c(e,t);return r.type==="value"?r.value:Es},Ha=(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`},jO=e=>Ft(e,"field")==="string"&&!ut.includes(e);var Ac=(e,t)=>{if(Re(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=IO(e,t);return $s(e,t,r)},IO=(e,t)=>{let{mode:r,field:o}=e.aggregate;if(!ct.includes(r))throw sr(r);let n=r==="sum"?"SUM":"AVG",i=Ie({field:e.field},t.map,t.currentModel);if(i==="relation"||Y(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->>${xa(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 Nc=(e,t)=>{if(Re(e))throw yt("toSql");if(!e.field)throw Ni("toSql");if(Ie({field:e.field},t.map,t.currentModel)==="relation"||Y(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 E.empty:case E.notEmpty:{let o=Ut(e.field,t),n=e.arrayOperator===E.empty;if(o.shape==="list")return Ha(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 E.all:case E.any:case E.none:case E.atLeast:case E.atMost:case E.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 VO=(e,t)=>e.type==="column"&&!e.computed?{type:"column",sql:Dn(e,t),computed:true}:e,Tc=e=>e===void 0||e==="instant"||e==="text"||e==="json-path"||e==="unknown",Cc=e=>F("toSql",`A date rule on '${e}'`,"it is not a date column"),Mc=(e,t,r)=>{let o=t.some(i=>i.type==="column"),n=e.shape==="json-path"||e.shape==="text";return o||n?{lhs:Dn(e,r),ends:t.map(i=>VO(i,r))}:{lhs:e.sql,ends:t}},kc=(e,t)=>{let r=Ut(e.field,t);if(!Tc(r.shape))throw Cc(e.field);let o=$e(e,t);if(o.type==="column"&&!Tc(o.shape))throw Cc(String(e.path??e.field));let n=en(e.dateOperator,"date");if(n){let{lhs:s,ends:a}=Mc(r,[BO(e,t)],t);return Os(s,n.symbol,a[0],n.negated,t)}let i=(s,a)=>{if(!s)return Ln(r.sql,null,a,t);let{lhs:l,ends:p}=Mc(r,s,t);return Ln(l,p,a,t)};switch(e.dateOperator){case v.within:case v.notWithin:return i(WO(e,t),q.includes(e.dateOperator));case v.between:case v.notBetween:return i(UO(e,t),q.includes(e.dateOperator));case v.dayIn:case v.dayNotIn:{let s=e.dateOperator===v.dayNotIn,a=$e(e,t);if(a.type==="column")throw F("toSql",`A weekday list read from the row ('${e.path}')`);let l=ea(a.value);if(l===null)return At(r.sql,s);let p=L(t,ot(t).timeZone),f=L(t,l),d=`EXTRACT(DOW FROM (${Dn(r,t)} AT TIME ZONE ${p}))`;return e.dateOperator===v.dayIn?`${d} = ANY(${f})`:Me(r.sql,`${d} <> ALL(${f})`)}default:throw le(e.dateOperator,"date")}},Lc=e=>({type:"value",value:dn(ot(e)).toDate()}),qO=(e,t,r)=>{let o=Ae(e);if(o&&xs(o[0]))return Fn(Lc(r),...o,r);let n=ht(e,Hr(r));return n===null?Kt:{type:"value",value:Co(n,t,ot(r)).toDate()}},_c=(e,t,r)=>e==null?Kt:oe(e)?qO(e,t,r):{type:"value",value:Ii(e,ot(r).timeZone)},Dc=(e,t,r)=>t.offset===void 0?e:bc(e,t.offset,r),BO=(e,t)=>{let r=$e(e,t),o=r.type==="column"?r:_c(r.value,e.dateOperator,t);return Dc(o,e,t)},WO=(e,t)=>{let r=$e(e,t);if(Gt(r))return null;if(r.type==="column"||!oe(r.value))throw He(e.dateOperator);let o=Ae(r.value);if(o&&xs(o[0])){let s=Lc(t),a=Fn(s,...o,t);return o[1]===-1?[a,s]:[s,a]}let n=ht(r.value,Hr(t));if(n===null)return null;let i=Mo(n,ot(t));return [{type:"value",value:i[0].toDate()},{type:"value",value:i[1].toDate()}]},UO=(e,t)=>{let r=$e(e,t);if(Gt(r))return null;let o=r.type==="value"?r.value:void 0,n=Qe(o,e.dateOperator).map(l=>_c(l,e.dateOperator,t));if(n.some(Gt))return null;let[i,s]=n;return (i.type==="value"&&s.type==="value"?Be([i.value,s.value]).map(l=>({type:"value",value:l})):n).map(l=>Dc(l,e,t))};var Fc=(e,t)=>e.all.length===0?"TRUE":`(${e.all.map(o=>Or(o,t)).join(" AND ")})`,jc=(e,t)=>e.any.length===0?"FALSE":`(${e.any.map(o=>Or(o,t)).join(" OR ")})`,Ic=(e,t)=>{if(bt(e,t.map,t.currentModel))return "TRUE";let r=Or(e.if,t),o=Or(e.then,t);if(e.else!==void 0){let n=Or(e.else,t);return `(((${r}) IS NOT TRUE OR ${o}) AND ((${r}) IS TRUE OR ${n}))`}return `((${r}) IS NOT TRUE OR ${o})`};var jn=(e,t)=>{if(typeof e=="boolean")return e?"TRUE":"FALSE";if(gi(e,"toSql"),"field"in e&&typeof e.field=="string"&&t.map&&t.currentModel&&mr(e.field,t.map,t.currentModel))return "TRUE";let r=ne(e);(r==="field"||r==="date")&&Ki(e.field,t.map,t.currentModel);let o=e;switch(r){case "all":return Fc(o,t);case "any":return jc(o,t);case "if":return Ic(o,t);case "array":return Nc(o,t);case "aggregate":return Ac(o,t);case "date":return kc(o,t);case "field":return $s(o,t);default:throw gt()}};Oc(jn);var Ja=e=>{let t=xe(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}},KO=(e,t)=>ls(e,t,"toSql",GO),GO=(e,t)=>{let r=Ja(t);return {sql:jn(e,r),params:r.params,joins:r.joins??[]}};var Vc=(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:{};Vc(i,o),e[r]={select:i};},zO=(e,t,r,o,n,i,s,a,l,p)=>{let f=cs(`source '${n}' at '${t}'`,()=>Tn(a,{...l,map:e,mapName:r,model:o})),d=f.steps.at(-1),u=d.where,m=f.steps.length>1||(d.refs?.length??0)>0,g=xe(e,r,"toPrisma"),c=A=>p!==void 0&&ee(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 j=ee(A,g,o);return j.kind==="json-path"?A.split(".").slice(0,j.stopIndex).join("."):A},b=p===void 0?[]:ws(e,r,o,[...Ge(p),...i!==void 0&&y===void 0?[i]:[],...(s??[]).filter(c)].map(R)).filter(A=>A!==n),w=y?.includes(".")?y:void 0,$=[...S.filter(A=>A!==void 0),...w?[w]:[],...b],x={[n]:true,...y&&!w?{[y]:true}:{}};for(let A of $)Vc(x,A.split("."));let W={model:o,...s||w||p!==void 0?{}:{distinct:y?[n,y]:[n]},select:x,where:u,...m?{steps:f.steps}:{}},pe;try{for(let ge of b){let Pe=ee(ge,g,o);if(!(Pe.kind==="direct"&&!Pe.hops.length&&Pe.entry.kind!=="object"))throw new Error(Pe.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 A=Ja({...l,map:e,mapName:r,model:o,alias:"t0"}),j=jn(a,A),I=w?vt(w,A):void 0,xr=S.map((ge,Pe)=>ge===void 0?void 0:`${vt(ge,A)} AS ${te(`__group_${Pe}`)}`),tn=A.joins??[],Er=tn.length?` ${tn.join(" ")}`:"",fe=j?.trim()?` WHERE ${j}`:"",nt=te("t0"),Jr=[`${nt}.${te(n)}`,...I?[`${I} AS ${te("__label")}`]:y?[`${nt}.${te(y)}`]:[],...xr.filter(ge=>ge!==void 0),...b.map(ge=>`${nt}.${te(ge)}`)].join(", "),X=T(O(e.maps,r),o)?.dbName??o;pe={sql:`SELECT DISTINCT ${Jr} FROM ${te(X)} AS ${nt}${Er}${fe}`,params:A.params};}catch(A){pe={sql:null,params:[],error:A instanceof Error?A.message:String(A)};}return {prisma:W,sql:pe}},qc=(e,t={})=>{let{lens:r}=M(e);return Uu(e).map(({path:o,visit:n,field:i,label:s,groupBy:a,where:l,recheck:p})=>{let f=l,{prisma:d,sql:u}=zO(r,o,n.mapName,n.model,i,s,a,f,t,p);return {path:o,mapName:n.mapName,model:n.model,field:i,...s!==void 0?{label:s}:{},...a!==void 0?{groupBy:a}:{},composedWhere:f,prisma:d,sql:u,...p!==void 0?{recheck:p}:{}}})};var Bc=(e,t)=>{let r=M(e);return Gr(r,Et(r),t).resolution};/*! Bundled license information:
|
|
3
|
+
`)}`)},Uo=(e,t={})=>{let r={target:t.target??"check",errors:[],map:xe(t.map,t.mapName,"toPrisma"),scopeModels:[t.model],stepScopes:[false]};return Bt(e,"$",r,1),t.positive&&dR(e,r),hr(r.errors)},fR=["if","array","aggregate"],dR=(e,t)=>Z(e,r=>{let o=ne(r),n=r.operator??r.dateOperator;return (o&&fR.includes(o)||typeof n=="string"&&Pi.includes(n))&&P(t,"$","notPositive",`${o==="field"||o==="date"?n:o} can hold on a missing value`),false}),uR=(e,t={})=>{On(Uo(e,t),"validateRule");},Bt=(e,t,r,o)=>{if(typeof e=="boolean")return;if(!yr(e)){P(r,t,"invalid_condition","Condition must be a boolean or object");return}let n=ne(e);if(!n){P(r,t,"ambiguous_condition",gt().message);return}switch(n){case "all":Wd(e.all,`${t}.all`,r,o);break;case "any":Wd(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":cR(e,t,r,o);break;case "aggregate":yR(e,t,r,o);break;case "array":hR(e,t,r,o);break;case "date":wR(e,t,r,o);break}},Wd=(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)=>{Bt(n,`${t}[${i}]`,r,o);});},es=(e,t,r,o)=>{typeof e.field=="string"&&Gd(e.field,"field",`${t}.field`,r,o);},Gd=(e,t,r,o,n,i=false)=>{let s=k(e)??(t==="path"?{depth:n}:null);if(!s)return;let a=t==="field"?"Field":"Path";s.depth>n&&P(o,r,"scope_out_of_bounds",Fs(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()`);},Xi=(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"?bn(r,e.map,n)??void 0:void 0;},Wo=(e,t,r,o,n=false)=>{let i=Yf.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"&&Gd(e.path,"path",`${t}.path`,r,o,n),s)},zd=(e,t,r,o,n,i)=>{let{offset:s}=e;if(s===void 0)return;let a=`${o}.offset`;if(!Ff.includes(r)){P(n,a,"unsupported_offset_operator",`Operator '${r}' has no comparison point to offset`);return}if(!yr(s)){P(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"&&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 p=s.value;if(t==="field"){(typeof p!="number"||!Number.isFinite(p))&&P(n,`${a}.value`,"invalid_offset","A field offset value is a number");return}let f=yr(p)&&Object.keys(p).length===1&&oe(p)?Ne(p):null;if(!f){P(n,`${a}.value`,"invalid_offset","A date offset value is { ago } or { ahead }");return}Qd(f[0],`${a}.value.${Object.keys(p)[0]}`,n,i);},Hd=(e,t,r,o)=>{o.target!=="toSql"||!qe.includes(t)||Tr(e)&&P(o,`${r}.path`,"unsupported_sql_path",`A range read from the row ('${e.path}') is not supported by toSql()`);},cR=(e,t,r,o)=>{if(typeof e.field!="string"&&P(r,`${t}.field`,"field_required","Field rule requires a string field"),es(e,t,r,o),typeof e.operator!="string"||!_t(e.operator,"field")){P(r,`${t}.operator`,"invalid_operator",le(e.operator,"field").message);return}let n=e.operator;zd(e,"field",n,t,r,o),xi(n,"field",r.target)||P(r,`${t}.operator`,`unsupported_${ts(r.target)}_operator`,`Operator '${n}' is not supported by ${r.target}()`),e.coerceType!==void 0&&!Oi(e.coerceType)&&P(r,`${t}.coerceType`,"invalid_coerce_type",`coerceType must be one of: ${Object.keys(Q).join(", ")}`);let i=Ft(n,"field");if(i==="none"){SR(e,t,r);return}if(Wo(e,t,r,o,true)!==null){if(Hd(e,n,t,r),r.target==="toPrisma"&&typeof e.path=="string"){let s=Ji(e,r.map,r.scopeModels[o-1],o>1,r.stepScopes[o-1]===true);"problem"in s&&P(r,`${t}.path`,"unsupported_prisma_path",Qi(e.path,s.problem).message);}if(r.target==="toSql"&&typeof e.path=="string"&&r.map){let s=r.scopeModels[o-1],a=(k(e.path)??{path:e.path}).path,l=Io(Y(e.field,r.map,s),Y(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?Y(e.field,r.map,r.scopeModels[o-1]):void 0)?.isList&&ut.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")&&(mR(e,n,t,r,o),gR(i,e.value,n,`${t}.value`,r));}},mR=(e,t,r,o,n)=>{if(o.target!=="toPrisma"||!o.map||typeof e.field!="string")return;let i=Y(e.field,o.map,o.scopeModels[n-1]);if(!i)return;let s=e.value,a=se(e.caseInsensitive),l=rr.includes(t)&&Array.isArray(s),p=f=>P(o,`${r}.value`,"unsupported_prisma_operator",F("toPrisma",f).message);i.isList&&!l&&Array.isArray(s)&&s.includes(null)?p(`A list holding null in '${e.field}'`):i.isList&&!l&&a&&mr("text",s)?p(`A case-insensitive comparison on the list '${e.field}'`):je(i)&&a&&p(`A case-insensitive comparison on the Json column '${e.field}'`);},gR=(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=ud(t,n.target);i&&P(n,o,"unsupported_pattern",i);return}case "range":try{Lo(t,r);}catch(i){P(n,o,"invalid_range_value",i.message);}return}},Jd=(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){P(r,`${t}.field`,"unsupported_prisma_relation",s.message);}},yR=(e,t,r,o)=>{if(Jd(e,t,r,o,"Aggregate rules"),e.offset!==void 0&&P(r,`${t}.offset`,"unexpected_offset","Aggregate rules take no offset"),Zd(e,t,r,o),typeof e.field!="string"&&P(r,`${t}.field`,"field_required","Aggregate rule requires a string field"),es(e,t,r,o),!yr(e.aggregate)){P(r,`${t}.aggregate`,"invalid_aggregate","aggregate must be an object");return}let n=e.aggregate;if(ct.includes(n.mode)||P(r,`${t}.aggregate.mode`,"invalid_aggregate_mode",ir(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"),!Ei.includes(e.operator)){P(r,`${t}.operator`,"invalid_aggregate_operator",`Aggregate rules only support: ${Ei.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()"),Xi(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;qe.includes(e.operator)?bR(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");},hR=(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"),es(e,t,r,o),Zd(e,t,r,o),typeof e.arrayOperator!="string"||!_t(e.arrayOperator,"array")){P(r,`${t}.arrayOperator`,"invalid_array_operator",le(e.arrayOperator,"array").message);return}let n=e.arrayOperator;fn(e)&&Jd(e,t,r,o,"Count operators");let i=r.target==="toPrisma"&&r.map&&typeof e.field=="string"?Y(e.field,r.map,r.scopeModels[o-1]):void 0;i&&!V(i)&&n!=="empty"&&n!=="notEmpty"&&P(r,`${t}.arrayOperator`,"unsupported_prisma_array_operator",F("toPrisma",`'${n}' over the array column '${e.field}'`).message),xi(n,"array",r.target)||P(r,`${t}.arrayOperator`,`unsupported_${ts(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&&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?(Xi(r,o,e.field),Bt(e.condition,`${t}.condition`,r,o+1)):P(r,`${t}.condition`,"missing_condition",De(n).message),l()):s==="count"&&(typeof e.count!="number"?P(r,`${t}.count`,"missing_count",vo(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?(Xi(r,o,e.field,fn(e)),Bt(e.condition,`${t}.condition`,r,o+1)):P(r,`${t}.condition`,"missing_condition",De(n).message));},wR=(e,t,r,o)=>{if(typeof e.field!="string"&&P(r,`${t}.field`,"field_required","Date rule requires a string field"),es(e,t,r,o),typeof e.dateOperator!="string"||!_t(e.dateOperator,"date")){P(r,`${t}.dateOperator`,"invalid_date_operator",le(e.dateOperator,"date").message);return}let n=e.dateOperator;zd(e,"date",n,t,r,o),xi(n,"date",r.target)||P(r,`${t}.dateOperator`,`unsupported_${ts(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"&&Hf(a)))&&P(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&&(Hd(e,n,t,r),!(typeof e.path=="string"||typeof e.bind=="string"))){if(oe(e.value)){Kd(e.value,n,`${t}.value`,r,o);return}if(ln.includes(n)){P(r,`${t}.value`,"invalid_date_range",He(n).message);return}if(i==="dateRange"){if(!RR(e.value)){P(r,`${t}.value`,"invalid_date_range",`Date operator '${n}' requires a two-item date range`);return}e.value.forEach((s,a)=>{oe(s)?Kd(s,n,`${t}.value[${a}]`,r,o):de(s)&&!pr(s,Je).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}pr(e.value,Je).isValid()||P(r,`${t}.value`,"invalid_date_value",`Date operator '${n}' value '${String(e.value)}' does not parse as a date`);}},Qd=(e,t,r,o)=>{if(!yr(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(!Bs(n)){P(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=ea(a,n);l&&P(r,`${t}.${n}`,"invalid_relative_magnitude",l);}},Ud=(e,t,r)=>{(typeof e!="string"||!Ni.includes(e))&&P(r,t,"invalid_period_unit",`Unknown period unit '${String(e)}'`);},Kd=(e,t,r,o,n)=>{let i=ln.includes(t),s=Ne(e);if(s){Qd(s[0],r,o,n);return}if(cn(e)){Ud(_i(e),r,o);return}if(Us(e)){if(i){P(o,r,"invalid_date_range",He(t).message);return}let a="start"in e?e.start:e.end;if(!yr(a)||!cn(a)){P(o,r,"invalid_period_unit","start/end requires a this/last/next period");return}Ud(_i(a),r,o);return}P(o,r,"invalid_date_expression","Unrecognized date expression");},SR=(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");},ts=e=>e==="toPrisma"?"prisma":e==="toSql"?"sql":"check",yr=e=>Le(e),bR=e=>Array.isArray(e)&&e.length===2&&typeof e[0]=="number"&&typeof e[1]=="number",RR=e=>Array.isArray(e)&&e.length===2&&(de(e[0])||oe(e[0]))&&(de(e[1])||oe(e[1])),Zd=(e,t,r,o)=>{if(Re(e)&&r.target!=="check"&&(r.target==="toPrisma"&&jo(e)!==null||P(r,t,`unsupported_${ts(r.target)}_window`,yt(r.target).message)),"filter"in e&&e.filter!==void 0&&(Xi(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")&&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 OR=/[.:]/,la=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"&&OR.test(s)&&t.push({path:`${Te({fieldMap:r,model:n})}.${s}`,message:"contains forbidden character . or :",code:"invalid_field_name"});return hr(t)},Yd=e=>On(la(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 pa=(e,t)=>t.length?K([...t,e]):e,xR=e=>{if(lr(e).length)return false;let t=e.field,r=typeof t=="string"?k(t):null;try{return ue(r?{...e,field:r.path}:e,{})===!0}catch{return false}},fa=(e,t)=>{if(!t.length)return e;if(!xR(e))return K([...t.flatMap(n=>n.clamps),e]);let[r,...o]=t;return It([K([...r.clamps,fa(e,o)]),K([{field:r.prefix,operator:"notExists"},e])])},Go=(e,t,{paths:r=false}={})=>ar(e,{rewrite:o=>{if(Fe(o))return o;if(typeof o.field!="string"||o.field==="")throw new A(`narrowRule: cannot re-root a relation clamp of unknown shape under '${t}'`,"unsupported_clamp");let n=lr(o),i=n.find(a=>k(a));if(r&&i)throw new A(`prefixConditionFields: cannot re-root a scope ref ('${i}') under '${t}'`,"unsupported_clamp");if(n.length&&!r)throw new A(`narrowRule: cannot re-root a relation clamp with a path reference ('${n[0]}') under '${t}'. Author the clamp without 'path', or anchor it at the relation itself.`,"unsupported_clamp");if(k(o.field))throw new A(`narrowRule: cannot re-root a relation clamp with a scope ref field ('${o.field}') under '${t}'. Author the clamp against the model's own columns.`,"unsupported_clamp");if(Ae(o)){for(let a of [o.condition,o.filter])if(a!==void 0&&Ko(a).escaping!==null)throw new A(`narrowRule: cannot re-root a relation clamp on '${o.field}' under '${t}': '${Ko(a).escaping}' inside it reads the row being re-rooted. Anchor such clamps at the relation's own model.`,"unsupported_clamp")}return {...r?Mo(o,a=>be(a)?{...a,path:`${t}.${a.path}`}:a):o,field:`${t}.${o.field}`}},below:()=>false}),da=(e,t)=>t.flatMap(r=>{let o=_(e,r.map,r.model,r.relPath);if(o.whereClauses.length===0)return [];if(r.isList)throw new A(`narrowRule: cannot enforce a to-many relation 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=>Go(n,r.prefix))}]}),Xd=(e,t)=>da(e,t).flatMap(r=>r.clamps),tu=(e,t,r)=>{let o=Ve(e,r);if("outOfBounds"in o)throw new A(`narrowRule: ${o.outOfBounds}`,"scope_out_of_bounds");if(!o.scope)return {hops:[],end:null};let n=e.slice(0,e.length-o.path.length);return Ee(t.lens.maps,o.scope,o.path,n==="$."?"":n)},ER=(e,t,r)=>{if(k(e))return tu(e,t,r).hops;let o=r.length===1?"":`${"$".repeat(r.length)}.`;return r[0]?Ee(t.lens.maps,r[0],e,o).hops:[]},eu=(e,t,r)=>{if(Fe(e)||typeof e.field!="string"||e.field==="")return null;let{hops:o,end:n}=tu(e.field,t,r);return {hops:o,below:n}},Ur=(e,t,r)=>ar(e,{below:(o,n)=>{let i=eu(o,t,n);return i?i.below?[...n,i.below]:Ae(o)?[...n,null]:false:false},after:(o,n)=>{let i=eu(o,t,n);if(!i)return o;let s=Xd(t,lr(o).flatMap(d=>ER(d,t,n))),a=i.below;if(!a||!Ae(o))return pa(fa(o,da(t,i.hops)),s);let l=[..._(t,a.mapName,a.modelName,a.relPath).whereClauses,...Xd(t,ko(o).flatMap(d=>Ee(t.lens.maps,a,d).hops))],p=o.condition===void 0||o.arrayOperator===x.all||Re(o),f={...o};return l.length&&p?f.filter=K([...o.filter!==void 0?[o.filter]:[],...l]):l.length&&(f.condition=K([...l,o.condition])),pa(fa(f,da(t,i.hops.slice(0,-1))),s)}},[r]),zo=(e,t)=>{let r=M(t),o=_(r,r.lens.mapName,r.lens.model,[]),n=Ur(e,r,{mapName:r.lens.mapName,modelName:r.lens.model,relPath:[]});return pa(n,o.whereClauses)};var ua=(e,t)=>{let r=Dr(e,Q.DateTime,t);return typeof r=="number"&&!Number.isNaN(new Date(r).getTime())?r:void 0},$R=(e,t,r)=>o=>{if(o==null)return o;let n=ua(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()},Ho=(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)===Q.DateTime){let l=$R(e.field,o,n());return Array.isArray(t)?t.map(l):l(t)}if(e.coerceType===void 0&&s===Q.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&&(ze.includes(s)||s===Q.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===Q.Boolean?"boolean":"number"}, or stamp coerceType: '${s}'.`);return e.coerceType!==void 0&&Kf.includes(e.coerceType)?Dr(t,e.coerceType,e.coerceType===Q.DateTime?n():void 0):t};var ru=e=>Array.isArray(e)?e.flatMap(ru):[e],xn=e=>e.value===void 0?null:ru(e.value),PR=e=>ua(e)!==void 0,vR=/^-?\d+(\.\d+)?$/,NR={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"&&vR.test(e)},Boolean:{expected:"a boolean",fits:e=>typeof e=="boolean"},DateTime:{expected:"a date",fits:PR},Json:{expected:"a value",fits:()=>true},Bytes:{expected:"a value",fits:()=>true}},AR=e=>typeof e=="string"?`'${e}'`:typeof e=="object"&&e!==null?JSON.stringify(e):String(e),rs=(e,t)=>{let r="coerceType"in e?e.coerceType:void 0,o=r??t;if(o===void 0||o===Q.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===Q.DateTime:ze.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(Gf.includes(i.valueShape)&&Array.isArray(e.value))return [{path:e.field,code:"invalid_value_shape",message:`operator '${n}' compares one value, but ${a} was given a list`}];let{expected:l,fits:p}=NR[o],f=u=>{try{return p(Dr(u,o))}catch{return false}},d=u=>p(u)||r!==void 0&&f(u);return (xn(e)??[]).filter(u=>u!==null&&!d(u)).map(u=>({path:e.field,code:"invalid_value",message:`value ${AR(u)} does not fit ${a} (expected ${l})`}))},ou=(e,t,r)=>{if(r.isList===true||je(r))return null;let o=V(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 TR=(e,t,r,o)=>Z(e,(n,i)=>{let s=ne(n);if(s===null)return o.push({path:typeof n.field=="string"?n.field:"",code:"ambiguous_condition",message:gt().message}),false;if(Fe(n))return;let a=n,l=S=>{let R=Ve(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}},p=i[i.length-1],f=true,d=null;if("field"in a&&typeof a.field=="string"&&a.field!==""){let S=Zo(t,i,a.field);"issue"in S?(o.push({path:a.field,...S.issue}),f=false):{next:p,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?ns(d.terminalEffect,d.terminalFieldName):null;for(let{ref:S,role:R}of Qs(a)){let b=k(S)?l(S):{scope:Et(t),field:S};if(!b||b.scope.open)continue;let w=Jo(t,b.scope,b.field);if(!w){o.push({path:S,...os(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(V(w.entry)){o.push({path:S,code:"not_in_lens",message:"a value ref reads a column, not a relation"});continue}let $=Ye(w.entry);if(R==="value"||R==="shift"||$===void 0)continue;(R==="whole"?Wf.includes($):ze.includes($))||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 ${$}`});}if(!f)return false;if("arrayOperator"in a&&typeof a.field=="string"&&u){let S=ou(a.field,a.arrayOperator,u);if(S)return o.push(S),false}if(u&&V(u)&&(s==="field"||s==="date")&&(u.isList||!Vt(a))){let S=a.field;return o.push({path:S,code:"operator_kind_mismatch",message:(u.isList?Ci(S):nr(S)).message}),false}if(!u?.isList&&(s==="field"||s==="date")&&o.push(...rs(a,u?Ye(u):void 0)),!p.open)for(let S of ko(a))S!==""&&!Jo(t,p,S)&&o.push({path:S,...os(t,p,S,"an orderBy or aggregate field does not resolve through the narrowed lens")});if(y&&"operator"in a&&m){let S=xn(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,p]},[r]),En=(e,t,r,o,n)=>{let i=[];return TR(e,t,{mapName:r,modelName:o,relPath:n,open:false},i),i},Qo=(e,t)=>{let r=M(t);try{let o=En(e,r,r.lens.mapName,r.lens.model,[]);return o.length===0&&zo(e,t),hr(o)}catch(o){if(!(o instanceof A))throw o;return hr([{path:"",code:o.code,message:o.message}])}};var vn=e=>e===void 0?void 0:Array.isArray(e)?e:[e],Nn=e=>typeof e=="object"&&e!==null&&!Array.isArray(e)&&("where"in e||"label"in e||"groupBy"in e||"from"in e),wr=e=>{if(Nn(e))return e;if(typeof e=="object"&&e!==null&&!Array.isArray(e)&&Object.keys(e).length===0)throw CR();return {where:e}},CR=()=>new A("sources: {} is not a Condition \u2014 use `true` for an unconstrained source","invalid_source"),ga=["__offpath__"],nu=new WeakMap,MR=(e,t)=>{if(!t)return new Map;let r=JSON.stringify([$n(t.parent),$n(e.maps),e.mapName,e.model,t.mapDefaults??null]),o=nu.get(t);if(o?.fingerprint===r)return o.trees;let n=new Map;return nu.set(t,{fingerprint:r,trees:n}),n},iu=new WeakMap,kR=0,$n=e=>{let t=iu.get(e);return t===void 0&&(t=kR++,iu.set(e,t)),t},ce="\0",LR=e=>{let t=Object.entries(e.fields);return {relations:new Set(t.filter(([,r])=>V(r)).map(([r])=>r)),gated:t.filter(([,r])=>r.options!==void 0||r.kind==="enum"||r.values!==void 0)}},is=e=>e?String($n(e)):"",M=e=>{let t=tt(e),r=et(e)?[]:xt(e);return {lens:t,chain:r,origin:r[0],memo:{trees:MR(t,r[0]),vetted:new Set,effects:new Map,places:new Map,models:new Map,refs:new Map,compiles:new Map}}},ss=(e,t)=>e===null?new Set(t):new Set(t.filter(r=>e.has(r))),_R=(e,t)=>{if(t.picks&&(e.picks=ss(e.picks,t.picks)),t.omits)for(let r of t.omits)e.omits.add(r);},lu=(e,t,r)=>{e.set(t,ss(e.get(t)??null,r));},pu=(e,t,r)=>{let o=e.get(t)??new Set;for(let n of r)o.add(n);e.set(t,o);},DR=(e,t,r)=>{if(r.enumPicks)for(let[o,n]of Object.entries(r.enumPicks))lu(e,o,n);if(r.enumOmits)for(let[o,n]of Object.entries(r.enumOmits))pu(t,o,n);},ca=(e,t,r)=>JSON.stringify([e,t,r]),FR=(e,t,r,o,n,i,s,a)=>{if(s&&_R(e,t),t.where!==void 0&&i&&(n(t.where),e.whereClauses.push(r(t.where)),(a?e.modelWheres:e.pathWheres).push({where:t.where,layer:o})),t.sources)for(let[l,p]of Object.entries(t.sources)){let f=wr(p),d=e.sources.get(l)??[],u=e.sourceWheres.get(l)??[];f.where!==void 0&&i&&(n(f.where,true),d.push(r(f.where)),u.push(f.where)),e.sources.set(l,d),e.sourceWheres.set(l,u);let m=vn(f.groupBy);for(let[g,c,y]of [["label",f.label,e.sourceLabels.get(l)],["groupBy",m,e.sourceGroupBys.get(l)]]){if(c===void 0)continue;let S=ca(l,g,c);y!==void 0&&ca(l,g,y)===S||e.sourceDeclaredAt.set(S,o);}f.label!==void 0&&e.sourceLabels.set(l,f.label),m!==void 0&&e.sourceGroupBys.set(l,m),f.from==="mapDefaults"&&!e.sourcesFromMapDefaults.has(l)&&e.sourcesFromMapDefaults.set(l,o);}},A=class extends Error{constructor(r,o){super(r);this.code=o;}code;name="LensRefusal"},ya=e=>new A(`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"),jR=(e,t,r)=>En(e,t,r.mapName,r.modelName,r.relPath),IR=e=>new A(`a later layer's clamp reads what its parent does not show: '${e.path}' ${e.message}`,e.code),ha=e=>new A(`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 Z(e,(o,n)=>{if(Fe(o))return;let i=lr(o);for(let s of [...typeof o.field=="string"?[o.field]:[],...i]){let a=k(s);r===null&&a&&a.depth>n&&(r=s);}for(let s of i)t===null&&!k(s)&&(t=s);return Ae(o)?n+1:void 0},1),{bare:t,escaping:r}},ma=(e,t)=>{let r={mapName:e.lens.mapName,modelName:e.lens.model,relPath:[]},o=[r];if(t.relPath.length>0)for(let i of Ee(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},Pn=(e,t)=>{let r=e;for(let o of t)r=O(r?.relations,o);return r},wa=(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=Pn(o(s),t.relPath.slice(i));a&&n.push(a);}return {defaults:n,path:Pn(e.root,t.relPath)}},VR=(e,t,r,o)=>{let n=Pn(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},p=ma(l,r)??[r],f=new Set(p.map(u=>`${u.mapName}:${u.modelName}`)),d=[{at:r,below:[]}];for(;d.length>0;){let{at:u,below:m}=d.shift(),g=T(O(e.maps,u.mapName),u.modelName)?.fields??{},{defaults:c,path:y}=wa(t,u,ma(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,$]of Object.entries(g)){if(!S.has(w)||R.has(w)||y?.relations!==void 0&&Object.hasOwn(y.relations,w))continue;let E=Ze($,u.mapName);if(!E||!T(O(e.maps,E.mapName),E.modelName))continue;let W=`${E.mapName}:${E.modelName}`;f.has(W)||(f.add(W),b.push(w),d.push({at:{...E,relPath:[...u.relPath,w]},below:[...m,w]}));}a.set(m.join("."),b);}return o.set(i,a),a},qR=(e,t,r,o)=>{if(!o)return wa(t,r,null).defaults.flatMap(p=>Object.keys(p.relations??{}));let n=r.relPath.length;for(;n>0&&Pn(t.root,r.relPath.slice(0,n))===void 0;)n--;let i={...o[n],relPath:r.relPath.slice(0,n)},a=VR(e.lens,t,i,e.memo?.trees??new Map).get(r.relPath.slice(n).join("."))??[];return [...n===r.relPath.length?Object.keys(Pn(t.root,r.relPath)?.relations??{}):[],...a]},An=(e,t,r)=>{let o=t;for(let n of Ee(e.lens.maps,t,r).hops){let i=n.relPath[n.relPath.length-1];if(!_(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},_=(e,t,r,o)=>{let n=e.memo?su(e,t,r,o):null,i=n===null?void 0:e.memo?.effects.get(n);if(i){if(!e.unvetted&&i.unchecked){for(let j of i.unchecked)j();i.unchecked=null;}return i.effect}let s=[],a={picks:null,omits:new Set,enumValuesByField:new Map,whereClauses:[],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),p=T(l,r);if(!p)return a;let f=e.memo?.models.get(p);f||(f=LR(p),e.memo?.models.set(p,f)),a.relationFields=f.relations;let d={mapName:t,modelName:r,relPath:o},u=e.origin??e.chain[0],m=`${is(u)}${ce}${t}${ce}${r}${ce}${o.join(ce)}`,g=e.memo?.places.get(m);if(!g){let j=ma(e,d);g={trail:j,turnedOn:u?qR(e,u,d,j):[]},e.memo?.places.set(m,g);}let{trail:c}=g,y=new Map,S=new Map,R=new Map,b=new Map,w=j=>j,$=0,E=()=>{},W=true,pe=true,N=(j,I=false)=>{FR(a,j,w,$,E,W,pe,I),DR(y,S,j);};for(let[j,I]of e.chain.entries()){$=j;let Or={...e,clamp:false,skipClampsOf:void 0,skipHidingOf:void 0,chain:e.chain.slice(0,j)};W=I!==e.skipClampsOf,pe=I!==e.skipHidingOf,w=X=>j===0?X:Ur(X,Or,{mapName:t,modelName:r,relPath:o});for(let[X,me]of Object.entries(O(I.mapDefaults,t)?.enums??{}))me.picks&&lu(R,X,me.picks),me.omits&&pu(b,X,me.omits);let{defaults:en,path:xr}=wa(I,d,c),fe=j===0?null:Or,nt=X=>(me,ge=false)=>{let Pe=e.memo?.refs.get(me);if(Pe||(Pe=Ko(me),e.memo?.refs.set(me,Pe)),Pe.bare!==null&&!(X&&!ge))throw ya(Pe.bare);if(Pe.escaping!==null)throw ha(Pe.escaping);if(!fe)return;let Xa=()=>{let Vn=typeof me=="object"&&me!==null?`${$n(me)}${ce}${su(fe,t,r,o)}`:null;if(Vn!==null&&fe.memo?.vetted.has(Vn))return;let[el]=jR(me,fe,d);if(el)throw IR(el);Vn!==null&&fe.memo?.vetted.add(Vn);};e.unvetted?s.push(Xa):Xa();};E=nt(false);let Hr=O(O(I.mapDefaults,t)?.models,r);for(let X of en)N(X,X===Hr);xr&&(E=nt(o.length===0&&c!==null),N(xr));}if(u&&e.chain.includes(u))for(let j of g.turnedOn)a.relationFields.has(j)&&!a.omits.has(j)&&a.relations.add(j);for(let[j,I]of f.gated){let Or=I.kind==="enum",xr=I.options?.map(X=>X.value)??(Or?jr(I,l?.enums):I.values);if(!xr)continue;let fe=xr;if(Or){let X=R.get(I.type),me=b.get(I.type);X&&(fe=fe.filter(ge=>X.has(ge))),me&&(fe=fe.filter(ge=>!me.has(ge)));}let nt=y.get(j),Hr=S.get(j);nt&&(fe=fe.filter(X=>nt.has(X))),Hr&&(fe=fe.filter(X=>!Hr.has(X))),a.enumValuesByField.set(j,fe);}return n!==null&&e.memo?.effects.set(n,{effect:a,unchecked:s.length?s:null}),a},su=(e,t,r,o)=>{let n=au.get(e);if(n===void 0){n=`${is(e.origin)}${ce}${is(e.skipClampsOf)}${ce}${is(e.skipHidingOf)}${ce}`;for(let i of e.chain)n+=`${$n(i)},`;au.set(e,n);}return `${n}${ce}${t}${ce}${r}${ce}${o.join(ce)}`},au=new WeakMap,Wt=e=>{let t=[],r=(o,n)=>{let i=O(e.lens.maps,o.mapName);if(!T(i,o.modelName))return;let s=_(e,o.mapName,o.modelName,o.relPath);t.push({path:n,at:o,effect:s});for(let a of s.relations){let l=Oe(i,o.modelName,a),p=l&&Ze(l,o.mapName);p&&r({...p,relPath:[...o.relPath,a]},`${n}.${a}`);}};return r({mapName:e.lens.mapName,modelName:e.lens.model,relPath:[]},e.lens.model),t},as=(e,t,r,o)=>_(e,t,r,ga).sources.has(o),ls=(e,t,r,o)=>new A(`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)),ns=(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:p,next:f}of dr(e.lens.maps,t,r)){if(!p)return {resolution:{outcome:"missing",index:s,hops:n},effects:i};let d=_(e,l.mapName,l.modelName,l.relPath);if(!(e.clamp&&V(p)?!d.omits.has(a):$t(d,a)))return {resolution:{outcome:"hidden",index:s,hops:n},effects:i};let m={field:a,entry:p,mapName:l.mapName,model:l.modelName,relPath:[...l.relPath]};n.push(m),i.push(d);let g=s===o.length-1;if(g||je(p))return {resolution:{outcome:"resolved",hops:n,terminal:m,jsonSubPath:g?[]:o.slice(s+1)},effects:i};if(!f)return {resolution:{outcome:"pastScalar",index:s,hops:n},effects:i}}return {resolution:{outcome:"missing",index:o.length,hops:n},effects:i}},Yo=(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(ca(o,n,i)),a=(f,d)=>Kr(f,r,d).resolution.outcome!=="hidden",l={...e,clamp:true},p={...l,skipHidingOf:s===void 0?void 0:e.chain[s]};return (typeof i=="string"?[i]:i).every(f=>An(e,r,f)===null&&(a(l,f)||a(p,f)))},Jo=(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}},os=(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),p=l?{...l,relPath:a.relPath}:t,f=_(e,p.mapName,p.modelName,p.relPath),d=i[n.index];return !f.relationFields.has(d)||f.omits.has(d)?{code:"not_in_lens",message:o}:{code:"not_in_lens",message:`'${i.slice(0,n.index+1).join(".")}' is a relation the lens does not turn on (turn it on with \`relations\`)`}},Et=e=>({mapName:e.lens.mapName,modelName:e.lens.model,relPath:[],open:false}),Zo=(e,t,r)=>{let o=Ve(r,t);if("outOfBounds"in o)return {issue:{code:"scope_out_of_bounds",message:o.outOfBounds}};if(o.scope.open)return {from:o.scope,next:o.scope,walked:null};let n=Jo(e,o.scope,o.path);if(!n)return {issue:os(e,o.scope,o.path,"path does not resolve through the narrowed lens")};let i=je(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}},Ee=(e,t,r,o="")=>{let n=r.split("."),i=[],s=null;for(let{index:a,field:l,at:p,entry:f,next:d}of dr(e,t,r)){if(!f||!d)break;let u=[...p.relPath,l];i.push({map:d.mapName,model:d.modelName,relPath:u,prefix:`${o}${n.slice(0,a+1).join(".")}`,isList:f.isList===true}),a===n.length-1&&(s={...d,relPath:[...u]});}return {hops:i,end:s}};var ba="parent:",Ra=e=>e.startsWith(ba),du=e=>Ra(e)?e.slice(ba.length):e,Sa=(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]=Nn(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]=Sa(i,t);r.relations=o;}return r},uu=(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]=Sa(a,t);r[o]=n.models?{...n,models:i}:n;}return {...e,root:e.root?Sa(e.root,t):void 0,mapDefaults:e.mapDefaults?r:void 0}},Oa=e=>{let t=[];return uu(e,r=>(t.push(r),r)),t},fu=e=>{let t=new Set;for(let r of Oa(e))for(let o of yn(r))Ra(o)||t.add(o);return t},cu=e=>{let t=new Set;for(let r of xt(e))for(let o of Oa(r))for(let n of yn(o,{required:true}))t.add(du(n));return [...t].sort()},mu=(e,t)=>{if(et(e))return e;let r={...t};for(let[o,n]of Object.entries(t))r[`${ba}${o}`]=n;return {...uu(e,o=>Ys(o,r)),parent:mu(e.parent,t)}},gu=(e,t)=>mu(e,t),yu=e=>{let t=[],r=new Set;for(let n of xt(e.parent))for(let i of fu(n))r.add(i);for(let n of fu(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 Oa(e))for(let i of yn(n))Ra(i)&&o.add(du(i));for(let n of o)r.has(n)||t.push(`bind 'parent:${n}' references an inherited binding no ancestor declares`);return t};var wu=(e,t)=>e===void 0?t:t===void 0?e:{all:[e,t]},BR=(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=wu(s.where,a.where);r[o]={...s,...a,...l===void 0?{}:{where:l}};}return r},Su=(e,t)=>{let r=wu(e?.where,t.where),o=BR(e?.sources,t.sources);return {...e,...r===void 0?{}:{where:r},...o?{sources:o}:{}}},WR=(e,t)=>{let r={...e?.models};for(let[o,n]of Object.entries(t))r[o]=Su(r[o],n);return {...e,models:r}},hu=(e,t)=>{let r={...e.mapDefaults};for(let[o,{models:n}]of Object.entries(t.mapDefaults??{}))r[o]=WR(r[o],n);return {...e,...t.root?{root:Su(e.root,t.root)}:{},...t.mapDefaults?{mapDefaults:r}:{}}},xa=(e,t)=>et(e)?hu({parent:e},t):et(e.parent)?hu(e,t):{...e,parent:xa(e.parent,t)};var bu=(e,t)=>{let r=M(t),o=(n,i)=>typeof n=="string"&&n!==""?Zo(r,i,n):null;return ar(e,{rewrite:(n,i)=>{if(ne(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"&&Uf.includes(a.type)?{...n,coerceType:a.type}:n},below:(n,i)=>{if(!Ae(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&&V(a)?[...i,s.next]:false}},[Et(r)])};var Ru=({maps:e,bridges:t,mapName:r,model:o})=>({...Ui({maps:e,bridges:t}),mapName:r,model:o});var UR=(e,t)=>Z(e,(r,o)=>{if(t.sources.add(o[o.length-1].mapName),Fe(r)||typeof r.field!="string"||r.field==="")return;let n=Zo(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)]),Ou=(e,t)=>{let o={policy:M(t),sources:new Set,bridgesCrossed:false};return UR(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:Qo(e,t).errors}};var KR=new Set([Dt.scalar,Dt.ordered,Dt.array,Dt.dayList,Dt.dateValue]),GR=new Set([Dt.none,Dt.count]),zR=e=>{if(e.offset!==void 0||gn(e).some(({source:r})=>r.value===void 0))return {values:[],dynamic:true};let t=xo(e);return t?GR.has(t.valueShape)?{values:[],dynamic:false}:KR.has(t.valueShape)?"value"in e?{values:xn(e)??[],dynamic:false}:{values:[],dynamic:false}:{values:[],dynamic:true}:{values:[],dynamic:true}},HR=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)}`,xu=(e,t)=>{let r=M(t),o=r.lens.model,n=new Map,i=new Map,s=(l,p)=>{if(l.length===0)return;let f=Jo(r,{mapName:r.lens.mapName,modelName:o,relPath:[]},l.join("."));if(!f||f.jsonSubPath.length>0)return;let{mapName:d,modelName:u,relPath:m,terminalEffect:g,terminalFieldName:c}=f;if(!g.sources.has(c))return;let 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=zR(p);b.dynamic&&(R.dynamic=true);let w=i.get(S)??new Set;i.set(S,w);for(let $ of b.values){let E=HR($);w.has(E)||(w.add(E),R.values.push($));}},a=(l,p)=>{let f=Ve(l,p);if(!("outOfBounds"in f))return [...f.scope,...f.path.split(".")]};return Z(e,(l,p)=>{if(Fe(l))return;let f=typeof l.field=="string"?a(l.field,p):p.at(-1);return f?(!Ae(l)&&typeof l.field=="string"&&s(f,l),[...p,f]):false},[[]]),[...n.values()]};var ps=(e,t,r,o)=>{let n=JR(e,t,r);if(n.options===t)return o(n.condition,n.options);try{return o(n.condition,n.options)}catch(i){if(i instanceof A||i instanceof D)throw i;try{o(e,n.options);}catch{throw i}throw new A(`${r}: the lens's clamps on this rule have no ${r} form \u2014 ${i.message}`,"unsupported_target")}},JR=(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 D(`${r}: pass \`lens\` or \`map\` / \`mapName\` / \`model\`, not both \u2014 the lens names its own`);let n=Qo(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:zo(e,o),options:{...t,lens:void 0,map:i,mapName:i.mapName,model:i.model}}};var fs=(e,t,r,o)=>{if(!Lf.includes(e.operator))throw new Error(`'${e.operator}' does not apply to the enum '${e.field}'; compare its values with equals / in.`);let n=se(e.caseInsensitive),i=jr(r,o?.enums),{values:s,hasNull:a}=We(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,p=new Set(s.filter(d=>typeof d=="string").map(d=>l(d))),f=i.filter(d=>p.has(l(d)));return q.includes(e.operator)?{values:i.filter(d=>!f.includes(d)),matchesNull:!a}:{values:f,matchesNull:a}};var te=e=>`"${e.replace(/"/g,'""')}"`;var we=e=>e.replace(/\\/g,"\\\\").replace(/%/g,"\\%").replace(/_/g,"\\_"),Ea=(e,t,r=false)=>{let[o,...n]=e.split("."),i=t?`${te(t)}.${te(o)}`:te(o);if(n.length===0)return i;let s=n.map($a),a=s.pop();return [i,...s].join("->")+(r?"->":"->>")+a},$a=e=>`'${e.replace(/'/g,"''")}'`;var QR=["@prisma/client/runtime/client","@prisma/client/runtime/library"],ds,ZR=()=>{if(ds!==void 0)return ds;for(let e of YR())for(let t of QR)try{let r=e(t);if(r.AnyNull!==void 0)return ds=r.AnyNull,ds}catch{}},YR=()=>{let e=[];try{let t=globalThis.process?.getBuiltinModule?.("module")?.createRequire;t&&e.push(t((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('index.cjs', document.baseURI).href))));}catch{}return typeof vs=="function"&&e.push(vs),e},Eu=()=>{let e=Lt.get("prismaOptions.anyNull")??ZR();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 $u=(e,t)=>{let r=Lr(Rt(t));return r===null?null:kr(e,r)},Pu=(e,t,r)=>{if(e===null)return null;let o=_o(Rt(t)),n=o&&Mr(o[0],Rn);return !o||!n?null:sr(wt__default.default(e),n,o[1],Vo(r).timeZone).toDate()};var va=(e,t)=>Ie(e,t?.map,t?.model),Pt=e=>e==="json"||e==="json-path",Sr=e=>Pt(e)?Eu():null,Gr=(e,t)=>t?.map&&t?.model?Pd(e,t.map,t.model).map(r=>Wr(r,{is:null})):[],Na=(e,t)=>{let r=va(e,t);return [...Pt(r)||r==="list"||Y(e.field,t?.map,t?.model)?.isRequired===false?[rt(e.field,{equals:Sr(r)},t)]:[],...Gr(e.field,t)]},us=(e,t,r,o)=>{if(r.mode&&Pt(o)&&Array.isArray(t))throw F("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 F("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}},Aa=(e,t,r,o)=>{let n=t?.datasource?.provider??Lt.get("prismaOptions.datasource.provider");return se(e.caseInsensitive)&&Af(n)&&mr(r,o)?{mode:"insensitive"}:{}},vu=(e,t)=>{if(e==="list")return [{isEmpty:true}];let r=t?[{equals:""}]:[];return Pt(e)?[...r,{equals:[]}]:r},Nu=e=>"isEmpty"in e?{isEmpty:false}:{not:e.equals},Ta=(e,t,r,o,n)=>{let i=a=>rt(e,a,n),s=vu(t,o);return r?B([i({equals:Sr(t)}),...Gr(e,n),...s.map(a=>i(a))]):Ke([...t==="list"?[]:[i({not:Sr(t)})],...s.map(a=>i(Nu(a)))])},eO=(e,t)=>{if(!Vt(e))throw nr(e.field);let o=(n=>rt(e.field,n,t))({is:{}});return ue({...e,field:"relation"},{relation:null})===true?Ce(o):o},tO=(e,t)=>Y(e.field,t?.map,t?.model),Pa=Xe(),rO=(e,t,r)=>{if(t==="list"||Pt(t)||tO(e,r)?.isRequired!==true)return null;let o=e.field.split(".").slice(0,-1).join(".");return o?rt(o,{is:{}},r):Pa},Au=(e,t)=>{let r=c=>rt(e.field,c,t),o=va(e,t),n=()=>Na(e,t),i=Ki(e,t?.map,t?.model);if(o==="relation")return eO(e,t);let s=rO(e,o,t),a=s&&(s===Pa?Ot():Ce(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=vu(o,i);return e.operator===h.isEmpty?B([a,...c.map(r)]):e.operator===h.notEmpty?Ke([s,...c.map(y=>r(Nu(y)))]):l(e.operator)}switch(e.operator){case h.exists:case h.notExists:{if(e.operator===h.exists)return o==="list"?Ce(r({equals:null})):r({not:Sr(o)});let c=n();return c.length?B(c):r({equals:Sr(o)})}case h.isEmpty:case h.notEmpty:return Ta(e.field,o,e.operator===h.isEmpty,i,t)}if(be(e)){let c=Ji(e,t?.map,t?.model,Ld(t),_d(t));if("problem"in c)throw Qi(e.path,c.problem);let y=r({[c.key]:c.ref}),S=($,E)=>E.isRequired===false?rt($,{equals:null},t):null,R=($,E)=>E.isRequired===false?rt($,{not:null},t):Pa,b=S(e.field,c.field),w=S(c.columnPath,c.column);return e.operator===h.equals?b&&w?B([y,Ke([b,w])]):y:e.operator===h.notEquals?B([Ce(y),...b?[Ke([b,R(c.columnPath,c.column)])]:[],...w?[Ke([R(e.field,c.field),w])]:[]]):y}let p=Tu(e,t);if(he(e,p))return B(q.includes(e.operator)?n():[]);if(p===null&&mt.includes(e.operator)){let c=l(e.operator);if(c)return c}if(o==="list"&&rr.includes(e.operator)&&Array.isArray(p))return ae(Bi(e,p),t);if(o==="list"&&Array.isArray(p)&&p.includes(null))throw F("toPrisma",`A list holding null in '${e.field}'`);if(o==="list"&&se(e.caseInsensitive)&&mr("text",p))throw F("toPrisma",`A case-insensitive comparison on the list '${e.field}'`);let f=o==="enum"?Y(e.field,t?.map,t?.model):void 0,d=f?fs(e,p,f,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:y}=We(p),S=Aa(e,t,o,c),R=Pt(o)?e.operator===h.in?B(c.map(b=>r(us("equals",b,S,o)))):Ke(c.map(b=>r(us("not",b,S,o)))):r({[e.operator]:c,...S});return e.operator===h.in?y?B([R,...n()]):R:y?Ke([R,s??r({not:Sr(o)})]):B([R,...n()])}let u=c=>{if(!Pt(o)||c!==h.contains)return r(Tn({...e,operator:c},t));let y=r({array_contains:[oO(e,p,t,o)]});return typeof p=="string"?B([r(Tn({...e,operator:c},t)),y]):y};if(e.operator===h.contains)return u(h.contains);let m=Vf.includes(e.operator)?dn[e.operator]:$o.includes(e.operator)?h.between:void 0;if(m){if(Pt(o))throw F("toPrisma",`'${e.operator}' on the Json value '${e.field}'`,"it keeps values of other types");return B([Ce(u(m)),...n()])}let g=r(Tn(e,t));return e.operator===h.equals&&p===null?B([g,...Gr(e.field,t)]):e.operator===h.notEquals&&o==="list"?p===null?Ce(r({equals:null})):B([Ce(r({equals:p})),...n()]):e.operator===h.notEquals&&p!==null?B([g,...n()]):g},Tu=(e,t)=>{let r=Ho(e,Rt(e),ur(e.field,t?.map,t?.model),"toPrisma",()=>Vo(t).timeZone);return e.offset===void 0?r:$u(r,e.offset)},Tn=(e,t)=>{let r=Mi(e);if(r)throw r;let o=va(e,t),n=()=>Tu(e,t),i=p=>Aa(e,t,o,p),s=p=>{let f=n();if(o==="list"){if(p!=="contains")throw new Error(`Operator '${p}' does not apply to the list '${e.field}'.`);return {has:f}}let d=Pt(o)?nO[p]:p,u=typeof f=="string"?we(f):f;return {[d]:u,...i(f)}},a=ki(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 h.equals:{let p=n()??Sr(o);return us("equals",p,i(p),o)}case h.notEquals:{let p=n()??Sr(o);return us("not",p,i(p),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 F("toPrisma",`'${e.operator}'`,"Prisma has no pattern filter");case h.between:case h.notBetween:{let[p,f]=Be(Qe(n(),e.operator));return {gte:p,lte:f}}default:throw new Error(`Operator '${e.operator}' is built by buildFieldRule`)}},oO=(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(Aa(e,r,o,t).mode)throw F("toPrisma",`A case-insensitive member of the Json array '${e.field}'`);return t},nO={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=ee(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 Br();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 Cu=(e,t,r)=>{if(Re(e)){let o=jo(e);if(!o)throw yt("toPrisma");return ae(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 ir(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 iO(e,t,r)},iO=(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 Br();let n=e.aggregate.field??"",i=Oe(t.map,o.target,n);if(!i)throw new Error(`aggregate.field '${n}' does not exist on model '${o.target}'.`);if(i.kind!=="scalar"||je(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=Sn(s,[{}],void 0,{},{value:0})===true,l=a?Ue(s):s,p=Tn(l,t),f={[e.aggregate.mode==="sum"?"_sum":"_avg"]:p},d=$o.includes(l.operator)?Ce({[n]:f}):{[n]:f},u=e.condition?ae(e.condition,qr({...t,model:o.target},t,true),r):Xe(),m=Yi(r,o,u,d,a);return a?B([m,...Gr(e.field,t)]):m};var ku=(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 De(e.arrayOperator);if(e.count===void 0)throw vo(e.arrayOperator);let n=e.count;if(e.arrayOperator===x.atLeast&&n===0)return Xe();let i=ae(e.condition,qr({...t,model:o.target},t,true),r),s=Ca(e),a=s?Mu(x.atLeast,e.arrayOperator===x.atMost?n+1:1,o.targetKey):Mu(e.arrayOperator,n,o.targetKey);return Yi(r,o,i,a,s)},Mu=(e,t,r)=>{let o=er(e,"array");if(!o)throw new Error(`'${e}' does not count`);return {[r]:{_count:{[o]:t}}}};var Lu=(e,t,r)=>{let o=_u(e,t,r);return e.field&&Ca(e)&&!Du(e.field,t)?B([o,...Gr(e.field,t)]):o},Ca=e=>ue({...e,field:"items"},{items:[]})===true,sO=e=>{let t=Vs(e);if(!t)return null;let{count:r,...o}=e;return {...o,arrayOperator:t}},_u=(e,t,r)=>{if(Re(e)){let s=jo(e);if(!s)throw yt("toPrisma");return ae(s,t,r)}if(e.condition!==void 0&&!If.includes(e.arrayOperator)&&bt(e.condition,t?.map,Fu(e,t)?.model))return Br();let o=sO(e);if(o)return _u(o,t,r);if(pn.includes(e.arrayOperator)){if(t?.map&&t?.model&&r)return ku(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 Ti("toPrisma");let{field:n}=e;if(Du(n,t))return aO(e,n,Ie({field:n},t?.map,t?.model),t);let i=lO(e,t,r);return rt(e.field,i,t)},Du=(e,t)=>{let r=Ie({field:e},t?.map,t?.model);return r==="list"||r==="json"||r==="json-path"},aO=(e,t,r,o)=>{switch(e.arrayOperator){case x.empty:case x.notEmpty:return Ta(t,r,e.arrayOperator===x.empty,false,o);default:throw F("toPrisma",`'${e.arrayOperator}' over the ${r==="list"?"list":"Json array"} '${t}'`,r==="list"?"test a list's membership with 'contains'":void 0)}},Fu=(e,t)=>{if(!t?.map||!t?.model||!e.field)return t&&qr({...t});let r=bn(e.field,t.map,t.model);return qr(r?{...t,model:r}:{...t})},lO=(e,t,r)=>{let o=Fu(e,t);switch(e.arrayOperator){case x.all:if(!e.condition)throw De(e.arrayOperator);return {none:ae(Ue(e.condition,qo(o)),o,r)};case x.any:if(!e.condition)throw De(e.arrayOperator);return {some:ae(e.condition,o,r)};case x.none:if(!e.condition)throw De(e.arrayOperator);return {none:ae(e.condition,o,r)};case x.empty:return {none:{}};case x.notEmpty:return {some:{}};default:throw le(e.arrayOperator,"array")}};var ju=(e,t)=>{let r=t?.map,o=Ie({field:e.field},r,t?.model);if(o==="json"||o==="json-path")throw F("toPrisma",`A date rule on the Json value '${e.field}'`,"Prisma compares Json text");let n=Y(e.field,r,t?.model);if(n&&!V(n)&&Ye(n)!==Q.DateTime)throw F("toPrisma",`A date rule on the ${n.type} field '${e.field}'`,`Prisma compares it as ${n.type}, not as an instant`);let i=q.includes(e.dateOperator)?Na(e,t):[],s=pO(e,t);if(s===null)return B(i);let a=rt(e.field,s,t),l=$o.includes(e.dateOperator)?Ce(a):a;return B([l,...i])},pO=(e,t)=>{let r=Vo(t),o=Rn,n=m=>e.offset===void 0?m:Pu(m,e.offset,t),i=m=>{if(m==null)return null;if(!oe(m))return Vi(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,y]=Be(g).map(n);return c&&y?[c,y]:null},p=()=>{let m=s();if(m==null)return null;if(!oe(m))throw He(e.dateOperator);let g=ht(m,o);if(!g)return null;let[c,y]=Co(g,r);return [c.toDate(),y.toDate()]},f=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 f(u);switch(e.dateOperator){case v.within:case v.notWithin:return d(p());case v.between:case v.notBetween:return d(l());case v.dayIn:case v.dayNotIn:throw F("toPrisma",`'${e.dateOperator}'`);default:throw le(e.dateOperator,"date")}};var Ma=(e,t,r)=>{if(typeof e=="boolean")return e?{}:Ot();yi(e,"toPrisma");let o=ne(e);(o==="field"||o==="date")&&Gi(e.field,t?.map,t?.model);let n=e;switch(o){case "all":return Vd(n,t,r);case "any":return qd(n,t,r);case "if":return Bd(n,t,r);case "array":return Lu(n,t,r);case "aggregate":return Cu(n,t,r);case "date":return ju(n,t);case "field":return Au(n,t);default:throw gt()}};jd(Ma);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=qu(t,i.model),a=Iu(i.args,i.refs,n,t),l=await s[i.operation](a);n.push(l.map(p=>p[i.extract]).filter(p=>p!=null));}return Iu(o.where,o.refs,n,t)},qu=(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},fO=(e,t)=>{let r=qu(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},dO=(e,t)=>t.reduce((r,o)=>r!==null&&typeof r=="object"&&Object.hasOwn(r,o)?r[o]:void 0,e),ka=(e,t,r)=>{if(t.length===0)return r;let[o,...n]=t,i=e,s=Array.isArray(e)?[...e]:{...i};return s[o]=ka(i[o],n,r),s},Iu=(e,t,r,o)=>{let n=e;for(let{path:i}of t??[]){let s=dO(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=ka(n,i,r[a]);}else if(s&&typeof s.__field=="object"&&s.__field!==null)n=ka(n,i,fO(o,s.__field));else throw new Error(`executePrismaPlan: no reference at the recorded location ${i.join(".")}`)}return n};var uO=e=>e?.map?{...e,map:xe(e.map,e.mapName,"toPrisma")}:e,Cn=(e,t)=>ps(e,t,"toPrisma",cO),cO=(e,t)=>{let r={steps:[]},o=Ma(e,uO(t),r),n=(i,s)=>{let a=Cd(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 mO=/^-?\d+(\.\d+)?$/,Bu=e=>typeof e=="string"?mO.test(e)?Number(e):e:typeof e=="object"&&e!==null&&typeof e.toNumber=="function"?e.toNumber():e,La=(e,t)=>e?.kind!=="scalar"||e.type!=="Decimal"?t:Array.isArray(t)?t.map(Bu):Bu(t);var cs=(e,t,r,o,n)=>{let i=`${r.mapName}\0${r.modelName}`;for(let a of t){if(typeof a=="boolean")continue;let l=e.memo?.compiles.get(a)??new Map;e.memo?.compiles.set(a,l);let p=l.get(i);if(p===void 0){let[f]=Uo(a,{target:"toPrisma",map:e.lens,mapName:r.mapName,model:r.modelName}).errors;p=f?f.message:null,l.set(i,p);}if(p!==null)return new A(`${o}: ${p}`,"unsupported_clamp")}if(n)return null;let s=false;for(let a of t)Z(a,l=>{("aggregate"in l||fn(l))&&(s=true);});return s?new A(`${o} needs a counting step (executePrismaPlan), which a relation's where in a select can't run`,"unsupported_clamp"):null},ms=(e,t)=>{try{return t()}catch(r){throw r instanceof A||r instanceof D?r:new A(`${e}: ${r.message}`,"unsupported_clamp")}};var Wu=(e,t)=>e===""?t:t===""?e:`${e}.${t}`,Ge=e=>{let t=new Set,r=n=>{n&&t.add(n);},o=(n,i)=>{let s=Ve(n,i);return "outOfBounds"in s?null:Wu(s.scope,s.path)};return Z(e,(n,i)=>{if(Fe(n))return;for(let l of lr(n))r(k(l)?o(l,i):l);let s=typeof n.field=="string"&&n.field!==""?o(n.field,i):null;if(r(s),!Ae(n))return;let a=s??i[i.length-1];for(let l of ko(n))r(Wu(a,l));return [...i,a]},[""]),[...t]};var _a=(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),p=n(s)?.filter(d=>l===void 0||l.includes(d.value)),f=Yo(e,t,r,s,"groupBy")?t.sourceGroupBys.get(s):void 0;i[s]={...a,...l!==void 0&&{values:l},...p!==void 0&&{options:p},...f!==void 0&&{groupBy:f}};}return i},Uu=(e,t,r,o,n)=>{let{mapName:i,modelName:s}=t,a=T(O(e.lens.maps,i),s),l=_a(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}))}),p={};for(let[m,g]of r.sources)$t(r,m)&&(p[m]=g);let f={};for(let[m,g]of r.sourceLabels)$t(r,m)&&Yo(e,r,t,m,"label")&&(f[m]=g);let d={};for(let[m,g]of r.sourceGroupBys)$t(r,m)&&Yo(e,r,t,m,"groupBy")&&(d[m]=g);let u={};for(let m of r.sourcesFromMapDefaults.keys()){if(!as(e,i,s,m))throw ls(o,i,s,m);Object.hasOwn(p,m)&&(u[m]="mapDefaults");}return {mapName:i,model:s,fields:l,whereClauses:r.whereClauses,sources:p,sourceLabels:f,sourceGroupBys:d,sourceFrom:u}},Ku=e=>{let t=new Map;for(let r of e.sourceValues??[])t.set(`${r.path}|${r.field}`,r.options);return t},Gu=(e,t={})=>Mn(M(e),t),Mn=(e,t={})=>{let r=Ku(t),o={};for(let{path:n,at:i,effect:s}of Wt(e))o[n]=Uu(e,i,s,n,r);return o},zu=(e,t,r={})=>Da(M(e),t,r),Da=(e,t,r={})=>{let o={mapName:e.lens.mapName,modelName:e.lens.model,relPath:[]};if(t!=="")for(let s of dr(e.lens.maps,o,t)){let a=_(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=_(e,o.mapName,o.modelName,o.relPath),i=[e.lens.model,...o.relPath].join(".");return Uu(e,o,n,i,Ku(r))};var gs=(e,t,r,o,n)=>{let i=e.split("."),{hops:s}=Ee(t,{mapName:r,modelName:o,relPath:[]},e),a=s.find((d,u)=>d.isList&&u<i.length-1);if(a)return `${n} cannot traverse to-many relation '${i[s.indexOf(a)]}'`;if(s.length===i.length)return `${n} must end on a scalar column, '${i.at(-1)}' is a relation`;let l=s.at(-1)??{map:r,model:o},p=i[s.length],f=Oe(O(t,l.map),l.model,p);return f?V(f)?`${n} relation '${p}' has no resolvable target`:s.length===i.length-1?null:`${n} segment '${p}' is not a relation`:`${n} segment '${p}' not on model '${l.model}'`},Hu=(e,t,r,o,n,i,s,a)=>{let l=gs(n,e.lens.maps,t,r,i);if(l)throw new A(`${i} '${n}': ${l}`,"invalid_source");let{hops:p}=Ee(e.lens.maps,{mapName:t,modelName:r,relPath:o},n),f=p.slice(0,n.split(".").length-1);for(let d of f){let u=d.relPath.join(".");if(s.has(u))continue;s.add(u);let m=_(e,d.map,d.model,d.relPath);for(let g of m.whereClauses)a.push(Go(g,d.prefix));}},gO=(e,t,r,o,n,i)=>{let s=[],a=new Set;for(let l of n)Hu(e,t,r,o,l,"groupBy",a,s);return i?.includes(".")&&Hu(e,t,r,o,i,"label",a,s),s},kn=(e,t)=>{let r=ye(e,t);return r==null||typeof r=="object"?void 0:String(r)},ys=(e,t)=>{let r=[];for(let o of t){let n=kn(e,o);if(n===void 0)return;r.push(n);}return r},Fa=(e,t)=>JSON.stringify([e??null,t]),yO=(e,t,r,o)=>{let n=Fa(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});},hs=(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"||yO(e,String(a),s,n);},ws=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})}),hO=(e,t,r,o,n)=>{let{hops:i}=ee(n,t,o),s=n.split("."),a=i.at(-1)?.entry.type??o,l=s[i.length];for(let{endpoints:p}of e.bridges??[]){let[f,d]=p;for(let[u,m]of [[f,d],[d,f]])if(u.fieldMap===r&&u.model===a&&Te(m)===l)return [...s.slice(0,i.length),u.on].join(".")}throw new A(`'${n}' crosses no bridge the lens declares on ${a}`,"not_in_lens")},Ss=(e,t,r,o)=>{let n=xe(e,t,"toPrisma");return [...new Set(o.map(i=>cr(i,n,r)?hO(e,n,t,r,i):i))]},wO=(e,t,r,o)=>{if(t.length===0)return [];let n={mapName:e.lens.mapName,modelName:e.lens.model,relPath:[]},{hops:i,end:s}=Ee(e.lens.maps,n,t.join("."));if(!s)throw new A(`source at '${t.join(".")}': its path doesn't resolve on the field maps`,"not_in_lens");let a=[n,...i.map(f=>({mapName:f.map,modelName:f.model}))],l=t.length;for(;l>0&&!r.has(t.slice(0,l).join("."));)l--;let p=l>0?r.get(t.slice(0,l).join("."))??null:null;for(let f=l;f<t.length;f++){let d=E=>{p=E,r.set(t.slice(0,f+1).join("."),E);},u=a[f],m=_(e,u.mapName,u.modelName,t.slice(0,f)).whereClauses,g=p===null?m:[...m,p];if(g.length===0&&!o){d(null);continue}let c=O(e.lens.maps,u.mapName),y=c&&Oe(c,u.modelName,t[f]);if(!y)throw new A(`source at '${t.join(".")}': '${t[f]}' isn't declared on ${u.modelName}`,"not_in_lens");let S=a[f+1],R=Te({fieldMap:u.mapName,model:u.modelName}),b=y.kind==="bridge"?Oe(O(e.lens.maps,S.mapName),S.modelName,R):void 0,w=y.kind==="bridge"?b&&{field:R,entry:b}:c?Zi(c,u.modelName,t[f],y):null;if(!w&&g.length===0){d(null);continue}if(!w)throw new A(`source at '${t.join(".")}': '${t[f]}' on ${u.modelName} declares no inverse, so the clamps above can't be carried down to it`,"unsupported_clamp");let $=K(g);try{let E={field:w.field,operator:"exists"};d(w.entry.isList?{field:w.field,arrayOperator:"any",condition:$}:g.length?K([E,Go($,w.field)]):E);}catch(E){throw E instanceof A?new A(`source at '${t.join(".")}': the clamps above can't be carried down to it \u2014 ${E.message}`,E.code):E}}return p===null?[]:[p]},Ju=e=>br(M(e)),br=(e,t=Mn(e))=>{let r=new Map,o=n=>{let i=r.get(n)??new Map;return r.set(n,i),i};return Object.entries(t).flatMap(([n,i])=>Object.keys(i.sources).map(s=>{let a=O(i.sourceLabels,s),l=O(i.sourceGroupBys,s),p=Object.hasOwn(i.sourceFrom,s),f={mapName:i.mapName,modelName:i.model,relPath:n.split(".").slice(1)},d=_(e,f.mapName,f.modelName,f.relPath),u=(d.sourceWheres.get(s)??[]).map(N=>Ur(N,e,f)),m=gO(e,f.mapName,f.modelName,f.relPath,l??[],a),g=O(i.fields,s)?.values,c=p?d.sourcesFromMapDefaults.get(s):void 0,y=c===void 0?void 0:e.chain[c],R=[...wO(y===void 0?e:{...e,skipClampsOf:y},f.relPath,o(y),y===void 0&&!p),...u,...m,...g?[{field:s,operator:"in",value:[...g]}]:[]],b=K([...i.whereClauses,...R]),w=K([...i.whereClauses,...u,...m,...g?[{field:s,operator:"in",value:[...g]}]:[]]),$=e.lens.bridges?.length?xe(e.lens,f.mapName,"toPrisma"):void 0,E=$?[...Ge(b),...a===void 0?[]:[a],...l??[]].find(N=>cr(N,$,f.modelName)):void 0,W=E!==void 0&&$?K(Zs(b).filter(N=>bt(N,$,f.modelName))):void 0,pe=cs(e,[...i.whereClauses,...R],f,`source '${s}' at '${n}'`,true);if(pe)throw pe;return {path:n,visit:i,field:s,...p&&{from:"mapDefaults"},...a!==void 0&&{label:a},...l!==void 0&&{groupBy:l},where:b,rowWhere:w,...E!==void 0&&{bridged:E},...W!==void 0&&{recheck:W}}}))};var Va=(e,t)=>{for(let r of t){let o=e;for(let n of r.split("."))o=qt(o,n,()=>({}));}return e},bs=(e,t)=>{for(let[r,o]of Object.entries(t))bs(qt(e,r,()=>({})),o);return e},qa=e=>e.whereClauses.flatMap(Ge),Qu=(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??[],...Ge(o.rowWhere)];r.set(n,[...r.get(n)??[],...o.bridged===void 0?i:Ss(e.lens,o.visit.mapName,o.visit.model,i)]);}return r},Zu=(e,t)=>e.get(t.relPath.join("."))??[],SO=(e,t,r)=>Va(bs({},r??{}),qa(_(e,t.mapName,t.modelName,t.relPath))),Yu=e=>({mapName:e.lens.mapName,modelName:e.lens.model,relPath:[]}),Ba=(e,t,r)=>({...r,relPath:[...e.relPath,t]}),bO=(e,t,r,o)=>{if(!r.whereClauses.length)return;let n=K(r.whereClauses),i=cs(e,r.whereClauses,t,`toLensSelect: the clamp on '${t.relPath.join(".")}'`,false);if(i)throw i;if(e.inspect)return;let s=ms(`toLensSelect: the clamp on '${t.relPath.join(".")}'`,()=>Cn(n,{...o,map:e.lens,mapName:t.mapName,model:t.modelName})),{where:a}=s.steps[0];return Object.keys(a).length?a:void 0},RO=(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&&!V(l)?a:void 0},s=e?Zi(e,t,r,o):null;return i(o.toFields?.[0])??i(s?.entry.fromFields?.[0])??i("id")},Xu=(e,t,r,o,n,i)=>{let s=T(O(e.lens.maps,t.mapName),t.modelName)?.fields??{},a=_(e,t.mapName,t.modelName,t.relPath),l=r==="paths"?o:Va(bs({},o),[...qa(a),...Zu(i,t)]),p={};for(let[f,d]of Object.entries(s)){let u=r!=="paths"&&$t(a,f),m=O(l,f);if(!u&&m===void 0||d.kind==="bridge")continue;if(d.kind!=="object"){p[f]=true;continue}let g=u?"declared":"paths";if(g==="paths"&&m===void 0)continue;let c=Ba(t,f,{mapName:t.mapName,modelName:d.type}),y=Xu(e,c,g,m??{},n,i),S=d.isList&&g!=="paths"&&m===void 0?bO(e,c,_(e,c.mapName,c.modelName,c.relPath),n):void 0,R=Object.keys(y).length?void 0:RO(O(e.lens.maps,t.mapName),t.modelName,f,d),b=R===void 0?y:{[R]:true};Object.keys(b).length&&(p[f]={select:b,...S&&{where:S}});}return p},ec=(e,t={})=>Wa(M(e),t),Wa=(e,t={},r=br(e))=>{let o=Xu(e,Yu(e),"declared",{},t,Qu(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&&!V(n)&&(o.id=true);}return {select:o}},ja=(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,Ia=(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),p=l?Ze(l,t.mapName):null;n[s]=p?ja(r[s],f=>Ia(e,Ba(t,s,p),f,a)):La(l,r[s]);}return n},tc=(e,t,r,o,n,i,s)=>{let a=_(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??{},p=n?Va(bs({},o),[...qa(a),...Zu(s,t)]):{},f={};for(let[d,u]of Object.entries(l)){if(!Object.hasOwn(r,d))continue;let m=O(p,d),g=Ze(u,t.mapName);if(!g){($t(a,d)||m!==void 0)&&(f[d]=La(u,r[d]));continue}let c=Ba(t,d,g);if($t(a,d)){let y=!Array.isArray(r[d])||m!==void 0;f[d]=ja(r[d],S=>tc(e,c,S,m??{},n,i,s)??(n&&y?Ia(e,c,S,SO(e,c,m)):null));}else m!==void 0&&(f[d]=ja(r[d],y=>Ia(e,c,y,m)));}return f},rc=(e,t,{keepClampColumns:r=false,...o}={})=>{let n=M(e),i=Yu(n),s=r?Qu(n,br(n)):new Map;return t.flatMap(a=>{let l=tc(n,i,a,{},r,o,s);return l===null?[]:[l]})};var OO="materializeSources needs fetched or keepClampColumns rows, not viewer rows",Ua=(e,t,r)=>new D(`${e}: a row at '${t}' ${r}${r.includes(":")?" \u2014 rows across a bridge hold the far side inline under its bridge field":""}`),Ln=(e,t,r,o,n,i=OO)=>{for(let s of n){let a=[r];for(let{index:l,field:p,entry:f,next:d}of dr(e.lens.maps,t,s)){if(!f)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,p))throw Ua(i,o,`lacks '${u}', which a read needs`);let c=g[p];if(d&&c==null&&f.fromFields?.some(y=>{let S=g[y];return S!=null}))throw Ua(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)!==(f.isList===true))throw Ua(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,...Ee(e.lens.maps,r,t.split(".").slice(1).join(".")).hops.map(o=>({mapName:o.map,modelName:o.model,relPath:o.relPath}))]},xO=(e,t,r,o)=>{let n=r.split(".").slice(1),i=Ka(e,r),s=(l,p)=>{let f=i[l],d=_(e,f.mapName,f.modelName,f.relPath).whereClauses,u=K(d),m=d.flatMap(Ge),g=[e.lens.model,...n.slice(0,l)].join(".");return p.filter(c=>(Ln(e,f,c,g,m),ue(u,c,o)===true))},a=s(0,t);for(let[l,p]of n.entries()){let f=[],d=[e.lens.model,...n.slice(0,l)].join(".");for(let u of a){Ln(e,i[l],u,d,[p]);let m=ye(u,p);Array.isArray(m)?f.push(...m):m!=null&&f.push(m);}a=s(l+1,f);}return {rows:a,visit:i[i.length-1]}},oc=(e,t,r)=>{let o=M(e);return br(o).map(({path:n,visit:i,field:s,from:a,label:l,groupBy:p,rowWhere:f})=>{if(a)throw new D(`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,...Ge(f),...l===void 0?[]:[l],...p??[]],u=new Map,m=xO(o,t,n,r);for(let g of m.rows)Ln(o,m.visit,g,n,d),ue(f,g,r)===true&&hs(u,g,s,l===void 0?void 0:kn(g,l),p===void 0?void 0:ys(g,p));return {path:n,mapName:i.mapName,model:i.model,field:s,options:ws(u)}})};var Rs={value:"value",query:"query"},nc=(e,t,r={})=>{let{rowShape:o="prisma",lens:n,order:i=Rs.value,...s}=r,a=o==="sql",{recheck:l}=e,p=g=>false,f=g=>true;if(l!==void 0){if(n===void 0)throw new D(`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=Ka(g,e.path).at(-1);if(!c||c.mapName!==e.mapName||c.modelName!==e.model)throw new D(`materializeSourceQuery: the lens doesn't reach ${e.mapName}:${e.model} at '${e.path}' \u2014 pass the lens the query was compiled from`);let y=xe(g.lens,e.mapName,"toPrisma");p=b=>y!==void 0&&cr(b,y,e.model);let S=[...Ge(l),...e.label!==void 0&&p(e.label)?[e.label]:[],...(e.groupBy??[]).filter(p)],R="materializeSourceQuery needs candidate rows holding the far side of each bridge the source reads";f=b=>(Ln(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(".")&&!p(e.label)?g.__label:kn(g,e.label),u=e.groupBy?.map((g,c)=>a&&!p(g)?`__group_${c}`:g),m=new Map;for(let g of t)f(g)&&hs(m,g,e.field,d(g),u===void 0?void 0:ys(g,u));return {path:e.path,mapName:e.mapName,model:e.model,field:e.field,options:i===Rs.query?[...m.values()]:ws(m)}};var EO=(e,t)=>`${e}::${t}`,$O=(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);},ic=(e,t={})=>Ga(M(e),t),Ga=(e,t={})=>{let{lens:r}=e,o=new Map;for(let l of t.sourceValues??[]){let p=`${l.mapName}::${l.model}::${l.field}`,f=o.get(p)??new Map;for(let d of l.options)f.set(Fa(d.groups,d.value),d);o.set(p,f);}let n=new Map;for(let{at:l,effect:p}of Wt(e)){let{mapName:f,modelName:d}=l,u=T(O(r.maps,f),d);if(!u)continue;let m=EO(f,d),g=n.get(m);g||(g={mapName:f,modelName:d,fields:new Map},n.set(m,g));let c=_a(e,p,l,u,y=>{let S=o.get(`${f}::${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 A(`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");$O(g.fields,y,S);}}let i={};for(let{mapName:l,modelName:p,fields:f}of n.values()){let d=O(i,l);d||(d={models:{}},i[l]=d);let u={},m=new Map;for(let[g,c]of f)if(u[g]=c.options===void 0&&c.values?{...c,options:c.values.map(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[p]={...T(O(r.maps,l),p),fields:u};for(let[g,c]of m)d.enums??={},d.enums[g]=[...c];}let s=r.bridges?.filter(l=>{let[p,f]=l.endpoints,d=Oe(O(i,p.fieldMap),p.model,Te(f)),u=Oe(O(i,f.fieldMap),f.model,Te(p));return d!==void 0||u!==void 0}),a={maps:i};return s&&s.length>0&&(a.bridges=s),{...a,mapName:r.mapName,model:r.model}};var sc=(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:ya(s).message});return}let{escaping:a}=i;if(a!==null){n.push({path:o,code:"scope_out_of_bounds",message:ha(a).message});return}let l=new Set,p={...t,clamp:t.chain.length===0};for(let{mapName:f,modelName:d,relPath:u}of r)for(let m of En(e,p,f,d,u)){let g=`'${m.path}' ${m.message}`;l.has(g)||(l.add(g),n.push({path:o,code:m.code,message:g}));}},PO=(e,t,r,o,n,i)=>{let s={...r,chain:[...r.chain,t]},a=new Set;for(let l of o){let p=_(s,l.mapName,l.modelName,l.relPath);for(let[f,d]of Object.entries(e.sources??{})){let u=wr(d);for(let m of ["label","groupBy"]){if(u[m]===void 0||a.has(`${f}|${m}`))continue;let g=m==="label"?u.label:vn(u.groupBy),c=m==="label"?p.sourceLabels.get(f):p.sourceGroupBys.get(f);if(JSON.stringify(g)!==JSON.stringify(c))continue;let S=(typeof c=="string"?[c]:c??[]).map(R=>An(s,l,R)).find(R=>R!==null);if(S){a.add(`${f}|${m}`),i.push({path:`${n}.sources.${f}`,code:"invalid_source",message:`${m} '${String(u[m])}' crosses '${S}', a relation the lens does not show there (not turned on, or omitted)`});continue}Yo(s,p,l,f,m)||(a.add(`${f}|${m}`),i.push({path:`${n}.sources.${f}`,code:"invalid_source",message:`${m} '${String(u[m])}' reads a column hidden by another layer`}));}}}},vO=(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,p,f,d,u=false)=>{let m=e.omits?.some(c=>{let y=O(i,c);return y===void 0||!V(y)});e.picks&&m&&p.push({path:`${l}`,code:"conflicting_selection",message:"cannot specify both picks and omits of a column"});for(let c of ["picks","omits"])for(let y of e[c]??[]){let S=O(i,y);if(!S){p.push({path:`${l}.${c}`,code:"not_in_lens",message:`field '${y}' not on model`});continue}let R=V(S);if(R&&c==="picks"){p.push({path:`${l}.picks`,code:"wrong_kind",message:`'${y}' is a relation: picks names columns; turn a relation on with \`relations\``});continue}let b=vO(y,R,t,r);b&&p.push({path:`${l}.${c}`,code:"not_visible",message:`'${y}' ${b}`});}let g=(c,y,S)=>{let R=O(i,y);if(!R){p.push({path:`${l}.${c}`,code:"not_in_lens",message:`field '${y}' not on model`});return}if(R.kind!=="enum"){p.push({path:`${l}.${c}`,code:"wrong_kind",message:`field '${y}' is not an enum field`});return}let b=jr(R,a);for(let w of S)b&&!b.includes(w)&&p.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);sc(e.where,f,d,`${l}.where`,p);for(let[c,y]of Object.entries(e.sources??{})){let S=O(i,c);if(!S){p.push({path:`${l}.sources`,code:"not_in_lens",message:`field '${c}' not on model`});continue}if(V(S)){p.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(y);}catch(E){if(!(E instanceof A))throw E;p.push({path:`${l}.sources.${c}`,code:E.code,message:E.message});continue}let b=R.from;if(b!==void 0){let E=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;E&&p.push({path:`${l}.sources.${c}`,code:"invalid_source",message:E});}let w=R.label?.includes(".")?R.label:void 0;if(R.label!==void 0)if(w){let E=gs(w,o,n,s,"label");E&&p.push({path:`${l}.sources.${c}`,code:"invalid_source",message:`${E}`});}else {let E=O(i,R.label);E?V(E)&&p.push({path:`${l}.sources.${c}`,code:"wrong_kind",message:`label '${R.label}' is a relation, not a column`}):p.push({path:`${l}.sources.${c}`,code:"not_in_lens",message:`label column '${R.label}' not on model`});}let $=vn(R.groupBy);if($!==void 0||w!==void 0){let E=/^__(group(_\d+)?|label)$/;(E.test(c)||R.label!==void 0&&E.test(R.label))&&p.push({path:`${l}.sources.${c}`,code:"invalid_source",message:"'__group*' / '__label' names are reserved on grouped or path-labeled sources (sql column aliases)"});}if($!==void 0){for(let W of $){let pe=gs(W,o,n,s,"groupBy");pe&&p.push({path:`${l}.sources.${c}`,code:"invalid_source",message:`${pe}`});}let E=JSON.stringify($);for(let W of t){let pe=O(W.sources,c);if(pe===void 0)continue;let N=vn(wr(pe).groupBy);N!==void 0&&JSON.stringify(N)!==E&&p.push({path:`${l}.sources.${c}`,code:"not_visible",message:`groupBy [${$}] conflicts with an ancestor layer's groupBy [${N}]`});}}sc(R.where,f,d,`${l}.sources.${c}`,p);}},AO=(e,t,r,o,n)=>{for(let[i,s]of Object.entries(t)){let a=O(r,i);if(!a){n.push({path:`mapDefaults.${e}.enums.${i}`,code:"not_in_lens",message:"enum not in registry"});continue}let l=null,p=new Set;for(let d of o){let u=d[i];if(u&&(u.picks&&(l=ss(l,u.picks)),u.omits))for(let m of u.omits)p.add(m);}let f=d=>!(p.has(d)||l&&!l.has(d));for(let d of s.picks??[])a.includes(d)?f(d)||n.push({path:`mapDefaults.${e}.enums.${i}.picks`,code:"not_visible",message:`'${d}' not visible from ancestors`}):n.push({path:`mapDefaults.${e}.enums.${i}.picks`,code:"value_not_allowed",message:`'${d}' not a known value`});for(let d of s.omits??[])a.includes(d)?f(d)||n.push({path:`mapDefaults.${e}.enums.${i}.omits`,code:"not_visible",message:`'${d}' already excluded by ancestors`}):n.push({path:`mapDefaults.${e}.enums.${i}.omits`,code:"value_not_allowed",message:`'${d}' not a known value`});}},TO=(e,t,r,o,n,i,s)=>{let a=_(t,r.mapName,r.modelName,r.relPath);for(let l of ["enumPicks","enumOmits"])for(let[p,f]of Object.entries(e[l]??{})){let d=O(o,p);if(d?.kind!=="enum")continue;let u=jr(d,n)??[],m=ns(a,p)??u;for(let g of f)u.includes(g)&&!m.includes(g)&&s.push({path:`${i}.${l}.${p}`,code:"not_visible",message:`'${g}' is not visible (not allowed by the inherited enum narrowing)`});}},ac=(e,t,r,o)=>e.map(n=>({mapName:o,modelName:r,relPath:[...n.relPath,t]})),za=(e,t,r,o,n,i,s,a,l,p,f)=>{let d=O(n,i),u=T(d,s);if(!u)return;let m=o.length===0,g={...p,chain:[...p.chain,r],unvetted:true},c=f.isDefault?void 0:O(O(r.mapDefaults,i)?.models,s),S=[...o.map(w=>O(O(w.mapDefaults,i)?.models,s)).filter(w=>w!==void 0),...t],R={mapName:i,modelName:s,relPath:ga};NO(e,S,c,n,i,u.fields,s,d?.enums,a,l,p,m?f.isDefault?[R,...f.parent]:f.parent:f.composed,f.isDefault),TO(e,f.isDefault?p:{...p,chain:[...p.chain,{parent:r.parent,mapDefaults:r.mapDefaults}],unvetted:true},f.isDefault?R:f.parent[0]??R,u.fields,d?.enums,a,l),PO(e,r,p,f.composed,a,l);let b={...p,chain:[...p.chain,r]};if(!f.isDefault)for(let[w,$]of Object.entries(e.sources??{}))!Nn($)||$.from!=="mapDefaults"||as(b,i,s,w)||l.push({path:`${a}.sources.${w}`,code:"invalid_source",message:ls([tt(r).model,...f.parent[0]?.relPath??[]].join("."),i,s,w).message});for(let[w,$]of Object.entries(e.relations??{})){let E=O(u.fields,w);if(!E){l.push({path:`${a}.relations`,code:"not_in_lens",message:`'${w}' not on model`});continue}if(!V(E)){l.push({path:`${a}.relations`,code:"wrong_kind",message:`'${w}' is not a relation (kind=${E.kind})`});continue}let W=I=>_(p,I.mapName,I.modelName,I.relPath).relations.has(w),pe=I=>_(g,I.mapName,I.modelName,I.relPath).relations.has(w);if(!m&&!(f.isDefault?f.parent.some(W):f.parent.every(W))){l.push({path:`${a}.relations`,code:"not_visible",message:`'${w}' is not shown by the parent${f.isDefault?` wherever ${s} is visited`:""}: only the first narrowing over the base lens turns a relation on`});continue}let N=Ze(E,i);if(!N)continue;if(!T(O(n,N.mapName),N.modelName)){l.push({path:`${a}.relations.${w}`,code:"not_in_lens",message:"target model not found in lens"});continue}let j=t.map(I=>O(I.relations,w)).filter(I=>I!==void 0);za($,j,r,o,n,N.mapName,N.modelName,`${a}.relations.${w}`,l,p,{parent:ac(f.isDefault?f.parent.filter(W):f.parent,w,N.modelName,N.mapName),composed:ac(f.composed.filter(pe),w,N.modelName,N.mapName),isDefault:f.isDefault});}},Ha=e=>{let t=[];try{CO(e,t);}catch(r){if(!(r instanceof A))throw r;t.some(o=>o.code===r.code)||t.push({path:"",code:r.code,message:r.message});}return hr(t)},CO=(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 A))throw m;s.push(m);}},l=null,p=()=>(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(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(E=>O(O(E.mapDefaults,u)?.models,y)).filter(E=>E!==void 0),w=E=>E.map(({at:W})=>W).filter(W=>W.mapName===u&&W.modelName===y),$=[];a(()=>{$=w(p());}),a(()=>za(S,b,e,o,r.maps,u,y,`mapDefaults.${u}.models.${y}`,t,n,{parent:w(i),composed:$,isDefault:!0}));}m.enums&&AO(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(()=>za(e.root,c,e,o,r.maps,u,m,"root",t,n,{parent:[y],composed:[y],isDefault:!1}));}}for(let u of yu(e))t.push({path:"bindings",code:"invalid_binding",message:u});let f={...n,chain:[...n.chain,e],inspect:true},d;a(()=>{d=br(f,Mn(f));}),a(()=>Ga(f)),a(()=>Wa(f,{},d)),a(()=>{let u=new Map;for(let{at:m}of p()){u.set(m.relPath.join("."),m),a(()=>Da(f,m.relPath.join(".")));let g=m.relPath.at(-1),c=u.get(m.relPath.slice(0,-1).join("."));if(g===void 0||!c)continue;let S=Oe(O(r.maps,c.mapName),c.modelName,g)?.isList?{field:g,arrayOperator:"any",condition:!0}:{field:g,operator:"exists"};a(()=>Ur(S,f,c));}});for(let u of s)t.some(m=>u.message.includes(m.message))||t.push({path:"",code:u.code,message:u.message});},Os=e=>On(Ha(e),"validateNarrowing");function lc(e,{by:t="path",...r}={}){return t==="model"?ic(e,r):Gu(e,r)}var pc=(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(V(a.entry))return {ok:false,reason:"relation"};if(s.some(d=>d!==a&&d.entry.isList))return {ok:false,reason:"list"};let p=(d,u)=>u!==null&&typeof u=="object"&&_(n,d.mapName,d.model,d.relPath).whereClauses.every(m=>ue(m,u,o)===true),f=p(s[0],t)?t:null;for(let[d,u]of s.entries()){if(f===null||typeof f!="object")return {ok:true,value:null};let m=O(f,u.field);if(u===a)return {ok:true,value:l.length?ye(m,l.join(".")):m};f=p(s[d+1],m)?m:null;}return {ok:true,value:null}};var MO=e=>"maps"in e,fc=(e,t)=>{let r=i=>{let s=O(t,i);if(!s)throw new Error(`composeLens: no stored lens '${i}'`);return s},o=[...r(e).parents,e];if(new Set(o).size!==o.length)throw new Error(`composeLens: '${e}' lists a layer twice in its parents`);let n=null;for(let[i,s]of o.entries()){let a=r(s);if(Object.hasOwn(a,"parent"))throw new Error(`composeLens: '${s}' carries a parent; a layer composes only through \`parents\``);let{id:l,parents:p,...f}=a;if(p.join("\0")!==o.slice(0,i).join("\0"))throw new Error(`composeLens: '${s}' composes with [${p.join(", ")}], not [${o.slice(0,i).join(", ")}] as '${e}' lists`);if(MO(a)!==(i===0))throw new Error(i===0?`composeLens: '${s}' is not a base lens, so it can't head '${e}''s parents`:`composeLens: '${s}' is a base lens, so it can only head a chain`);if(n===null){n=f;continue}let u={parent:n,...f};Os(u),n=u;}return n},dc=(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 uc=e=>e instanceof Date?e.toISOString():Array.isArray(e)&&e.some(t=>t instanceof Date)?e.map(uc):e,L=(e,t)=>(e.params.push(uc(t)),`$${++e.paramIndex}`);var Ut=(e,t,{jsonb:r=false}={})=>{let o=()=>({sql:Ea(e,void 0,r),shape:e.includes(".")?"json-path":"unknown"});if(!t.map||!t.currentModel||!t.currentAlias)return o();let n=ee(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(f=>f.entry.isList);if(i)throw No(e,i);let s=t.currentAlias;for(let f of n.hops){let d=cc(t,s,f);if(!d)return o();s=d;}let a=Ir(n);if(n.kind==="direct"&&n.entry.kind==="object"){let f={field:n.column,entry:n.entry,from:n.model},d=gr(t.map,n.model,n.entry),u=cc(t,s,f);return !d||!u?o():{sql:`${te(u)}.${te(d[0].there)}`,shape:a}}let l=n.kind==="json-path"?[n.column,...n.jsonPath]:[n.column],p=Ea(l.join("."),s,r);return {sql:a==="json"&&!r?`NULLIF(${p}, 'null'::jsonb)`:p,shape:a}},vt=(e,t,r)=>Ut(e,t,r).sql,cc=(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=kO(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},kO=(e,t,r,o,n)=>{let i=o.type,s=T(e,i)?.dbName??i,a=gr(e,t,o);if(!a)return null;let l=a.map(({here:p,there:f})=>`${te(n)}.${te(f)} = ${te(r)}.${te(p)}`).join(" AND ");return `LEFT JOIN ${te(s)} AS ${te(n)} ON ${l}`};var Kt={type:"value",value:null},Gt=e=>e.type==="value"&&(e.value===null||e.value===void 0),LO=(e,t)=>{let r=k(e)??{depth:1,path:e};if(r.depth>1)throw new Error(an(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}},$e=(e,t)=>mn(e,{value:r=>({type:"value",value:r}),path:r=>LO(r,t),bind:(r,o)=>({type:"value",value:Fi(r,o,"toSql")})}),zr=e=>t=>{let r=$e(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 _O={lt:"<",lte:"<=",gt:">",gte:">=",equals:"="},Xo=(e,t)=>{let r=er(e,t);return r?{symbol:_O[r],negated:q.includes(e)}:void 0},mc=(e,t)=>e.type==="column"?e.sql:L(t,e.value),Me=(e,t)=>`(${t} OR ${e} IS NULL)`,Nt=(e,t,r=true)=>t&&r?`${e} IS NULL`:"FALSE",xs=(e,t,r,o,n)=>{if(Gt(r))return Nt(e,o);let i=`${e} ${t} ${mc(r,n)}`;return o?Me(e,i):i},_n=(e,t,r,o,n=true)=>{if(!t||t.some(Gt))return Nt(e,r,n);let[i,s]=t.map(d=>mc(d,o)),a=t.some(d=>d.type==="column"),l=a?"SYMMETRIC ":"";if(!r)return `${e} BETWEEN ${l}${i} AND ${s}`;let p=`${e} NOT BETWEEN ${l}${i} AND ${s}`,f=a?`(${p} AND ${i} IS NOT NULL AND ${s} IS NOT NULL)`:p;return n?Me(e,f):f};var hc=()=>{let e=Lt.get("sql.dialect");if(!vf(e))throw new D(`toWhereSql: sql.dialect '${String(e)}' is not a SQL dialect \u2014 ${Object.values(wo).join(", ")} are`);return e},z=e=>new Error(`toWhereSql: ${e} has no SQL form here \u2014 it writes ${Is.join(", ")}, all and any, and ${qs.join(", ")} over a to-many relation.`),wc=(e,t)=>Ja(e,t,""),gc=(e,t,r,o)=>{let n=Object.hasOwn(e,o)?e[o]:void 0;if(typeof n!="string"||n==="")throw new D(`toWhereSql: no ${r} for '${o}' in \`${t}\``);return n},Ja=(e,t,r,o=()=>[])=>{hc();let{columns:n,tables:i={},map:s,mapName:a,model:l}=t??{};if(typeof n!="object"||n===null)throw new D("toWhereSql: `columns` maps each field path to its SQL");if(typeof i!="object"||i===null)throw new D("toWhereSql: `tables` maps each to-many relation path to its table");if(!s||!l)throw new D("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 p=xe(s,a,"toWhereSql");if(!T(p,l))throw new D(`toWhereSql: the map has no model '${l}'`);return Dn(e,{map:p,model:l,column:f=>gc(n,"columns","column",`${r}${f}`),table:f=>gc(i,"tables","table",`${r}${f}`),clamps:o})},Dn=(e,t)=>{if(typeof e=="boolean")return e?"TRUE":"FALSE";let r=e;switch(ne(r)){case "all":{let o=r.all;return o.length?`(${o.map(n=>Dn(n,t)).join(" AND ")})`:"TRUE"}case "any":{let o=r.any;return o.length?`(${o.map(n=>Dn(n,t)).join(" OR ")})`:"FALSE"}case "field":return FO(e,t);case "if":throw z("if / then / else");case "array":return DO(e,t);case "aggregate":throw z("aggregate");case "date":throw z(`dateOperator '${String(r.dateOperator)}'`);default:throw z("a condition that is not exactly one node kind")}},DO=(e,t)=>{let{arrayOperator:r,field:o}=e;if(!qs.includes(r))throw z(`arrayOperator '${r}'`);if(Re(e))throw z(`a window (filter / orderBy / take / skip) on '${o}'`);if(!o)throw z(`the fieldless arrayOperator '${r}'`);let n=ee(o,t.map,t.model);if(n.kind==="fallback")throw new Error(`toWhereSql: '${o}' is not a field the map declares on ${t.model}`);if(n.kind==="bridge")throw z(`'${o}', which crosses a bridge`);if(n.hops.length)throw z(`arrayOperator '${r}' on '${o}', behind the relation '${n.hops[0].prefix}'`);if(n.kind!=="direct"||Ir(n)!=="relations")throw z(`arrayOperator '${r}' on '${o}', which is not a to-many relation`);let i=gr(t.map,n.model,n.entry);if(!i)throw z(`'${o}', whose relation keys the map does not declare`);if($i.includes(r)&&e.condition===void 0)throw De(r);let s={map:t.map,model:n.entry.type,column:f=>t.column(`${o}.${f}`),table:f=>t.table(`${o}.${f}`),clamps:f=>t.clamps(`${o}.${f}`)},a=[...i.map(({here:f,there:d})=>`${s.column(d)} = ${t.column(f)}`),...t.clamps(o).map(({where:f,clamps:d})=>`(${Dn(f,{...s,clamps:d})})`)],l=f=>`(SELECT 1 FROM ${t.table(o)} WHERE ${[...a,...f?[f]:[]].join(" AND ")})`,p=()=>`(${Dn(e.condition,s)})`;switch(r){case x.any:return `EXISTS ${l(p())}`;case x.none:return `NOT EXISTS ${l(p())}`;case x.all:return `NOT EXISTS ${l(`${p()} IS NOT TRUE`)}`;case x.empty:return `NOT EXISTS ${l()}`;default:return `EXISTS ${l()}`}},FO=(e,t)=>{if(!Is.includes(e.operator))throw z(`operator '${e.operator}'`);if(e.bind!==void 0)throw z(`bind '${e.bind}' on '${e.field}'`);if(e.path!==void 0)throw z(`comparing '${e.field}' with the column '${e.path}'`);if(e.offset!==void 0)throw z(`an offset on '${e.field}'`);if(e.coerceType!==void 0)throw z(`coerceType on '${e.field}'`);if(se(e.caseInsensitive))throw z(`a case-insensitive comparison on '${e.field}'`);if(k(e.field))throw z(`the scoped field '${e.field}'`);let r=ee(e.field,t.map,t.model),o=jO(e,r,t),[n]=r.kind==="direct"?rs(e,Ye(r.entry)):[];if(n)throw new Error(`toWhereSql: ${n.message}`);if(e.operator===h.exists)return `${o} IS NOT NULL`;if(e.operator===h.notExists)return `${o} IS NULL`;if(e.value===void 0)throw new Error("No value, path or bind specified");let i=Ho(e,e.value,r,"toWhereSql",()=>Je);if(he(e,i))return Nt(o,q.includes(e.operator));let s=a=>IO(a,e.field);switch(e.operator){case h.equals:return i===null?`${o} IS NULL`:`${o} = ${s(i)}`;case h.notEquals:return i===null?`${o} IS NOT NULL`:Me(o,`${o} <> ${s(i)}`);case h.in:{let{values:a,hasNull:l}=We(yc(e,i));if(!a.length)return l?`${o} IS NULL`:"FALSE";let p=`${o} IN (${a.map(s).join(", ")})`;return l?Me(o,p):p}default:{let{values:a,hasNull:l}=We(yc(e,i));if(!a.length)return l?`${o} IS NOT NULL`:"TRUE";let p=`${o} NOT IN (${a.map(s).join(", ")})`;return l?`(${p} AND ${o} IS NOT NULL)`:Me(o,p)}}},jO=(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 z(`'${e.field}', which crosses a bridge`);let o=t.hops.find(s=>s.entry.isList);if(o)throw No(e.field,o);let n=Ir(t),i=Vt(e);if(n==="relation"&&t.kind==="direct"){if(!i)throw nr(e.field);let s=gr(r.map,t.model,t.entry);if(!s)throw z(`'${e.field}', whose relation keys the map does not declare`);return r.column(`${e.field}.${s[0].there}`)}if(n==="relations")throw z(`the list '${e.field}'`);if(n==="json"||n==="json-path")throw z(`the Json value '${e.field}'`);if(i)return r.column(e.field);if(n==="instant")throw z(`the date '${e.field}'`);if(n==="list")throw z(`the list '${e.field}'`);return r.column(e.field)},yc=(e,t)=>{if(!Array.isArray(t))throw new Error(`toWhereSql: '${e.operator}' on '${e.field}' takes a list of values`);return t},IO=(e,t)=>{if(typeof e=="string"){let r=e.replace(/'/g,"''");return `'${hc()===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 z(`the value ${e instanceof Date?"a Date":JSON.stringify(e)} for '${t}'`)};var VO=(e,t,r)=>{Z(r,(o,n)=>{if(typeof o.field!="string")return;let i=An(e,n,o.field);if(i!==null)throw new Error(`toLensWhereSql: '${o.field}' at ${n.relPath.length?`'${n.relPath.join(".")}'`:"the root"} crosses '${i}', 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`);return Ae(o)?Ee(e.lens.maps,n,o.field).end??false:void 0},t);},bc=(e,t,r)=>o=>{let{end:n}=Ee(e.lens.maps,t,o);if(!n)return [];let i=_(e,n.mapName,n.modelName,n.relPath);return [...i.pathWheres,...i.modelWheres].filter(s=>s.layer<r).map(s=>({where:s.where,clamps:bc(e,n,s.layer)}))},Sc=(e,t,r,o,n)=>{let i=r.map(({where:s,layer:a})=>Ja(s,o,n,bc(e,t,a)));return i.length===1?i[0]:`(${i.join(" AND ")})`},Rc=(e,{columns:t,tables:r})=>{let o=M(e),n={root:null,relations:{},mapDefaults:{}};for(let{at:i,effect:s}of Wt(o)){let a={columns:t,tables:r,map:o.lens,mapName:i.mapName,model:i.modelName};for(let{where:l}of [...s.pathWheres,...s.modelWheres])VO(o,i,l);if(s.pathWheres.length){let l=i.relPath.join("."),p=Sc(o,i,s.pathWheres,a,l?`${l}.`:"");l?n.relations[l]=p:n.root=p;}if(s.modelWheres.length){let l=qt(n.mapDefaults,i.mapName,()=>({models:{}})),p=Sc(o,i,s.modelWheres,a,`${i.modelName}.`),f=O(l.models,i.modelName);if(f!==void 0&&f!==p)throw new Error(`toLensWhereSql: the default where of ${i.modelName} reads a to-many relation whose clamps differ between the paths that reach ${i.modelName} \u2014 a model default compiles to one predicate for every path`);l.models[i.modelName]=p;}}return n};var Oc=e=>Array.isArray(e)?e.some(Oc):typeof e=="object"&&e!==null,xc=(e,t,r,o)=>{let n=`NULLIF(${t}, 'null'::jsonb)`,i=`jsonb_typeof(${n})`,s=`(${n} #>> '{}')`,a=b=>`${L(o,JSON.stringify(b))}::jsonb`,l=se(e.caseInsensitive),p=b=>l?`LOWER(${b})`:b,f=q.includes(e.operator),d=b=>Me(n,`NOT (${b})`);if(he(e,r))return Nt(n,f);let u=ki(e.operator,r);if(u)throw u;let m=b=>{if(Oc(b))throw F("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(${L(o,b)}))`:l&&Array.isArray(b)?`(${i} = 'array' AND LOWER(${n}::text)::jsonb = ${m(b)})`:`${n} = ${a(b)}`,c=b=>`(${i} = 'string' AND ${p(s)} LIKE ${p(L(o,b))})`,y=b=>{let w=$=>`(CASE WHEN ${i} = 'array' THEN EXISTS (SELECT 1 FROM jsonb_array_elements(${n}) AS e WHERE ${$}) ELSE FALSE END)`;return l&&typeof b=="string"?w(`jsonb_typeof(e) = 'string' AND LOWER(e #>> '{}') = LOWER(${L(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(`%${we(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}=We(r),$=b.length?`(${b.map(g).join(" OR ")})`:"FALSE";return e.operator===h.in?w?`(${$} OR ${n} IS NULL)`:$:w?`(NOT ${$} AND ${n} IS NOT NULL)`:d($)}case h.between:case h.notBetween:{let[b,w]=r,$=`(${i} = jsonb_typeof(${a(b)}) AND ${n} BETWEEN ${a(b)} AND ${a(w)})`;return e.operator===h.between?$:d($)}case h.contains:return S(r);case h.notContains:return d(S(r));case h.startsWith:return c(`${we(String(r))}%`);case h.endsWith:return c(`%${we(String(r))}`);case h.notStartsWith:return d(c(`${we(String(r))}%`));case h.notEndsWith:return d(c(`%${we(String(r))}`));case h.matches:case h.notMatches:{let{source:b,caseInsensitive:w}=fr(r),$=`(${i} = 'string' AND ${s} ~${w?"*":""} ${L(o,wn(b))})`;return e.operator===h.matches?$:d($)}}let R=Xo(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 Ec=e=>typeof e=="object"&&Tr(e)!==null,Fn=({sql:e,shape:t},r)=>{if(t!=="json-path"&&t!=="text")return `to_timestamp(EXTRACT(EPOCH FROM ${e}))`;let o=L(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)`},Es=e=>Object.values(e).some(Ec),BO=(e,t,r)=>{let o=Nr(r),n=o?"int":"double precision";if(typeof e=="number"||!Ec(e)){let a=ta(e,zr(t),r);return `${L(t,a)}::${n}`}let i=$e(e,t).sql;return `(CASE WHEN ${o?`${i} >= 0 AND ${i} = trunc(${i})`:`${i} >= 0`} THEN ${i} END)::${n}`},WO=(e,t)=>`make_interval(${zf.flatMap(o=>{let n=Object.keys(e).filter(i=>e[i]!==void 0&&or[i].interval===o).map(i=>{let s=BO(e[i],t,i),{factor:a}=or[i];return a===1?s:`${a} * ${s}`});return n.length?[`${o} => ${n.join(" + ")}`]:[]}).join(", ")})`,jn=(e,t,r,o)=>{let n=ot(o).timeZone;if(e.type==="value"&&!Es(t)){let l=Mr(t,zr(o));return e.value===null||e.value===void 0||l===null?Kt:{type:"value",value:sr(wt__default.default(e.value),l,r,n).toDate()}}let i=e.type==="column"?e.computed?e.sql:Fn(e,o):`${L(o,e.value??null)}::timestamptz`,s=L(o,n);return {type:"column",computed:true,sql:`(((${i} AT TIME ZONE ${s}) ${r===1?"+":"-"} ${WO(t,o)}) AT TIME ZONE ${s})`}};var Qa=(e,t,r)=>{let o=$e(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`:`${L(r,s(i.value)??null)}::double precision`;return {type:"column",computed:true,sql:`(${n(e,i=>i)} + ${n(o,Lr)})`}},$c=(e,t,r)=>{if(Gt(e))return Kt;let o=$e(t,r);if(o.type==="column")throw new Error(`A row path on a date offset ('${t.path}') is check-only; evaluate with check()`);let n=_o(o.value);return n===null?Kt:jn(e,...n,r)};var Pc,vc=e=>{Pc=e;},Rr=(e,t)=>Pc(e,t);var Ps=(e,t,r)=>{let o=Mi(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 nr(e.field);let i=r===void 0,s=be(e)&&t.map&&t.currentModel?(k(e.path)??{path:e.path}).path:null;if(s!==null){let w=Io(Y(e.field,t.map,t.currentModel),Y(s,t.map,t.currentModel),e.operator);if(w)throw F("toSql",`Comparing '${e.field}' with the column '${e.path}'`,w)}if(n.shape==="enum"&&!tr.includes(e.operator)){let w=Ac(e,t),$=Y(e.field,t.map,t.currentModel),E=w!==$s&&$&&!he(e,w)?fs(e,w,$,t.map):null;if(E){let W=`${n.sql}::text = ANY(${L(t,E.values)})`;return E.matchesNull?Me(n.sql,W):W}}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 w=Ac(e,t);if(w===$s)throw new Error(`The Json value '${e.field}' compares against an operand known when compiling, not one read per row.`);return xc(e,vt(e.field,t,{jsonb:true}),w,t)}let p=w=>{if(w.type==="column"&&!w.computed&&(w.shape==="json"||w.shape==="json-path"))throw F("toSql",`'${e.field}' compared with a Json value read per row`,"SQL would compare its text")};if(qe.includes(e.operator)){let w=Mc(e,t);return w?.forEach(p),_n(a.sql,w,q.includes(e.operator),t,i)}let f=Tc(e,t);if(p(f),f.type==="column"&&Ft(e.operator,"field")==="string"&&!Vr(n.shape)&&n.shape!=="list")throw F("toSql",`'${e.operator}' on '${e.field}'`,"it is not text");if(f.type==="column"&&f.computed&&n.shape==="text"&&r===void 0)throw F("toSql",`'${e.field}' against a value moved by an offset`,"an offset moves a number or a date");let d=a.sql,u=Xo(e.operator,"field");if(u)return xs(d,u.symbol,f,false,t);if(f.type==="value"&&he(e,f.value))return Nt(d,q.includes(e.operator),i);let m=f.type==="column"&&f.computed===true,g=se(e.caseInsensitive)&&(f.type==="column"?!m&&Vr(n.shape)&&Vr(f.shape):mr(n.shape,f.value)),c=w=>g?`LOWER(${w})`:w,y=w=>g?Fr(w):w;if(n.shape==="list"&&f.type==="column"&&ut.includes(e.operator)){if(Y(e.field,t.map,t.currentModel)?.type!=="String"||!Vr(f.shape))throw F("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=se(e.caseInsensitive)&&Vr(f.shape)?`EXISTS (SELECT 1 FROM unnest(${d}) AS e WHERE LOWER(e) = LOWER(${f.sql}))`:`array_position(${d}, ${f.sql}) IS NOT NULL`;return e.operator===h.contains?`(${f.sql} IS NOT NULL AND ${w})`:`(${d} IS NULL OR (${f.sql} IS NOT NULL AND NOT ${w}))`}if(n.shape==="list"&&f.type==="value"){let w=se(e.caseInsensitive)&&mr("text",f.value);if(ut.includes(e.operator)){let $=L(t,f.value),E=w?`EXISTS (SELECT 1 FROM unnest(${d}) AS e WHERE LOWER(e) = LOWER(${$}))`:`array_position(${d}, ${$}) IS NOT NULL`;return e.operator===h.contains?E:`NOT ${E}`}if(rr.includes(e.operator)&&Array.isArray(f.value))return Rr(Bi(e,f.value),t);if(UO(e.operator))throw new Error(`'${e.operator}' does not apply to the list '${e.field}'; test its members with contains.`);if(w&&mt.includes(e.operator)&&Array.isArray(f.value)){let $=L(t,Fr(f.value)),E=`(${d} IS NOT NULL AND ARRAY(SELECT LOWER(e) FROM unnest(${d}) AS e) = ${$})`;return e.operator===h.equals?E:Me(d,`NOT ${E}`)}}let S=f.type==="value"?f.value:void 0,R=f.type==="column"?f.sql:void 0;if(R!==void 0&&(rr.includes(e.operator)||["pattern","string"].includes(Ft(e.operator,"field"))))throw F("toSql",`'${e.operator}' against an operand read per row ('${e.path}')`);let b=w=>i?Me(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(L(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(L(t,S))}`);case h.in:{let{values:w,hasNull:$}=We(S);if(!w.length)return $?`${d} IS NULL`:"FALSE";let E=`${c(d)} = ANY(${L(t,y(w))})`;return $?b(E):E}case h.notIn:{let{values:w,hasNull:$}=We(S);if(!w.length)return $?`${d} IS NOT NULL`:"TRUE";let E=`${c(d)} <> ALL(${L(t,y(w))})`;return $?`(${E} AND ${d} IS NOT NULL)`:b(E)}case h.contains:return `${c(d)} LIKE ${c(L(t,`%${we(String(S))}%`))}`;case h.notContains:return b(`${c(d)} NOT LIKE ${c(L(t,`%${we(String(S))}%`))}`);case h.startsWith:return `${c(d)} LIKE ${c(L(t,`${we(String(S))}%`))}`;case h.endsWith:return `${c(d)} LIKE ${c(L(t,`%${we(String(S))}`))}`;case h.notStartsWith:return b(`${c(d)} NOT LIKE ${c(L(t,`${we(String(S))}%`))}`);case h.notEndsWith:return b(`${c(d)} NOT LIKE ${c(L(t,`%${we(String(S))}`))}`);case h.matches:return Nc(d,S,false,t);case h.notMatches:return b(Nc(d,S,true,t));case h.isEmpty:case h.notEmpty:return Za(e.field,n,e.operator===h.isEmpty,t,Ki(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}`)}},Tc=(e,t)=>{if(tr.includes(e.operator))return {type:"value",value:void 0};let r=Cc(e,$e(e,t),t);return e.offset===void 0?r:Qa(r,e.offset,t)},Cc=(e,t,r)=>t.type==="column"?t:{type:"value",value:Ho(e,t.value,ur(e.field,r.map,r.currentModel),"toSql",()=>ot(r).timeZone)},Mc=(e,t)=>{let r=Cc(e,$e(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))&&Lo(o,e.operator),Be(n).map(i=>{let s={type:"value",value:i};return e.offset===void 0?s:Qa(s,e.offset,t)})},Nc=(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}=fr(t);return `${e} ${r?"!":""}~${i?"*":""} ${L(o,wn(n))}`},$s=Symbol("not known"),Ac=(e,t)=>{if(qe.includes(e.operator)){let o=Mc(e,t);return o?o.every(n=>n.type==="value")?o.map(n=>n.value):$s:null}let r=Tc(e,t);return r.type==="value"?r.value:$s},Za=(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`},UO=e=>Ft(e,"field")==="string"&&!ut.includes(e);var kc=(e,t)=>{if(Re(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=KO(e,t);return Ps(e,t,r)},KO=(e,t)=>{let{mode:r,field:o}=e.aggregate;if(!ct.includes(r))throw ir(r);let n=r==="sum"?"SUM":"AVG",i=Ie({field:e.field},t.map,t.currentModel);if(i==="relation"||Y(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->>${$a(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 Lc=(e,t)=>{if(Re(e))throw yt("toSql");if(!e.field)throw Ti("toSql");if(Ie({field:e.field},t.map,t.currentModel)==="relation"||Y(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 x.empty:case x.notEmpty:{let o=Ut(e.field,t),n=e.arrayOperator===x.empty;if(o.shape==="list")return Za(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 x.all:case x.any:case x.none:case x.atLeast:case x.atMost:case x.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 GO=(e,t)=>e.type==="column"&&!e.computed?{type:"column",sql:Fn(e,t),computed:true}:e,_c=e=>e===void 0||e==="instant"||e==="text"||e==="json-path"||e==="unknown",Dc=e=>F("toSql",`A date rule on '${e}'`,"it is not a date column"),Fc=(e,t,r)=>{let o=t.some(i=>i.type==="column"),n=e.shape==="json-path"||e.shape==="text";return o||n?{lhs:Fn(e,r),ends:t.map(i=>GO(i,r))}:{lhs:e.sql,ends:t}},jc=(e,t)=>{let r=Ut(e.field,t);if(!_c(r.shape))throw Dc(e.field);let o=$e(e,t);if(o.type==="column"&&!_c(o.shape))throw Dc(String(e.path??e.field));let n=Xo(e.dateOperator,"date");if(n){let{lhs:s,ends:a}=Fc(r,[HO(e,t)],t);return xs(s,n.symbol,a[0],n.negated,t)}let i=(s,a)=>{if(!s)return _n(r.sql,null,a,t);let{lhs:l,ends:p}=Fc(r,s,t);return _n(l,p,a,t)};switch(e.dateOperator){case v.within:case v.notWithin:return i(JO(e,t),q.includes(e.dateOperator));case v.between:case v.notBetween:return i(QO(e,t),q.includes(e.dateOperator));case v.dayIn:case v.dayNotIn:{let s=e.dateOperator===v.dayNotIn,a=$e(e,t);if(a.type==="column")throw F("toSql",`A weekday list read from the row ('${e.path}')`);let l=ra(a.value);if(l===null)return Nt(r.sql,s);let p=L(t,ot(t).timeZone),f=L(t,l),d=`EXTRACT(DOW FROM (${Fn(r,t)} AT TIME ZONE ${p}))`;return e.dateOperator===v.dayIn?`${d} = ANY(${f})`:Me(r.sql,`${d} <> ALL(${f})`)}default:throw le(e.dateOperator,"date")}},Ic=e=>({type:"value",value:un(ot(e)).toDate()}),zO=(e,t,r)=>{let o=Ne(e);if(o&&Es(o[0]))return jn(Ic(r),...o,r);let n=ht(e,zr(r));return n===null?Kt:{type:"value",value:To(n,t,ot(r)).toDate()}},Vc=(e,t,r)=>e==null?Kt:oe(e)?zO(e,t,r):{type:"value",value:Vi(e,ot(r).timeZone)},qc=(e,t,r)=>t.offset===void 0?e:$c(e,t.offset,r),HO=(e,t)=>{let r=$e(e,t),o=r.type==="column"?r:Vc(r.value,e.dateOperator,t);return qc(o,e,t)},JO=(e,t)=>{let r=$e(e,t);if(Gt(r))return null;if(r.type==="column"||!oe(r.value))throw He(e.dateOperator);let o=Ne(r.value);if(o&&Es(o[0])){let s=Ic(t),a=jn(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()}]},QO=(e,t)=>{let r=$e(e,t);if(Gt(r))return null;let o=r.type==="value"?r.value:void 0,n=Qe(o,e.dateOperator).map(l=>Vc(l,e.dateOperator,t));if(n.some(Gt))return null;let[i,s]=n;return (i.type==="value"&&s.type==="value"?Be([i.value,s.value]).map(l=>({type:"value",value:l})):n).map(l=>qc(l,e,t))};var Bc=(e,t)=>e.all.length===0?"TRUE":`(${e.all.map(o=>Rr(o,t)).join(" AND ")})`,Wc=(e,t)=>e.any.length===0?"FALSE":`(${e.any.map(o=>Rr(o,t)).join(" OR ")})`,Uc=(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 In=(e,t)=>{if(typeof e=="boolean")return e?"TRUE":"FALSE";if(yi(e,"toSql"),"field"in e&&typeof e.field=="string"&&t.map&&t.currentModel&&cr(e.field,t.map,t.currentModel))return "TRUE";let r=ne(e);(r==="field"||r==="date")&&Gi(e.field,t.map,t.currentModel);let o=e;switch(r){case "all":return Bc(o,t);case "any":return Wc(o,t);case "if":return Uc(o,t);case "array":return Lc(o,t);case "aggregate":return kc(o,t);case "date":return jc(o,t);case "field":return Ps(o,t);default:throw gt()}};vc(In);var Ya=e=>{let t=xe(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}},ZO=(e,t)=>ps(e,t,"toSql",YO),YO=(e,t)=>{let r=Ya(t);return {sql:In(e,r),params:r.params,joins:r.joins??[]}};var Kc=(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:{};Kc(i,o),e[r]={select:i};},XO=(e,t,r,o,n,i,s,a,l,p)=>{let f=ms(`source '${n}' at '${t}'`,()=>Cn(a,{...l,map:e,mapName:r,model:o})),d=f.steps.at(-1),u=d.where,m=f.steps.length>1||(d.refs?.length??0)>0,g=xe(e,r,"toPrisma"),c=N=>p!==void 0&&ee(N,g,o).kind==="bridge",y=i!==void 0&&!c(i)?i:void 0,S=(s??[]).map(N=>c(N)?void 0:N),R=N=>{let j=ee(N,g,o);return j.kind==="json-path"?N.split(".").slice(0,j.stopIndex).join("."):N},b=p===void 0?[]:Ss(e,r,o,[...Ge(p),...i!==void 0&&y===void 0?[i]:[],...(s??[]).filter(c)].map(R)).filter(N=>N!==n),w=y?.includes(".")?y:void 0,$=[...S.filter(N=>N!==void 0),...w?[w]:[],...b],E={[n]:true,...y&&!w?{[y]:true}:{}};for(let N of $)Kc(E,N.split("."));let W={model:o,...s||w||p!==void 0?{}:{distinct:y?[n,y]:[n]},select:E,where:u,...m?{steps:f.steps}:{}},pe;try{for(let ge of b){let Pe=ee(ge,g,o);if(!(Pe.kind==="direct"&&!Pe.hops.length&&Pe.entry.kind!=="object"))throw new Error(Pe.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=Ya({...l,map:e,mapName:r,model:o,alias:"t0"}),j=In(a,N),I=w?vt(w,N):void 0,Or=S.map((ge,Pe)=>ge===void 0?void 0:`${vt(ge,N)} AS ${te(`__group_${Pe}`)}`),en=N.joins??[],xr=en.length?` ${en.join(" ")}`:"",fe=j?.trim()?` WHERE ${j}`:"",nt=te("t0"),Hr=[`${nt}.${te(n)}`,...I?[`${I} AS ${te("__label")}`]:y?[`${nt}.${te(y)}`]:[],...Or.filter(ge=>ge!==void 0),...b.map(ge=>`${nt}.${te(ge)}`)].join(", "),X=T(O(e.maps,r),o)?.dbName??o;pe={sql:`SELECT DISTINCT ${Hr} FROM ${te(X)} AS ${nt}${xr}${fe}`,params:N.params};}catch(N){pe={sql:null,params:[],error:N instanceof Error?N.message:String(N)};}return {prisma:W,sql:pe}},Gc=(e,t={})=>{let{lens:r}=M(e);return Ju(e).map(({path:o,visit:n,field:i,label:s,groupBy:a,where:l,recheck:p})=>{let f=l,{prisma:d,sql:u}=XO(r,o,n.mapName,n.model,i,s,a,f,t,p);return {path:o,mapName:n.mapName,model:n.model,field:i,...s!==void 0?{label:s}:{},...a!==void 0?{groupBy:a}:{},composedWhere:f,prisma:d,sql:u,...p!==void 0?{recheck:p}:{}}})};var zc=(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
|
-
*/exports.ALL_KINDS=
|
|
15
|
+
*/exports.ALL_KINDS=Si;exports.ArrayOperator=x;exports.ConditionShape=Ab;exports.DateOperator=v;exports.FieldKind=Q;exports.LensRefusal=A;exports.NUMERIC_KINDS=ze;exports.Operator=h;exports.RuleTarget=yb;exports.SourceOptionOrder=Rs;exports.SqlDialect=wo;exports.UsageError=D;exports.ValueShape=Dt;exports.andWhere=Ke;exports.assertValidFieldMaps=Yd;exports.assertValidNarrowing=Os;exports.assertValidRule=uR;exports.bindLens=gu;exports.bindRule=Ys;exports.check=ue;exports.clampLens=xa;exports.coerceRule=bu;exports.composeLens=fc;exports.createLens=Ru;exports.describeRule=Ou;exports.describeRuleSources=xu;exports.engineGlobals=Lt;exports.executePrismaPlan=Vu;exports.getAggregateOperators=Sb;exports.getArrayOperators=wb;exports.getConditionShapeKeys=Tb;exports.getLensRoot=tt;exports.getOperatorsForKind=hb;exports.getValueShape=Ft;exports.indexBridges=$d;exports.lensVisit=zu;exports.listBindings=yn;exports.listLensBindings=cu;exports.matchAll=Xe;exports.matchNothing=Ot;exports.materializeSourceQuery=nc;exports.materializeSources=oc;exports.narrowRule=zo;exports.orWhere=B;exports.orderRecords=Rd;exports.parseScopeRef=k;exports.prefixConditionFields=Go;exports.projectLens=lc;exports.projectRows=rc;exports.readLensValue=pc;exports.readScopeRef=Ve;exports.stitchFieldMaps=Ui;exports.storeLens=dc;exports.toLensSelect=ec;exports.toLensWhereSql=Rc;exports.toPrisma=Cn;exports.toSourceQueries=Gc;exports.toSql=ZO;exports.toWhereSql=wc;exports.validateFieldMaps=la;exports.validateNarrowing=Ha;exports.validateRule=Uo;exports.validateRuleInLens=Qo;exports.walkLensPath=zc;//# sourceMappingURL=index.cjs.map
|
|
16
16
|
//# sourceMappingURL=index.cjs.map
|