@inixiative/json-rules 3.10.0 → 3.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +16 -1
- package/dist/index.cjs +3 -3
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +10 -2
- package/dist/index.d.ts +10 -2
- 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'),mb=require('dayjs/plugin/isoWeek.js'),gb=require('dayjs/plugin/quarterOfYear.js'),yb=require('dayjs/plugin/timezone.js'),hb=require('dayjs/plugin/utc.js'),Pb=require('dayjs/plugin/isSameOrAfter.js'),vb=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 mb__default=/*#__PURE__*/_interopDefault(mb);var gb__default=/*#__PURE__*/_interopDefault(gb);var yb__default=/*#__PURE__*/_interopDefault(yb);var hb__default=/*#__PURE__*/_interopDefault(hb);var Pb__default=/*#__PURE__*/_interopDefault(Pb);var vb__default=/*#__PURE__*/_interopDefault(vb);var Es=(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 Bc=typeof global=="object"&&global&&global.Object===Object&&global,Vn=Bc;var Wc=typeof self=="object"&&self&&self.Object===Object&&self,Uc=Vn||Wc||Function("return this")(),re=Uc;var Kc=re.Symbol,Se=Kc;var Qa=Object.prototype,Gc=Qa.hasOwnProperty,zc=Qa.toString,rn=Se?Se.toStringTag:void 0;function Hc(e){var t=Gc.call(e,rn),r=e[rn];try{e[rn]=void 0;var o=!0;}catch{}var n=zc.call(e);return o&&(t?e[rn]=r:delete e[rn]),n}var Za=Hc;var Jc=Object.prototype,Qc=Jc.toString;function Zc(e){return Qc.call(e)}var Ya=Zc;var Yc="[object Null]",Xc="[object Undefined]",Xa=Se?Se.toStringTag:void 0;function em(e){return e==null?e===void 0?Xc:Yc:Xa&&Xa in Object(e)?Za(e):Ya(e)}var Me=em;function tm(e){return e!=null&&typeof e=="object"}var ne=tm;var rm="[object Symbol]";function om(e){return typeof e=="symbol"||ne(e)&&Me(e)==rm}var Qr=om;function nm(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 el=nm;var im=Array.isArray,H=im;var tl=Se?Se.prototype:void 0,rl=tl?tl.toString:void 0;function ol(e){if(typeof e=="string")return e;if(H(e))return el(e,ol)+"";if(Qr(e))return rl?rl.call(e):"";var t=e+"";return t=="0"&&1/e==-Infinity?"-0":t}var nl=ol;function am(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var J=am;function lm(e){return e}var Zr=lm;var pm="[object AsyncFunction]",fm="[object Function]",dm="[object GeneratorFunction]",um="[object Proxy]";function cm(e){if(!J(e))return false;var t=Me(e);return t==fm||t==dm||t==pm||t==um}var Yr=cm;var mm=re["__core-js_shared__"],qn=mm;var il=(function(){var e=/[^.]+$/.exec(qn&&qn.keys&&qn.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""})();function gm(e){return !!il&&il in e}var sl=gm;var ym=Function.prototype,hm=ym.toString;function wm(e){if(e!=null){try{return hm.call(e)}catch{}try{return e+""}catch{}}return ""}var At=wm;var Sm=/[\\^$.*+?()[\]{}|]/g,bm=/^\[object .+?Constructor\]$/,Rm=Function.prototype,Om=Object.prototype,xm=Rm.toString,Em=Om.hasOwnProperty,$m=RegExp("^"+xm.call(Em).replace(Sm,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Pm(e){if(!J(e)||sl(e))return false;var t=Yr(e)?$m:bm;return t.test(At(e))}var al=Pm;function vm(e,t){return e?.[t]}var ll=vm;function Nm(e,t){var r=ll(e,t);return al(r)?r:void 0}var Pe=Nm;var Am=Pe(re,"WeakMap"),Bn=Am;var pl=Object.create,Tm=(function(){function e(){}return function(t){if(!J(t))return {};if(pl)return pl(t);e.prototype=t;var r=new e;return e.prototype=void 0,r}})(),fl=Tm;function Cm(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 dl=Cm;function Mm(e,t){var r=-1,o=e.length;for(t||(t=Array(o));++r<o;)t[r]=e[r];return t}var Wn=Mm;var km=800,Lm=16,_m=Date.now;function Dm(e){var t=0,r=0;return function(){var o=_m(),n=Lm-(o-r);if(r=o,n>0){if(++t>=km)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}var ul=Dm;function Fm(e){return function(){return e}}var cl=Fm;var jm=(function(){try{var e=Pe(Object,"defineProperty");return e({},"",{}),e}catch{}})(),Xr=jm;var Im=Xr?function(e,t){return Xr(e,"toString",{configurable:true,enumerable:false,value:cl(t),writable:true})}:Zr,ml=Im;var Vm=ul(ml),gl=Vm;function qm(e,t){for(var r=-1,o=e==null?0:e.length;++r<o&&t(e[r],r,e)!==false;);return e}var yl=qm;var Bm=9007199254740991,Wm=/^(?:0|[1-9]\d*)$/;function Um(e,t){var r=typeof e;return t=t??Bm,!!t&&(r=="number"||r!="symbol"&&Wm.test(e))&&e>-1&&e%1==0&&e<t}var zt=Um;function Km(e,t,r){t=="__proto__"&&Xr?Xr(e,t,{configurable:true,enumerable:true,value:r,writable:true}):e[t]=r;}var eo=Km;function Gm(e,t){return e===t||e!==e&&t!==t}var it=Gm;var zm=Object.prototype,Hm=zm.hasOwnProperty;function Jm(e,t,r){var o=e[t];(!(Hm.call(e,t)&&it(o,r))||r===void 0&&!(t in e))&&eo(e,t,r);}var to=Jm;function Qm(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=Qm;var hl=Math.max;function Zm(e,t,r){return t=hl(t===void 0?e.length-1:t,0),function(){for(var o=arguments,n=-1,i=hl(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),dl(e,this,a)}}var wl=Zm;function Ym(e,t){return gl(wl(e,t,Zr),e+"")}var Sl=Ym;var Xm=9007199254740991;function eg(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=Xm}var ro=eg;function tg(e){return e!=null&&ro(e.length)&&!Yr(e)}var at=tg;function rg(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=rg;function og(e){return Sl(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 bl=og;var ng=Object.prototype;function ig(e){var t=e&&e.constructor,r=typeof t=="function"&&t.prototype||ng;return e===r}var oo=ig;function sg(e,t){for(var r=-1,o=Array(e);++r<e;)o[r]=t(r);return o}var Rl=sg;var ag="[object Arguments]";function lg(e){return ne(e)&&Me(e)==ag}var $s=lg;var Ol=Object.prototype,pg=Ol.hasOwnProperty,fg=Ol.propertyIsEnumerable,dg=$s((function(){return arguments})())?$s:function(e){return ne(e)&&pg.call(e,"callee")&&!fg.call(e,"callee")},$r=dg;function ug(){return false}var xl=ug;var Pl=typeof exports=="object"&&exports&&!exports.nodeType&&exports,El=Pl&&typeof module=="object"&&module&&!module.nodeType&&module,cg=El&&El.exports===Pl,$l=cg?re.Buffer:void 0,mg=$l?$l.isBuffer:void 0,gg=mg||xl,Tt=gg;var yg="[object Arguments]",hg="[object Array]",wg="[object Boolean]",Sg="[object Date]",bg="[object Error]",Rg="[object Function]",Og="[object Map]",xg="[object Number]",Eg="[object Object]",$g="[object RegExp]",Pg="[object Set]",vg="[object String]",Ng="[object WeakMap]",Ag="[object ArrayBuffer]",Tg="[object DataView]",Cg="[object Float32Array]",Mg="[object Float64Array]",kg="[object Int8Array]",Lg="[object Int16Array]",_g="[object Int32Array]",Dg="[object Uint8Array]",Fg="[object Uint8ClampedArray]",jg="[object Uint16Array]",Ig="[object Uint32Array]",G={};G[Cg]=G[Mg]=G[kg]=G[Lg]=G[_g]=G[Dg]=G[Fg]=G[jg]=G[Ig]=true;G[yg]=G[hg]=G[Ag]=G[wg]=G[Tg]=G[Sg]=G[bg]=G[Rg]=G[Og]=G[xg]=G[Eg]=G[$g]=G[Pg]=G[vg]=G[Ng]=false;function Vg(e){return ne(e)&&ro(e.length)&&!!G[Me(e)]}var vl=Vg;function qg(e){return function(t){return e(t)}}var no=qg;var Nl=typeof exports=="object"&&exports&&!exports.nodeType&&exports,on=Nl&&typeof module=="object"&&module&&!module.nodeType&&module,Bg=on&&on.exports===Nl,Ps=Bg&&Vn.process,Wg=(function(){try{var e=on&&on.require&&on.require("util").types;return e||Ps&&Ps.binding&&Ps.binding("util")}catch{}})(),Ct=Wg;var Al=Ct&&Ct.isTypedArray,Ug=Al?no(Al):vl,io=Ug;var Kg=Object.prototype,Gg=Kg.hasOwnProperty;function zg(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?Rl(e.length,String):[],l=a.length;for(var f in e)(t||Gg.call(e,f))&&!(s&&(f=="length"||n&&(f=="offset"||f=="parent")||i&&(f=="buffer"||f=="byteLength"||f=="byteOffset")||zt(f,l)))&&a.push(f);return a}var Kn=zg;function Hg(e,t){return function(r){return e(t(r))}}var Gn=Hg;var Jg=Gn(Object.keys,Object),Tl=Jg;var Qg=Object.prototype,Zg=Qg.hasOwnProperty;function Yg(e){if(!oo(e))return Tl(e);var t=[];for(var r in Object(e))Zg.call(e,r)&&r!="constructor"&&t.push(r);return t}var Cl=Yg;function Xg(e){return at(e)?Kn(e):Cl(e)}var lt=Xg;function ey(e){var t=[];if(e!=null)for(var r in Object(e))t.push(r);return t}var Ml=ey;var ty=Object.prototype,ry=ty.hasOwnProperty;function oy(e){if(!J(e))return Ml(e);var t=oo(e),r=[];for(var o in e)o=="constructor"&&(t||!ry.call(e,o))||r.push(o);return r}var kl=oy;function ny(e){return at(e)?Kn(e,true):kl(e)}var pt=ny;var iy=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,sy=/^\w*$/;function ay(e,t){if(H(e))return false;var r=typeof e;return r=="number"||r=="symbol"||r=="boolean"||e==null||Qr(e)?true:sy.test(e)||!iy.test(e)||t!=null&&e in Object(t)}var so=ay;var ly=Pe(Object,"create"),Mt=ly;function py(){this.__data__=Mt?Mt(null):{},this.size=0;}var Ll=py;function fy(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var _l=fy;var dy="__lodash_hash_undefined__",uy=Object.prototype,cy=uy.hasOwnProperty;function my(e){var t=this.__data__;if(Mt){var r=t[e];return r===dy?void 0:r}return cy.call(t,e)?t[e]:void 0}var Dl=my;var gy=Object.prototype,yy=gy.hasOwnProperty;function hy(e){var t=this.__data__;return Mt?t[e]!==void 0:yy.call(t,e)}var Fl=hy;var wy="__lodash_hash_undefined__";function Sy(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=Mt&&t===void 0?wy:t,this}var jl=Sy;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=Ll;ao.prototype.delete=_l;ao.prototype.get=Dl;ao.prototype.has=Fl;ao.prototype.set=jl;var vs=ao;function by(){this.__data__=[],this.size=0;}var Il=by;function Ry(e,t){for(var r=e.length;r--;)if(it(e[r][0],t))return r;return -1}var Ht=Ry;var Oy=Array.prototype,xy=Oy.splice;function Ey(e){var t=this.__data__,r=Ht(t,e);if(r<0)return false;var o=t.length-1;return r==o?t.pop():xy.call(t,r,1),--this.size,true}var Vl=Ey;function $y(e){var t=this.__data__,r=Ht(t,e);return r<0?void 0:t[r][1]}var ql=$y;function Py(e){return Ht(this.__data__,e)>-1}var Bl=Py;function vy(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 Wl=vy;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=Il;lo.prototype.delete=Vl;lo.prototype.get=ql;lo.prototype.has=Bl;lo.prototype.set=Wl;var Jt=lo;var Ny=Pe(re,"Map"),Qt=Ny;function Ay(){this.size=0,this.__data__={hash:new vs,map:new(Qt||Jt),string:new vs};}var Ul=Ay;function Ty(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var Kl=Ty;function Cy(e,t){var r=e.__data__;return Kl(t)?r[typeof t=="string"?"string":"hash"]:r.map}var Zt=Cy;function My(e){var t=Zt(this,e).delete(e);return this.size-=t?1:0,t}var Gl=My;function ky(e){return Zt(this,e).get(e)}var zl=ky;function Ly(e){return Zt(this,e).has(e)}var Hl=Ly;function _y(e,t){var r=Zt(this,e),o=r.size;return r.set(e,t),this.size+=r.size==o?0:1,this}var Jl=_y;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=Ul;po.prototype.delete=Gl;po.prototype.get=zl;po.prototype.has=Hl;po.prototype.set=Jl;var Pr=po;var Dy="Expected a function";function Ns(e,t){if(typeof e!="function"||t!=null&&typeof t!="function")throw new TypeError(Dy);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(Ns.Cache||Pr),r}Ns.Cache=Pr;var Ql=Ns;var Fy=500;function jy(e){var t=Ql(e,function(o){return r.size===Fy&&r.clear(),o}),r=t.cache;return t}var Zl=jy;var Iy=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Vy=/\\(\\)?/g,qy=Zl(function(e){var t=[];return e.charCodeAt(0)===46&&t.push(""),e.replace(Iy,function(r,o,n,i){t.push(n?i.replace(Vy,"$1"):o||r);}),t}),Yl=qy;function By(e){return e==null?"":nl(e)}var Xl=By;function Wy(e,t){return H(e)?e:so(e,t)?[e]:Yl(Xl(e))}var fo=Wy;function Ky(e){if(typeof e=="string"||Qr(e))return e;var t=e+"";return t=="0"&&1/e==-Infinity?"-0":t}var ft=Ky;function Gy(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=Gy;function zy(e,t,r){var o=e==null?void 0:zn(e,t);return o===void 0?r:o}var ep=zy;function Hy(e,t){for(var r=-1,o=t.length,n=e.length;++r<o;)e[n+r]=t[r];return e}var Hn=Hy;var Jy=Gn(Object.getPrototypeOf,Object),uo=Jy;var Qy="[object Object]",Zy=Function.prototype,Yy=Object.prototype,tp=Zy.toString,Xy=Yy.hasOwnProperty,eh=tp.call(Object);function th(e){if(!ne(e)||Me(e)!=Qy)return false;var t=uo(e);if(t===null)return true;var r=Xy.call(t,"constructor")&&t.constructor;return typeof r=="function"&&r instanceof r&&tp.call(r)==eh}var ke=th;function rh(){this.__data__=new Jt,this.size=0;}var rp=rh;function oh(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var op=oh;function nh(e){return this.__data__.get(e)}var np=nh;function ih(e){return this.__data__.has(e)}var ip=ih;var sh=200;function ah(e,t){var r=this.__data__;if(r instanceof Jt){var o=r.__data__;if(!Qt||o.length<sh-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 sp=ah;function co(e){var t=this.__data__=new Jt(e);this.size=t.size;}co.prototype.clear=rp;co.prototype.delete=op;co.prototype.get=np;co.prototype.has=ip;co.prototype.set=sp;var dt=co;function lh(e,t){return e&&st(t,lt(t),e)}var ap=lh;function ph(e,t){return e&&st(t,pt(t),e)}var lp=ph;var up=typeof exports=="object"&&exports&&!exports.nodeType&&exports,pp=up&&typeof module=="object"&&module&&!module.nodeType&&module,fh=pp&&pp.exports===up,fp=fh?re.Buffer:void 0,dp=fp?fp.allocUnsafe:void 0;function dh(e,t){if(t)return e.slice();var r=e.length,o=dp?dp(r):new e.constructor(r);return e.copy(o),o}var Jn=dh;function uh(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 cp=uh;function ch(){return []}var Qn=ch;var mh=Object.prototype,gh=mh.propertyIsEnumerable,mp=Object.getOwnPropertySymbols,yh=mp?function(e){return e==null?[]:(e=Object(e),cp(mp(e),function(t){return gh.call(e,t)}))}:Qn,mo=yh;function hh(e,t){return st(e,mo(e),t)}var gp=hh;var wh=Object.getOwnPropertySymbols,Sh=wh?function(e){for(var t=[];e;)Hn(t,mo(e)),e=uo(e);return t}:Qn,Zn=Sh;function bh(e,t){return st(e,Zn(e),t)}var yp=bh;function Rh(e,t,r){var o=t(e);return H(e)?o:Hn(o,r(e))}var Yn=Rh;function Oh(e){return Yn(e,lt,mo)}var nn=Oh;function xh(e){return Yn(e,pt,Zn)}var hp=xh;var Eh=Pe(re,"DataView"),Xn=Eh;var $h=Pe(re,"Promise"),ei=$h;var Ph=Pe(re,"Set"),ti=Ph;var wp="[object Map]",vh="[object Object]",Sp="[object Promise]",bp="[object Set]",Rp="[object WeakMap]",Op="[object DataView]",Nh=At(Xn),Ah=At(Qt),Th=At(ei),Ch=At(ti),Mh=At(Bn),vr=Me;(Xn&&vr(new Xn(new ArrayBuffer(1)))!=Op||Qt&&vr(new Qt)!=wp||ei&&vr(ei.resolve())!=Sp||ti&&vr(new ti)!=bp||Bn&&vr(new Bn)!=Rp)&&(vr=function(e){var t=Me(e),r=t==vh?e.constructor:void 0,o=r?At(r):"";if(o)switch(o){case Nh:return Op;case Ah:return wp;case Th:return Sp;case Ch:return bp;case Mh:return Rp}return t});var kt=vr;var kh=Object.prototype,Lh=kh.hasOwnProperty;function _h(e){var t=e.length,r=new e.constructor(t);return t&&typeof e[0]=="string"&&Lh.call(e,"index")&&(r.index=e.index,r.input=e.input),r}var xp=_h;var Dh=re.Uint8Array,go=Dh;function Fh(e){var t=new e.constructor(e.byteLength);return new go(t).set(new go(e)),t}var yo=Fh;function jh(e,t){var r=t?yo(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.byteLength)}var Ep=jh;var Ih=/\w*$/;function Vh(e){var t=new e.constructor(e.source,Ih.exec(e));return t.lastIndex=e.lastIndex,t}var $p=Vh;var Pp=Se?Se.prototype:void 0,vp=Pp?Pp.valueOf:void 0;function qh(e){return vp?Object(vp.call(e)):{}}var Np=qh;function Bh(e,t){var r=t?yo(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.length)}var ri=Bh;var Wh="[object Boolean]",Uh="[object Date]",Kh="[object Map]",Gh="[object Number]",zh="[object RegExp]",Hh="[object Set]",Jh="[object String]",Qh="[object Symbol]",Zh="[object ArrayBuffer]",Yh="[object DataView]",Xh="[object Float32Array]",ew="[object Float64Array]",tw="[object Int8Array]",rw="[object Int16Array]",ow="[object Int32Array]",nw="[object Uint8Array]",iw="[object Uint8ClampedArray]",sw="[object Uint16Array]",aw="[object Uint32Array]";function lw(e,t,r){var o=e.constructor;switch(t){case Zh:return yo(e);case Wh:case Uh:return new o(+e);case Yh:return Ep(e,r);case Xh:case ew:case tw:case rw:case ow:case nw:case iw:case sw:case aw:return ri(e,r);case Kh:return new o;case Gh:case Jh:return new o(e);case zh:return $p(e);case Hh:return new o;case Qh:return Np(e)}}var Ap=lw;function pw(e){return typeof e.constructor=="function"&&!oo(e)?fl(uo(e)):{}}var oi=pw;var fw="[object Map]";function dw(e){return ne(e)&&kt(e)==fw}var Tp=dw;var Cp=Ct&&Ct.isMap,uw=Cp?no(Cp):Tp,Mp=uw;var cw="[object Set]";function mw(e){return ne(e)&&kt(e)==cw}var kp=mw;var Lp=Ct&&Ct.isSet,gw=Lp?no(Lp):kp,_p=gw;var yw=1,hw=2,ww=4,Dp="[object Arguments]",Sw="[object Array]",bw="[object Boolean]",Rw="[object Date]",Ow="[object Error]",Fp="[object Function]",xw="[object GeneratorFunction]",Ew="[object Map]",$w="[object Number]",jp="[object Object]",Pw="[object RegExp]",vw="[object Set]",Nw="[object String]",Aw="[object Symbol]",Tw="[object WeakMap]",Cw="[object ArrayBuffer]",Mw="[object DataView]",kw="[object Float32Array]",Lw="[object Float64Array]",_w="[object Int8Array]",Dw="[object Int16Array]",Fw="[object Int32Array]",jw="[object Uint8Array]",Iw="[object Uint8ClampedArray]",Vw="[object Uint16Array]",qw="[object Uint32Array]",U={};U[Dp]=U[Sw]=U[Cw]=U[Mw]=U[bw]=U[Rw]=U[kw]=U[Lw]=U[_w]=U[Dw]=U[Fw]=U[Ew]=U[$w]=U[jp]=U[Pw]=U[vw]=U[Nw]=U[Aw]=U[jw]=U[Iw]=U[Vw]=U[qw]=true;U[Ow]=U[Fp]=U[Tw]=false;function ni(e,t,r,o,n,i){var s,a=t&yw,l=t&hw,f=t&ww;if(r&&(s=n?r(e,o,n,i):r(e)),s!==void 0)return s;if(!J(e))return e;var p=H(e);if(p){if(s=xp(e),!a)return Wn(e,s)}else {var d=kt(e),u=d==Fp||d==xw;if(Tt(e))return Jn(e,a);if(d==jp||d==Dp||u&&!n){if(s=l||u?{}:oi(e),!a)return l?yp(e,lp(s,e)):gp(e,ap(s,e))}else {if(!U[d])return n?e:{};s=Ap(e,d,a);}}i||(i=new dt);var m=i.get(e);if(m)return m;i.set(e,s),_p(e)?e.forEach(function(h){s.add(ni(h,t,r,h,e,i));}):Mp(e)&&e.forEach(function(h,w){s.set(w,ni(h,t,r,w,e,i));});var g=f?l?hp:nn:l?pt:lt,c=p?void 0:g(e);return yl(c||e,function(h,w){c&&(w=h,h=e[w]),to(s,w,ni(h,t,r,w,e,i));}),s}var ii=ni;var Bw=1,Ww=4;function Uw(e){return ii(e,Bw|Ww)}var si=Uw;var Kw=1,Gw=4;function zw(e,t){return t=typeof t=="function"?t:void 0,ii(e,Kw|Gw,t)}var As=zw;var Hw="__lodash_hash_undefined__";function Jw(e){return this.__data__.set(e,Hw),this}var Ip=Jw;function Qw(e){return this.__data__.has(e)}var Vp=Qw;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=Ip;ai.prototype.has=Vp;var qp=ai;function Zw(e,t){for(var r=-1,o=e==null?0:e.length;++r<o;)if(t(e[r],r,e))return true;return false}var li=Zw;function Yw(e,t){return e.has(t)}var Bp=Yw;var Xw=1,eS=2;function tS(e,t,r,o,n,i){var s=r&Xw,a=e.length,l=t.length;if(a!=l&&!(s&&l>a))return false;var f=i.get(e),p=i.get(t);if(f&&p)return f==t&&p==e;var d=-1,u=true,m=r&eS?new qp:void 0;for(i.set(e,t),i.set(t,e);++d<a;){var g=e[d],c=t[d];if(o)var h=s?o(c,g,d,t,e,i):o(g,c,d,e,t,i);if(h!==void 0){if(h)continue;u=false;break}if(m){if(!li(t,function(w,R){if(!Bp(m,R)&&(g===w||n(g,w,r,o,i)))return m.push(R)})){u=false;break}}else if(!(g===c||n(g,c,r,o,i))){u=false;break}}return i.delete(e),i.delete(t),u}var pi=tS;function rS(e){var t=-1,r=Array(e.size);return e.forEach(function(o,n){r[++t]=[n,o];}),r}var Wp=rS;function oS(e){var t=-1,r=Array(e.size);return e.forEach(function(o){r[++t]=o;}),r}var Up=oS;var nS=1,iS=2,sS="[object Boolean]",aS="[object Date]",lS="[object Error]",pS="[object Map]",fS="[object Number]",dS="[object RegExp]",uS="[object Set]",cS="[object String]",mS="[object Symbol]",gS="[object ArrayBuffer]",yS="[object DataView]",Kp=Se?Se.prototype:void 0,Ts=Kp?Kp.valueOf:void 0;function hS(e,t,r,o,n,i,s){switch(r){case yS:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return false;e=e.buffer,t=t.buffer;case gS:return !(e.byteLength!=t.byteLength||!i(new go(e),new go(t)));case sS:case aS:case fS:return it(+e,+t);case lS:return e.name==t.name&&e.message==t.message;case dS:case cS:return e==t+"";case pS:var a=Wp;case uS:var l=o&nS;if(a||(a=Up),e.size!=t.size&&!l)return false;var f=s.get(e);if(f)return f==t;o|=iS,s.set(e,t);var p=pi(a(e),a(t),o,n,i,s);return s.delete(e),p;case mS:if(Ts)return Ts.call(e)==Ts.call(t)}return false}var Gp=hS;var wS=1,SS=Object.prototype,bS=SS.hasOwnProperty;function RS(e,t,r,o,n,i){var s=r&wS,a=nn(e),l=a.length,f=nn(t),p=f.length;if(l!=p&&!s)return false;for(var d=l;d--;){var u=a[d];if(!(s?u in t:bS.call(t,u)))return false}var m=i.get(e),g=i.get(t);if(m&&g)return m==t&&g==e;var c=true;i.set(e,t),i.set(t,e);for(var h=s;++d<l;){u=a[d];var w=e[u],R=t[u];if(o)var b=s?o(R,w,u,t,e,i):o(w,R,u,e,t,i);if(!(b===void 0?w===R||n(w,R,r,o,i):b)){c=false;break}h||(h=u=="constructor");}if(c&&!h){var S=e.constructor,$=t.constructor;S!=$&&"constructor"in e&&"constructor"in t&&!(typeof S=="function"&&S instanceof S&&typeof $=="function"&&$ instanceof $)&&(c=false);}return i.delete(e),i.delete(t),c}var zp=RS;var OS=1,Hp="[object Arguments]",Jp="[object Array]",fi="[object Object]",xS=Object.prototype,Qp=xS.hasOwnProperty;function ES(e,t,r,o,n,i){var s=H(e),a=H(t),l=s?Jp:kt(e),f=a?Jp:kt(t);l=l==Hp?fi:l,f=f==Hp?fi:f;var p=l==fi,d=f==fi,u=l==f;if(u&&Tt(e)){if(!Tt(t))return false;s=true,p=false;}if(u&&!p)return i||(i=new dt),s||io(e)?pi(e,t,r,o,n,i):Gp(e,t,l,r,o,n,i);if(!(r&OS)){var m=p&&Qp.call(e,"__wrapped__"),g=d&&Qp.call(t,"__wrapped__");if(m||g){var c=m?e.value():e,h=g?t.value():t;return i||(i=new dt),n(c,h,r,o,i)}}return u?(i||(i=new dt),zp(e,t,r,o,n,i)):false}var Zp=ES;function Yp(e,t,r,o,n){return e===t?true:e==null||t==null||!ne(e)&&!ne(t)?e!==e&&t!==t:Zp(e,t,r,o,Yp,n)}var ho=Yp;var $S=1,PS=2;function vS(e,t,r,o){var n=r.length,i=n,s=!o;if(e==null)return !i;for(e=Object(e);n--;){var a=r[n];if(s&&a[2]?a[1]!==e[a[0]]:!(a[0]in e))return false}for(;++n<i;){a=r[n];var l=a[0],f=e[l],p=a[1];if(s&&a[2]){if(f===void 0&&!(l in e))return false}else {var d=new dt;if(o)var u=o(f,p,l,e,t,d);if(!(u===void 0?ho(p,f,$S|PS,o,d):u))return false}}return true}var Xp=vS;function NS(e){return e===e&&!J(e)}var di=NS;function AS(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 ef=AS;function TS(e,t){return function(r){return r==null?false:r[e]===t&&(t!==void 0||e in Object(r))}}var ui=TS;function CS(e){var t=ef(e);return t.length==1&&t[0][2]?ui(t[0][0],t[0][1]):function(r){return r===e||Xp(r,e,t)}}var tf=CS;function MS(e,t){return e!=null&&t in Object(e)}var rf=MS;function kS(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 of=kS;function LS(e,t){return e!=null&&of(e,t,rf)}var nf=LS;var _S=1,DS=2;function FS(e,t){return so(e)&&di(t)?ui(ft(e),t):function(r){var o=ep(r,e);return o===void 0&&o===t?nf(r,e):ho(t,o,_S|DS)}}var sf=FS;function jS(e){return function(t){return t?.[e]}}var af=jS;function IS(e){return function(t){return zn(t,e)}}var lf=IS;function VS(e){return so(e)?af(ft(e)):lf(e)}var pf=VS;function qS(e){return typeof e=="function"?e:e==null?Zr:typeof e=="object"?H(e)?sf(e[0],e[1]):tf(e):pf(e)}var ff=qS;function BS(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 df=BS;var WS=df(),ci=WS;function US(e,t){return e&&ci(e,t,lt)}var uf=US;function KS(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 cf=KS;var GS=cf(uf),mf=GS;function zS(e,t,r){(r!==void 0&&!it(e[t],r)||r===void 0&&!(t in e))&&eo(e,t,r);}var sn=zS;function HS(e){return ne(e)&&at(e)}var gf=HS;function JS(e,t){if(!(t==="constructor"&&typeof e[t]=="function")&&t!="__proto__")return e[t]}var an=JS;function QS(e){return st(e,pt(e))}var yf=QS;function ZS(e,t,r,o,n,i,s){var a=an(e,r),l=an(t,r),f=s.get(l);if(f){sn(e,r,f);return}var p=i?i(a,l,r+"",e,t,s):void 0,d=p===void 0;if(d){var u=H(l),m=!u&&Tt(l),g=!u&&!m&&io(l);p=l,u||m||g?H(a)?p=a:gf(a)?p=Wn(a):m?(d=false,p=Jn(l,true)):g?(d=false,p=ri(l,true)):p=[]:ke(l)||$r(l)?(p=a,$r(a)?p=yf(a):(!J(a)||Yr(a))&&(p=oi(l))):d=false;}d&&(s.set(l,p),n(p,l,o,i,s),s.delete(l)),sn(e,r,p);}var hf=ZS;function wf(e,t,r,o,n){e!==t&&ci(t,function(i,s){if(n||(n=new dt),J(i))hf(e,t,s,r,wf,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 Sf=wf;function YS(e,t){return ho(e,t)}var Nr=YS;var XS=bl(function(e,t,r){Sf(e,t,r);}),Cs=XS;function eb(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]),f=r;if(l==="__proto__"||l==="constructor"||l==="prototype")return e;if(n!=s){var p=a[l];f=o?o(p,l,a):void 0,f===void 0&&(f=J(p)?p:zt(t[n+1])?[]:{});}to(a,l,f),a=a[l];}return e}var bf=eb;function tb(e,t,r){return e==null?e:bf(e,t,r)}var Ms=tb;function rb(e,t){var r;return mf(e,function(o,n,i){return r=t(o,n,i),!r}),!!r}var Rf=rb;function ob(e,t,r){var o=H(e)?li:Rf;return r&&Un(e,t,r)&&(t=void 0),o(e,ff(t))}var ks=ob;var nb=/^(\$+)\.(.*)$/,k=e=>{let t=nb.exec(e);return t?{depth:t[1].length,path:t[2]}:null},Ls=(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:Ls(e,r.depth,t.length)}:{scope:t[t.length-r.depth],path:r.path}:{scope:t[t.length-1],path:e}},ib=/\[(\d+)\]|\[(["'])(.*?)\2\]|([^.[\]]+)/g,sb=e=>e===""?[""]:[...e.matchAll(ib)].map(t=>t[1]??t[3]??t[4]),ab=(e,t)=>{if(e==null)return;let r=Object(e);return Object.hasOwn(r,t)?r[t]:void 0},ye=(e,t)=>sb(t).reduce(ab,e),Yt=(e,t)=>{let r=Ve(e,t);if("outOfBounds"in r)throw new Error(r.outOfBounds);return ye(r.scope,r.path)},Of=(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()`,mi=(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"},xf=e=>Object.values(So).includes(e),Ef={string:{caseInsensitive:false,fuzzy:false},prismaOptions:{datasource:{provider:"postgresql"}},sql:{dialect:So.postgres}},wo=si(Ef),_s=e=>As(e,t=>typeof t=="object"&&t!==null&&!Array.isArray(t)&&!ke(t)?t:void 0),lb=e=>e!=null&&typeof e.then=="function",Lt={set:(e,t)=>{Ms(wo,e,_s(t));},get:e=>ye(wo,e),reset:()=>{wo=si(Ef);},with:(e,t)=>{let r=wo;wo=Cs(_s(r),_s(e));try{let o=t();if(lb(o))throw new Error("engineGlobals.with() callback must be synchronous (it returned a Promise).");return o}finally{wo=r;}}},pb=new Set(["postgresql","cockroachdb","mongodb"]),$f=e=>pb.has(e),ie=e=>e??Lt.get("string.caseInsensitive")??false,gi=e=>{let t=e??Lt.get("string.fuzzy")??false;return t?t===true?{}:t:false};var y={equals:"equals",notEquals:"notEquals",lessThan:"lessThan",lessThanEquals:"lessThanEquals",greaterThan:"greaterThan",greaterThanEquals:"greaterThanEquals",contains:"contains",notContains:"notContains",in:"in",notIn:"notIn",matches:"matches",notMatches:"notMatches",between:"between",notBetween:"notBetween",isEmpty:"isEmpty",notEmpty:"notEmpty",exists:"exists",notExists:"notExists",startsWith:"startsWith",notStartsWith:"notStartsWith",endsWith:"endsWith",notEndsWith:"notEndsWith"},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"],yi=["String","Boolean","Int","BigInt","Float","Decimal","DateTime","Enum"],hi=Object.values(Q),Pf=hi,fb={check:"check",toPrisma:"toPrisma",toSql:"toSql"},bi=e=>typeof e=="string"&&Object.hasOwn(Q,e),C=["check","toPrisma","toSql"],Ro=["check","toPrisma"],wi=["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={[y.equals]:{kinds:yi,targets:C,valueShape:"scalar"},[y.notEquals]:{negates:y.equals,kinds:yi,targets:C,valueShape:"scalar"},[y.lessThan]:{kinds:bo,targets:C,valueShape:"ordered",comparator:"lt"},[y.lessThanEquals]:{kinds:bo,targets:C,valueShape:"ordered",comparator:"lte"},[y.greaterThan]:{kinds:bo,targets:C,valueShape:"ordered",comparator:"gt"},[y.greaterThanEquals]:{kinds:bo,targets:C,valueShape:"ordered",comparator:"gte"},[y.in]:{kinds:yi,targets:C,valueShape:"array"},[y.notIn]:{negates:y.in,kinds:yi,targets:C,valueShape:"array"},[y.contains]:{kinds:Xt,targets:C,valueShape:"string"},[y.notContains]:{negates:y.contains,kinds:Xt,targets:C,valueShape:"string"},[y.startsWith]:{kinds:Xt,targets:C,valueShape:"string"},[y.notStartsWith]:{negates:y.startsWith,kinds:Xt,targets:C,valueShape:"string"},[y.endsWith]:{kinds:Xt,targets:C,valueShape:"string"},[y.notEndsWith]:{negates:y.endsWith,kinds:Xt,targets:C,valueShape:"string"},[y.matches]:{kinds:Xt,targets:wi,valueShape:"pattern"},[y.notMatches]:{negates:y.matches,kinds:Xt,targets:wi,valueShape:"pattern"},[y.between]:{kinds:bo,targets:C,valueShape:"range"},[y.notBetween]:{negates:y.between,kinds:bo,targets:C,valueShape:"range"},[y.isEmpty]:{kinds:Pf,targets:C,valueShape:"none"},[y.notEmpty]:{kinds:Pf,targets:C,valueShape:"none"},[y.exists]:{kinds:hi,targets:C,valueShape:"none"},[y.notExists]:{kinds:hi,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:wi,valueShape:"dayList",acceptsExpr:false},[v.dayNotIn]:{negates:v.dayIn,kinds:["DateTime"],targets:wi,valueShape:"dayList",acceptsExpr:false}},Si={[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"}},vf={field:Oo,date:xo,array:Si},_t=(e,t)=>Object.hasOwn(vf[t],e)?vf[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},Ri=(e,t,r)=>_t(e,t)?.targets.includes(r)??false,db=(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}},ub=e=>Object.keys(Si).filter(t=>e?Si[t].targets.includes(e):true),Nf=[...Object.entries(Oo),...Object.entries(xo)],Le=(...e)=>Nf.flatMap(([t,r])=>e.includes(r.valueShape)?[t]:[]),tr=Le("none"),$o=Le("ordered"),pn=Le("dateWindow"),qe=Le("range","dateRange","dateWindow"),Af=Le("ordered","string","pattern","array"),ut=[y.contains,y.notContains],Ds=[y.equals,y.notEquals,y.in,y.notIn,y.exists,y.notExists],Oi=Le("scalar","ordered","range"),ct=["sum","avg"],cb=()=>Oi,mt=Le("scalar"),rr=Le("array"),Tf=Le("scalar","array"),Cf=Le("dayList"),Mf=Le("dateRange"),kf=Le("scalar","ordered","range","dateValue","dateRange"),Lf=(...e)=>Object.entries(Si).flatMap(([t,r])=>e.includes(r.valueShape)?[t]:[]),or=Lf("count"),xi=Lf("predicate","count"),Fs=[E.any,E.all,E.none,E.empty,E.notEmpty],_f=[E.any,E.atLeast],B=[...Object.entries(Oo),...Object.entries(xo)].flatMap(([e,t])=>t.negates?[e]:[]),Df=B.filter(e=>Le("string").includes(e)),Po=B.filter(e=>qe.includes(e)),Ff=(...e)=>Nf.flatMap(([t,r])=>r.comparator&&e.includes(r.comparator)&&!B.includes(t)?[t]:[]),Ei=Ff("lt","lte"),jf=Ff("gt","gte"),If=["Int","BigInt"],Vf=[...ze,"DateTime","Boolean","String"],qf=["Int","BigInt","Float","Boolean","String"],Bf=["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}},Wf=["months","days","secs"],js=e=>Object.hasOwn(nr,e),Ar=e=>js(e)&&nr[e].calendar,$i=["year","quarter","month","week","isoWeek","day","hour","minute","second"],vo=["sunday","monday","tuesday","wednesday","thursday","friday","saturday"],Uf=e=>vo.includes(e.toLowerCase()),Kf=(e,t=[])=>Object.fromEntries([...Object.entries(e).flatMap(([r,o])=>o.negates?[[o.negates,r]]:[]),...t].flatMap(([r,o])=>[[r,o],[o,r]])),fn=Kf(Oo,[[y.isEmpty,y.notEmpty],[y.exists,y.notExists]]),Gf=Kf(xo),Pi={[y.lessThan]:y.greaterThanEquals,[y.lessThanEquals]:y.greaterThan,[y.greaterThan]:y.lessThanEquals,[y.greaterThanEquals]:y.lessThan,[v.onOrBefore]:v.after,[v.onOrAfter]:v.before};var vi=e=>new Error(`${e}: ArrayRule.field is required (fieldless arrayOps are check-only)`),le=(e,t)=>new Error(`Unknown ${t} operator: ${String(e)}`),No=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`),_e=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>'.`),Ni=e=>new Error(`'${e}' is a list of rows: compare it with an arrayOperator (any / all / none / empty / atLeast \u2026).`),Ai=e=>ut.includes(e.operator)&&gi(e.fuzzy)?new Error("Fuzzy matching has no compiled form \u2014 evaluate it in memory with check()."):null,Ti=(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":""}.`),Ao=(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(hb__default.default);wt__default.default.extend(yb__default.default);wt__default.default.extend(gb__default.default);wt__default.default.extend(mb__default.default);var oe=e=>{if(!ke(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},Is=(e,t)=>Object.entries(e).reduce((r,[o,n])=>nr[o].interval===t?r+n*nr[o].factor:r,0),zf="YYYY-MM-DDTHH:mm:ss.SSS",ar=(e,t,r,o)=>{let n=Is(t,"months"),i=Is(t,"days"),s=Is(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)},wb=e=>"ago"in e||"ahead"in e,Ci=(e,t)=>t===-1?{ago:e}:{ahead:e},ve=e=>wb(e)?"ago"in e?[e.ago,-1]:[e.ahead,1]:null,un=e=>"this"in e||"last"in e||"next"in e,Vs=e=>"start"in e||"end"in e,Mi=e=>"this"in e?e.this:"last"in e?e.last:e.next,Sb=e=>{let t=Mi(e);if(typeof t!="string"||!$i.includes(t))throw new Error(`Unknown period unit '${String(t)}'`);return t},bb=(e,t)=>e==="week"?t.weekStart==="sunday"?"week":"isoWeek":e,qs=(e,t)=>{let r=dn(t),o=Sb(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=bb(o,t);return [i.startOf(s),i.endOf(s)]},Bs=(e,t)=>{let r=ve(e);if(r)return ar(dn(t),...r,t.timeZone);if(Vs(e)){let o="start"in e?e.start:e.end,[n,i]=qs(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]=qs(e,r),i=Eo({dateOperator:t})?.negates??t;return Ei.includes(i)?o:n}return Bs(e,r)},Mo=(e,t)=>{if(un(e))return qs(e,t);let r=ve(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 Hf=["value","bind","path"],De=e=>typeof e.path=="string"&&e.path!=="",Cr=e=>De(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(De(e))return t.path(e.path);throw new Error("No value, path or bind specified")},ki=e=>ke(e)&&(e.value!==void 0||De(e)||typeof e.bind=="string"),Ws=(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},Li=(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)=>Ws(o,n,r),path:o=>Of(o,t)??null});var Qf=e=>typeof e=="object"&&e!==null,Ks=e=>"if"in e||"then"in e||"else"in e,Ne=e=>"arrayOperator"in e||"aggregate"in e,Zf=e=>[...["all","any"].flatMap(t=>Array.isArray(e[t])?e[t].map((r,o)=>({key:t,index:o,child:r,nested:false})):[]),...Ks(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||Ks(e),X=(e,t,r)=>{if(!Qf(e))return;let o=e,n=t(o,r),i=n===void 0?r:n;for(let{child:s,nested:a}of Zf(o))a?i!==false&&X(s,t,i):X(s,t,r);},Yf=(e,t,r,o)=>{let n=false;return X(e,(i,s)=>(!n&&t(i,s)&&(n=true),n?false:r?.(i,s)),o),n},lr=(e,t,r)=>{if(!Qf(e))return e;let o=r,n={...e},i=t.rewrite?t.rewrite(n,o):n,s=Zf(i),a=s.some(f=>f.nested)&&t.below?t.below(i,o):o;for(let f of ["all","any"])Array.isArray(i[f])&&(i[f]=[...i[f]]);for(let{key:f,index:p,child:d,nested:u}of s){if(u&&a===false)continue;let m=lr(d,t,u?a:o);p===void 0?i[f]=m:i[f][p]=m;}let l=t.after?t.after(i,o):i;return l===i&&Rb(i,e)?e:l},Rb=(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])})},Ob=(e,t)=>ke(e)?Object.fromEntries(Object.entries(e).map(([r,o])=>[r,ki(o)?t(o,Ar(r)?"whole":"number"):o])):e,Us=(e,t)=>{let r=oe(e)?ve(e):null;return r?Ci(Ob(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=>Us(i,t)):Us(e.value,t);o={...o,value:n};}if(ki(e.offset)){let n=r?{...e.offset,...e.offset.value!==void 0&&{value:Us(e.offset.value,t)}}:e.offset;o={...o,offset:t(n,r?"shift":"number")};}return ki(o)&&(o=t(o,"value")),o},mn=e=>{let t=[];return ko(e,(r,o)=>(t.push({source:r,role:o}),r)),t},Gs=e=>mn(e).flatMap(({source:t,role:r})=>De(t)?[{ref:t.path,role:r}]:[]),pr=e=>Gs(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]:[]],xb={all:"all",any:"any",if:"if",field:"field",aggregate:"aggregate",array:"array",date:"date"},Mr=()=>(e,t)=>({required:[...e],optional:[...t]}),Jf={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"])},Eb=e=>({required:[...Jf[e].required],optional:[...Jf[e].optional]}),se=e=>{let t=new Set;return "all"in e&&t.add("all"),"any"in e&&t.add("any"),Ks(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 $b=e=>mn(e).flatMap(({source:t})=>typeof t.bind=="string"?[t]:[]),gn=(e,{required:t=false}={})=>{let r=new Set;return X(e,o=>{for(let n of $b(o))(!t||n.bindOptional!==true)&&r.add(n.bind);}),[...r].sort()},Hs=(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:Ws(n,true,t)}};return lr(e,{rewrite:o=>ko(ko(o,r),r)})};var Xf=BigInt(Number.MAX_SAFE_INTEGER),yn=e=>{if(e>Xf||e<-Xf)throw new RangeError(`BigInt ${e} is outside the safe integer range (\xB12^53); json-rules compares BigInt as Int.`);return Number(e)},Js=e=>typeof e=="bigint"?yn(e):typeof e=="string"&&e.trim()!==""&&Number.isFinite(Number(e))?Number(e):e,_i=(e,t)=>{if(e==null)return null;let r=Js(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},Di=e=>{if(!Array.isArray(e))throw new Error(`in / notIn requires a list (got ${JSON.stringify(e)})`);return e},We=e=>{let t=Di(e),r=t.filter(o=>o!==null);return {values:r,hasNull:r.length!==t.length}},de=e=>typeof e=="string"||typeof e=="number"||e instanceof Date;var Qs=(e,t)=>typeof e=="number"&&Number.isFinite(e)&&e>=0&&(!Ar(t)||Number.isInteger(e))?null:`${t} must be a non-negative${Ar(t)?" whole":""} number (got ${String(e)})`,Zs=(e,t,r)=>{let o=typeof e=="number"?e:_i(t(e),e.path?`'${e.path}' (${r})`:r),n=o===null?null:Qs(o,r);if(n===null)return o;if(typeof e!="number"&&De(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=Zs(n,t,o);if(i===null)return null;r[o]=i;}return r},ht=(e,t)=>{let r=ve(e);if(!r)return e;let o=kr(r[0],t);return o?Ci(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=Js(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=>_i(e,"an offset"),Do=e=>{if(e==null)return null;let t=oe(e)?ve(e):null;if(!t)throw new Error(`a date offset reads { ago } or { ahead } (got ${JSON.stringify(e)})`);return t};wt__default.default.extend(hb__default.default);wt__default.default.extend(yb__default.default);wt__default.default.extend(vb__default.default);wt__default.default.extend(Pb__default.default);var rd=(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 B.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(Cf.includes(e.dateOperator)){let u=Ys(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 f=Tb(e,t,i,s,o);if(f===null)return e.error||`${e.field} has no comparison value`;let[p,d=p]=f;switch(e.dateOperator){case v.before:return a.isBefore(p)||l(`must be before ${p.format()}`);case v.after:return a.isAfter(p)||l(`must be after ${p.format()}`);case v.onOrBefore:return a.isSameOrBefore(p)||l(`must be on or before ${p.format()}`);case v.onOrAfter:return a.isSameOrAfter(p)||l(`must be on or after ${p.format()}`);case v.within:return a.isSameOrAfter(p)&&a.isSameOrBefore(d)||l(`must be within ${p.format()} and ${d.format()}`);case v.notBefore:return a.isSameOrAfter(p)||l(`must not be before ${p.format()}`);case v.notAfter:return a.isSameOrBefore(p)||l(`must not be after ${p.format()}`);case v.notWithin:return a.isBefore(p)||a.isAfter(d)||l(`must not be within ${p.format()} and ${d.format()}`);case v.between:return a.isSameOrAfter(p)&&a.isSameOrBefore(d)||l(`must be between ${p.format()} and ${d.format()}`);case v.notBetween:return a.isBefore(p)||a.isAfter(d)||l(`must not be between ${p.format()} and ${d.format()}`);default:throw le(e.dateOperator,"date")}},Tb=(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 f=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 p=(g,c)=>{if(g==null)return null;if(oe(g)){let w=ht(g,s);return w&&Bs(w,r)}let h=fr(g,o);if(!h.isValid())throw new Error(`Invalid ${c}: ${String(g)}`);return h};if(Mf.includes(i)){let[g,c]=Qe(a,i),h=p(g,"start date"),w=p(c,"end date");if(!h||!w)return null;let[R,b]=Be([h,w]),S=f(R),$=f(b);return S&&$?[S,$]: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):p(a,"comparison date");if(!u)return null;let m=f(u);return m&&[m]},Dr=(e,t)=>{let r=e.timeZone;if(r===void 0||typeof r=="string")return {...e,timeZone:td(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:td(o??Je)}},ed=new Set,td=e=>{if(ed.has(e))return e;try{new Intl.DateTimeFormat("en-US",{timeZone:e});}catch{throw new D(`invalid time zone: ${e}`)}return ed.add(e),e},Cb=/\d{2}:\d{2}(?::\d{2}(?:\.\d+)?)?\s*(?:[zZ]|[+-]\d{2}(?::?\d{2})?)$/,Mb=e=>Cb.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"&&!Mb(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)},Fi=(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()},Ys=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 Lb=e=>e<=3?0:e<=6?1:2,_b=(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):Lb(t)},od=e=>e.split(/[^a-z0-9\p{L}]+/u).filter(Boolean),Db=e=>/^\d+$/.test(e),Fb=(e,t,r)=>e===t?true:Math.abs(e.length-t.length)>r?false:fastestLevenshtein.distance(e,t)<=r,nd=(e,t,r={})=>{let o=t.trim().toLowerCase();if(!o)return true;let n=e.toLowerCase();if(n.includes(o))return true;let i=od(o);if(i.length===0)return false;let s=od(n);return s.length===0?false:i.every(a=>{let l=_b(r,a.length);return l===0||Db(a)?s.includes(a):s.some(f=>Fb(a,f,l))})};var dr=e=>{let t=e instanceof RegExp?e.source:e,r=e instanceof RegExp?e.flags:"";if(/[^i]/.test(r))throw new Error(`Refused pattern /${t}/${r}: only the 'i' flag is supported`);let o=r==="i";try{return {source:t,caseInsensitive:o,re:re2js.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 "},sd={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"},jb=/[\\^$.|?*+()[\]{}]/,Xs=255,ad=e=>e<=65535?`\\u${e.toString(16).padStart(4,"0")}`:`\\U${e.toString(16).padStart(8,"0")}`,Ib=e=>jb.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 f=e[o]==="{",p=f?e.indexOf("}",o):o+2,d=e.slice(f?o+1:o,p);return o=f?p+1:p,ad(Number.parseInt(d,16))}if(a>="0"&&a<="7"){let f=a;for(;f.length<3&&e[o]>="0"&&e[o]<="7";)f+=e[o++];return ad(Number.parseInt(f,8))}if(!s&&(a==="b"||a==="B")){let f=`[${Fo.w}]`;return a==="b"?`(?:(?<=${f})(?!${f})|(?<!${f})(?=${f}))`:`(?:(?<=${f})(?=${f})|(?<!${f})(?!${f}))`}if(!s&&(a==="z"||a==="A"))return n(),a==="z"?"\\Z":"\\A";if(a==="Q"){let f=e.indexOf("\\E",o),p=e.slice(o,f===-1?void 0:f);return o=f===-1?e.length:f+2,[...p].map(s?d=>/[\\\]^-]/.test(d)?`\\${d}`:d:Ib).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])>Xs||Number(a[2]??0)>Xs)&&t(`a repeat count past ${Xs}`),r+=a[0],o+=a[0].length;}else if(s==="["){r+="[",o++,e[o]==="^"&&(r+="^",o++),e[o]==="]"&&(r+="\\]",o++);let a=false,l=false,f=0;for(;o<e.length&&e[o]!=="]";){let p=l?null:/^\[:(\^?)([a-z]+):\]/.exec(e.slice(o)),d=!!p||/^\\[dswDSW]/.test(e.slice(o)),u=e[o]==="-"&&f>0&&e[o+1]!=="]"&&!l;p?(p[1]&&t(`a negated class [:^${p[2]}:]`),Object.hasOwn(sd,p[2])||t(`the class [:${p[2]}:]`),r+=sd[p[2]],o+=p[0].length):e[o]==="\\"?r+=i(true):u&&a?(r+="\\-",o++):(r+=e[o]==="["?"\\[":e[o],o++);let m=l;l=u&&!a,a=d||m,f++;}r+="]",o++;}else r+=s,o++,(s==="^"||s==="$")&&n();}return r},ld=(e,t)=>{try{let{source:r}=dr(e);return t==="toSql"&&hn(r),null}catch(r){return r.message}};var pd=e=>e==null||e===""||Array.isArray(e)&&e.length===0,he=(e,t)=>{let r=t==null;return r&&(e.offset!==void 0||Af.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,Ii=(e,t)=>{let r=t.filter(n=>Array.isArray(n)||n===null),o=n=>r.map(i=>({...e,operator:n,value:i}));return e.operator===y.in?It(o(y.equals)):K(o(y.notEquals))},jr=e=>typeof e=="string"?e.toLowerCase():Array.isArray(e)?e.map(jr):e,fd=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,dd=(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=>dd(o,t,r)):dd(e,t,r),wn=(e,t,r,o={},n)=>{let i=n?n.value:Yt(e.field,t)??null,s=e.coerceType??(i instanceof Date?"DateTime":void 0),a=s==="DateTime"?Dr(o,R=>jt(R,t,r)).timeZone:Je,l=Fr(fd(i),s,a),f=!tr.includes(e.operator),p=f?Vb(Fr(fd(jt(e,t,r)??null),s,a),e,t,r):void 0;if(f&&he(e,p))return B.includes(e.operator)&&l==null?true:e.error||`${e.field} has no comparison value`;let d=R=>e.error||`${e.field} ${R}${f?` ${p instanceof RegExp?String(p):JSON.stringify(p)}`:""}`,u=ie(e.caseInsensitive),m=R=>u?jr(R):R,g=m(l),c=m(p),h=gi(e.fuzzy),w=()=>h&&typeof l=="string"&&typeof p=="string"?nd(l,p,h):Array.isArray(l)?g.some(R=>Nr(R,c)):qb(g,c);switch(e.operator){case y.equals:return Nr(g,c)||d("must equal");case y.notEquals:return !Nr(g,c)||d("must not equal");case y.lessThan:return ji(l,p,"lt")||d("must be less than");case y.lessThanEquals:return ji(l,p,"lte")||d("must be less than or equal to");case y.greaterThan:return ji(l,p,"gt")||d("must be greater than");case y.greaterThanEquals:return ji(l,p,"gte")||d("must be greater than or equal to");case y.in:return Di(c).some(R=>Nr(R,g))||d("must be one of");case y.notIn:return !Di(c).some(R=>Nr(R,g))||d("must not be one of");case y.contains:return w()||d("must contain");case y.notContains:return !w()||d("must not contain");case y.matches:return ud(l)&&cd(p)&&dr(p).re.test(l)||d("must match pattern");case y.notMatches:return !ud(l)||!cd(p)||!dr(p).re.test(l)||d("must not match pattern");case y.between:{let R=md(p,e.operator);if(!yd(l,R))return d("must be between");let b=jo(l),[S,$]=R;return b>=S&&b<=$||d("must be between")}case y.notBetween:{let R=md(p,e.operator);if(!yd(l,R))return true;let b=jo(l),[S,$]=R;return b<S||b>$||d("must not be between")}case y.isEmpty:return pd(l)||d("must be empty");case y.notEmpty:return !pd(l)||d("must not be empty");case y.exists:return l!=null||d("must exist");case y.notExists:return l==null||d("must not exist");case y.startsWith:return typeof g=="string"&&typeof c=="string"&&g.startsWith(c)||d("must start with");case y.endsWith:return typeof g=="string"&&typeof c=="string"&&g.endsWith(c)||d("must end with");case y.notStartsWith:return !(typeof g=="string"&&typeof c=="string"&&g.startsWith(c))||d("must not start with");case y.notEndsWith:return !(typeof g=="string"&&typeof c=="string"&&g.endsWith(c))||d("must not end with");default:throw new Error("Unknown operator")}},Vb=(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,ji=(e,t,r)=>{if(!Bb(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}},ud=e=>typeof e=="string",cd=e=>typeof e=="string"||e instanceof RegExp,md=(e,t)=>Be(_o(e,t).map(r=>jo(r))),qb=(e,t)=>typeof e=="string"&&typeof t=="string"&&e.includes(t),Bb=(e,t)=>de(e)&&de(t)&&gd(e)===gd(t),gd=e=>e instanceof Date?"date":typeof e,yd=(e,t)=>de(e)&&typeof jo(e)==typeof t[0];var be=e=>e.filter!==void 0||!!e.orderBy?.length||e.take!==void 0||e.skip!==void 0,Wb=e=>{if(typeof e!="object"||e===null)return null;let t=e,r=se(t);return r!=="field"&&r!=="date"||typeof t.field!="string"?null:{op:String(r==="date"?t.dateOperator:t.operator),field:t.field}},Ub=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=Wb(e.condition);if(!n||n.field!==t)return null;let i=Ei.includes(n.op),s=jf.includes(n.op);if(!i&&!s)return null;let a=r==="desc";if(!(o==="all"?a&&i||!a&&s:a&&s||!a&&i))return null;let{orderBy:f,take:p,skip:d,count:u,...m}=e;if(o==="any")return {...m,arrayOperator:E.any};let g={field:t,operator:y.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}}]}]}},ea=(e,t,r)=>{let o=e;return t.filter!==void 0&&r&&(o=o.filter(r)),t.orderBy?.length&&(o=hd(o,t.orderBy)),t.skip!==void 0&&(o=o.slice(t.skip)),t.take!==void 0&&(o=o.slice(0,t.take)),o},hd=(e,t)=>[...e].sort((r,o)=>{for(let{field:n,dir:i}of t){let s=Kb(ye(r,n),ye(o,n),i);if(s!==0)return s}return 0}),Kb=(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(!be(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:Ub(e)};var Gb=e=>X(e,t=>{let r=se(t);if(!(r==="all"||r==="any")){if(r==="array"&&!("field"in t))return false;throw new Error("check: when data is an array, every leaf must be a fieldless arrayOperator (composable with all/any)")}}),ue=(e,t,r)=>(Array.isArray(t)&&Gb(e),St(e,t,{...r,scopes:[t]})),St=(e,t,r)=>{if(typeof e=="boolean")return e;let o=e;switch(se(e)){case "all":return zb(o.all,t,r,o.error);case "any":return Hb(o.any,t,r,o.error);case "if":return Jb(o,t,r);case "array":return Zb(o,r);case "aggregate":return Qb(o,r);case "date":return rd(o,r.scopes,r,r.bindings);case "field":return wn(o,r.scopes,r.bindings,r);default:throw gt()}},Vi=(e,t)=>({...e,scopes:[...e.scopes,t]}),zb=(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},Hb=(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 ")}`)},Jb=(e,t,r)=>St(e.if,t,r)===true?St(e.then,t,r):e.else!==void 0?St(e.else,t,r):true,wd=(e,t)=>{if(e==null)return [];if(!Array.isArray(e))throw new Error(`${t} must be an array`);return e},Qb=(e,t)=>{let r=wd(Yt(e.field,t.scopes),e.field),o=e.filter,n=ea(r,e,o?m=>St(o,m,Vi(t,m))===true:void 0),{mode:i,field:s}=e.aggregate;if(!ct.includes(i))throw sr(i);let a=e.condition,f=(a?n.filter(m=>St(a,m,Vi(t,m))===true):n).flatMap((m,g)=>{let c=s?ye(m,s):m;if(c==null)return [];if(typeof c!="number"||!Number.isFinite(c)){let h=`${e.field}[${g}]${s?`.${s}`:""}`;throw new Error(`${h} must be a finite number`)}return [c]}),p=f.reduce((m,g)=>m+g,0),d=i==="sum"||f.length===0?p:p/f.length,u={...e,field:`${e.field} ${i}`};return wn(u,t.scopes,t.bindings,t,{value:d})},Zb=(e,t)=>{let r=wd(e.field?Yt(e.field,t.scopes):t.scopes[t.scopes.length-1],e.field||"(root)"),o=e.filter,n=ea(r,e,o?d=>St(o,d,Vi(t,d))===true:void 0),i=d=>e.error||`${e.field} ${d}`,s=e.condition,a=xi.includes(e.arrayOperator);if(a&&s===void 0)throw _e(e.arrayOperator);let l=e.count??0;if(or.includes(e.arrayOperator)&&e.count===void 0)throw No(e.arrayOperator);let f=0,p=0;if(a&&s!==void 0){if(n.length>0&&!ks(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,Vi(t,u)));f=d.filter(u=>u===true).length,p=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 f===n.length||i(`all elements must match (${p} failed)`);case E.any:return !!f||i("at least one element must match");case E.none:return !f||i(`no elements should match (${f} matched)`);case E.atLeast:return f>=l||i(`at least ${l} elements must match (${f} matched)`);case E.atMost:return f<=l||i(`at most ${l} elements must match (${f} matched)`);case E.exactly:return f===l||i(`exactly ${l} elements must match (${f} matched)`);default:throw le(e.arrayOperator,"array")}};var O=(e,t)=>e!==void 0&&Object.hasOwn(e,t)?e[t]:void 0,qt=(e,t,r)=>(Object.hasOwn(e,t)||(e[t]=r()),e[t]),T=(e,t)=>O(e?.models,t),Re=(e,t,r)=>O(T(e,t)?.fields,r);var Ae=({fieldMap:e,model:t})=>`${e}:${t}`,Sd=(e,t)=>{let r=e.indexOf(":");return r===-1?{mapName:t,modelName:e}:{mapName:e.slice(0,r),modelName:e.slice(r+1)}};var bd=(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},Yb=(e,t)=>{let r={};for(let o of e){let n=O(o,t);n!=null&&qt(r,String(n),()=>[]).push(o);}return r},Rd=(e,t)=>{let r={};for(let o of e.bridges??[]){let[n,i]=o.endpoints,s=Ae(n),a=Ae(i),l=o.cardinality==="oneToMany"?"one":"oneToOne",f=(u,m)=>qt(qt(r,u,()=>({})),m,()=>({})),p=O(t,s);p&&(f(n.fieldMap,n.model)[n.on]=bd(p,n.on,s,l));let d=O(t,a);d&&(o.cardinality==="oneToMany"?f(i.fieldMap,i.model)[i.on]=Yb(d,i.on):f(i.fieldMap,i.model)[i.on]=bd(d,i.on,a,"oneToOne"));}return r};var qi=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=Ae(o),s=Ae(n),a=T(O(t.maps,o.fieldMap),o.model),l=T(O(t.maps,n.fieldMap),n.model);if(!a)throw new Error(`stitchFieldMaps: endpoint '${i}' not found`);if(!l)throw new Error(`stitchFieldMaps: endpoint '${s}' not found`);if(o.fieldMap===n.fieldMap&&o.model===n.model)throw new Error(`stitchFieldMaps: self-bridge '${i}' to itself is not supported`);if(!O(a.fields,o.on))throw new Error(`stitchFieldMaps: endpoint '${i}' has no field '${o.on}' for join`);if(!O(l.fields,n.on))throw new Error(`stitchFieldMaps: endpoint '${s}' has no field '${n.on}' for join`);if(O(a.fields,s))throw new Error(`stitchFieldMaps: bridge '${s}' already injected on '${i}'`);if(O(l.fields,i))throw new Error(`stitchFieldMaps: bridge '${i}' already injected on '${s}'`);let f=r.cardinality==="oneToMany";a.fields[s]={kind:"bridge",type:s,isList:f},l.fields[i]={kind:"bridge",type:i,isList:false};}return t};var 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 Oe=(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"?Sd(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=Re(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:f}of ur({"":t},i,e)){let p=l.modelName;if(!f)return {kind:"fallback",hops:n};if(f.kind==="bridge")return {kind:"bridge",hops:n};let d=s===o.length-1;if(f.kind==="object"){if(!T(t,f.type))return {kind:"fallback",hops:n};if(d)return {kind:"direct",hops:n,entry:f,model:p,column:a};n.push({field:a,prefix:o.slice(0,s+1).join("."),entry:f,from:p});continue}return d?{kind:"direct",hops:n,entry:f,model:p,column:a}:je(f)?{kind:"json-path",hops:n,entry:f,model:p,column:a,stopIndex:s+1,jsonPath:o.slice(s+1)}:{kind:"past-scalar",hops:n,column:a}}return {kind:"fallback",hops:n}},cr=(e,t,r)=>t&&r?ee(e,t,r):void 0,Z=(e,t,r)=>{let o=cr(e,t,r);return o?.kind==="direct"?o.entry:void 0},Od=(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&&Yf(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":xd(e.entry.type),xd=e=>e===Q.Json?"json":e===Q.Enum?"enum":e===Q.DateTime?"instant":e===Q.String?"text":"scalar",Bi=(e,t,r)=>{let o=Z(e.field,t,r);return o?o.kind==="scalar"&&(o.type==="String"||o.type==="Json"):e.coerceType===void 0||e.coerceType==="String"||e.coerceType==="Json"},Wi=(e,t,r)=>{if(Vr(cr(e,t,r))==="relations")throw Ni(e)},qr=e=>e!=="scalar"&&e!=="instant"&&e!=="list"&&e!=="enum"&&e!=="relation"&&e!=="relations",gr=(e,t)=>qr(e)&&Ed(t),Ed=e=>typeof e=="string"||Array.isArray(e)&&e.some(Ed),Ie=(e,t,r)=>{let o=Vr(cr(e.field,t,r));return o==="unknown"&&e.coerceType!==void 0?xd(e.coerceType):o},Ye=e=>{if(!e.isList){if(e.kind==="enum")return Q.Enum;if(!(e.kind!=="scalar"||e.type===Q.Json))return bi(e.type)?e.type:void 0}};var $d=new WeakSet,Ki=e=>($d.add(e),e),Pd=e=>{if(e===null||typeof e!="object")return false;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null},vd=e=>{let t=[],r=(o,n)=>{if(o!==null&&typeof o=="object"&&$d.has(o)){t.push({path:n});return}if(Array.isArray(o))for(let[i,s]of o.entries())r(s,[...n,i]);else if(Pd(o))for(let[i,s]of Object.entries(o))r(s,[...n,i]);};return r(e,[]),t},Xb=["__step","__field"],Ui=e=>Array.isArray(e)?e.some(Ui):Pd(e)?Object.entries(e).some(([t,r])=>Xb.includes(t)||Ui(r)):false;var eR={[y.equals]:"equals",[y.notEquals]:"equals",[y.lessThan]:"lt",[y.lessThanEquals]:"lte",[y.greaterThan]:"gt",[y.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},Gi=(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=eR[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 f=s?s.path:i,p=Nd(f,t,r);if(typeof p=="string")return {problem:p};if(l.kind!==p.kind||l.type!==p.type)return {problem:`'${e.field}' (${l.type}) and '${f}' (${p.type}) are not the same type`};let d=Vo(l,p,e.operator);return d?{problem:d}:l.type==="String"&&ie(e.caseInsensitive)?{problem:"a case-insensitive column comparison compiles to ILIKE"}:{key:a,ref:Ki({__field:{model:r,field:f}}),field:l,column:p,columnPath:f}},zi=(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().`),Ad=new WeakSet,ta=new WeakSet,Br=(e,t,r=false)=>(Ad.add(e),(r||t!==void 0&&ta.has(t))&&ta.add(e),e),Td=e=>e!==void 0&&Ad.has(e),Cd=e=>e!==void 0&&ta.has(e);var ra=e=>({field:e,operator:"notExists"}),tR=(e,t)=>{let r=t(e);if(r===null){let i=e.operator??e.dateOperator;return B.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(Pi,r.operator)}}if(typeof r.dateOperator=="string"){let i=O(Gf,r.dateOperator);return i?{...r,dateOperator:i}:It([{...r,dateOperator:O(Pi,r.dateOperator)},ra(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(Pi,r.operator)},ra(r.field),...n&&n.depth===1?[ra(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 tR(r,t)},Md=e=>se(e)==="field"&&e.value!==void 0&&he(e,e.value)?null:e;var kd,Ld=e=>{kd=e;},ae=(e,t,r)=>kd(e,t,r);var rR=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(Ui(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=>rR(t),bind:(t,r)=>Li(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:f,...p}=t,d={...p,value:i,...t.offset!==void 0&&{offset:{value:s}}};return typeof t.dateOperator=="string"?i==null||he({operator:t.dateOperator},i)?null:d:Md(d)};var Xe=()=>({}),Wr=Xe,Ot=()=>({OR:[]}),oa=e=>Object.keys(e).length===0,_d=e=>{let t=Object.keys(e);return t.length===1&&t[0]==="OR"&&Array.isArray(e.OR)&&e.OR.length===0},Ke=e=>{if(e.some(_d))return Ot();let t=e.filter(r=>!oa(r));return t.length===0?Xe():t.length===1?t[0]:{AND:t}},q=e=>{if(e.some(oa))return Xe();let t=e.filter(r=>!_d(r));return t.length===0?Ot():t.length===1?t[0]:{OR:t}},Te=e=>oa(e)?e:{NOT:e},Dd=(e,t,r)=>Ke(e.all.map(o=>ae(o,t,r))),Fd=(e,t,r)=>q(e.any.map(o=>ae(o,t,r))),jd=(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=q([o,n]);if(e.else!==void 0){let s=ae(e.if,t,r),a=ae(e.else,t,r);return Ke([i,q([s,a])])}return i};var oR=(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=oR(e,r.type,t,r.relationName);return o?.fromFields?.length?o.fromFields.map((n,i)=>({here:o.toFields?.[i]??"id",there:n})):null},Hi=(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(f=>f.kind==="object"&&f.type===i.model&&f.isList&&!f.fromFields?.length);throw new Error(l?`'${i.model}.${i.column}' is an implicit many-to-many relation. ${o} require an explicit join model with a FK \u2014 convert to an explicit @relation or use prisma.$queryRaw.`:`Cannot determine FK relationship between '${i.model}' and '${i.entry.type}'. Ensure the FieldMap contains both sides of the relation.`)}if(a.length>1)throw new Error(`${o} do not support composite FK relations ('${i.model}.${i.column}'). Use prisma.$queryRaw.`);return {through:i.hops.map(l=>l.field).join("."),target:i.entry.type,parentKey:a[0].here,targetKey:a[0].there}},Ji=(e,t,r,o,n)=>{let i={operation:"groupBy",model:t.target,args:{by:[t.targetKey],where:r,having:o},extract:t.targetKey},s=Ki({__step:e.steps.length});e.steps.push(i);let a={[t.parentKey]:{in:s}},l=n?Te(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'),hb=require('dayjs/plugin/isoWeek.js'),wb=require('dayjs/plugin/quarterOfYear.js'),Sb=require('dayjs/plugin/timezone.js'),bb=require('dayjs/plugin/utc.js'),Ab=require('dayjs/plugin/isSameOrAfter.js'),Tb=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 hb__default=/*#__PURE__*/_interopDefault(hb);var wb__default=/*#__PURE__*/_interopDefault(wb);var Sb__default=/*#__PURE__*/_interopDefault(Sb);var bb__default=/*#__PURE__*/_interopDefault(bb);var Ab__default=/*#__PURE__*/_interopDefault(Ab);var Tb__default=/*#__PURE__*/_interopDefault(Tb);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 Kc=typeof global=="object"&&global&&global.Object===Object&&global,Vn=Kc;var Gc=typeof self=="object"&&self&&self.Object===Object&&self,zc=Vn||Gc||Function("return this")(),re=zc;var Hc=re.Symbol,Se=Hc;var Xa=Object.prototype,Jc=Xa.hasOwnProperty,Qc=Xa.toString,rn=Se?Se.toStringTag:void 0;function Zc(e){var t=Jc.call(e,rn),r=e[rn];try{e[rn]=void 0;var o=!0;}catch{}var n=Qc.call(e);return o&&(t?e[rn]=r:delete e[rn]),n}var el=Zc;var Yc=Object.prototype,Xc=Yc.toString;function em(e){return Xc.call(e)}var tl=em;var tm="[object Null]",rm="[object Undefined]",rl=Se?Se.toStringTag:void 0;function om(e){return e==null?e===void 0?rm:tm:rl&&rl in Object(e)?el(e):tl(e)}var ke=om;function nm(e){return e!=null&&typeof e=="object"}var ie=nm;var im="[object Symbol]";function sm(e){return typeof e=="symbol"||ie(e)&&ke(e)==im}var Qr=sm;function am(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 ol=am;var lm=Array.isArray,H=lm;var nl=Se?Se.prototype:void 0,il=nl?nl.toString:void 0;function sl(e){if(typeof e=="string")return e;if(H(e))return ol(e,sl)+"";if(Qr(e))return il?il.call(e):"";var t=e+"";return t=="0"&&1/e==-Infinity?"-0":t}var al=sl;function fm(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var J=fm;function dm(e){return e}var Zr=dm;var um="[object AsyncFunction]",cm="[object Function]",mm="[object GeneratorFunction]",gm="[object Proxy]";function ym(e){if(!J(e))return false;var t=ke(e);return t==cm||t==mm||t==um||t==gm}var Yr=ym;var hm=re["__core-js_shared__"],qn=hm;var ll=(function(){var e=/[^.]+$/.exec(qn&&qn.keys&&qn.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""})();function wm(e){return !!ll&&ll in e}var pl=wm;var Sm=Function.prototype,bm=Sm.toString;function Rm(e){if(e!=null){try{return bm.call(e)}catch{}try{return e+""}catch{}}return ""}var At=Rm;var Om=/[\\^$.*+?()[\]{}|]/g,xm=/^\[object .+?Constructor\]$/,Em=Function.prototype,$m=Object.prototype,Pm=Em.toString,vm=$m.hasOwnProperty,Nm=RegExp("^"+Pm.call(vm).replace(Om,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Am(e){if(!J(e)||pl(e))return false;var t=Yr(e)?Nm:xm;return t.test(At(e))}var fl=Am;function Tm(e,t){return e?.[t]}var dl=Tm;function Cm(e,t){var r=dl(e,t);return fl(r)?r:void 0}var ve=Cm;var Mm=ve(re,"WeakMap"),Bn=Mm;var ul=Object.create,km=(function(){function e(){}return function(t){if(!J(t))return {};if(ul)return ul(t);e.prototype=t;var r=new e;return e.prototype=void 0,r}})(),cl=km;function Lm(e,t,r){switch(r.length){case 0:return e.call(t);case 1:return e.call(t,r[0]);case 2:return e.call(t,r[0],r[1]);case 3:return e.call(t,r[0],r[1],r[2])}return e.apply(t,r)}var ml=Lm;function _m(e,t){var r=-1,o=e.length;for(t||(t=Array(o));++r<o;)t[r]=e[r];return t}var Wn=_m;var Dm=800,Fm=16,jm=Date.now;function Im(e){var t=0,r=0;return function(){var o=jm(),n=Fm-(o-r);if(r=o,n>0){if(++t>=Dm)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}var gl=Im;function Vm(e){return function(){return e}}var yl=Vm;var qm=(function(){try{var e=ve(Object,"defineProperty");return e({},"",{}),e}catch{}})(),Xr=qm;var Bm=Xr?function(e,t){return Xr(e,"toString",{configurable:true,enumerable:false,value:yl(t),writable:true})}:Zr,hl=Bm;var Wm=gl(hl),wl=Wm;function Um(e,t){for(var r=-1,o=e==null?0:e.length;++r<o&&t(e[r],r,e)!==false;);return e}var Sl=Um;var Km=9007199254740991,Gm=/^(?:0|[1-9]\d*)$/;function zm(e,t){var r=typeof e;return t=t??Km,!!t&&(r=="number"||r!="symbol"&&Gm.test(e))&&e>-1&&e%1==0&&e<t}var zt=zm;function Hm(e,t,r){t=="__proto__"&&Xr?Xr(e,t,{configurable:true,enumerable:true,value:r,writable:true}):e[t]=r;}var eo=Hm;function Jm(e,t){return e===t||e!==e&&t!==t}var it=Jm;var Qm=Object.prototype,Zm=Qm.hasOwnProperty;function Ym(e,t,r){var o=e[t];(!(Zm.call(e,t)&&it(o,r))||r===void 0&&!(t in e))&&eo(e,t,r);}var to=Ym;function Xm(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=Xm;var bl=Math.max;function eg(e,t,r){return t=bl(t===void 0?e.length-1:t,0),function(){for(var o=arguments,n=-1,i=bl(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),ml(e,this,a)}}var Rl=eg;function tg(e,t){return wl(Rl(e,t,Zr),e+"")}var Ol=tg;var rg=9007199254740991;function og(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=rg}var ro=og;function ng(e){return e!=null&&ro(e.length)&&!Yr(e)}var at=ng;function ig(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=ig;function sg(e){return Ol(function(t,r){var o=-1,n=r.length,i=n>1?r[n-1]:void 0,s=n>2?r[2]:void 0;for(i=e.length>3&&typeof i=="function"?(n--,i):void 0,s&&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 xl=sg;var ag=Object.prototype;function lg(e){var t=e&&e.constructor,r=typeof t=="function"&&t.prototype||ag;return e===r}var oo=lg;function pg(e,t){for(var r=-1,o=Array(e);++r<e;)o[r]=t(r);return o}var El=pg;var fg="[object Arguments]";function dg(e){return ie(e)&&ke(e)==fg}var vs=dg;var $l=Object.prototype,ug=$l.hasOwnProperty,cg=$l.propertyIsEnumerable,mg=vs((function(){return arguments})())?vs:function(e){return ie(e)&&ug.call(e,"callee")&&!cg.call(e,"callee")},$r=mg;function gg(){return false}var Pl=gg;var Al=typeof exports=="object"&&exports&&!exports.nodeType&&exports,vl=Al&&typeof module=="object"&&module&&!module.nodeType&&module,yg=vl&&vl.exports===Al,Nl=yg?re.Buffer:void 0,hg=Nl?Nl.isBuffer:void 0,wg=hg||Pl,Tt=wg;var Sg="[object Arguments]",bg="[object Array]",Rg="[object Boolean]",Og="[object Date]",xg="[object Error]",Eg="[object Function]",$g="[object Map]",Pg="[object Number]",vg="[object Object]",Ng="[object RegExp]",Ag="[object Set]",Tg="[object String]",Cg="[object WeakMap]",Mg="[object ArrayBuffer]",kg="[object DataView]",Lg="[object Float32Array]",_g="[object Float64Array]",Dg="[object Int8Array]",Fg="[object Int16Array]",jg="[object Int32Array]",Ig="[object Uint8Array]",Vg="[object Uint8ClampedArray]",qg="[object Uint16Array]",Bg="[object Uint32Array]",G={};G[Lg]=G[_g]=G[Dg]=G[Fg]=G[jg]=G[Ig]=G[Vg]=G[qg]=G[Bg]=true;G[Sg]=G[bg]=G[Mg]=G[Rg]=G[kg]=G[Og]=G[xg]=G[Eg]=G[$g]=G[Pg]=G[vg]=G[Ng]=G[Ag]=G[Tg]=G[Cg]=false;function Wg(e){return ie(e)&&ro(e.length)&&!!G[ke(e)]}var Tl=Wg;function Ug(e){return function(t){return e(t)}}var no=Ug;var Cl=typeof exports=="object"&&exports&&!exports.nodeType&&exports,on=Cl&&typeof module=="object"&&module&&!module.nodeType&&module,Kg=on&&on.exports===Cl,Ns=Kg&&Vn.process,Gg=(function(){try{var e=on&&on.require&&on.require("util").types;return e||Ns&&Ns.binding&&Ns.binding("util")}catch{}})(),Ct=Gg;var Ml=Ct&&Ct.isTypedArray,zg=Ml?no(Ml):Tl,io=zg;var Hg=Object.prototype,Jg=Hg.hasOwnProperty;function Qg(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?El(e.length,String):[],l=a.length;for(var p in e)(t||Jg.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=Qg;function Zg(e,t){return function(r){return e(t(r))}}var Gn=Zg;var Yg=Gn(Object.keys,Object),kl=Yg;var Xg=Object.prototype,ey=Xg.hasOwnProperty;function ty(e){if(!oo(e))return kl(e);var t=[];for(var r in Object(e))ey.call(e,r)&&r!="constructor"&&t.push(r);return t}var Ll=ty;function ry(e){return at(e)?Kn(e):Ll(e)}var lt=ry;function oy(e){var t=[];if(e!=null)for(var r in Object(e))t.push(r);return t}var _l=oy;var ny=Object.prototype,iy=ny.hasOwnProperty;function sy(e){if(!J(e))return _l(e);var t=oo(e),r=[];for(var o in e)o=="constructor"&&(t||!iy.call(e,o))||r.push(o);return r}var Dl=sy;function ay(e){return at(e)?Kn(e,true):Dl(e)}var pt=ay;var ly=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,py=/^\w*$/;function fy(e,t){if(H(e))return false;var r=typeof e;return r=="number"||r=="symbol"||r=="boolean"||e==null||Qr(e)?true:py.test(e)||!ly.test(e)||t!=null&&e in Object(t)}var so=fy;var dy=ve(Object,"create"),Mt=dy;function uy(){this.__data__=Mt?Mt(null):{},this.size=0;}var Fl=uy;function cy(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var jl=cy;var my="__lodash_hash_undefined__",gy=Object.prototype,yy=gy.hasOwnProperty;function hy(e){var t=this.__data__;if(Mt){var r=t[e];return r===my?void 0:r}return yy.call(t,e)?t[e]:void 0}var Il=hy;var wy=Object.prototype,Sy=wy.hasOwnProperty;function by(e){var t=this.__data__;return Mt?t[e]!==void 0:Sy.call(t,e)}var Vl=by;var Ry="__lodash_hash_undefined__";function Oy(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=Mt&&t===void 0?Ry:t,this}var ql=Oy;function ao(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var o=e[t];this.set(o[0],o[1]);}}ao.prototype.clear=Fl;ao.prototype.delete=jl;ao.prototype.get=Il;ao.prototype.has=Vl;ao.prototype.set=ql;var As=ao;function xy(){this.__data__=[],this.size=0;}var Bl=xy;function Ey(e,t){for(var r=e.length;r--;)if(it(e[r][0],t))return r;return -1}var Ht=Ey;var $y=Array.prototype,Py=$y.splice;function vy(e){var t=this.__data__,r=Ht(t,e);if(r<0)return false;var o=t.length-1;return r==o?t.pop():Py.call(t,r,1),--this.size,true}var Wl=vy;function Ny(e){var t=this.__data__,r=Ht(t,e);return r<0?void 0:t[r][1]}var Ul=Ny;function Ay(e){return Ht(this.__data__,e)>-1}var Kl=Ay;function Ty(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 Gl=Ty;function lo(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var o=e[t];this.set(o[0],o[1]);}}lo.prototype.clear=Bl;lo.prototype.delete=Wl;lo.prototype.get=Ul;lo.prototype.has=Kl;lo.prototype.set=Gl;var Jt=lo;var Cy=ve(re,"Map"),Qt=Cy;function My(){this.size=0,this.__data__={hash:new As,map:new(Qt||Jt),string:new As};}var zl=My;function ky(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var Hl=ky;function Ly(e,t){var r=e.__data__;return Hl(t)?r[typeof t=="string"?"string":"hash"]:r.map}var Zt=Ly;function _y(e){var t=Zt(this,e).delete(e);return this.size-=t?1:0,t}var Jl=_y;function Dy(e){return Zt(this,e).get(e)}var Ql=Dy;function Fy(e){return Zt(this,e).has(e)}var Zl=Fy;function jy(e,t){var r=Zt(this,e),o=r.size;return r.set(e,t),this.size+=r.size==o?0:1,this}var Yl=jy;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=zl;po.prototype.delete=Jl;po.prototype.get=Ql;po.prototype.has=Zl;po.prototype.set=Yl;var Pr=po;var Iy="Expected a function";function Ts(e,t){if(typeof e!="function"||t!=null&&typeof t!="function")throw new TypeError(Iy);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 Xl=Ts;var Vy=500;function qy(e){var t=Xl(e,function(o){return r.size===Vy&&r.clear(),o}),r=t.cache;return t}var ep=qy;var By=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Wy=/\\(\\)?/g,Uy=ep(function(e){var t=[];return e.charCodeAt(0)===46&&t.push(""),e.replace(By,function(r,o,n,i){t.push(n?i.replace(Wy,"$1"):o||r);}),t}),tp=Uy;function Ky(e){return e==null?"":al(e)}var rp=Ky;function Gy(e,t){return H(e)?e:so(e,t)?[e]:tp(rp(e))}var fo=Gy;function Hy(e){if(typeof e=="string"||Qr(e))return e;var t=e+"";return t=="0"&&1/e==-Infinity?"-0":t}var ft=Hy;function Jy(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=Jy;function Qy(e,t,r){var o=e==null?void 0:zn(e,t);return o===void 0?r:o}var op=Qy;function Zy(e,t){for(var r=-1,o=t.length,n=e.length;++r<o;)e[n+r]=t[r];return e}var Hn=Zy;var Yy=Gn(Object.getPrototypeOf,Object),uo=Yy;var Xy="[object Object]",eh=Function.prototype,th=Object.prototype,np=eh.toString,rh=th.hasOwnProperty,oh=np.call(Object);function nh(e){if(!ie(e)||ke(e)!=Xy)return false;var t=uo(e);if(t===null)return true;var r=rh.call(t,"constructor")&&t.constructor;return typeof r=="function"&&r instanceof r&&np.call(r)==oh}var Le=nh;function ih(){this.__data__=new Jt,this.size=0;}var ip=ih;function sh(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var sp=sh;function ah(e){return this.__data__.get(e)}var ap=ah;function lh(e){return this.__data__.has(e)}var lp=lh;var ph=200;function fh(e,t){var r=this.__data__;if(r instanceof Jt){var o=r.__data__;if(!Qt||o.length<ph-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 pp=fh;function co(e){var t=this.__data__=new Jt(e);this.size=t.size;}co.prototype.clear=ip;co.prototype.delete=sp;co.prototype.get=ap;co.prototype.has=lp;co.prototype.set=pp;var dt=co;function dh(e,t){return e&&st(t,lt(t),e)}var fp=dh;function uh(e,t){return e&&st(t,pt(t),e)}var dp=uh;var gp=typeof exports=="object"&&exports&&!exports.nodeType&&exports,up=gp&&typeof module=="object"&&module&&!module.nodeType&&module,ch=up&&up.exports===gp,cp=ch?re.Buffer:void 0,mp=cp?cp.allocUnsafe:void 0;function mh(e,t){if(t)return e.slice();var r=e.length,o=mp?mp(r):new e.constructor(r);return e.copy(o),o}var Jn=mh;function gh(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 yp=gh;function yh(){return []}var Qn=yh;var hh=Object.prototype,wh=hh.propertyIsEnumerable,hp=Object.getOwnPropertySymbols,Sh=hp?function(e){return e==null?[]:(e=Object(e),yp(hp(e),function(t){return wh.call(e,t)}))}:Qn,mo=Sh;function bh(e,t){return st(e,mo(e),t)}var wp=bh;var Rh=Object.getOwnPropertySymbols,Oh=Rh?function(e){for(var t=[];e;)Hn(t,mo(e)),e=uo(e);return t}:Qn,Zn=Oh;function xh(e,t){return st(e,Zn(e),t)}var Sp=xh;function Eh(e,t,r){var o=t(e);return H(e)?o:Hn(o,r(e))}var Yn=Eh;function $h(e){return Yn(e,lt,mo)}var nn=$h;function Ph(e){return Yn(e,pt,Zn)}var bp=Ph;var vh=ve(re,"DataView"),Xn=vh;var Nh=ve(re,"Promise"),ei=Nh;var Ah=ve(re,"Set"),ti=Ah;var Rp="[object Map]",Th="[object Object]",Op="[object Promise]",xp="[object Set]",Ep="[object WeakMap]",$p="[object DataView]",Ch=At(Xn),Mh=At(Qt),kh=At(ei),Lh=At(ti),_h=At(Bn),vr=ke;(Xn&&vr(new Xn(new ArrayBuffer(1)))!=$p||Qt&&vr(new Qt)!=Rp||ei&&vr(ei.resolve())!=Op||ti&&vr(new ti)!=xp||Bn&&vr(new Bn)!=Ep)&&(vr=function(e){var t=ke(e),r=t==Th?e.constructor:void 0,o=r?At(r):"";if(o)switch(o){case Ch:return $p;case Mh:return Rp;case kh:return Op;case Lh:return xp;case _h:return Ep}return t});var kt=vr;var Dh=Object.prototype,Fh=Dh.hasOwnProperty;function jh(e){var t=e.length,r=new e.constructor(t);return t&&typeof e[0]=="string"&&Fh.call(e,"index")&&(r.index=e.index,r.input=e.input),r}var Pp=jh;var Ih=re.Uint8Array,go=Ih;function Vh(e){var t=new e.constructor(e.byteLength);return new go(t).set(new go(e)),t}var yo=Vh;function qh(e,t){var r=t?yo(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.byteLength)}var vp=qh;var Bh=/\w*$/;function Wh(e){var t=new e.constructor(e.source,Bh.exec(e));return t.lastIndex=e.lastIndex,t}var Np=Wh;var Ap=Se?Se.prototype:void 0,Tp=Ap?Ap.valueOf:void 0;function Uh(e){return Tp?Object(Tp.call(e)):{}}var Cp=Uh;function Kh(e,t){var r=t?yo(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.length)}var ri=Kh;var Gh="[object Boolean]",zh="[object Date]",Hh="[object Map]",Jh="[object Number]",Qh="[object RegExp]",Zh="[object Set]",Yh="[object String]",Xh="[object Symbol]",ew="[object ArrayBuffer]",tw="[object DataView]",rw="[object Float32Array]",ow="[object Float64Array]",nw="[object Int8Array]",iw="[object Int16Array]",sw="[object Int32Array]",aw="[object Uint8Array]",lw="[object Uint8ClampedArray]",pw="[object Uint16Array]",fw="[object Uint32Array]";function dw(e,t,r){var o=e.constructor;switch(t){case ew:return yo(e);case Gh:case zh:return new o(+e);case tw:return vp(e,r);case rw:case ow:case nw:case iw:case sw:case aw:case lw:case pw:case fw:return ri(e,r);case Hh:return new o;case Jh:case Yh:return new o(e);case Qh:return Np(e);case Zh:return new o;case Xh:return Cp(e)}}var Mp=dw;function uw(e){return typeof e.constructor=="function"&&!oo(e)?cl(uo(e)):{}}var oi=uw;var cw="[object Map]";function mw(e){return ie(e)&&kt(e)==cw}var kp=mw;var Lp=Ct&&Ct.isMap,gw=Lp?no(Lp):kp,_p=gw;var yw="[object Set]";function hw(e){return ie(e)&&kt(e)==yw}var Dp=hw;var Fp=Ct&&Ct.isSet,ww=Fp?no(Fp):Dp,jp=ww;var Sw=1,bw=2,Rw=4,Ip="[object Arguments]",Ow="[object Array]",xw="[object Boolean]",Ew="[object Date]",$w="[object Error]",Vp="[object Function]",Pw="[object GeneratorFunction]",vw="[object Map]",Nw="[object Number]",qp="[object Object]",Aw="[object RegExp]",Tw="[object Set]",Cw="[object String]",Mw="[object Symbol]",kw="[object WeakMap]",Lw="[object ArrayBuffer]",_w="[object DataView]",Dw="[object Float32Array]",Fw="[object Float64Array]",jw="[object Int8Array]",Iw="[object Int16Array]",Vw="[object Int32Array]",qw="[object Uint8Array]",Bw="[object Uint8ClampedArray]",Ww="[object Uint16Array]",Uw="[object Uint32Array]",U={};U[Ip]=U[Ow]=U[Lw]=U[_w]=U[xw]=U[Ew]=U[Dw]=U[Fw]=U[jw]=U[Iw]=U[Vw]=U[vw]=U[Nw]=U[qp]=U[Aw]=U[Tw]=U[Cw]=U[Mw]=U[qw]=U[Bw]=U[Ww]=U[Uw]=true;U[$w]=U[Vp]=U[kw]=false;function ni(e,t,r,o,n,i){var s,a=t&Sw,l=t&bw,p=t&Rw;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=Pp(e),!a)return Wn(e,s)}else {var d=kt(e),u=d==Vp||d==Pw;if(Tt(e))return Jn(e,a);if(d==qp||d==Ip||u&&!n){if(s=l||u?{}:oi(e),!a)return l?Sp(e,dp(s,e)):wp(e,fp(s,e))}else {if(!U[d])return n?e:{};s=Mp(e,d,a);}}i||(i=new dt);var m=i.get(e);if(m)return m;i.set(e,s),jp(e)?e.forEach(function(y){s.add(ni(y,t,r,y,e,i));}):_p(e)&&e.forEach(function(y,S){s.set(S,ni(y,t,r,S,e,i));});var g=p?l?bp:nn:l?pt:lt,c=f?void 0:g(e);return Sl(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 Kw=1,Gw=4;function zw(e){return ii(e,Kw|Gw)}var si=zw;var Hw=1,Jw=4;function Qw(e,t){return t=typeof t=="function"?t:void 0,ii(e,Hw|Jw,t)}var Cs=Qw;var Zw="__lodash_hash_undefined__";function Yw(e){return this.__data__.set(e,Zw),this}var Bp=Yw;function Xw(e){return this.__data__.has(e)}var Wp=Xw;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=Bp;ai.prototype.has=Wp;var Up=ai;function eS(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=eS;function tS(e,t){return e.has(t)}var Kp=tS;var rS=1,oS=2;function nS(e,t,r,o,n,i){var s=r&rS,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&oS?new Up: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(!Kp(m,R)&&(g===S||n(g,S,r,o,i)))return m.push(R)})){u=false;break}}else if(!(g===c||n(g,c,r,o,i))){u=false;break}}return i.delete(e),i.delete(t),u}var pi=nS;function iS(e){var t=-1,r=Array(e.size);return e.forEach(function(o,n){r[++t]=[n,o];}),r}var Gp=iS;function sS(e){var t=-1,r=Array(e.size);return e.forEach(function(o){r[++t]=o;}),r}var zp=sS;var aS=1,lS=2,pS="[object Boolean]",fS="[object Date]",dS="[object Error]",uS="[object Map]",cS="[object Number]",mS="[object RegExp]",gS="[object Set]",yS="[object String]",hS="[object Symbol]",wS="[object ArrayBuffer]",SS="[object DataView]",Hp=Se?Se.prototype:void 0,Ms=Hp?Hp.valueOf:void 0;function bS(e,t,r,o,n,i,s){switch(r){case SS:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return false;e=e.buffer,t=t.buffer;case wS:return !(e.byteLength!=t.byteLength||!i(new go(e),new go(t)));case pS:case fS:case cS:return it(+e,+t);case dS:return e.name==t.name&&e.message==t.message;case mS:case yS:return e==t+"";case uS:var a=Gp;case gS:var l=o&aS;if(a||(a=zp),e.size!=t.size&&!l)return false;var p=s.get(e);if(p)return p==t;o|=lS,s.set(e,t);var f=pi(a(e),a(t),o,n,i,s);return s.delete(e),f;case hS:if(Ms)return Ms.call(e)==Ms.call(t)}return false}var Jp=bS;var RS=1,OS=Object.prototype,xS=OS.hasOwnProperty;function ES(e,t,r,o,n,i){var s=r&RS,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:xS.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 Qp=ES;var $S=1,Zp="[object Arguments]",Yp="[object Array]",fi="[object Object]",PS=Object.prototype,Xp=PS.hasOwnProperty;function vS(e,t,r,o,n,i){var s=H(e),a=H(t),l=s?Yp:kt(e),p=a?Yp:kt(t);l=l==Zp?fi:l,p=p==Zp?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):Jp(e,t,l,r,o,n,i);if(!(r&$S)){var m=f&&Xp.call(e,"__wrapped__"),g=d&&Xp.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),Qp(e,t,r,o,n,i)):false}var ef=vS;function tf(e,t,r,o,n){return e===t?true:e==null||t==null||!ie(e)&&!ie(t)?e!==e&&t!==t:ef(e,t,r,o,tf,n)}var ho=tf;var NS=1,AS=2;function TS(e,t,r,o){var n=r.length,i=n,s=!o;if(e==null)return !i;for(e=Object(e);n--;){var a=r[n];if(s&&a[2]?a[1]!==e[a[0]]:!(a[0]in e))return false}for(;++n<i;){a=r[n];var l=a[0],p=e[l],f=a[1];if(s&&a[2]){if(p===void 0&&!(l in e))return false}else {var d=new dt;if(o)var u=o(p,f,l,e,t,d);if(!(u===void 0?ho(f,p,NS|AS,o,d):u))return false}}return true}var rf=TS;function CS(e){return e===e&&!J(e)}var di=CS;function MS(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 of=MS;function kS(e,t){return function(r){return r==null?false:r[e]===t&&(t!==void 0||e in Object(r))}}var ui=kS;function LS(e){var t=of(e);return t.length==1&&t[0][2]?ui(t[0][0],t[0][1]):function(r){return r===e||rf(r,e,t)}}var nf=LS;function _S(e,t){return e!=null&&t in Object(e)}var sf=_S;function DS(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 af=DS;function FS(e,t){return e!=null&&af(e,t,sf)}var lf=FS;var jS=1,IS=2;function VS(e,t){return so(e)&&di(t)?ui(ft(e),t):function(r){var o=op(r,e);return o===void 0&&o===t?lf(r,e):ho(t,o,jS|IS)}}var pf=VS;function qS(e){return function(t){return t?.[e]}}var ff=qS;function BS(e){return function(t){return zn(t,e)}}var df=BS;function WS(e){return so(e)?ff(ft(e)):df(e)}var uf=WS;function US(e){return typeof e=="function"?e:e==null?Zr:typeof e=="object"?H(e)?pf(e[0],e[1]):nf(e):uf(e)}var cf=US;function KS(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 mf=KS;var GS=mf(),ci=GS;function zS(e,t){return e&&ci(e,t,lt)}var gf=zS;function HS(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 yf=HS;var JS=yf(gf),hf=JS;function QS(e,t,r){(r!==void 0&&!it(e[t],r)||r===void 0&&!(t in e))&&eo(e,t,r);}var sn=QS;function ZS(e){return ie(e)&&at(e)}var wf=ZS;function YS(e,t){if(!(t==="constructor"&&typeof e[t]=="function")&&t!="__proto__")return e[t]}var an=YS;function XS(e){return st(e,pt(e))}var Sf=XS;function eb(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:wf(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=Sf(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 bf=eb;function Rf(e,t,r,o,n){e!==t&&ci(t,function(i,s){if(n||(n=new dt),J(i))bf(e,t,s,r,Rf,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 Of=Rf;function tb(e,t){return ho(e,t)}var Nr=tb;var rb=xl(function(e,t,r){Of(e,t,r);}),ks=rb;function ob(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 xf=ob;function nb(e,t,r){return e==null?e:xf(e,t,r)}var Ls=nb;function ib(e,t){var r;return hf(e,function(o,n,i){return r=t(o,n,i),!r}),!!r}var Ef=ib;function sb(e,t,r){var o=H(e)?li:Ef;return r&&Un(e,t,r)&&(t=void 0),o(e,cf(t))}var _s=sb;var ab=/^(\$+)\.(.*)$/,k=e=>{let t=ab.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}},lb=/\[(\d+)\]|\[(["'])(.*?)\2\]|([^.[\]]+)/g,pb=e=>e===""?[""]:[...e.matchAll(lb)].map(t=>t[1]??t[3]??t[4]),fb=(e,t)=>{if(e==null)return;let r=Object(e);return Object.hasOwn(r,t)?r[t]:void 0},ye=(e,t)=>pb(t).reduce(fb,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"},$f=e=>Object.values(So).includes(e),Pf={string:{caseInsensitive:false,fuzzy:false},prismaOptions:{datasource:{provider:"postgresql"}},sql:{dialect:So.postgres}},wo=si(Pf),Fs=e=>Cs(e,t=>typeof t=="object"&&t!==null&&!Array.isArray(t)&&!Le(t)?t:void 0),db=e=>e!=null&&typeof e.then=="function",Lt={set:(e,t)=>{Ls(wo,e,Fs(t));},get:e=>ye(wo,e),reset:()=>{wo=si(Pf);},with:(e,t)=>{let r=wo;wo=ks(Fs(r),Fs(e));try{let o=t();if(db(o))throw new Error("engineGlobals.with() callback must be synchronous (it returned a Promise).");return o}finally{wo=r;}}},ub=new Set(["postgresql","cockroachdb","mongodb"]),vf=e=>ub.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),Nf=wi,cb={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:Nf,targets:C,valueShape:"none"},[h.notEmpty]:{kinds:Nf,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,mb=(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}},gb=e=>Object.keys(bi).filter(t=>e?bi[t].targets.includes(e):true),Tf=[...Object.entries(Oo),...Object.entries(xo)],_e=(...e)=>Tf.flatMap(([t,r])=>e.includes(r.valueShape)?[t]:[]),tr=_e("none"),$o=_e("ordered"),pn=_e("dateWindow"),qe=_e("range","dateRange","dateWindow"),Cf=_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"],yb=()=>xi,mt=_e("scalar"),rr=_e("array"),Mf=_e("scalar","array"),kf=_e("dayList"),Lf=_e("dateRange"),_f=_e("scalar","ordered","range","dateValue","dateRange"),Df=(...e)=>Object.entries(bi).flatMap(([t,r])=>e.includes(r.valueShape)?[t]:[]),or=Df("count"),Ei=Df("predicate","count"),Is=[E.any,E.all,E.none,E.empty,E.notEmpty],Ff=[E.any,E.atLeast],q=[...Object.entries(Oo),...Object.entries(xo)].flatMap(([e,t])=>t.negates?[e]:[]),$i=[...q,h.isEmpty,h.notExists],jf=q.filter(e=>_e("string").includes(e)),Po=q.filter(e=>qe.includes(e)),If=(...e)=>Tf.flatMap(([t,r])=>r.comparator&&e.includes(r.comparator)&&!q.includes(t)?[t]:[]),Pi=If("lt","lte"),Vf=If("gt","gte"),qf=["Int","BigInt"],Bf=[...ze,"DateTime","Boolean","String"],Wf=["Int","BigInt","Float","Boolean","String"],Uf=["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}},Kf=["months","days","secs"],Vs=e=>Object.hasOwn(nr,e),Ar=e=>Vs(e)&&nr[e].calendar,vi=["year","quarter","month","week","isoWeek","day","hour","minute","second"],vo=["sunday","monday","tuesday","wednesday","thursday","friday","saturday"],Gf=e=>vo.includes(e.toLowerCase()),zf=(e,t=[])=>Object.fromEntries([...Object.entries(e).flatMap(([r,o])=>o.negates?[[o.negates,r]]:[]),...t].flatMap(([r,o])=>[[r,o],[o,r]])),fn=zf(Oo,[[h.isEmpty,h.notEmpty],[h.exists,h.notExists]]),Hf=zf(xo),Ni={[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 Ai=e=>new Error(`${e}: ArrayRule.field is required (fieldless arrayOps are check-only)`),le=(e,t)=>new Error(`Unknown ${t} operator: ${String(e)}`),No=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":""}.`),Ao=(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(bb__default.default);wt__default.default.extend(Sb__default.default);wt__default.default.extend(wb__default.default);wt__default.default.extend(hb__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),Jf="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(Jf));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(Jf),o)},Rb=e=>"ago"in e||"ahead"in e,ki=(e,t)=>t===-1?{ago:e}:{ahead:e},Ne=e=>Rb(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,Ob=e=>{let t=Li(e);if(typeof t!="string"||!vi.includes(t))throw new Error(`Unknown period unit '${String(t)}'`);return t},xb=(e,t)=>e==="week"?t.weekStart==="sunday"?"week":"isoWeek":e,Ws=(e,t)=>{let r=dn(t),o=Ob(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=xb(o,t);return [i.startOf(s),i.endOf(s)]},Us=(e,t)=>{let r=Ne(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=Ne(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 Qf=["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 Yf=e=>typeof e=="object"&&e!==null,zs=e=>"if"in e||"then"in e||"else"in e,Ae=e=>"arrayOperator"in e||"aggregate"in e,Xf=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(!Yf(e))return;let o=e,n=t(o,r),i=n===void 0?r:n;for(let{child:s,nested:a}of Xf(o))a?i!==false&&Z(s,t,i):Z(s,t,r);},ed=(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(!Yf(e))return e;let o=r,n={...e},i=t.rewrite?t.rewrite(n,o):n,s=Xf(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&&Eb(i,e)?e:l},Eb=(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])})},$b=(e,t)=>Le(e)?Object.fromEntries(Object.entries(e).map(([r,o])=>[r,_i(o)?t(o,Ar(r)?"whole":"number"):o])):e,Gs=(e,t)=>{let r=oe(e)?Ne(e):null;return r?ki($b(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]:[]],Pb={all:"all",any:"any",if:"if",field:"field",aggregate:"aggregate",array:"array",date:"date"},Mr=()=>(e,t)=>({required:[...e],optional:[...t]}),Zf={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"])},vb=e=>({required:[...Zf[e].required],optional:[...Zf[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 Nb=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 Nb(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 td=BigInt(Number.MAX_SAFE_INTEGER),yn=e=>{if(e>td||e<-td)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&&(!Ar(t)||Number.isInteger(e))?null:`${t} must be a non-negative${Ar(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=Ne(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)?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(bb__default.default);wt__default.default.extend(Sb__default.default);wt__default.default.extend(Tb__default.default);wt__default.default.extend(Ab__default.default);var nd=(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(kf.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=kb(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")}},kb=(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(Lf.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:od(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:od(o??Je)}},rd=new Set,od=e=>{if(rd.has(e))return e;try{new Intl.DateTimeFormat("en-US",{timeZone:e});}catch{throw new D(`invalid time zone: ${e}`)}return rd.add(e),e},Lb=/\d{2}:\d{2}(?::\d{2}(?:\.\d+)?)?\s*(?:[zZ]|[+-]\d{2}(?::?\d{2})?)$/,_b=e=>Lb.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"&&!_b(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 Fb=e=>e<=3?0:e<=6?1:2,jb=(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):Fb(t)},id=e=>e.split(/[^a-z0-9\p{L}]+/u).filter(Boolean),Ib=e=>/^\d+$/.test(e),Vb=(e,t,r)=>e===t?true:Math.abs(e.length-t.length)>r?false:fastestLevenshtein.distance(e,t)<=r,sd=(e,t,r={})=>{let o=t.trim().toLowerCase();if(!o)return true;let n=e.toLowerCase();if(n.includes(o))return true;let i=id(o);if(i.length===0)return false;let s=id(n);return s.length===0?false:i.every(a=>{let l=jb(r,a.length);return l===0||Ib(a)?s.includes(a):s.some(p=>Vb(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 "},ld={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"},qb=/[\\^$.|?*+()[\]{}]/,ta=255,pd=e=>e<=65535?`\\u${e.toString(16).padStart(4,"0")}`:`\\U${e.toString(16).padStart(8,"0")}`,Bb=e=>qb.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,pd(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 pd(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:Bb).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(ld,f[2])||t(`the class [:${f[2]}:]`),r+=ld[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},fd=(e,t)=>{try{let{source:r}=dr(e);return t==="toSql"&&hn(r),null}catch(r){return r.message}};var dd=e=>e==null||e===""||Array.isArray(e)&&e.length===0,he=(e,t)=>{let r=t==null;return r&&(e.offset!==void 0||Cf.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,ud=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,cd=(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=>cd(o,t,r)):cd(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(ud(s),a,l),f=!tr.includes(e.operator),d=f?Wb(Fr(ud(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"?sd(p,d,S):Array.isArray(p)?c.some(b=>Nr(b,y)):Ub(c,y);switch(e.operator){case h.equals:return Nr(c,y)||u("must equal");case h.notEquals:return !Nr(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=>Nr(b,c))||u("must be one of");case h.notIn:return !ji(y).some(b=>Nr(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 md(p)&&gd(d)&&dr(d).re.test(p)||u("must match pattern");case h.notMatches:return !md(p)||!gd(d)||!dr(d).re.test(p)||u("must not match pattern");case h.between:{let b=yd(d,e.operator);if(!wd(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=yd(d,e.operator);if(!wd(p,b))return true;let w=jo(p),[$,x]=b;return w<$||w>x||u("must not be between")}case h.isEmpty:return dd(p)||u("must be empty");case h.notEmpty:return !dd(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")}},Wb=(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(!Kb(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}},md=e=>typeof e=="string",gd=e=>typeof e=="string"||e instanceof RegExp,yd=(e,t)=>Be(_o(e,t).map(r=>jo(r))),Ub=(e,t)=>typeof e=="string"&&typeof t=="string"&&e.includes(t),Kb=(e,t)=>de(e)&&de(t)&&hd(e)===hd(t),hd=e=>e instanceof Date?"date":typeof e,wd=(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,Gb=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}},zb=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=Gb(e.condition);if(!n||n.field!==t)return null;let i=Pi.includes(n.op),s=Vf.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=Sd(o,t.orderBy)),t.skip!==void 0&&(o=o.slice(t.skip)),t.take!==void 0&&(o=o.slice(0,t.take)),o},Sd=(e,t)=>[...e].sort((r,o)=>{for(let{field:n,dir:i}of t){let s=Hb(ye(r,n),ye(o,n),i);if(s!==0)return s}return 0}),Hb=(e,t,r)=>{let o=e==null,n=t==null;if(o||n)return o===n?0:o?1:-1;let i=e instanceof Date?e.getTime():e,s=t instanceof Date?t.getTime():t,a=i<s?-1:i>s?1:0;return r==="asc"?a:-a},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:zb(e)};var Jb=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)&&Jb(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 Qb(o.all,t,r,o.error);case "any":return Zb(o.any,t,r,o.error);case "if":return Yb(o,t,r);case "array":return eR(o,r);case "aggregate":return Xb(o,r);case "date":return nd(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]}),Qb=(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},Zb=(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 ")}`)},Yb=(e,t,r)=>St(e.if,t,r)===true?St(e.then,t,r):e.else!==void 0?St(e.else,t,r):true,bd=(e,t)=>{if(e==null)return [];if(!Array.isArray(e))throw new Error(`${t} must be an array`);return e},Xb=(e,t)=>{let r=bd(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})},eR=(e,t)=>{let r=bd(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 No(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}`,Rd=(e,t)=>{let r=e.indexOf(":");return r===-1?{mapName:t,modelName:e}:{mapName:e.slice(0,r),modelName:e.slice(r+1)}};var Od=(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},tR=(e,t)=>{let r={};for(let o of e){let n=O(o,t);n!=null&&qt(r,String(n),()=>[]).push(o);}return r},xd=(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]=Od(f,n.on,s,l));let d=O(t,a);d&&(o.cardinality==="oneToMany"?p(i.fieldMap,i.model)[i.on]=tR(d,i.on):p(i.fieldMap,i.model)[i.on]=Od(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"?Rd(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},Ed=(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&&ed(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":$d(e.entry.type),$d=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)&&Pd(t),Pd=e=>typeof e=="string"||Array.isArray(e)&&e.some(Pd),Ie=(e,t,r)=>{let o=Vr(cr(e.field,t,r));return o==="unknown"&&e.coerceType!==void 0?$d(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 vd=new WeakSet,zi=e=>(vd.add(e),e),Nd=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"&&vd.has(o)){t.push({path:n});return}if(Array.isArray(o))for(let[i,s]of o.entries())r(s,[...n,i]);else if(Nd(o))for(let[i,s]of Object.entries(o))r(s,[...n,i]);};return r(e,[]),t},rR=["__step","__field"],Gi=e=>Array.isArray(e)?e.some(Gi):Nd(e)?Object.entries(e).some(([t,r])=>rR.includes(t)||Gi(r)):false;var oR={[h.equals]:"equals",[h.notEquals]:"equals",[h.lessThan]:"lt",[h.lessThanEquals]:"lte",[h.greaterThan]:"gt",[h.greaterThanEquals]:"gte"},Td=(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=oR[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=Td(e.field,t,r);if(typeof l=="string")return {problem:l};let p=s?s.path:i,f=Td(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().`),Cd=new WeakSet,oa=new WeakSet,Br=(e,t,r=false)=>(Cd.add(e),(r||t!==void 0&&oa.has(t))&&oa.add(e),e),Md=e=>e!==void 0&&Cd.has(e),kd=e=>e!==void 0&&oa.has(e);var na=e=>({field:e,operator:"notExists"}),nR=(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(Ni,r.operator)}}if(typeof r.dateOperator=="string"){let i=O(Hf,r.dateOperator);return i?{...r,dateOperator:i}:It([{...r,dateOperator:O(Ni,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(Ni,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 nR(r,t)},Ld=e=>ne(e)==="field"&&e.value!==void 0&&he(e,e.value)?null:e;var _d,Dd=e=>{_d=e;},ae=(e,t,r)=>_d(e,t,r);var iR=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=>iR(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:Ld(d)};var Xe=()=>({}),Wr=Xe,Ot=()=>({OR:[]}),ia=e=>Object.keys(e).length===0,Fd=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(Fd))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=>!Fd(r));return t.length===0?Ot():t.length===1?t[0]:{OR:t}},Ce=e=>ia(e)?e:{NOT:e},jd=(e,t,r)=>Ke(e.all.map(o=>ae(o,t,r))),Id=(e,t,r)=>B(e.any.map(o=>ae(o,t,r))),Vd=(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 sR=(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=sR(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}:
|
|
2
2
|
${e.errors.map(r=>`${r.path}: ${r.message}`).join(`
|
|
3
|
-
`)}`)},Ko=(e,t={})=>{let r={target:t.target??"check",errors:[],map:Oe(t.map,t.mapName,"toPrisma"),scopeModels:[t.model],stepScopes:[false]};return Bt(e,"$",r,1),wr(r.errors)},nR=(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=se(e);if(!n){P(r,t,"ambiguous_condition",gt().message);return}switch(n){case "all":Id(e.all,`${t}.all`,r,o);break;case "any":Id(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":iR(e,t,r,o);break;case "aggregate":lR(e,t,r,o);break;case "array":pR(e,t,r,o);break;case "date":fR(e,t,r,o);break}},Id=(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);});},Zi=(e,t,r,o)=>{typeof e.field=="string"&&Bd(e.field,"field",`${t}.field`,r,o);},Bd=(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",Ls(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()`);},Qi=(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=Hf.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"&&Bd(e.path,"path",`${t}.path`,r,o,n),s)},Wd=(e,t,r,o,n,i)=>{let{offset:s}=e;if(s===void 0)return;let a=`${o}.offset`;if(!kf.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 f=s.value;if(t==="field"){(typeof f!="number"||!Number.isFinite(f))&&P(n,`${a}.value`,"invalid_offset","A field offset value is a number");return}let p=hr(f)&&Object.keys(f).length===1&&oe(f)?ve(f):null;if(!p){P(n,`${a}.value`,"invalid_offset","A date offset value is { ago } or { ahead }");return}Gd(p[0],`${a}.value.${Object.keys(f)[0]}`,n,i);},Ud=(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()`);},iR=(e,t,r,o)=>{if(typeof e.field!="string"&&P(r,`${t}.field`,"field_required","Field rule requires a string field"),Zi(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;Wd(e,"field",n,t,r,o),Ri(n,"field",r.target)||P(r,`${t}.operator`,`unsupported_${Yi(r.target)}_operator`,`Operator '${n}' is not supported by ${r.target}()`),e.coerceType!==void 0&&!bi(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"){dR(e,t,r);return}if(Uo(e,t,r,o,true)!==null){if(Ud(e,n,t,r),r.target==="toPrisma"&&typeof e.path=="string"){let s=Gi(e,r.map,r.scopeModels[o-1],o>1,r.stepScopes[o-1]===true);"problem"in s&&P(r,`${t}.path`,"unsupported_prisma_path",zi(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(Z(e.field,r.map,s),Z(a,r.map,s),n);l&&P(r,`${t}.path`,"unsupported_sql_path",`'${e.path}': ${l}`);}r.target==="toSql"&&typeof e.path=="string"&&["array","pattern","string"].includes(i)&&((r.map?Z(e.field,r.map,r.scopeModels[o-1]):void 0)?.isList&&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")&&(sR(e,n,t,r,o),aR(i,e.value,n,`${t}.value`,r));}},sR=(e,t,r,o,n)=>{if(o.target!=="toPrisma"||!o.map||typeof e.field!="string")return;let i=Z(e.field,o.map,o.scopeModels[n-1]);if(!i)return;let s=e.value,a=ie(e.caseInsensitive),l=rr.includes(t)&&Array.isArray(s),f=p=>P(o,`${r}.value`,"unsupported_prisma_operator",F("toPrisma",p).message);i.isList&&!l&&Array.isArray(s)&&s.includes(null)?f(`A list holding null in '${e.field}'`):i.isList&&!l&&a&&gr("text",s)?f(`A case-insensitive comparison on the list '${e.field}'`):je(i)&&a&&f(`A case-insensitive comparison on the Json column '${e.field}'`);},aR=(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=ld(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}},Kd=(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);}},lR=(e,t,r,o)=>{if(Kd(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"),Zi(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"),!Oi.includes(e.operator)){P(r,`${t}.operator`,"invalid_aggregate_operator",`Aggregate rules only support: ${Oi.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()"),Qi(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)?uR(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");},pR=(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"),Zi(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;or.includes(n)&&Kd(e,t,r,o,"Count operators");let i=r.target==="toPrisma"&&r.map&&typeof e.field=="string"?Z(e.field,r.map,r.scopeModels[o-1]):void 0;i&&!V(i)&&n!=="empty"&&n!=="notEmpty"&&P(r,`${t}.arrayOperator`,"unsupported_prisma_array_operator",F("toPrisma",`'${n}' over the array column '${e.field}'`).message),Ri(n,"array",r.target)||P(r,`${t}.arrayOperator`,`unsupported_${Yi(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?(Qi(r,o,e.field),Bt(e.condition,`${t}.condition`,r,o+1)):P(r,`${t}.condition`,"missing_condition",_e(n).message),l()):s==="count"&&(typeof e.count!="number"?P(r,`${t}.count`,"missing_count",No(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?(Qi(r,o,e.field,true),Bt(e.condition,`${t}.condition`,r,o+1)):P(r,`${t}.condition`,"missing_condition",_e(n).message));},fR=(e,t,r,o)=>{if(typeof e.field!="string"&&P(r,`${t}.field`,"field_required","Date rule requires a string field"),Zi(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;Wd(e,"date",n,t,r,o),Ri(n,"date",r.target)||P(r,`${t}.dateOperator`,`unsupported_${Yi(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"&&Uf(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&&(Ud(e,n,t,r),!(typeof e.path=="string"||typeof e.bind=="string"))){if(oe(e.value)){qd(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(!cR(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)?qd(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`);}},Gd=(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(!js(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=Qs(a,n);l&&P(r,`${t}.${n}`,"invalid_relative_magnitude",l);}},Vd=(e,t,r)=>{(typeof e!="string"||!$i.includes(e))&&P(r,t,"invalid_period_unit",`Unknown period unit '${String(e)}'`);},qd=(e,t,r,o,n)=>{let i=pn.includes(t),s=ve(e);if(s){Gd(s[0],r,o,n);return}if(un(e)){Vd(Mi(e),r,o);return}if(Vs(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}Vd(Mi(a),r,o);return}P(o,r,"invalid_date_expression","Unrecognized date expression");},dR=(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");},Yi=e=>e==="toPrisma"?"prisma":e==="toSql"?"sql":"check",hr=e=>ke(e),uR=e=>Array.isArray(e)&&e.length===2&&typeof e[0]=="number"&&typeof e[1]=="number",cR=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(be(e)&&r.target!=="check"&&(r.target==="toPrisma"&&Io(e)!==null||P(r,t,`unsupported_${Yi(r.target)}_window`,yt(r.target).message)),"filter"in e&&e.filter!==void 0&&(Qi(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 mR=/[.:]/,na=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"&&mR.test(s)&&t.push({path:`${Ae({fieldMap:r,model:n})}.${s}`,message:"contains forbidden character . or :",code:"invalid_field_name"});return wr(t)},Hd=e=>Rn(na(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 ia=(e,t)=>t.length?K([...t,e]):e,gR=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}},sa=(e,t)=>{if(!t.length)return e;if(!gR(e))return K([...t.flatMap(n=>n.clamps),e]);let[r,...o]=t;return It([K([...r.clamps,sa(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 A(`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 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(Ne(o)){for(let a of [o.condition,o.filter])if(a!==void 0&&Go(a).escaping!==null)throw new A(`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=>De(a)?{...a,path:`${t}.${a.path}`}:a):o,field:`${t}.${o.field}`}},below:()=>false}),aa=(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=>zo(n,r.prefix))}]}),Jd=(e,t)=>aa(e,t).flatMap(r=>r.clamps),Zd=(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 xe(t.lens.maps,o.scope,o.path,n==="$."?"":n)},yR=(e,t,r)=>{if(k(e))return Zd(e,t,r).hops;let o=r.length===1?"":`${"$".repeat(r.length)}.`;return r[0]?xe(t.lens.maps,r[0],e,o).hops:[]},Qd=(e,t,r)=>{if(Fe(e)||typeof e.field!="string"||e.field==="")return null;let{hops:o,end:n}=Zd(e.field,t,r);return {hops:o,below:n}},Kr=(e,t,r)=>lr(e,{below:(o,n)=>{let i=Qd(o,t,n);return i?i.below?[...n,i.below]:Ne(o)?[...n,null]:false:false},after:(o,n)=>{let i=Qd(o,t,n);if(!i)return o;let s=Jd(t,pr(o).flatMap(d=>yR(d,t,n))),a=i.below;if(!a||!Ne(o))return ia(sa(o,aa(t,i.hops)),s);let l=[..._(t,a.mapName,a.modelName,a.relPath).whereClauses,...Jd(t,Lo(o).flatMap(d=>xe(t.lens.maps,a,d).hops))],f=o.condition===void 0||o.arrayOperator===E.all||be(o),p={...o};return l.length&&f?p.filter=K([...o.filter!==void 0?[o.filter]:[],...l]):l.length&&(p.condition=K([...l,o.condition])),ia(sa(p,aa(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 ia(n,o.whereClauses)};var la=(e,t)=>{let r=Fr(e,Q.DateTime,t);return typeof r=="number"&&!Number.isNaN(new Date(r).getTime())?r:void 0},hR=(e,t,r)=>o=>{if(o==null)return o;let n=la(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=hR(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&&qf.includes(e.coerceType)?Fr(t,e.coerceType,e.coerceType===Q.DateTime?n():void 0):t};var Yd=e=>Array.isArray(e)?e.flatMap(Yd):[e],On=e=>e.value===void 0?null:Yd(e.value),wR=e=>la(e)!==void 0,SR=/^-?\d+(\.\d+)?$/,bR={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"&&SR.test(e)},Boolean:{expected:"a boolean",fits:e=>typeof e=="boolean"},DateTime:{expected:"a date",fits:wR},Json:{expected:"a value",fits:()=>true},Bytes:{expected:"a value",fits:()=>true}},RR=e=>typeof e=="string"?`'${e}'`:typeof e=="object"&&e!==null?JSON.stringify(e):String(e),Xi=(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(Bf.includes(i.valueShape)&&Array.isArray(e.value))return [{path:e.field,code:"invalid_value_shape",message:`operator '${n}' compares one value, but ${a} was given a list`}];let{expected:l,fits:f}=bR[o],p=u=>{try{return f(Fr(u,o))}catch{return false}},d=u=>f(u)||r!==void 0&&p(u);return (On(e)??[]).filter(u=>u!==null&&!d(u)).map(u=>({path:e.field,code:"invalid_value",message:`value ${RR(u)} does not fit ${a} (expected ${l})`}))},Xd=(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 OR=(e,t,r,o)=>X(e,(n,i)=>{let s=se(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=w=>{let R=Ve(w,i);return "outOfBounds"in R?(o.push({path:w,code:"scope_out_of_bounds",message:R.outOfBounds}),null):{scope:R.scope,field:R.path}},f=i[i.length-1],p=true,d=null;if("field"in a&&typeof a.field=="string"&&a.field!==""){let w=Yo(t,i,a.field);"issue"in w?(o.push({path:a.field,...w.issue}),p=false):{next:f,walked:d}=w;}let u=d?.entry??null,m=d?.terminalFieldName??null,g=d?.entry.kind==="enum",c=d?.entry.type??null,h=d&&d.jsonSubPath.length===0?ts(d.terminalEffect,d.terminalFieldName):null;for(let{ref:w,role:R}of Gs(a)){let b=k(w)?l(w):{scope:Et(t),field:w};if(!b||b.scope.open)continue;let S=Qo(t,b.scope,b.field);if(!S){o.push({path:w,...es(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(S.entry)){o.push({path:w,code:"not_in_lens",message:"a value ref reads a column, not a relation"});continue}let $=Ye(S.entry);if(R==="value"||R==="shift"||$===void 0)continue;(R==="whole"?If.includes($):ze.includes($))||o.push({path:w,code:"not_in_lens",message:`${R==="whole"?"a calendar unit reads a whole number":"an offset or magnitude reads a number"}, not ${$}`});}if(!p)return false;if("arrayOperator"in a&&typeof a.field=="string"&&u){let w=Xd(a.field,a.arrayOperator,u);if(w)return o.push(w),false}if(u&&V(u)&&(s==="field"||s==="date")&&(u.isList||!Vt(a))){let w=a.field;return o.push({path:w,code:"operator_kind_mismatch",message:(u.isList?Ni(w):ir(w)).message}),false}if(!u?.isList&&(s==="field"||s==="date")&&o.push(...Xi(a,u?Ye(u):void 0)),!f.open)for(let w of Lo(a))w!==""&&!Qo(t,f,w)&&o.push({path:w,...es(t,f,w,"an orderBy or aggregate field does not resolve through the narrowed lens")});if(h&&"operator"in a&&m){let w=On(a);if(w){let R=new Set(h),b=g?`enum '${c}'`:`field '${m}'`;for(let S of w)typeof S=="string"&&!R.has(S)&&o.push({path:m,code:"value_not_allowed",message:`value '${S}' is not in the allowed set for ${b} (allowed: ${[...R].join(", ")})`});}}return [...i,f]},[r]),xn=(e,t,r,o,n)=>{let i=[];return OR(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 A))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 xR();return {where:e}},xR=()=>new A("sources: {} is not a Condition \u2014 use `true` for an unconstrained source","invalid_source"),da=["__offpath__"],eu=new WeakMap,ER=(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=eu.get(t);if(o?.fingerprint===r)return o.trees;let n=new Map;return eu.set(t,{fingerprint:r,trees:n}),n},tu=new WeakMap,$R=0,En=e=>{let t=tu.get(e);return t===void 0&&(t=$R++,tu.set(e,t)),t},ce="\0",PR=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)}},rs=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:ER(t,r[0]),vetted:new Set,effects:new Map,places:new Map,models:new Map,refs:new Map,compiles:new Map}}},os=(e,t)=>e===null?new Set(t):new Set(t.filter(r=>e.has(r))),vR=(e,t)=>{if(t.picks&&(e.picks=os(e.picks,t.picks)),t.omits)for(let r of t.omits)e.omits.add(r);},nu=(e,t,r)=>{e.set(t,os(e.get(t)??null,r));},iu=(e,t,r)=>{let o=e.get(t)??new Set;for(let n of r)o.add(n);e.set(t,o);},NR=(e,t,r)=>{if(r.enumPicks)for(let[o,n]of Object.entries(r.enumPicks))nu(e,o,n);if(r.enumOmits)for(let[o,n]of Object.entries(r.enumOmits))iu(t,o,n);},pa=(e,t,r)=>JSON.stringify([e,t,r]),AR=(e,t,r,o,n,i,s,a)=>{if(s&&vR(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,f]of Object.entries(t.sources)){let p=Sr(f),d=e.sources.get(l)??[],u=e.sourceWheres.get(l)??[];p.where!==void 0&&i&&(n(p.where,true),d.push(r(p.where)),u.push(p.where)),e.sources.set(l,d),e.sourceWheres.set(l,u);let m=Pn(p.groupBy);for(let[g,c,h]of [["label",p.label,e.sourceLabels.get(l)],["groupBy",m,e.sourceGroupBys.get(l)]]){if(c===void 0)continue;let w=pa(l,g,c);h!==void 0&&pa(l,g,h)===w||e.sourceDeclaredAt.set(w,o);}p.label!==void 0&&e.sourceLabels.set(l,p.label),m!==void 0&&e.sourceGroupBys.set(l,m),p.from==="mapDefaults"&&!e.sourcesFromMapDefaults.has(l)&&e.sourcesFromMapDefaults.set(l,o);}},A=class extends Error{constructor(r,o){super(r);this.code=o;}code;name="LensRefusal"},ua=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"),TR=(e,t,r)=>xn(e,t,r.mapName,r.modelName,r.relPath),CR=e=>new A(`a later layer's clamp reads what its parent does not show: '${e.path}' ${e.message}`,e.code),ca=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"),Go=e=>{let t=null,r=null;return X(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}},fa=(e,t)=>{let r={mapName:e.lens.mapName,modelName:e.lens.model,relPath:[]},o=[r];if(t.relPath.length>0)for(let i of xe(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},ma=(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)}},MR=(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},f=fa(l,r)??[r],p=new Set(f.map(u=>`${u.mapName}:${u.modelName}`)),d=[{at:r,below:[]}];for(;d.length>0;){let{at:u,below:m}=d.shift(),g=T(O(e.maps,u.mapName),u.modelName)?.fields??{},{defaults:c,path:h}=ma(t,u,fa(l,u)),w=new Set(c.flatMap(S=>Object.keys(S.relations??{}))),R=new Set([...c,...h?[h]:[]].flatMap(S=>S.omits??[])),b=[];for(let[S,$]of Object.entries(g)){if(!w.has(S)||R.has(S)||h?.relations!==void 0&&Object.hasOwn(h.relations,S))continue;let x=Ze($,u.mapName);if(!x||!T(O(e.maps,x.mapName),x.modelName))continue;let W=`${x.mapName}:${x.modelName}`;p.has(W)||(p.add(W),b.push(S),d.push({at:{...x,relPath:[...u.relPath,S]},below:[...m,S]}));}a.set(m.join("."),b);}return o.set(i,a),a},kR=(e,t,r,o)=>{if(!o)return ma(t,r,null).defaults.flatMap(f=>Object.keys(f.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=MR(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]},Nn=(e,t,r)=>{let o=t;for(let n of xe(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?ru(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),f=T(l,r);if(!f)return a;let p=e.memo?.models.get(f);p||(p=PR(f),e.memo?.models.set(f,p)),a.relationFields=p.relations;let d={mapName:t,modelName:r,relPath:o},u=e.origin??e.chain[0],m=`${rs(u)}${ce}${t}${ce}${r}${ce}${o.join(ce)}`,g=e.memo?.places.get(m);if(!g){let j=fa(e,d);g={trail:j,turnedOn:u?kR(e,u,d,j):[]},e.memo?.places.set(m,g);}let{trail:c}=g,h=new Map,w=new Map,R=new Map,b=new Map,S=j=>j,$=0,x=()=>{},W=true,pe=true,N=(j,I=false)=>{AR(a,j,S,$,x,W,pe,I),NR(h,w,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,S=Y=>j===0?Y:Kr(Y,xr,{mapName:t,modelName:r,relPath:o});for(let[Y,me]of Object.entries(O(I.mapDefaults,t)?.enums??{}))me.picks&&nu(R,Y,me.picks),me.omits&&iu(b,Y,me.omits);let{defaults:tn,path:Er}=ma(I,d,c),fe=j===0?null:xr,nt=Y=>(me,ge=false)=>{let $e=e.memo?.refs.get(me);if($e||($e=Go(me),e.memo?.refs.set(me,$e)),$e.bare!==null&&!(Y&&!ge))throw ua($e.bare);if($e.escaping!==null)throw ca($e.escaping);if(!fe)return;let Ha=()=>{let In=typeof me=="object"&&me!==null?`${En(me)}${ce}${ru(fe,t,r,o)}`:null;if(In!==null&&fe.memo?.vetted.has(In))return;let[Ja]=TR(me,fe,d);if(Ja)throw CR(Ja);In!==null&&fe.memo?.vetted.add(In);};e.unvetted?s.push(Ha):Ha();};x=nt(false);let Jr=O(O(I.mapDefaults,t)?.models,r);for(let Y of tn)N(Y,Y===Jr);Er&&(x=nt(o.length===0&&c!==null),N(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 p.gated){let xr=I.kind==="enum",Er=I.options?.map(Y=>Y.value)??(xr?Ir(I,l?.enums):I.values);if(!Er)continue;let fe=Er;if(xr){let Y=R.get(I.type),me=b.get(I.type);Y&&(fe=fe.filter(ge=>Y.has(ge))),me&&(fe=fe.filter(ge=>!me.has(ge)));}let nt=h.get(j),Jr=w.get(j);nt&&(fe=fe.filter(Y=>nt.has(Y))),Jr&&(fe=fe.filter(Y=>!Jr.has(Y))),a.enumValuesByField.set(j,fe);}return n!==null&&e.memo?.effects.set(n,{effect:a,unchecked:s.length?s:null}),a},ru=(e,t,r,o)=>{let n=ou.get(e);if(n===void 0){n=`${rs(e.origin)}${ce}${rs(e.skipClampsOf)}${ce}${rs(e.skipHidingOf)}${ce}`;for(let i of e.chain)n+=`${En(i)},`;ou.set(e,n);}return `${n}${ce}${t}${ce}${r}${ce}${o.join(ce)}`},ou=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=Re(i,o.modelName,a),f=l&&Ze(l,o.mapName);f&&r({...f,relPath:[...o.relPath,a]},`${n}.${a}`);}};return r({mapName:e.lens.mapName,modelName:e.lens.model,relPath:[]},e.lens.model),t},ns=(e,t,r,o)=>_(e,t,r,da).sources.has(o),is=(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)),ts=(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:f,next:p}of ur(e.lens.maps,t,r)){if(!f)return {resolution:{outcome:"missing",index:s,hops:n},effects:i};let d=_(e,l.mapName,l.modelName,l.relPath);if(!(e.clamp&&V(f)?!d.omits.has(a):$t(d,a)))return {resolution:{outcome:"hidden",index:s,hops:n},effects:i};let m={field:a,entry:f,mapName:l.mapName,model:l.modelName,relPath:[...l.relPath]};n.push(m),i.push(d);let g=s===o.length-1;if(g||je(f))return {resolution:{outcome:"resolved",hops:n,terminal:m,jsonSubPath:g?[]:o.slice(s+1)},effects:i};if(!p)return {resolution:{outcome:"pastScalar",index:s,hops:n},effects:i}}return {resolution:{outcome:"missing",index:o.length,hops:n},effects:i}},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(pa(o,n,i)),a=(p,d)=>Gr(p,r,d).resolution.outcome!=="hidden",l={...e,clamp:true},f={...l,skipHidingOf:s===void 0?void 0:e.chain[s]};return (typeof i=="string"?[i]:i).every(p=>Nn(e,r,p)===null&&(a(l,p)||a(f,p)))},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}},es=(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),f=l?{...l,relPath:a.relPath}:t,p=_(e,f.mapName,f.modelName,f.relPath),d=i[n.index];return !p.relationFields.has(d)||p.omits.has(d)?{code:"not_in_lens",message:o}:{code:"not_in_lens",message:`'${i.slice(0,n.index+1).join(".")}' is a relation the lens does not turn on (turn it on with \`relations\`)`}},Et=e=>({mapName:e.lens.mapName,modelName:e.lens.model,relPath:[],open:false}),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:es(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}},xe=(e,t,r,o="")=>{let n=r.split("."),i=[],s=null;for(let{index:a,field:l,at:f,entry:p,next:d}of ur(e,t,r)){if(!p||!d)break;let u=[...f.relPath,l];i.push({map:d.mapName,model:d.modelName,relPath:u,prefix:`${o}${n.slice(0,a+1).join(".")}`,isList:p.isList===true}),a===n.length-1&&(s={...d,relPath:[...u]});}return {hops:i,end:s}};var ya="parent:",ha=e=>e.startsWith(ya),au=e=>ha(e)?e.slice(ya.length):e,ga=(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]=ga(i,t);r.relations=o;}return r},lu=(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]=ga(a,t);r[o]=n.models?{...n,models:i}:n;}return {...e,root:e.root?ga(e.root,t):void 0,mapDefaults:e.mapDefaults?r:void 0}},wa=e=>{let t=[];return lu(e,r=>(t.push(r),r)),t},su=e=>{let t=new Set;for(let r of wa(e))for(let o of gn(r))ha(o)||t.add(o);return t},pu=e=>{let t=new Set;for(let r of xt(e))for(let o of wa(r))for(let n of gn(o,{required:true}))t.add(au(n));return [...t].sort()},fu=(e,t)=>{if(et(e))return e;let r={...t};for(let[o,n]of Object.entries(t))r[`${ya}${o}`]=n;return {...lu(e,o=>Hs(o,r)),parent:fu(e.parent,t)}},du=(e,t)=>fu(e,t),uu=e=>{let t=[],r=new Set;for(let n of xt(e.parent))for(let i of su(n))r.add(i);for(let n of su(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 wa(e))for(let i of gn(n))ha(i)&&o.add(au(i));for(let n of o)r.has(n)||t.push(`bind 'parent:${n}' references an inherited binding no ancestor declares`);return t};var mu=(e,t)=>e===void 0?t:t===void 0?e:{all:[e,t]},LR=(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=mu(s.where,a.where);r[o]={...s,...a,...l===void 0?{}:{where:l}};}return r},gu=(e,t)=>{let r=mu(e?.where,t.where),o=LR(e?.sources,t.sources);return {...e,...r===void 0?{}:{where:r},...o?{sources:o}:{}}},_R=(e,t)=>{let r={...e?.models};for(let[o,n]of Object.entries(t))r[o]=gu(r[o],n);return {...e,models:r}},cu=(e,t)=>{let r={...e.mapDefaults};for(let[o,{models:n}]of Object.entries(t.mapDefaults??{}))r[o]=_R(r[o],n);return {...e,...t.root?{root:gu(e.root,t.root)}:{},...t.mapDefaults?{mapDefaults:r}:{}}},Sa=(e,t)=>et(e)?cu({parent:e},t):et(e.parent)?cu(e,t):{...e,parent:Sa(e.parent,t)};var yu=(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(se(n)!=="field"||n.coerceType)return n;let s=o(n.field,i);if(!s||"issue"in s||!s.walked||s.walked.jsonSubPath.length)return n;let{entry:a}=s.walked;return a.kind==="scalar"&&Vf.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 hu=({maps:e,bridges:t,mapName:r,model:o})=>({...qi({maps:e,bridges:t}),mapName:r,model:o});var DR=(e,t)=>X(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)]),wu=(e,t)=>{let o={policy:M(t),sources:new Set,bridgesCrossed:false};return DR(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 FR=new Set([Dt.scalar,Dt.ordered,Dt.array,Dt.dayList,Dt.dateValue]),jR=new Set([Dt.none,Dt.count]),IR=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?jR.has(t.valueShape)?{values:[],dynamic:false}:FR.has(t.valueShape)?"value"in e?{values:On(e)??[],dynamic:false}:{values:[],dynamic:false}:{values:[],dynamic:true}:{values:[],dynamic:true}},VR=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)}`,Su=(e,t)=>{let r=M(t),o=r.lens.model,n=new Map,i=new Map,s=(l,f)=>{if(l.length===0)return;let p=Qo(r,{mapName:r.lens.mapName,modelName:o,relPath:[]},l.join("."));if(!p||p.jsonSubPath.length>0)return;let{mapName:d,modelName:u,relPath:m,terminalEffect:g,terminalFieldName:c}=p;if(!g.sources.has(c))return;let h=[o,...m].join("."),w=`${h}|${c}`,R=n.get(w);R||(R={path:h,mapName:d,model:u,field:c,values:[],dynamic:false},n.set(w,R));let b=IR(f);b.dynamic&&(R.dynamic=true);let S=i.get(w)??new Set;i.set(w,S);for(let $ of b.values){let x=VR($);S.has(x)||(S.add(x),R.values.push($));}},a=(l,f)=>{let p=Ve(l,f);if(!("outOfBounds"in p))return [...p.scope,...p.path.split(".")]};return X(e,(l,f)=>{if(Fe(l))return;let p=typeof l.field=="string"?a(l.field,f):f.at(-1);return p?(!Ne(l)&&typeof l.field=="string"&&s(p,l),[...f,p]):false},[[]]),[...n.values()]};var ss=(e,t,r,o)=>{let n=qR(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")}},qR=(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 as=(e,t,r,o)=>{if(!Tf.includes(e.operator))throw new Error(`'${e.operator}' does not apply to the enum '${e.field}'; compare its values with equals / in.`);let n=ie(e.caseInsensitive),i=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,f=new Set(s.filter(d=>typeof d=="string").map(d=>l(d))),p=i.filter(d=>f.has(l(d)));return B.includes(e.operator)?{values:i.filter(d=>!p.includes(d)),matchesNull:!a}:{values:p,matchesNull:a}};var te=e=>`"${e.replace(/"/g,'""')}"`;var we=e=>e.replace(/\\/g,"\\\\").replace(/%/g,"\\%").replace(/_/g,"\\_"),ba=(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(Ra),a=s.pop();return [i,...s].join("->")+(r?"->":"->>")+a},Ra=e=>`'${e.replace(/'/g,"''")}'`;var BR=["@prisma/client/runtime/client","@prisma/client/runtime/library"],ls,WR=()=>{if(ls!==void 0)return ls;for(let e of UR())for(let t of BR)try{let r=e(t);if(r.AnyNull!==void 0)return ls=r.AnyNull,ls}catch{}},UR=()=>{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 Es=="function"&&e.push(Es),e},bu=()=>{let e=Lt.get("prismaOptions.anyNull")??WR();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 Ru=(e,t)=>{let r=_r(Rt(t));return r===null?null:Lr(e,r)},Ou=(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 xa=(e,t)=>Ie(e,t?.map,t?.model),Pt=e=>e==="json"||e==="json-path",br=e=>Pt(e)?bu():null,zr=(e,t)=>t?.map&&t?.model?Od(e,t.map,t.model).map(r=>Ur(r,{is:null})):[],Ea=(e,t)=>{let r=xa(e,t);return [...Pt(r)||r==="list"||Z(e.field,t?.map,t?.model)?.isRequired===false?[rt(e.field,{equals:br(r)},t)]:[],...zr(e.field,t)]},ps=(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}},$a=(e,t,r,o)=>{let n=t?.datasource?.provider??Lt.get("prismaOptions.datasource.provider");return ie(e.caseInsensitive)&&$f(n)&&gr(r,o)?{mode:"insensitive"}:{}},xu=(e,t)=>{if(e==="list")return [{isEmpty:true}];let r=t?[{equals:""}]:[];return Pt(e)?[...r,{equals:[]}]:r},Eu=e=>"isEmpty"in e?{isEmpty:false}:{not:e.equals},Pa=(e,t,r,o,n)=>{let i=a=>rt(e,a,n),s=xu(t,o);return r?q([i({equals:br(t)}),...zr(e,n),...s.map(a=>i(a))]):Ke([...t==="list"?[]:[i({not:br(t)})],...s.map(a=>i(Eu(a)))])},GR=(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?Te(o):o},zR=(e,t)=>Z(e.field,t?.map,t?.model),Oa=Xe(),HR=(e,t,r)=>{if(t==="list"||Pt(t)||zR(e,r)?.isRequired!==true)return null;let o=e.field.split(".").slice(0,-1).join(".");return o?rt(o,{is:{}},r):Oa},$u=(e,t)=>{let r=c=>rt(e.field,c,t),o=xa(e,t),n=()=>Ea(e,t),i=Bi(e,t?.map,t?.model);if(o==="relation")return GR(e,t);let s=HR(e,o,t),a=s&&(s===Oa?Ot():Te(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=xu(o,i);return e.operator===y.isEmpty?q([a,...c.map(r)]):e.operator===y.notEmpty?Ke([s,...c.map(h=>r(Eu(h)))]):l(e.operator)}switch(e.operator){case y.exists:case y.notExists:{if(e.operator===y.exists)return o==="list"?Te(r({equals:null})):r({not:br(o)});let c=n();return c.length?q(c):r({equals:br(o)})}case y.isEmpty:case y.notEmpty:return Pa(e.field,o,e.operator===y.isEmpty,i,t)}if(De(e)){let c=Gi(e,t?.map,t?.model,Td(t),Cd(t));if("problem"in c)throw zi(e.path,c.problem);let h=r({[c.key]:c.ref}),w=($,x)=>x.isRequired===false?rt($,{equals:null},t):null,R=($,x)=>x.isRequired===false?rt($,{not:null},t):Oa,b=w(e.field,c.field),S=w(c.columnPath,c.column);return e.operator===y.equals?b&&S?q([h,Ke([b,S])]):h:e.operator===y.notEquals?q([Te(h),...b?[Ke([b,R(c.columnPath,c.column)])]:[],...S?[Ke([R(e.field,c.field),S])]:[]]):h}let f=Pu(e,t);if(he(e,f))return q(B.includes(e.operator)?n():[]);if(f===null&&mt.includes(e.operator)){let c=l(e.operator);if(c)return c}if(o==="list"&&rr.includes(e.operator)&&Array.isArray(f))return ae(Ii(e,f),t);if(o==="list"&&Array.isArray(f)&&f.includes(null))throw F("toPrisma",`A list holding null in '${e.field}'`);if(o==="list"&&ie(e.caseInsensitive)&&gr("text",f))throw F("toPrisma",`A case-insensitive comparison on the list '${e.field}'`);let p=o==="enum"?Z(e.field,t?.map,t?.model):void 0,d=p?as(e,f,p,t?.map):null;if(d){let c=r({in:d.values});return d.matchesNull?q([c,...n()]):c}if(rr.includes(e.operator)){let{values:c,hasNull:h}=We(f),w=$a(e,t,o,c),R=Pt(o)?e.operator===y.in?q(c.map(b=>r(ps("equals",b,w,o)))):Ke(c.map(b=>r(ps("not",b,w,o)))):r({[e.operator]:c,...w});return e.operator===y.in?h?q([R,...n()]):R:h?Ke([R,s??r({not:br(o)})]):q([R,...n()])}let u=c=>{if(!Pt(o)||c!==y.contains)return r(An({...e,operator:c},t));let h=r({array_contains:[JR(e,f,t,o)]});return typeof f=="string"?q([r(An({...e,operator:c},t)),h]):h};if(e.operator===y.contains)return u(y.contains);let m=Df.includes(e.operator)?fn[e.operator]:Po.includes(e.operator)?y.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 q([Te(u(m)),...n()])}let g=r(An(e,t));return e.operator===y.equals&&f===null?q([g,...zr(e.field,t)]):e.operator===y.notEquals&&o==="list"?f===null?Te(r({equals:null})):q([Te(r({equals:f})),...n()]):e.operator===y.notEquals&&f!==null?q([g,...n()]):g},Pu=(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:Ru(r,e.offset)},An=(e,t)=>{let r=Ai(e);if(r)throw r;let o=xa(e,t),n=()=>Pu(e,t),i=f=>$a(e,t,o,f),s=f=>{let p=n();if(o==="list"){if(f!=="contains")throw new Error(`Operator '${f}' does not apply to the list '${e.field}'.`);return {has:p}}let d=Pt(o)?QR[f]:f,u=typeof p=="string"?we(p):p;return {[d]:u,...i(p)}},a=Ti(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 y.equals:{let f=n()??br(o);return ps("equals",f,i(f),o)}case y.notEquals:{let f=n()??br(o);return ps("not",f,i(f),o)}case y.in:case y.notIn:return {[e.operator]:n()};case y.contains:return s("contains");case y.startsWith:return s("startsWith");case y.endsWith:return s("endsWith");case y.matches:case y.notMatches:throw F("toPrisma",`'${e.operator}'`,"Prisma has no pattern filter");case y.between:case y.notBetween:{let[f,p]=Be(Qe(n(),e.operator));return {gte:f,lte:p}}default:throw new Error(`Operator '${e.operator}' is built by buildFieldRule`)}},JR=(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($a(e,r,o,t).mode)throw F("toPrisma",`A case-insensitive member of the Json array '${e.field}'`);return t},QR={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 Ao(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 vu=(e,t,r)=>{if(be(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 ZR(e,t,r)},ZR=(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=Re(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,f=An(l,t),p={[e.aggregate.mode==="sum"?"_sum":"_avg"]:f},d=Po.includes(l.operator)?Te({[n]:p}):{[n]:p},u=e.condition?ae(e.condition,Br({...t,model:o.target},t,true),r):Xe(),m=Ji(r,o,u,d,a);return a?q([m,...zr(e.field,t)]):m};var Au=(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 _e(e.arrayOperator);if(e.count===void 0)throw No(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=va(e),a=s?Nu(E.atLeast,e.arrayOperator===E.atMost?n+1:1,o.targetKey):Nu(e.arrayOperator,n,o.targetKey);return Ji(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 Tu=(e,t,r)=>{let o=YR(e,t,r);return e.field&&va(e)&&!Cu(e.field,t)?q([o,...zr(e.field,t)]):o},va=e=>ue({...e,field:"items"},{items:[]})===true,YR=(e,t,r)=>{if(be(e)){let i=Io(e);if(!i)throw yt("toPrisma");return ae(i,t,r)}if(e.condition!==void 0&&!_f.includes(e.arrayOperator)&&bt(e.condition,t?.map,Mu(e,t)?.model))return Wr();if(or.includes(e.arrayOperator)){if(t?.map&&t?.model&&r)return Au(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 vi("toPrisma");let{field:o}=e;if(Cu(o,t))return XR(e,o,Ie({field:o},t?.map,t?.model),t);let n=eO(e,t,r);return rt(e.field,n,t)},Cu=(e,t)=>{let r=Ie({field:e},t?.map,t?.model);return r==="list"||r==="json"||r==="json-path"},XR=(e,t,r,o)=>{switch(e.arrayOperator){case E.empty:case E.notEmpty:return Pa(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)}},Mu=(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})},eO=(e,t,r)=>{let o=Mu(e,t);switch(e.arrayOperator){case E.all:if(!e.condition)throw _e(e.arrayOperator);return {none:ae(Ue(e.condition,Bo(o)),o,r)};case E.any:if(!e.condition)throw _e(e.arrayOperator);return {some:ae(e.condition,o,r)};case E.none:if(!e.condition)throw _e(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 ku=(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=Z(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=B.includes(e.dateOperator)?Ea(e,t):[],s=tO(e,t);if(s===null)return q(i);let a=rt(e.field,s,t),l=Po.includes(e.dateOperator)?Te(a):a;return q([l,...i])},tO=(e,t)=>{let r=qo(t),o=bn,n=m=>e.offset===void 0?m:Ou(m,e.offset,t),i=m=>{if(m==null)return null;if(!oe(m))return Fi(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,h]=Be(g).map(n);return c&&h?[c,h]:null},f=()=>{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,h]=Mo(g,r);return [c.toDate(),h.toDate()]},p=m=>{let g=a();return g===null?null:{[m]:g}},d=m=>m?{gte:m[0],lte:m[1]}:null,u=er(e.dateOperator,"date");if(u)return p(u);switch(e.dateOperator){case v.within:case v.notWithin:return d(f());case v.between:case v.notBetween:return d(l());case v.dayIn:case v.dayNotIn:throw F("toPrisma",`'${e.dateOperator}'`);default:throw le(e.dateOperator,"date")}};var Na=(e,t,r)=>{if(typeof e=="boolean")return e?{}:Ot();mi(e,"toPrisma");let o=se(e);(o==="field"||o==="date")&&Wi(e.field,t?.map,t?.model);let n=e;switch(o){case "all":return Dd(n,t,r);case "any":return Fd(n,t,r);case "if":return jd(n,t,r);case "array":return Tu(n,t,r);case "aggregate":return vu(n,t,r);case "date":return ku(n,t);case "field":return $u(n,t);default:throw gt()}};Ld(Na);var _u=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=Du(t,i.model),a=Lu(i.args,i.refs,n,t),l=await s[i.operation](a);n.push(l.map(f=>f[i.extract]).filter(f=>f!=null));}return Lu(o.where,o.refs,n,t)},Du=(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},rO=(e,t)=>{let r=Du(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},oO=(e,t)=>t.reduce((r,o)=>r!==null&&typeof r=="object"&&Object.hasOwn(r,o)?r[o]:void 0,e),Aa=(e,t,r)=>{if(t.length===0)return r;let[o,...n]=t,i=e,s=Array.isArray(e)?[...e]:{...i};return s[o]=Aa(i[o],n,r),s},Lu=(e,t,r,o)=>{let n=e;for(let{path:i}of t??[]){let s=oO(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=Aa(n,i,r[a]);}else if(s&&typeof s.__field=="object"&&s.__field!==null)n=Aa(n,i,rO(o,s.__field));else throw new Error(`executePrismaPlan: no reference at the recorded location ${i.join(".")}`)}return n};var nO=e=>e?.map?{...e,map:Oe(e.map,e.mapName,"toPrisma")}:e,Tn=(e,t)=>ss(e,t,"toPrisma",iO),iO=(e,t)=>{let r={steps:[]},o=Na(e,nO(t),r),n=(i,s)=>{let a=vd(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 fs=(e,t,r,o,n)=>{let i=`${r.mapName}\0${r.modelName}`;for(let a of t){if(typeof a=="boolean")continue;let l=e.memo?.compiles.get(a)??new Map;e.memo?.compiles.set(a,l);let f=l.get(i);if(f===void 0){let[p]=Ko(a,{target:"toPrisma",map:e.lens,mapName:r.mapName,model:r.modelName}).errors;f=p?p.message:null,l.set(i,f);}if(f!==null)return new A(`${o}: ${f}`,"unsupported_clamp")}if(n)return null;let s=false;for(let a of t)X(a,l=>{("aggregate"in l||or.includes(l.arrayOperator))&&(s=true);});return s?new A(`${o} needs a counting step (executePrismaPlan), which a relation's where in a select can't run`,"unsupported_clamp"):null},ds=(e,t)=>{try{return t()}catch(r){throw r instanceof A||r instanceof D?r:new A(`${e}: ${r.message}`,"unsupported_clamp")}};var Fu=(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:Fu(s.scope,s.path)};return X(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(Fu(a,l));return [...i,a]},[""]),[...t]};var Ta=(e,t,r,o,n)=>{let i={};for(let[s,a]of Object.entries(o.fields)){if(!$t(t,s))continue;let l=t.enumValuesByField.get(s),f=n(s)?.filter(d=>l===void 0||l.includes(d.value)),p=Xo(e,t,r,s,"groupBy")?t.sourceGroupBys.get(s):void 0;i[s]={...a,...l!==void 0&&{values:l},...f!==void 0&&{options:f},...p!==void 0&&{groupBy:p}};}return i},ju=(e,t,r,o,n)=>{let{mapName:i,modelName:s}=t,a=T(O(e.lens.maps,i),s),l=Ta(e,r,t,a,m=>{let g=n.get(`${o}|${m}`),c=r.enumValuesByField.get(m);return g??O(a.fields,m)?.options??c?.map(h=>({value:h,label:h}))}),f={};for(let[m,g]of r.sources)$t(r,m)&&(f[m]=g);let p={};for(let[m,g]of r.sourceLabels)$t(r,m)&&Xo(e,r,t,m,"label")&&(p[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(!ns(e,i,s,m))throw is(o,i,s,m);Object.hasOwn(f,m)&&(u[m]="mapDefaults");}return {mapName:i,model:s,fields:l,whereClauses:r.whereClauses,sources:f,sourceLabels:p,sourceGroupBys:d,sourceFrom:u}},Iu=e=>{let t=new Map;for(let r of e.sourceValues??[])t.set(`${r.path}|${r.field}`,r.options);return t},Vu=(e,t={})=>Cn(M(e),t),Cn=(e,t={})=>{let r=Iu(t),o={};for(let{path:n,at:i,effect:s}of Wt(e))o[n]=ju(e,i,s,n,r);return o},qu=(e,t,r={})=>Ca(M(e),t,r),Ca=(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 ju(e,o,n,i,Iu(r))};var us=(e,t,r,o,n)=>{let i=e.split("."),{hops:s}=xe(t,{mapName:r,modelName:o,relPath:[]},e),a=s.find((d,u)=>d.isList&&u<i.length-1);if(a)return `${n} cannot traverse to-many relation '${i[s.indexOf(a)]}'`;if(s.length===i.length)return `${n} must end on a scalar column, '${i.at(-1)}' is a relation`;let l=s.at(-1)??{map:r,model:o},f=i[s.length],p=Re(O(t,l.map),l.model,f);return p?V(p)?`${n} relation '${f}' has no resolvable target`:s.length===i.length-1?null:`${n} segment '${f}' is not a relation`:`${n} segment '${f}' not on model '${l.model}'`},Bu=(e,t,r,o,n,i,s,a)=>{let l=us(n,e.lens.maps,t,r,i);if(l)throw new A(`${i} '${n}': ${l}`,"invalid_source");let{hops:f}=xe(e.lens.maps,{mapName:t,modelName:r,relPath:o},n),p=f.slice(0,n.split(".").length-1);for(let d of p){let u=d.relPath.join(".");if(s.has(u))continue;s.add(u);let m=_(e,d.map,d.model,d.relPath);for(let g of m.whereClauses)a.push(zo(g,d.prefix));}},sO=(e,t,r,o,n,i)=>{let s=[],a=new Set;for(let l of n)Bu(e,t,r,o,l,"groupBy",a,s);return i?.includes(".")&&Bu(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)},cs=(e,t)=>{let r=[];for(let o of t){let n=Mn(e,o);if(n===void 0)return;r.push(n);}return r},Ma=(e,t)=>JSON.stringify([e??null,t]),aO=(e,t,r,o)=>{let n=Ma(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});},ms=(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"||aO(e,String(a),s,n);},gs=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})}),lO=(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:f}of e.bridges??[]){let[p,d]=f;for(let[u,m]of [[p,d],[d,p]])if(u.fieldMap===r&&u.model===a&&Ae(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")},ys=(e,t,r,o)=>{let n=Oe(e,t,"toPrisma");return [...new Set(o.map(i=>mr(i,n,r)?lO(e,n,t,r,i):i))]},pO=(e,t,r,o)=>{if(t.length===0)return [];let n={mapName:e.lens.mapName,modelName:e.lens.model,relPath:[]},{hops:i,end:s}=xe(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(p=>({mapName:p.map,modelName:p.model}))],l=t.length;for(;l>0&&!r.has(t.slice(0,l).join("."));)l--;let f=l>0?r.get(t.slice(0,l).join("."))??null:null;for(let p=l;p<t.length;p++){let d=x=>{f=x,r.set(t.slice(0,p+1).join("."),x);},u=a[p],m=_(e,u.mapName,u.modelName,t.slice(0,p)).whereClauses,g=f===null?m:[...m,f];if(g.length===0&&!o){d(null);continue}let c=O(e.lens.maps,u.mapName),h=c&&Re(c,u.modelName,t[p]);if(!h)throw new A(`source at '${t.join(".")}': '${t[p]}' isn't declared on ${u.modelName}`,"not_in_lens");let w=a[p+1],R=Ae({fieldMap:u.mapName,model:u.modelName}),b=h.kind==="bridge"?Re(O(e.lens.maps,w.mapName),w.modelName,R):void 0,S=h.kind==="bridge"?b&&{field:R,entry:b}:c?Hi(c,u.modelName,t[p],h):null;if(!S&&g.length===0){d(null);continue}if(!S)throw new A(`source at '${t.join(".")}': '${t[p]}' on ${u.modelName} declares no inverse, so the clamps above can't be carried down to it`,"unsupported_clamp");let $=K(g);try{let x={field:S.field,operator:"exists"};d(S.entry.isList?{field:S.field,arrayOperator:"any",condition:$}:g.length?K([x,zo($,S.field)]):x);}catch(x){throw x instanceof A?new A(`source at '${t.join(".")}': the clamps above can't be carried down to it \u2014 ${x.message}`,x.code):x}}return f===null?[]:[f]},Wu=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),f=Object.hasOwn(i.sourceFrom,s),p={mapName:i.mapName,modelName:i.model,relPath:n.split(".").slice(1)},d=_(e,p.mapName,p.modelName,p.relPath),u=(d.sourceWheres.get(s)??[]).map(N=>Kr(N,e,p)),m=sO(e,p.mapName,p.modelName,p.relPath,l??[],a),g=O(i.fields,s)?.values,c=f?d.sourcesFromMapDefaults.get(s):void 0,h=c===void 0?void 0:e.chain[c],R=[...pO(h===void 0?e:{...e,skipClampsOf:h},p.relPath,o(h),h===void 0&&!f),...u,...m,...g?[{field:s,operator:"in",value:[...g]}]:[]],b=K([...i.whereClauses,...R]),S=K([...i.whereClauses,...u,...m,...g?[{field:s,operator:"in",value:[...g]}]:[]]),$=e.lens.bridges?.length?Oe(e.lens,p.mapName,"toPrisma"):void 0,x=$?[...Ge(b),...a===void 0?[]:[a],...l??[]].find(N=>mr(N,$,p.modelName)):void 0,W=x!==void 0&&$?K(zs(b).filter(N=>bt(N,$,p.modelName))):void 0,pe=fs(e,[...i.whereClauses,...R],p,`source '${s}' at '${n}'`,true);if(pe)throw pe;return {path:n,visit:i,field:s,...f&&{from:"mapDefaults"},...a!==void 0&&{label:a},...l!==void 0&&{groupBy:l},where:b,rowWhere:S,...x!==void 0&&{bridged:x},...W!==void 0&&{recheck:W}}}))};var _a=(e,t)=>{for(let r of t){let o=e;for(let n of r.split("."))o=qt(o,n,()=>({}));}return e},hs=(e,t)=>{for(let[r,o]of Object.entries(t))hs(qt(e,r,()=>({})),o);return e},Da=e=>e.whereClauses.flatMap(Ge),Uu=(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:ys(e.lens,o.visit.mapName,o.visit.model,i)]);}return r},Ku=(e,t)=>e.get(t.relPath.join("."))??[],fO=(e,t,r)=>_a(hs({},r??{}),Da(_(e,t.mapName,t.modelName,t.relPath))),Gu=e=>({mapName:e.lens.mapName,modelName:e.lens.model,relPath:[]}),Fa=(e,t,r)=>({...r,relPath:[...e.relPath,t]}),dO=(e,t,r,o)=>{if(!r.whereClauses.length)return;let n=K(r.whereClauses),i=fs(e,r.whereClauses,t,`toLensSelect: the clamp on '${t.relPath.join(".")}'`,false);if(i)throw i;if(e.inspect)return;let s=ds(`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},uO=(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?Hi(e,t,r,o):null;return i(o.toFields?.[0])??i(s?.entry.fromFields?.[0])??i("id")},zu=(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:_a(hs({},o),[...Da(a),...Ku(i,t)]),f={};for(let[p,d]of Object.entries(s)){let u=r!=="paths"&&$t(a,p),m=O(l,p);if(!u&&m===void 0||d.kind==="bridge")continue;if(d.kind!=="object"){f[p]=true;continue}let g=u?"declared":"paths";if(g==="paths"&&m===void 0)continue;let c=Fa(t,p,{mapName:t.mapName,modelName:d.type}),h=zu(e,c,g,m??{},n,i),w=d.isList&&g!=="paths"&&m===void 0?dO(e,c,_(e,c.mapName,c.modelName,c.relPath),n):void 0,R=Object.keys(h).length?void 0:uO(O(e.lens.maps,t.mapName),t.modelName,p,d),b=R===void 0?h:{[R]:true};Object.keys(b).length&&(f[p]={select:b,...w&&{where:w}});}return f},Hu=(e,t={})=>ja(M(e),t),ja=(e,t={},r=Rr(e))=>{let o=zu(e,Gu(e),"declared",{},t,Uu(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}},ka=(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,La=(e,t,r,o)=>{let n={},i=T(O(e.lens.maps,t.mapName),t.modelName);for(let[s,a]of Object.entries(o)){if(!Object.hasOwn(r,s))continue;let l=O(i?.fields,s),f=l?Ze(l,t.mapName):null;n[s]=f?ka(r[s],p=>La(e,Fa(t,s,f),p,a)):r[s];}return n},Ju=(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??{},f=n?_a(hs({},o),[...Da(a),...Ku(s,t)]):{},p={};for(let[d,u]of Object.entries(l)){if(!Object.hasOwn(r,d))continue;let m=O(f,d),g=Ze(u,t.mapName);if(!g){($t(a,d)||m!==void 0)&&(p[d]=r[d]);continue}let c=Fa(t,d,g);if($t(a,d)){let h=!Array.isArray(r[d])||m!==void 0;p[d]=ka(r[d],w=>Ju(e,c,w,m??{},n,i,s)??(n&&h?La(e,c,w,fO(e,c,m)):null));}else m!==void 0&&(p[d]=ka(r[d],h=>La(e,c,h,m)));}return p},Qu=(e,t,{keepClampColumns:r=false,...o}={})=>{let n=M(e),i=Gu(n),s=r?Uu(n,Rr(n)):new Map;return t.flatMap(a=>{let l=Ju(n,i,a,{},r,o,s);return l===null?[]:[l]})};var cO="materializeSources needs fetched or keepClampColumns rows, not viewer rows",Ia=(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=cO)=>{for(let s of n){let a=[r];for(let{index:l,field:f,entry:p,next:d}of ur(e.lens.maps,t,s)){if(!p)break;let u=s.split(".").slice(0,l+1).join("."),m=[];for(let g of a){if(g===null||typeof g!="object")continue;if(!Object.hasOwn(g,f))throw Ia(i,o,`lacks '${u}', which a read needs`);let c=g[f];if(d&&c==null&&p.fromFields?.some(h=>{let w=g[h];return w!=null}))throw Ia(i,o,`'${u}' is null while its key is set \u2014 a projection hid the row`);if(!(!d||c===null||c===void 0)){if(Array.isArray(c)!==(p.isList===true))throw Ia(i,o,`'${u}' holds ${Array.isArray(c)?"a list where it names one row":"one row where it names a list"}`);m.push(...Array.isArray(c)?c:[c]);}}if(!d)break;a=m;}}},Va=(e,t)=>{let r={mapName:e.lens.mapName,modelName:e.lens.model,relPath:[]};return [r,...xe(e.lens.maps,r,t.split(".").slice(1).join(".")).hops.map(o=>({mapName:o.map,modelName:o.model,relPath:o.relPath}))]},mO=(e,t,r,o)=>{let n=r.split(".").slice(1),i=Va(e,r),s=(l,f)=>{let p=i[l],d=_(e,p.mapName,p.modelName,p.relPath).whereClauses,u=K(d),m=d.flatMap(Ge),g=[e.lens.model,...n.slice(0,l)].join(".");return f.filter(c=>(kn(e,p,c,g,m),ue(u,c,o)===true))},a=s(0,t);for(let[l,f]of n.entries()){let p=[],d=[e.lens.model,...n.slice(0,l)].join(".");for(let u of a){kn(e,i[l],u,d,[f]);let m=ye(u,f);Array.isArray(m)?p.push(...m):m!=null&&p.push(m);}a=s(l+1,p);}return {rows:a,visit:i[i.length-1]}},Zu=(e,t,r)=>{let o=M(e);return Rr(o).map(({path:n,visit:i,field:s,from:a,label:l,groupBy:f,rowWhere:p})=>{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(p),...l===void 0?[]:[l],...f??[]],u=new Map,m=mO(o,t,n,r);for(let g of m.rows)kn(o,m.visit,g,n,d),ue(p,g,r)===true&&ms(u,g,s,l===void 0?void 0:Mn(g,l),f===void 0?void 0:cs(g,f));return {path:n,mapName:i.mapName,model:i.model,field:s,options:gs(u)}})};var ws={value:"value",query:"query"},Yu=(e,t,r={})=>{let{rowShape:o="prisma",lens:n,order:i=ws.value,...s}=r,a=o==="sql",{recheck:l}=e,f=g=>false,p=g=>true;if(l!==void 0){if(n===void 0)throw new 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=Va(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 h=Oe(g.lens,e.mapName,"toPrisma");f=b=>h!==void 0&&mr(b,h,e.model);let w=[...Ge(l),...e.label!==void 0&&f(e.label)?[e.label]:[],...(e.groupBy??[]).filter(f)],R="materializeSourceQuery needs candidate rows holding the far side of each bridge the source reads";p=b=>(kn(g,c,b,e.path,w,R),ue(l,b,s)===true);}let d=g=>e.label===void 0?void 0:a&&e.label.includes(".")&&!f(e.label)?g.__label:Mn(g,e.label),u=e.groupBy?.map((g,c)=>a&&!f(g)?`__group_${c}`:g),m=new Map;for(let g of t)p(g)&&ms(m,g,e.field,d(g),u===void 0?void 0:cs(g,u));return {path:e.path,mapName:e.mapName,model:e.model,field:e.field,options:i===ws.query?[...m.values()]:gs(m)}};var gO=(e,t)=>`${e}::${t}`,yO=(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);},Xu=(e,t={})=>qa(M(e),t),qa=(e,t={})=>{let{lens:r}=e,o=new Map;for(let l of t.sourceValues??[]){let f=`${l.mapName}::${l.model}::${l.field}`,p=o.get(f)??new Map;for(let d of l.options)p.set(Ma(d.groups,d.value),d);o.set(f,p);}let n=new Map;for(let{at:l,effect:f}of Wt(e)){let{mapName:p,modelName:d}=l,u=T(O(r.maps,p),d);if(!u)continue;let m=gO(p,d),g=n.get(m);g||(g={mapName:p,modelName:d,fields:new Map},n.set(m,g));let c=Ta(e,f,l,u,h=>{let w=o.get(`${p}::${d}::${h}`);return w&&[...w.values()]});for(let[h,w]of Object.entries(c)){let R=w.groupBy,b=g.fields.get(h)?.groupBy;if(R!==void 0&&b!==void 0&&JSON.stringify(b)!==JSON.stringify(R))throw new A(`projectLens: '${d}.${h}' is grouped by different axes on different paths ([${b}] vs [${R}]) \u2014 one surface field cannot carry two partition namespaces`,"invalid_source");yO(g.fields,h,w);}}let i={};for(let{mapName:l,modelName:f,fields:p}of n.values()){let d=O(i,l);d||(d={models:{}},i[l]=d);let u={},m=new Map;for(let[g,c]of p)if(u[g]=c.options===void 0&&c.values?{...c,options:c.values.map(h=>({value:h,label:h}))}:c,c.kind==="enum"&&c.values){let h=m.get(c.type)??new Set;for(let w of c.values)h.add(w);m.set(c.type,h);}d.models[f]={...T(O(r.maps,l),f),fields:u};for(let[g,c]of m)d.enums??={},d.enums[g]=[...c];}let s=r.bridges?.filter(l=>{let[f,p]=l.endpoints,d=Re(O(i,f.fieldMap),f.model,Ae(p)),u=Re(O(i,p.fieldMap),p.model,Ae(f));return d!==void 0||u!==void 0}),a={maps:i};return s&&s.length>0&&(a.bridges=s),{...a,mapName:r.mapName,model:r.model}};var ec=(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:ua(s).message});return}let{escaping:a}=i;if(a!==null){n.push({path:o,code:"scope_out_of_bounds",message:ca(a).message});return}let l=new Set,f={...t,clamp:t.chain.length===0};for(let{mapName:p,modelName:d,relPath:u}of r)for(let m of xn(e,f,p,d,u)){let g=`'${m.path}' ${m.message}`;l.has(g)||(l.add(g),n.push({path:o,code:m.code,message:g}));}},hO=(e,t,r,o,n,i)=>{let s={...r,chain:[...r.chain,t]},a=new Set;for(let l of o){let f=_(s,l.mapName,l.modelName,l.relPath);for(let[p,d]of Object.entries(e.sources??{})){let u=Sr(d);for(let m of ["label","groupBy"]){if(u[m]===void 0||a.has(`${p}|${m}`))continue;let g=m==="label"?u.label:Pn(u.groupBy),c=m==="label"?f.sourceLabels.get(p):f.sourceGroupBys.get(p);if(JSON.stringify(g)!==JSON.stringify(c))continue;let w=(typeof c=="string"?[c]:c??[]).map(R=>Nn(s,l,R)).find(R=>R!==null);if(w){a.add(`${p}|${m}`),i.push({path:`${n}.sources.${p}`,code:"invalid_source",message:`${m} '${String(u[m])}' crosses '${w}', a relation the lens does not show there (not turned on, or omitted)`});continue}Xo(s,f,l,p,m)||(a.add(`${p}|${m}`),i.push({path:`${n}.sources.${p}`,code:"invalid_source",message:`${m} '${String(u[m])}' reads a column hidden by another layer`}));}}}},wO=(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},SO=(e,t,r,o,n,i,s,a,l,f,p,d,u=false)=>{let m=e.omits?.some(c=>{let h=O(i,c);return h===void 0||!V(h)});e.picks&&m&&f.push({path:`${l}`,code:"conflicting_selection",message:"cannot specify both picks and omits of a column"});for(let c of ["picks","omits"])for(let h of e[c]??[]){let w=O(i,h);if(!w){f.push({path:`${l}.${c}`,code:"not_in_lens",message:`field '${h}' not on model`});continue}let R=V(w);if(R&&c==="picks"){f.push({path:`${l}.picks`,code:"wrong_kind",message:`'${h}' is a relation: picks names columns; turn a relation on with \`relations\``});continue}let b=wO(h,R,t,r);b&&f.push({path:`${l}.${c}`,code:"not_visible",message:`'${h}' ${b}`});}let g=(c,h,w)=>{let R=O(i,h);if(!R){f.push({path:`${l}.${c}`,code:"not_in_lens",message:`field '${h}' not on model`});return}if(R.kind!=="enum"){f.push({path:`${l}.${c}`,code:"wrong_kind",message:`field '${h}' is not an enum field`});return}let b=Ir(R,a);for(let S of w)b&&!b.includes(S)&&f.push({path:`${l}.${c}.${h}`,code:"value_not_allowed",message:`'${S}' is not a known value of enum '${R.type}'`});};for(let[c,h]of Object.entries(e.enumPicks??{}))g("enumPicks",c,h);for(let[c,h]of Object.entries(e.enumOmits??{}))g("enumOmits",c,h);ec(e.where,p,d,`${l}.where`,f);for(let[c,h]of Object.entries(e.sources??{})){let w=O(i,c);if(!w){f.push({path:`${l}.sources`,code:"not_in_lens",message:`field '${c}' not on model`});continue}if(V(w)){f.push({path:`${l}.sources.${c}`,code:"wrong_kind",message:`'${c}' is a relation: a source offers a column's values`});continue}let R;try{R=Sr(h);}catch(x){if(!(x instanceof A))throw x;f.push({path:`${l}.sources.${c}`,code:x.code,message:x.message});continue}let b=R.from;if(b!==void 0){let x=b!=="mapDefaults"?`from takes 'mapDefaults', not '${String(b)}'`:u?"a mapDefaults source is what a path source's from: 'mapDefaults' points at; it can't point itself":R.label!==void 0||R.groupBy!==void 0?"a from: 'mapDefaults' source takes the model source's label and groupBy":null;x&&f.push({path:`${l}.sources.${c}`,code:"invalid_source",message:x});}let S=R.label?.includes(".")?R.label:void 0;if(R.label!==void 0)if(S){let x=us(S,o,n,s,"label");x&&f.push({path:`${l}.sources.${c}`,code:"invalid_source",message:`${x}`});}else {let x=O(i,R.label);x?V(x)&&f.push({path:`${l}.sources.${c}`,code:"wrong_kind",message:`label '${R.label}' is a relation, not a column`}):f.push({path:`${l}.sources.${c}`,code:"not_in_lens",message:`label column '${R.label}' not on model`});}let $=Pn(R.groupBy);if($!==void 0||S!==void 0){let x=/^__(group(_\d+)?|label)$/;(x.test(c)||R.label!==void 0&&x.test(R.label))&&f.push({path:`${l}.sources.${c}`,code:"invalid_source",message:"'__group*' / '__label' names are reserved on grouped or path-labeled sources (sql column aliases)"});}if($!==void 0){for(let W of $){let pe=us(W,o,n,s,"groupBy");pe&&f.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 N=Pn(Sr(pe).groupBy);N!==void 0&&JSON.stringify(N)!==x&&f.push({path:`${l}.sources.${c}`,code:"not_visible",message:`groupBy [${$}] conflicts with an ancestor layer's groupBy [${N}]`});}}ec(R.where,p,d,`${l}.sources.${c}`,f);}},bO=(e,t,r,o,n)=>{for(let[i,s]of Object.entries(t)){let a=O(r,i);if(!a){n.push({path:`mapDefaults.${e}.enums.${i}`,code:"not_in_lens",message:"enum not in registry"});continue}let l=null,f=new Set;for(let d of o){let u=d[i];if(u&&(u.picks&&(l=os(l,u.picks)),u.omits))for(let m of u.omits)f.add(m);}let p=d=>!(f.has(d)||l&&!l.has(d));for(let d of s.picks??[])a.includes(d)?p(d)||n.push({path:`mapDefaults.${e}.enums.${i}.picks`,code:"not_visible",message:`'${d}' not visible from ancestors`}):n.push({path:`mapDefaults.${e}.enums.${i}.picks`,code:"value_not_allowed",message:`'${d}' not a known value`});for(let d of s.omits??[])a.includes(d)?p(d)||n.push({path:`mapDefaults.${e}.enums.${i}.omits`,code:"not_visible",message:`'${d}' already excluded by ancestors`}):n.push({path:`mapDefaults.${e}.enums.${i}.omits`,code:"value_not_allowed",message:`'${d}' not a known value`});}},RO=(e,t,r,o,n,i,s)=>{let a=_(t,r.mapName,r.modelName,r.relPath);for(let l of ["enumPicks","enumOmits"])for(let[f,p]of Object.entries(e[l]??{})){let d=O(o,f);if(d?.kind!=="enum")continue;let u=Ir(d,n)??[],m=ts(a,f)??u;for(let g of p)u.includes(g)&&!m.includes(g)&&s.push({path:`${i}.${l}.${f}`,code:"not_visible",message:`'${g}' is not visible (not allowed by the inherited enum narrowing)`});}},tc=(e,t,r,o)=>e.map(n=>({mapName:o,modelName:r,relPath:[...n.relPath,t]})),Ba=(e,t,r,o,n,i,s,a,l,f,p)=>{let d=O(n,i),u=T(d,s);if(!u)return;let m=o.length===0,g={...f,chain:[...f.chain,r],unvetted:true},c=p.isDefault?void 0:O(O(r.mapDefaults,i)?.models,s),w=[...o.map(S=>O(O(S.mapDefaults,i)?.models,s)).filter(S=>S!==void 0),...t],R={mapName:i,modelName:s,relPath:da};SO(e,w,c,n,i,u.fields,s,d?.enums,a,l,f,m?p.isDefault?[R,...p.parent]:p.parent:p.composed,p.isDefault),RO(e,p.isDefault?f:{...f,chain:[...f.chain,{parent:r.parent,mapDefaults:r.mapDefaults}],unvetted:true},p.isDefault?R:p.parent[0]??R,u.fields,d?.enums,a,l),hO(e,r,f,p.composed,a,l);let b={...f,chain:[...f.chain,r]};if(!p.isDefault)for(let[S,$]of Object.entries(e.sources??{}))!vn($)||$.from!=="mapDefaults"||ns(b,i,s,S)||l.push({path:`${a}.sources.${S}`,code:"invalid_source",message:is([tt(r).model,...p.parent[0]?.relPath??[]].join("."),i,s,S).message});for(let[S,$]of Object.entries(e.relations??{})){let x=O(u.fields,S);if(!x){l.push({path:`${a}.relations`,code:"not_in_lens",message:`'${S}' not on model`});continue}if(!V(x)){l.push({path:`${a}.relations`,code:"wrong_kind",message:`'${S}' is not a relation (kind=${x.kind})`});continue}let W=I=>_(f,I.mapName,I.modelName,I.relPath).relations.has(S),pe=I=>_(g,I.mapName,I.modelName,I.relPath).relations.has(S);if(!m&&!(p.isDefault?p.parent.some(W):p.parent.every(W))){l.push({path:`${a}.relations`,code:"not_visible",message:`'${S}' is not shown by the parent${p.isDefault?` wherever ${s} is visited`:""}: only the first narrowing over the base lens turns a relation on`});continue}let N=Ze(x,i);if(!N)continue;if(!T(O(n,N.mapName),N.modelName)){l.push({path:`${a}.relations.${S}`,code:"not_in_lens",message:"target model not found in lens"});continue}let j=t.map(I=>O(I.relations,S)).filter(I=>I!==void 0);Ba($,j,r,o,n,N.mapName,N.modelName,`${a}.relations.${S}`,l,f,{parent:tc(p.isDefault?p.parent.filter(W):p.parent,S,N.modelName,N.mapName),composed:tc(p.composed.filter(pe),S,N.modelName,N.mapName),isDefault:p.isDefault});}},Wa=e=>{let t=[];try{OO(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 wr(t)},OO=(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,f=()=>(l??=Wt({...n,chain:[...n.chain,e],unvetted:true}),l);for(let[u,m]of Object.entries(e.mapDefaults??{})){let g=O(r.maps,u);if(!g){t.push({path:`mapDefaults.${u}`,code:"not_in_lens",message:"not in lens"});continue}let c=o.map(h=>O(h.mapDefaults,u)?.enums).filter(h=>h!==void 0);for(let[h,w]of Object.entries(m.models??{})){if(!T(g,h)){t.push({path:`mapDefaults.${u}.models.${h}`,code:"not_in_lens",message:"not in fieldMap"});continue}let b=o.map(x=>O(O(x.mapDefaults,u)?.models,h)).filter(x=>x!==void 0),S=x=>x.map(({at:W})=>W).filter(W=>W.mapName===u&&W.modelName===h),$=[];a(()=>{$=S(f());}),a(()=>Ba(w,b,e,o,r.maps,u,h,`mapDefaults.${u}.models.${h}`,t,n,{parent:S(i),composed:$,isDefault:!0}));}m.enums&&bO(u,m.enums,g.enums,c,t);}if(e.root){let u=r.mapName,m=r.model,g=O(r.maps,u);if(!g)t.push({path:"root",code:"not_in_lens",message:`lens map '${u}' not in lens`});else if(!T(g,m))t.push({path:"root",code:"not_in_lens",message:`lens model '${m}' not in fieldMap`});else {let c=o.map(w=>w.root).filter(w=>w!==void 0),h={mapName:u,modelName:m,relPath:[]};a(()=>Ba(e.root,c,e,o,r.maps,u,m,"root",t,n,{parent:[h],composed:[h],isDefault:!1}));}}for(let u of uu(e))t.push({path:"bindings",code:"invalid_binding",message:u});let p={...n,chain:[...n.chain,e],inspect:true},d;a(()=>{d=Rr(p,Cn(p));}),a(()=>qa(p)),a(()=>ja(p,{},d)),a(()=>{let u=new Map;for(let{at:m}of f()){u.set(m.relPath.join("."),m),a(()=>Ca(p,m.relPath.join(".")));let g=m.relPath.at(-1),c=u.get(m.relPath.slice(0,-1).join("."));if(g===void 0||!c)continue;let w=Re(O(r.maps,c.mapName),c.modelName,g)?.isList?{field:g,arrayOperator:"any",condition:!0}:{field:g,operator:"exists"};a(()=>Kr(w,p,c));}});for(let u of s)t.some(m=>u.message.includes(m.message))||t.push({path:"",code:u.code,message:u.message});},Ss=e=>Rn(Wa(e),"validateNarrowing");function rc(e,{by:t="path",...r}={}){return t==="model"?Xu(e,r):Vu(e,r)}var oc=(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 f=(d,u)=>u!==null&&typeof u=="object"&&_(n,d.mapName,d.model,d.relPath).whereClauses.every(m=>ue(m,u,o)===true),p=f(s[0],t)?t:null;for(let[d,u]of s.entries()){if(p===null||typeof p!="object")return {ok:true,value:null};let m=O(p,u.field);if(u===a)return {ok:true,value:l.length?ye(m,l.join(".")):m};p=f(s[d+1],m)?m:null;}return {ok:true,value:null}};var xO=e=>"maps"in e,nc=(e,t)=>{let r=i=>{let s=O(t,i);if(!s)throw new Error(`composeLens: no stored lens '${i}'`);return s},o=[...r(e).parents,e];if(new Set(o).size!==o.length)throw new Error(`composeLens: '${e}' lists a layer twice in its parents`);let n=null;for(let[i,s]of o.entries()){let a=r(s);if(Object.hasOwn(a,"parent"))throw new Error(`composeLens: '${s}' carries a parent; a layer composes only through \`parents\``);let{id:l,parents:f,...p}=a;if(f.join("\0")!==o.slice(0,i).join("\0"))throw new Error(`composeLens: '${s}' composes with [${f.join(", ")}], not [${o.slice(0,i).join(", ")}] as '${e}' lists`);if(xO(a)!==(i===0))throw new Error(i===0?`composeLens: '${s}' is not a base lens, so it can't head '${e}''s parents`:`composeLens: '${s}' is a base lens, so it can only head a chain`);if(n===null){n=p;continue}let u={parent:n,...p};Ss(u),n=u;}return n},ic=(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 sc=e=>e instanceof Date?e.toISOString():Array.isArray(e)&&e.some(t=>t instanceof Date)?e.map(sc):e,L=(e,t)=>(e.params.push(sc(t)),`$${++e.paramIndex}`);var Ut=(e,t,{jsonb:r=false}={})=>{let o=()=>({sql:ba(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(p=>p.entry.isList);if(i)throw Ao(e,i);let s=t.currentAlias;for(let p of n.hops){let d=ac(t,s,p);if(!d)return o();s=d;}let a=Vr(n);if(n.kind==="direct"&&n.entry.kind==="object"){let p={field:n.column,entry:n.entry,from:n.model},d=yr(t.map,n.model,n.entry),u=ac(t,s,p);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],f=ba(l.join("."),s,r);return {sql:a==="json"&&!r?`NULLIF(${f}, 'null'::jsonb)`:f,shape:a}},vt=(e,t,r)=>Ut(e,t,r).sql,ac=(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=EO(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},EO=(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:f,there:p})=>`${te(n)}.${te(p)} = ${te(r)}.${te(f)}`).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),$O=(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}},Ee=(e,t)=>cn(e,{value:r=>({type:"value",value:r}),path:r=>$O(r,t),bind:(r,o)=>({type:"value",value:Li(r,o,"toSql")})}),Hr=e=>t=>{let r=Ee(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 PO={lt:"<",lte:"<=",gt:">",gte:">=",equals:"="},en=(e,t)=>{let r=er(e,t);return r?{symbol:PO[r],negated:B.includes(e)}:void 0},lc=(e,t)=>e.type==="column"?e.sql:L(t,e.value),Ce=(e,t)=>`(${t} OR ${e} IS NULL)`,Nt=(e,t,r=true)=>t&&r?`${e} IS NULL`:"FALSE",bs=(e,t,r,o,n)=>{if(Gt(r))return Nt(e,o);let i=`${e} ${t} ${lc(r,n)}`;return o?Ce(e,i):i},Ln=(e,t,r,o,n=true)=>{if(!t||t.some(Gt))return Nt(e,r,n);let[i,s]=t.map(d=>lc(d,o)),a=t.some(d=>d.type==="column"),l=a?"SYMMETRIC ":"";if(!r)return `${e} BETWEEN ${l}${i} AND ${s}`;let f=`${e} NOT BETWEEN ${l}${i} AND ${s}`,p=a?`(${f} AND ${i} IS NOT NULL AND ${s} IS NOT NULL)`:f;return n?Ce(e,p):p};var dc=()=>{let e=Lt.get("sql.dialect");if(!xf(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 ${Ds.join(", ")}, all and any, and ${Fs.join(", ")} over a to-many relation.`),uc=(e,t)=>Ua(e,t,""),pc=(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},Ua=(e,t,r,o=()=>[])=>{dc();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 f=Oe(s,a,"toWhereSql");if(!T(f,l))throw new D(`toWhereSql: the map has no model '${l}'`);return _n(e,{map:f,model:l,column:p=>pc(n,"columns","column",`${r}${p}`),table:p=>pc(i,"tables","table",`${r}${p}`),clamps:o})},_n=(e,t)=>{if(typeof e=="boolean")return e?"TRUE":"FALSE";let r=e;switch(se(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 NO(e,t);case "if":throw z("if / then / else");case "array":return vO(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")}},vO=(e,t)=>{let{arrayOperator:r,field:o}=e;if(!Fs.includes(r))throw z(`arrayOperator '${r}'`);if(be(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(xi.includes(r)&&e.condition===void 0)throw _e(r);let s={map:t.map,model:n.entry.type,column:p=>t.column(`${o}.${p}`),table:p=>t.table(`${o}.${p}`),clamps:p=>t.clamps(`${o}.${p}`)},a=[...i.map(({here:p,there:d})=>`${s.column(d)} = ${t.column(p)}`),...t.clamps(o).map(({where:p,clamps:d})=>`(${_n(p,{...s,clamps:d})})`)],l=p=>`(SELECT 1 FROM ${t.table(o)} WHERE ${[...a,...p?[p]:[]].join(" AND ")})`,f=()=>`(${_n(e.condition,s)})`;switch(r){case E.any:return `EXISTS ${l(f())}`;case E.none:return `NOT EXISTS ${l(f())}`;case E.all:return `NOT EXISTS ${l(`${f()} IS NOT TRUE`)}`;case E.empty:return `NOT EXISTS ${l()}`;default:return `EXISTS ${l()}`}},NO=(e,t)=>{if(!Ds.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(ie(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=AO(e,r,t),[n]=r.kind==="direct"?Xi(e,Ye(r.entry)):[];if(n)throw new Error(`toWhereSql: ${n.message}`);if(e.operator===y.exists)return `${o} IS NOT NULL`;if(e.operator===y.notExists)return `${o} IS NULL`;if(e.value===void 0)throw new Error("No value, path or bind specified");let i=Jo(e,e.value,r,"toWhereSql",()=>Je);if(he(e,i))return Nt(o,B.includes(e.operator));let s=a=>TO(a,e.field);switch(e.operator){case y.equals:return i===null?`${o} IS NULL`:`${o} = ${s(i)}`;case y.notEquals:return i===null?`${o} IS NOT NULL`:Ce(o,`${o} <> ${s(i)}`);case y.in:{let{values:a,hasNull:l}=We(fc(e,i));if(!a.length)return l?`${o} IS NULL`:"FALSE";let f=`${o} IN (${a.map(s).join(", ")})`;return l?Ce(o,f):f}default:{let{values:a,hasNull:l}=We(fc(e,i));if(!a.length)return l?`${o} IS NOT NULL`:"TRUE";let f=`${o} NOT IN (${a.map(s).join(", ")})`;return l?`(${f} AND ${o} IS NOT NULL)`:Ce(o,f)}}},AO=(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 Ao(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)},fc=(e,t)=>{if(!Array.isArray(t))throw new Error(`toWhereSql: '${e.operator}' on '${e.field}' takes a list of values`);return t},TO=(e,t)=>{if(typeof e=="string"){let r=e.replace(/'/g,"''");return `'${dc()===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 CO=(e,t,r)=>{X(r,(o,n)=>{if(typeof o.field!="string")return;let i=Nn(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)?xe(e.lens.maps,n,o.field).end??false:void 0},t);},mc=(e,t,r)=>o=>{let{end:n}=xe(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:mc(e,n,s.layer)}))},cc=(e,t,r,o,n)=>{let i=r.map(({where:s,layer:a})=>Ua(s,o,n,mc(e,t,a)));return i.length===1?i[0]:`(${i.join(" AND ")})`},gc=(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])CO(o,i,l);if(s.pathWheres.length){let l=i.relPath.join("."),f=cc(o,i,s.pathWheres,a,l?`${l}.`:"");l?n.relations[l]=f:n.root=f;}if(s.modelWheres.length){let l=qt(n.mapDefaults,i.mapName,()=>({models:{}})),f=cc(o,i,s.modelWheres,a,`${i.modelName}.`),p=O(l.models,i.modelName);if(p!==void 0&&p!==f)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]=f;}}return n};var yc=e=>Array.isArray(e)?e.some(yc):typeof e=="object"&&e!==null,hc=(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=ie(e.caseInsensitive),f=b=>l?`LOWER(${b})`:b,p=B.includes(e.operator),d=b=>Ce(n,`NOT (${b})`);if(he(e,r))return Nt(n,p);let u=Ti(e.operator,r);if(u)throw u;let m=b=>{if(yc(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 ${f(s)} LIKE ${f(L(o,b))})`,h=b=>{let S=$=>`(CASE WHEN ${i} = 'array' THEN EXISTS (SELECT 1 FROM jsonb_array_elements(${n}) AS e WHERE ${$}) ELSE FALSE END)`;return l&&typeof b=="string"?S(`jsonb_typeof(e) = 'string' AND LOWER(e #>> '{}') = LOWER(${L(o,b)})`):l&&Array.isArray(b)?S(`LOWER(e::text)::jsonb = ${m(b)}`):typeof b=="object"&&b!==null?S(`e = ${a(b)}`):`(${i} = 'array' AND ${n} @> ${a([b])})`},w=b=>typeof b=="string"?`(${c(`%${we(b)}%`)} OR ${h(b)})`:h(b);switch(e.operator){case y.equals:return r===null?`${n} IS NULL`:g(r);case y.notEquals:return r===null?`${n} IS NOT NULL`:d(g(r));case y.in:case y.notIn:{let{values:b,hasNull:S}=We(r),$=b.length?`(${b.map(g).join(" OR ")})`:"FALSE";return e.operator===y.in?S?`(${$} OR ${n} IS NULL)`:$:S?`(NOT ${$} AND ${n} IS NOT NULL)`:d($)}case y.between:case y.notBetween:{let[b,S]=r,$=`(${i} = jsonb_typeof(${a(b)}) AND ${n} BETWEEN ${a(b)} AND ${a(S)})`;return e.operator===y.between?$:d($)}case y.contains:return w(r);case y.notContains:return d(w(r));case y.startsWith:return c(`${we(String(r))}%`);case y.endsWith:return c(`%${we(String(r))}`);case y.notStartsWith:return d(c(`${we(String(r))}%`));case y.notEndsWith:return d(c(`%${we(String(r))}`));case y.matches:case y.notMatches:{let{source:b,caseInsensitive:S}=dr(r),$=`(${i} = 'string' AND ${s} ~${S?"*":""} ${L(o,hn(b))})`;return e.operator===y.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 wc=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)`},Rs=e=>Object.values(e).some(wc),kO=(e,t,r)=>{let o=Ar(r),n=o?"int":"double precision";if(typeof e=="number"||!wc(e)){let a=Zs(e,Hr(t),r);return `${L(t,a)}::${n}`}let i=Ee(e,t).sql;return `(CASE WHEN ${o?`${i} >= 0 AND ${i} = trunc(${i})`:`${i} >= 0`} THEN ${i} END)::${n}`},LO=(e,t)=>`make_interval(${Wf.flatMap(o=>{let n=Object.keys(e).filter(i=>e[i]!==void 0&&nr[i].interval===o).map(i=>{let s=kO(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"&&!Rs(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?"+":"-"} ${LO(t,o)}) AT TIME ZONE ${s})`}};var Ka=(e,t,r)=>{let o=Ee(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)})`}},Sc=(e,t,r)=>{if(Gt(e))return Kt;let o=Ee(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 bc,Rc=e=>{bc=e;},Or=(e,t)=>bc(e,t);var xs=(e,t,r)=>{let o=Ai(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=De(e)&&t.map&&t.currentModel?(k(e.path)??{path:e.path}).path:null;if(s!==null){let S=Vo(Z(e.field,t.map,t.currentModel),Z(s,t.map,t.currentModel),e.operator);if(S)throw F("toSql",`Comparing '${e.field}' with the column '${e.path}'`,S)}if(n.shape==="enum"&&!tr.includes(e.operator)){let S=xc(e,t),$=Z(e.field,t.map,t.currentModel),x=S!==Os&&$&&!he(e,S)?as(e,S,$,t.map):null;if(x){let W=`${n.sql}::text = ANY(${L(t,x.values)})`;return x.matchesNull?Ce(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 S=xc(e,t);if(S===Os)throw new Error(`The Json value '${e.field}' compares against an operand known when compiling, not one read per row.`);return hc(e,vt(e.field,t,{jsonb:true}),S,t)}let f=S=>{if(S.type==="column"&&!S.computed&&(S.shape==="json"||S.shape==="json-path"))throw F("toSql",`'${e.field}' compared with a Json value read per row`,"SQL would compare its text")};if(qe.includes(e.operator)){let S=Pc(e,t);return S?.forEach(f),Ln(a.sql,S,B.includes(e.operator),t,i)}let p=Ec(e,t);if(f(p),p.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(p.type==="column"&&p.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 bs(d,u.symbol,p,false,t);if(p.type==="value"&&he(e,p.value))return Nt(d,B.includes(e.operator),i);let m=p.type==="column"&&p.computed===true,g=ie(e.caseInsensitive)&&(p.type==="column"?!m&&qr(n.shape)&&qr(p.shape):gr(n.shape,p.value)),c=S=>g?`LOWER(${S})`:S,h=S=>g?jr(S):S;if(n.shape==="list"&&p.type==="column"&&ut.includes(e.operator)){if(Z(e.field,t.map,t.currentModel)?.type!=="String"||!qr(p.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 S=ie(e.caseInsensitive)&&qr(p.shape)?`EXISTS (SELECT 1 FROM unnest(${d}) AS e WHERE LOWER(e) = LOWER(${p.sql}))`:`array_position(${d}, ${p.sql}) IS NOT NULL`;return e.operator===y.contains?`(${p.sql} IS NOT NULL AND ${S})`:`(${d} IS NULL OR (${p.sql} IS NOT NULL AND NOT ${S}))`}if(n.shape==="list"&&p.type==="value"){let S=ie(e.caseInsensitive)&&gr("text",p.value);if(ut.includes(e.operator)){let $=L(t,p.value),x=S?`EXISTS (SELECT 1 FROM unnest(${d}) AS e WHERE LOWER(e) = LOWER(${$}))`:`array_position(${d}, ${$}) IS NOT NULL`;return e.operator===y.contains?x:`NOT ${x}`}if(rr.includes(e.operator)&&Array.isArray(p.value))return Or(Ii(e,p.value),t);if(_O(e.operator))throw new Error(`'${e.operator}' does not apply to the list '${e.field}'; test its members with contains.`);if(S&&mt.includes(e.operator)&&Array.isArray(p.value)){let $=L(t,jr(p.value)),x=`(${d} IS NOT NULL AND ARRAY(SELECT LOWER(e) FROM unnest(${d}) AS e) = ${$})`;return e.operator===y.equals?x:Ce(d,`NOT ${x}`)}}let w=p.type==="value"?p.value:void 0,R=p.type==="column"?p.sql:void 0;if(R!==void 0&&(rr.includes(e.operator)||["pattern","string"].includes(Ft(e.operator,"field"))))throw F("toSql",`'${e.operator}' against an operand read per row ('${e.path}')`);let b=S=>i?Ce(d,S):S;switch(e.operator){case y.equals:return m?`${d} = ${R}`:R!==void 0?`${c(d)} IS NOT DISTINCT FROM ${c(R)}`:w===null?`${d} IS NULL`:`${c(d)} = ${c(L(t,w))}`;case y.notEquals:return m?b(`${d} <> ${R}`):R!==void 0?`${c(d)} IS DISTINCT FROM ${c(R)}`:w===null?`${d} IS NOT NULL`:b(`${c(d)} <> ${c(L(t,w))}`);case y.in:{let{values:S,hasNull:$}=We(w);if(!S.length)return $?`${d} IS NULL`:"FALSE";let x=`${c(d)} = ANY(${L(t,h(S))})`;return $?b(x):x}case y.notIn:{let{values:S,hasNull:$}=We(w);if(!S.length)return $?`${d} IS NOT NULL`:"TRUE";let x=`${c(d)} <> ALL(${L(t,h(S))})`;return $?`(${x} AND ${d} IS NOT NULL)`:b(x)}case y.contains:return `${c(d)} LIKE ${c(L(t,`%${we(String(w))}%`))}`;case y.notContains:return b(`${c(d)} NOT LIKE ${c(L(t,`%${we(String(w))}%`))}`);case y.startsWith:return `${c(d)} LIKE ${c(L(t,`${we(String(w))}%`))}`;case y.endsWith:return `${c(d)} LIKE ${c(L(t,`%${we(String(w))}`))}`;case y.notStartsWith:return b(`${c(d)} NOT LIKE ${c(L(t,`${we(String(w))}%`))}`);case y.notEndsWith:return b(`${c(d)} NOT LIKE ${c(L(t,`%${we(String(w))}`))}`);case y.matches:return Oc(d,w,false,t);case y.notMatches:return b(Oc(d,w,true,t));case y.isEmpty:case y.notEmpty:return Ga(e.field,n,e.operator===y.isEmpty,t,Bi(e,t.map,t.currentModel));case y.exists:return `${d} IS NOT NULL`;case y.notExists:return `${d} IS NULL`;default:throw new Error(`Unknown operator: ${e.operator}`)}},Ec=(e,t)=>{if(tr.includes(e.operator))return {type:"value",value:void 0};let r=$c(e,Ee(e,t),t);return e.offset===void 0?r:Ka(r,e.offset,t)},$c=(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)},Pc=(e,t)=>{let r=$c(e,Ee(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:Ka(s,e.offset,t)})},Oc=(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))}`},Os=Symbol("not known"),xc=(e,t)=>{if(qe.includes(e.operator)){let o=Pc(e,t);return o?o.every(n=>n.type==="value")?o.map(n=>n.value):Os:null}let r=Ec(e,t);return r.type==="value"?r.value:Os},Ga=(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`},_O=e=>Ft(e,"field")==="string"&&!ut.includes(e);var vc=(e,t)=>{if(be(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=DO(e,t);return xs(e,t,r)},DO=(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"||Z(e.field,t.map,t.currentModel)?.kind==="object")throw new Error(`Field '${e.field}' is a relation \u2014 toSql() cannot aggregate relation lists. Use toPrisma() instead.`);if(o?.includes("."))throw new Error(`aggregate.field '${o}' contains a nested path \u2014 toSql() only supports flat field names. Use check() for nested paths.`);let s=i==="list",a=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->>${Ra(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(be(e))throw yt("toSql");if(!e.field)throw vi("toSql");if(Ie({field:e.field},t.map,t.currentModel)==="relation"||Z(e.field,t.map,t.currentModel)?.kind==="object")throw new Error(`Field '${e.field}' is a relation \u2014 relation arrays are not supported in SQL; use toPrisma().`);switch(e.arrayOperator){case E.empty:case E.notEmpty:{let o=Ut(e.field,t),n=e.arrayOperator===E.empty;if(o.shape==="list")return Ga(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 FO=(e,t)=>e.type==="column"&&!e.computed?{type:"column",sql:Dn(e,t),computed:true}:e,Ac=e=>e===void 0||e==="instant"||e==="text"||e==="json-path"||e==="unknown",Tc=e=>F("toSql",`A date rule on '${e}'`,"it is not a date column"),Cc=(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=>FO(i,r))}:{lhs:e.sql,ends:t}},Mc=(e,t)=>{let r=Ut(e.field,t);if(!Ac(r.shape))throw Tc(e.field);let o=Ee(e,t);if(o.type==="column"&&!Ac(o.shape))throw Tc(String(e.path??e.field));let n=en(e.dateOperator,"date");if(n){let{lhs:s,ends:a}=Cc(r,[IO(e,t)],t);return bs(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:f}=Cc(r,s,t);return Ln(l,f,a,t)};switch(e.dateOperator){case v.within:case v.notWithin:return i(VO(e,t),B.includes(e.dateOperator));case v.between:case v.notBetween:return i(qO(e,t),B.includes(e.dateOperator));case v.dayIn:case v.dayNotIn:{let s=e.dateOperator===v.dayNotIn,a=Ee(e,t);if(a.type==="column")throw F("toSql",`A weekday list read from the row ('${e.path}')`);let l=Ys(a.value);if(l===null)return Nt(r.sql,s);let f=L(t,ot(t).timeZone),p=L(t,l),d=`EXTRACT(DOW FROM (${Dn(r,t)} AT TIME ZONE ${f}))`;return e.dateOperator===v.dayIn?`${d} = ANY(${p})`:Ce(r.sql,`${d} <> ALL(${p})`)}default:throw le(e.dateOperator,"date")}},kc=e=>({type:"value",value:dn(ot(e)).toDate()}),jO=(e,t,r)=>{let o=ve(e);if(o&&Rs(o[0]))return Fn(kc(r),...o,r);let n=ht(e,Hr(r));return n===null?Kt:{type:"value",value:Co(n,t,ot(r)).toDate()}},Lc=(e,t,r)=>e==null?Kt:oe(e)?jO(e,t,r):{type:"value",value:Fi(e,ot(r).timeZone)},_c=(e,t,r)=>t.offset===void 0?e:Sc(e,t.offset,r),IO=(e,t)=>{let r=Ee(e,t),o=r.type==="column"?r:Lc(r.value,e.dateOperator,t);return _c(o,e,t)},VO=(e,t)=>{let r=Ee(e,t);if(Gt(r))return null;if(r.type==="column"||!oe(r.value))throw He(e.dateOperator);let o=ve(r.value);if(o&&Rs(o[0])){let s=kc(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()}]},qO=(e,t)=>{let r=Ee(e,t);if(Gt(r))return null;let o=r.type==="value"?r.value:void 0,n=Qe(o,e.dateOperator).map(l=>Lc(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=>_c(l,e,t))};var Dc=(e,t)=>e.all.length===0?"TRUE":`(${e.all.map(o=>Or(o,t)).join(" AND ")})`,Fc=(e,t)=>e.any.length===0?"FALSE":`(${e.any.map(o=>Or(o,t)).join(" OR ")})`,jc=(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(mi(e,"toSql"),"field"in e&&typeof e.field=="string"&&t.map&&t.currentModel&&mr(e.field,t.map,t.currentModel))return "TRUE";let r=se(e);(r==="field"||r==="date")&&Wi(e.field,t.map,t.currentModel);let o=e;switch(r){case "all":return Dc(o,t);case "any":return Fc(o,t);case "if":return jc(o,t);case "array":return Nc(o,t);case "aggregate":return vc(o,t);case "date":return Mc(o,t);case "field":return xs(o,t);default:throw gt()}};Rc(jn);var za=e=>{let t=Oe(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}},BO=(e,t)=>ss(e,t,"toSql",WO),WO=(e,t)=>{let r=za(t);return {sql:jn(e,r),params:r.params,joins:r.joins??[]}};var Ic=(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:{};Ic(i,o),e[r]={select:i};},UO=(e,t,r,o,n,i,s,a,l,f)=>{let p=ds(`source '${n}' at '${t}'`,()=>Tn(a,{...l,map:e,mapName:r,model:o})),d=p.steps.at(-1),u=d.where,m=p.steps.length>1||(d.refs?.length??0)>0,g=Oe(e,r,"toPrisma"),c=N=>f!==void 0&&ee(N,g,o).kind==="bridge",h=i!==void 0&&!c(i)?i:void 0,w=(s??[]).map(N=>c(N)?void 0:N),R=N=>{let j=ee(N,g,o);return j.kind==="json-path"?N.split(".").slice(0,j.stopIndex).join("."):N},b=f===void 0?[]:ys(e,r,o,[...Ge(f),...i!==void 0&&h===void 0?[i]:[],...(s??[]).filter(c)].map(R)).filter(N=>N!==n),S=h?.includes(".")?h:void 0,$=[...w.filter(N=>N!==void 0),...S?[S]:[],...b],x={[n]:true,...h&&!S?{[h]:true}:{}};for(let N of $)Ic(x,N.split("."));let W={model:o,...s||S||f!==void 0?{}:{distinct:h?[n,h]:[n]},select:x,where:u,...m?{steps:p.steps}:{}},pe;try{for(let ge of b){let $e=ee(ge,g,o);if(!($e.kind==="direct"&&!$e.hops.length&&$e.entry.kind!=="object"))throw new Error($e.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=za({...l,map:e,mapName:r,model:o,alias:"t0"}),j=jn(a,N),I=S?vt(S,N):void 0,xr=w.map((ge,$e)=>ge===void 0?void 0:`${vt(ge,N)} AS ${te(`__group_${$e}`)}`),tn=N.joins??[],Er=tn.length?` ${tn.join(" ")}`:"",fe=j?.trim()?` WHERE ${j}`:"",nt=te("t0"),Jr=[`${nt}.${te(n)}`,...I?[`${I} AS ${te("__label")}`]:h?[`${nt}.${te(h)}`]:[],...xr.filter(ge=>ge!==void 0),...b.map(ge=>`${nt}.${te(ge)}`)].join(", "),Y=T(O(e.maps,r),o)?.dbName??o;pe={sql:`SELECT DISTINCT ${Jr} FROM ${te(Y)} AS ${nt}${Er}${fe}`,params:N.params};}catch(N){pe={sql:null,params:[],error:N instanceof Error?N.message:String(N)};}return {prisma:W,sql:pe}},Vc=(e,t={})=>{let{lens:r}=M(e);return Wu(e).map(({path:o,visit:n,field:i,label:s,groupBy:a,where:l,recheck:f})=>{let p=l,{prisma:d,sql:u}=UO(r,o,n.mapName,n.model,i,s,a,p,t,f);return {path:o,mapName:n.mapName,model:n.model,field:i,...s!==void 0?{label:s}:{},...a!==void 0?{groupBy:a}:{},composedWhere:p,prisma:d,sql:u,...f!==void 0?{recheck:f}:{}}})};var qc=(e,t)=>{let r=M(e);return Gr(r,Et(r),t).resolution};/*! Bundled license information:
|
|
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&&lR(e,r),wr(r.errors)},aR=["if","array","aggregate"],lR=(e,t)=>Z(e,r=>{let o=ne(r),n=r.operator??r.dateOperator;return (o&&aR.includes(o)||typeof n=="string"&&$i.includes(n))&&P(t,"$","notPositive",`${o==="field"||o==="date"?n:o} can hold on a missing value`),false}),pR=(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":qd(e.all,`${t}.all`,r,o);break;case "any":qd(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":fR(e,t,r,o);break;case "aggregate":cR(e,t,r,o);break;case "array":mR(e,t,r,o);break;case "date":gR(e,t,r,o);break}},qd=(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"&&Ud(e.field,"field",`${t}.field`,r,o);},Ud=(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=Qf.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"&&Ud(e.path,"path",`${t}.path`,r,o,n),s)},Kd=(e,t,r,o,n,i)=>{let{offset:s}=e;if(s===void 0)return;let a=`${o}.offset`;if(!_f.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)?Ne(p):null;if(!f){P(n,`${a}.value`,"invalid_offset","A date offset value is { ago } or { ahead }");return}Hd(f[0],`${a}.value.${Object.keys(p)[0]}`,n,i);},Gd=(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()`);},fR=(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;Kd(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"){yR(e,t,r);return}if(Uo(e,t,r,o,true)!==null){if(Gd(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")&&(dR(e,n,t,r,o),uR(i,e.value,n,`${t}.value`,r));}},dR=(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}'`);},uR=(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=fd(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}},zd=(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);}},cR=(e,t,r,o)=>{if(zd(e,t,r,o,"Aggregate rules"),e.offset!==void 0&&P(r,`${t}.offset`,"unexpected_offset","Aggregate rules take no offset"),Jd(e,t,r,o),typeof e.field!="string"&&P(r,`${t}.field`,"field_required","Aggregate rule requires a string field"),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)?hR(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");},mR=(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),Jd(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)&&zd(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",No(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));},gR=(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;Kd(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"&&Gf(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&&(Gd(e,n,t,r),!(typeof e.path=="string"||typeof e.bind=="string"))){if(oe(e.value)){Wd(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(!wR(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)?Wd(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`);}},Hd=(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);}},Bd=(e,t,r)=>{(typeof e!="string"||!vi.includes(e))&&P(r,t,"invalid_period_unit",`Unknown period unit '${String(e)}'`);},Wd=(e,t,r,o,n)=>{let i=pn.includes(t),s=Ne(e);if(s){Hd(s[0],r,o,n);return}if(un(e)){Bd(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}Bd(Li(a),r,o);return}P(o,r,"invalid_date_expression","Unrecognized date expression");},yR=(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),hR=e=>Array.isArray(e)&&e.length===2&&typeof e[0]=="number"&&typeof e[1]=="number",wR=e=>Array.isArray(e)&&e.length===2&&(de(e[0])||oe(e[0]))&&(de(e[1])||oe(e[1])),Jd=(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 SR=/[.:]/,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"&&SR.test(s)&&t.push({path:`${Te({fieldMap:r,model:n})}.${s}`,message:"contains forbidden character . or :",code:"invalid_field_name"});return wr(t)},Qd=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,bR=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(!bR(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 A(`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 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&&Go(a).escaping!==null)throw new A(`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 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=>zo(n,r.prefix))}]}),Zd=(e,t)=>pa(e,t).flatMap(r=>r.clamps),Xd=(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)},RR=(e,t,r)=>{if(k(e))return Xd(e,t,r).hops;let o=r.length===1?"":`${"$".repeat(r.length)}.`;return r[0]?Ee(t.lens.maps,r[0],e,o).hops:[]},Yd=(e,t,r)=>{if(Fe(e)||typeof e.field!="string"||e.field==="")return null;let{hops:o,end:n}=Xd(e.field,t,r);return {hops:o,below:n}},Kr=(e,t,r)=>lr(e,{below:(o,n)=>{let i=Yd(o,t,n);return i?i.below?[...n,i.below]:Ae(o)?[...n,null]:false:false},after:(o,n)=>{let i=Yd(o,t,n);if(!i)return o;let s=Zd(t,pr(o).flatMap(d=>RR(d,t,n))),a=i.below;if(!a||!Ae(o))return aa(la(o,pa(t,i.hops)),s);let l=[..._(t,a.mapName,a.modelName,a.relPath).whereClauses,...Zd(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},OR=(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=OR(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&&Wf.includes(e.coerceType)?Fr(t,e.coerceType,e.coerceType===Q.DateTime?n():void 0):t};var eu=e=>Array.isArray(e)?e.flatMap(eu):[e],On=e=>e.value===void 0?null:eu(e.value),xR=e=>fa(e)!==void 0,ER=/^-?\d+(\.\d+)?$/,$R={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"&&ER.test(e)},Boolean:{expected:"a boolean",fits:e=>typeof e=="boolean"},DateTime:{expected:"a date",fits:xR},Json:{expected:"a value",fits:()=>true},Bytes:{expected:"a value",fits:()=>true}},PR=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(Uf.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}=$R[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 ${PR(u)} does not fit ${a} (expected ${l})`}))},tu=(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 vR=(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"?qf.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=tu(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 vR(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 A))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 NR();return {where:e}},NR=()=>new A("sources: {} is not a Condition \u2014 use `true` for an unconstrained source","invalid_source"),ca=["__offpath__"],ru=new WeakMap,AR=(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=ru.get(t);if(o?.fingerprint===r)return o.trees;let n=new Map;return ru.set(t,{fingerprint:r,trees:n}),n},ou=new WeakMap,TR=0,En=e=>{let t=ou.get(e);return t===void 0&&(t=TR++,ou.set(e,t)),t},ce="\0",CR=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:AR(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))),MR=(e,t)=>{if(t.picks&&(e.picks=is(e.picks,t.picks)),t.omits)for(let r of t.omits)e.omits.add(r);},su=(e,t,r)=>{e.set(t,is(e.get(t)??null,r));},au=(e,t,r)=>{let o=e.get(t)??new Set;for(let n of r)o.add(n);e.set(t,o);},kR=(e,t,r)=>{if(r.enumPicks)for(let[o,n]of Object.entries(r.enumPicks))su(e,o,n);if(r.enumOmits)for(let[o,n]of Object.entries(r.enumOmits))au(t,o,n);},da=(e,t,r)=>JSON.stringify([e,t,r]),LR=(e,t,r,o,n,i,s,a)=>{if(s&&MR(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);}},A=class extends Error{constructor(r,o){super(r);this.code=o;}code;name="LensRefusal"},ma=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"),_R=(e,t,r)=>xn(e,t,r.mapName,r.modelName,r.relPath),DR=e=>new A(`a later layer's clamp reads what its parent does not show: '${e.path}' ${e.message}`,e.code),ga=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"),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 Ae(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)}},FR=(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},jR=(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=FR(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]},Nn=(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?nu(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=CR(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?jR(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,N=(j,I=false)=>{LR(a,j,w,$,x,W,pe,I),kR(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&&su(R,X,me.picks),me.omits&&au(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 Za=()=>{let In=typeof me=="object"&&me!==null?`${En(me)}${ce}${nu(fe,t,r,o)}`:null;if(In!==null&&fe.memo?.vetted.has(In))return;let[Ya]=_R(me,fe,d);if(Ya)throw DR(Ya);In!==null&&fe.memo?.vetted.add(In);};e.unvetted?s.push(Za):Za();};x=nt(false);let Jr=O(O(I.mapDefaults,t)?.models,r);for(let X of tn)N(X,X===Jr);Er&&(x=nt(o.length===0&&c!==null),N(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},nu=(e,t,r,o)=>{let n=iu.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)},`;iu.set(e,n);}return `${n}${ce}${t}${ce}${r}${ce}${o.join(ce)}`},iu=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 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)),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=>Nn(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),pu=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},fu=(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 fu(e,r=>(t.push(r),r)),t},lu=e=>{let t=new Set;for(let r of ba(e))for(let o of gn(r))Sa(o)||t.add(o);return t},du=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(pu(n));return [...t].sort()},uu=(e,t)=>{if(et(e))return e;let r={...t};for(let[o,n]of Object.entries(t))r[`${wa}${o}`]=n;return {...fu(e,o=>Qs(o,r)),parent:uu(e.parent,t)}},cu=(e,t)=>uu(e,t),mu=e=>{let t=[],r=new Set;for(let n of xt(e.parent))for(let i of lu(n))r.add(i);for(let n of lu(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(pu(i));for(let n of o)r.has(n)||t.push(`bind 'parent:${n}' references an inherited binding no ancestor declares`);return t};var yu=(e,t)=>e===void 0?t:t===void 0?e:{all:[e,t]},IR=(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=yu(s.where,a.where);r[o]={...s,...a,...l===void 0?{}:{where:l}};}return r},hu=(e,t)=>{let r=yu(e?.where,t.where),o=IR(e?.sources,t.sources);return {...e,...r===void 0?{}:{where:r},...o?{sources:o}:{}}},VR=(e,t)=>{let r={...e?.models};for(let[o,n]of Object.entries(t))r[o]=hu(r[o],n);return {...e,models:r}},gu=(e,t)=>{let r={...e.mapDefaults};for(let[o,{models:n}]of Object.entries(t.mapDefaults??{}))r[o]=VR(r[o],n);return {...e,...t.root?{root:hu(e.root,t.root)}:{},...t.mapDefaults?{mapDefaults:r}:{}}},Ra=(e,t)=>et(e)?gu({parent:e},t):et(e.parent)?gu(e,t):{...e,parent:Ra(e.parent,t)};var wu=(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"&&Bf.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 Su=({maps:e,bridges:t,mapName:r,model:o})=>({...Wi({maps:e,bridges:t}),mapName:r,model:o});var qR=(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)]),bu=(e,t)=>{let o={policy:M(t),sources:new Set,bridgesCrossed:false};return qR(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 BR=new Set([Dt.scalar,Dt.ordered,Dt.array,Dt.dayList,Dt.dateValue]),WR=new Set([Dt.none,Dt.count]),UR=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?WR.has(t.valueShape)?{values:[],dynamic:false}:BR.has(t.valueShape)?"value"in e?{values:On(e)??[],dynamic:false}:{values:[],dynamic:false}:{values:[],dynamic:true}:{values:[],dynamic:true}},KR=e=>e instanceof Date?`d:${+e}`:e instanceof RegExp?`r:${e}`:typeof e=="object"&&e!==null?`j:${JSON.stringify(e)}`:`p:${typeof e}:${String(e)}`,Ru=(e,t)=>{let r=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=UR(p);b.dynamic&&(R.dynamic=true);let w=i.get(S)??new Set;i.set(S,w);for(let $ of b.values){let x=KR($);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?(!Ae(l)&&typeof l.field=="string"&&s(f,l),[...p,f]):false},[[]]),[...n.values()]};var ls=(e,t,r,o)=>{let n=GR(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")}},GR=(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(!Mf.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 zR=["@prisma/client/runtime/client","@prisma/client/runtime/library"],fs,HR=()=>{if(fs!==void 0)return fs;for(let e of JR())for(let t of zR)try{let r=e(t);if(r.AnyNull!==void 0)return fs=r.AnyNull,fs}catch{}},JR=()=>{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},Ou=()=>{let e=Lt.get("prismaOptions.anyNull")??HR();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 xu=(e,t)=>{let r=_r(Rt(t));return r===null?null:Lr(e,r)},Eu=(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)?Ou():null,zr=(e,t)=>t?.map&&t?.model?Ed(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)&&vf(n)&&gr(r,o)?{mode:"insensitive"}:{}},$u=(e,t)=>{if(e==="list")return [{isEmpty:true}];let r=t?[{equals:""}]:[];return Pt(e)?[...r,{equals:[]}]:r},Pu=e=>"isEmpty"in e?{isEmpty:false}:{not:e.equals},Na=(e,t,r,o,n)=>{let i=a=>rt(e,a,n),s=$u(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(Pu(a)))])},ZR=(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},YR=(e,t)=>Y(e.field,t?.map,t?.model),Ea=Xe(),XR=(e,t,r)=>{if(t==="list"||Pt(t)||YR(e,r)?.isRequired!==true)return null;let o=e.field.split(".").slice(0,-1).join(".");return o?rt(o,{is:{}},r):Ea},vu=(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 ZR(e,t);let s=XR(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=$u(o,i);return e.operator===h.isEmpty?B([a,...c.map(r)]):e.operator===h.notEmpty?Ke([s,...c.map(y=>r(Pu(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 Na(e.field,o,e.operator===h.isEmpty,i,t)}if(be(e)){let c=Hi(e,t?.map,t?.model,Md(t),kd(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=Nu(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(An({...e,operator:c},t));let y=r({array_contains:[eO(e,p,t,o)]});return typeof p=="string"?B([r(An({...e,operator:c},t)),y]):y};if(e.operator===h.contains)return u(h.contains);let m=jf.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(An(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},Nu=(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:xu(r,e.offset)},An=(e,t)=>{let r=Ci(e);if(r)throw r;let o=$a(e,t),n=()=>Nu(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)?tO[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`)}},eO=(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},tO={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 Ao(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 rO(e,t,r)},rO=(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=An(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 Cu=(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 No(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=Aa(e),a=s?Tu(E.atLeast,e.arrayOperator===E.atMost?n+1:1,o.targetKey):Tu(e.arrayOperator,n,o.targetKey);return Zi(r,o,i,a,s)},Tu=(e,t,r)=>{let o=er(e,"array");if(!o)throw new Error(`'${e}' does not count`);return {[r]:{_count:{[o]:t}}}};var Mu=(e,t,r)=>{let o=oO(e,t,r);return e.field&&Aa(e)&&!ku(e.field,t)?B([o,...zr(e.field,t)]):o},Aa=e=>ue({...e,field:"items"},{items:[]})===true,oO=(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&&!Ff.includes(e.arrayOperator)&&bt(e.condition,t?.map,Lu(e,t)?.model))return Wr();if(or.includes(e.arrayOperator)){if(t?.map&&t?.model&&r)return Cu(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 Ai("toPrisma");let{field:o}=e;if(ku(o,t))return nO(e,o,Ie({field:o},t?.map,t?.model),t);let n=iO(e,t,r);return rt(e.field,n,t)},ku=(e,t)=>{let r=Ie({field:e},t?.map,t?.model);return r==="list"||r==="json"||r==="json-path"},nO=(e,t,r,o)=>{switch(e.arrayOperator){case E.empty:case E.notEmpty:return Na(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)}},Lu=(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})},iO=(e,t,r)=>{let o=Lu(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 _u=(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=sO(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])},sO=(e,t)=>{let r=qo(t),o=bn,n=m=>e.offset===void 0?m:Eu(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 jd(n,t,r);case "any":return Id(n,t,r);case "if":return Vd(n,t,r);case "array":return Mu(n,t,r);case "aggregate":return Au(n,t,r);case "date":return _u(n,t);case "field":return vu(n,t);default:throw gt()}};Dd(Ta);var Fu=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=ju(t,i.model),a=Du(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 Du(o.where,o.refs,n,t)},ju=(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},aO=(e,t)=>{let r=ju(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},lO=(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},Du=(e,t,r,o)=>{let n=e;for(let{path:i}of t??[]){let s=lO(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,aO(o,s.__field));else throw new Error(`executePrismaPlan: no reference at the recorded location ${i.join(".")}`)}return n};var pO=e=>e?.map?{...e,map:xe(e.map,e.mapName,"toPrisma")}:e,Tn=(e,t)=>ls(e,t,"toPrisma",fO),fO=(e,t)=>{let r={steps:[]},o=Ta(e,pO(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 dO=/^-?\d+(\.\d+)?$/,Iu=e=>typeof e=="string"?dO.test(e)?Number(e):e:typeof e=="object"&&e!==null&&typeof e.toNumber=="function"?e.toNumber():e,Ma=(e,t)=>e?.kind!=="scalar"||e.type!=="Decimal"?t:Array.isArray(t)?t.map(Iu):Iu(t);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 A(`${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 A(`${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 A||r instanceof D?r:new A(`${e}: ${r.message}`,"unsupported_clamp")}};var Vu=(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:Vu(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),!Ae(n))return;let a=s??i[i.length-1];for(let l of Lo(n))r(Vu(a,l));return [...i,a]},[""]),[...t]};var ka=(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},qu=(e,t,r,o,n)=>{let{mapName:i,modelName:s}=t,a=T(O(e.lens.maps,i),s),l=ka(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}},Bu=e=>{let t=new Map;for(let r of e.sourceValues??[])t.set(`${r.path}|${r.field}`,r.options);return t},Wu=(e,t={})=>Cn(M(e),t),Cn=(e,t={})=>{let r=Bu(t),o={};for(let{path:n,at:i,effect:s}of Wt(e))o[n]=qu(e,i,s,n,r);return o},Uu=(e,t,r={})=>La(M(e),t,r),La=(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 qu(e,o,n,i,Bu(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}'`},Ku=(e,t,r,o,n,i,s,a)=>{let l=ms(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(zo(g,d.prefix));}},uO=(e,t,r,o,n,i)=>{let s=[],a=new Set;for(let l of n)Ku(e,t,r,o,l,"groupBy",a,s);return i?.includes(".")&&Ku(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},_a=(e,t)=>JSON.stringify([e??null,t]),cO=(e,t,r,o)=>{let n=_a(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"||cO(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})}),mO=(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")},ws=(e,t,r,o)=>{let n=xe(e,t,"toPrisma");return [...new Set(o.map(i=>mr(i,n,r)?mO(e,n,t,r,i):i))]},gO=(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=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 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?Qi(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 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 A?new A(`source at '${t.join(".")}': the clamps above can't be carried down to it \u2014 ${x.message}`,x.code):x}}return p===null?[]:[p]},Gu=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(N=>Kr(N,e,f)),m=uO(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=[...gO(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(N=>mr(N,$,f.modelName)):void 0,W=x!==void 0&&$?K(Js(b).filter(N=>bt(N,$,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 ja=(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},Ia=e=>e.whereClauses.flatMap(Ge),zu=(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},Hu=(e,t)=>e.get(t.relPath.join("."))??[],yO=(e,t,r)=>ja(Ss({},r??{}),Ia(_(e,t.mapName,t.modelName,t.relPath))),Ju=e=>({mapName:e.lens.mapName,modelName:e.lens.model,relPath:[]}),Va=(e,t,r)=>({...r,relPath:[...e.relPath,t]}),hO=(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},wO=(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")},Qu=(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:ja(Ss({},o),[...Ia(a),...Hu(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=Va(t,f,{mapName:t.mapName,modelName:d.type}),y=Qu(e,c,g,m??{},n,i),S=d.isList&&g!=="paths"&&m===void 0?hO(e,c,_(e,c.mapName,c.modelName,c.relPath),n):void 0,R=Object.keys(y).length?void 0:wO(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},Zu=(e,t={})=>qa(M(e),t),qa=(e,t={},r=Rr(e))=>{let o=Qu(e,Ju(e),"declared",{},t,zu(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}},Da=(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,Fa=(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?Da(r[s],f=>Fa(e,Va(t,s,p),f,a)):Ma(l,r[s]);}return n},Yu=(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?ja(Ss({},o),[...Ia(a),...Hu(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]=Ma(u,r[d]));continue}let c=Va(t,d,g);if($t(a,d)){let y=!Array.isArray(r[d])||m!==void 0;f[d]=Da(r[d],S=>Yu(e,c,S,m??{},n,i,s)??(n&&y?Fa(e,c,S,yO(e,c,m)):null));}else m!==void 0&&(f[d]=Da(r[d],y=>Fa(e,c,y,m)));}return f},Xu=(e,t,{keepClampColumns:r=false,...o}={})=>{let n=M(e),i=Ju(n),s=r?zu(n,Rr(n)):new Map;return t.flatMap(a=>{let l=Yu(n,i,a,{},r,o,s);return l===null?[]:[l]})};var SO="materializeSources needs fetched or keepClampColumns rows, not viewer rows",Ba=(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=SO)=>{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 Ba(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 Ba(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 Ba(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;}}},Wa=(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}))]},bO=(e,t,r,o)=>{let n=r.split(".").slice(1),i=Wa(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]}},ec=(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=bO(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"},tc=(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=Wa(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 RO=(e,t)=>`${e}::${t}`,OO=(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);},rc=(e,t={})=>Ua(M(e),t),Ua=(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(_a(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=RO(f,d),g=n.get(m);g||(g={mapName:f,modelName:d,fields:new Map},n.set(m,g));let c=ka(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");OO(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 oc=(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}));}},xO=(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=>Nn(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`}));}}}},EO=(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},$O=(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=EO(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);oc(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 A))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 N=Pn(Sr(pe).groupBy);N!==void 0&&JSON.stringify(N)!==x&&p.push({path:`${l}.sources.${c}`,code:"not_visible",message:`groupBy [${$}] conflicts with an ancestor layer's groupBy [${N}]`});}}oc(R.where,f,d,`${l}.sources.${c}`,p);}},PO=(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`});}},vO=(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)`});}},nc=(e,t,r,o)=>e.map(n=>({mapName:o,modelName:r,relPath:[...n.relPath,t]})),Ka=(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};$O(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),vO(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),xO(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 N=Ze(x,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);Ka($,j,r,o,n,N.mapName,N.modelName,`${a}.relations.${w}`,l,p,{parent:nc(f.isDefault?f.parent.filter(W):f.parent,w,N.modelName,N.mapName),composed:nc(f.composed.filter(pe),w,N.modelName,N.mapName),isDefault:f.isDefault});}},Ga=e=>{let t=[];try{NO(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 wr(t)},NO=(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(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(()=>Ka(S,b,e,o,r.maps,u,y,`mapDefaults.${u}.models.${y}`,t,n,{parent:w(i),composed:$,isDefault:!0}));}m.enums&&PO(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(()=>Ka(e.root,c,e,o,r.maps,u,m,"root",t,n,{parent:[y],composed:[y],isDefault:!1}));}}for(let u of mu(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(()=>Ua(f)),a(()=>qa(f,{},d)),a(()=>{let u=new Map;for(let{at:m}of p()){u.set(m.relPath.join("."),m),a(()=>La(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(Ga(e),"validateNarrowing");function ic(e,{by:t="path",...r}={}){return t==="model"?rc(e,r):Wu(e,r)}var sc=(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 AO=e=>"maps"in e,ac=(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(AO(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},lc=(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 pc=e=>e instanceof Date?e.toISOString():Array.isArray(e)&&e.some(t=>t instanceof Date)?e.map(pc):e,L=(e,t)=>(e.params.push(pc(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 Ao(e,i);let s=t.currentAlias;for(let f of n.hops){let d=fc(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=fc(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,fc=(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=TO(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},TO=(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),CO=(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=>CO(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 MO={lt:"<",lte:"<=",gt:">",gte:">=",equals:"="},en=(e,t)=>{let r=er(e,t);return r?{symbol:MO[r],negated:q.includes(e)}:void 0},dc=(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",Os=(e,t,r,o,n)=>{if(Gt(r))return Nt(e,o);let i=`${e} ${t} ${dc(r,n)}`;return o?Me(e,i):i},Ln=(e,t,r,o,n=true)=>{if(!t||t.some(Gt))return Nt(e,r,n);let[i,s]=t.map(d=>dc(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 mc=()=>{let e=Lt.get("sql.dialect");if(!$f(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.`),gc=(e,t)=>za(e,t,""),uc=(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},za=(e,t,r,o=()=>[])=>{mc();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=>uc(n,"columns","column",`${r}${f}`),table:f=>uc(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 LO(e,t);case "if":throw z("if / then / else");case "array":return kO(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")}},kO=(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()}`}},LO=(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=_O(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 Nt(o,q.includes(e.operator));let s=a=>DO(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(cc(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(cc(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)}}},_O=(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 Ao(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)},cc=(e,t)=>{if(!Array.isArray(t))throw new Error(`toWhereSql: '${e.operator}' on '${e.field}' takes a list of values`);return t},DO=(e,t)=>{if(typeof e=="string"){let r=e.replace(/'/g,"''");return `'${mc()===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 FO=(e,t,r)=>{Z(r,(o,n)=>{if(typeof o.field!="string")return;let i=Nn(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);},hc=(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:hc(e,n,s.layer)}))},yc=(e,t,r,o,n)=>{let i=r.map(({where:s,layer:a})=>za(s,o,n,hc(e,t,a)));return i.length===1?i[0]:`(${i.join(" AND ")})`},wc=(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])FO(o,i,l);if(s.pathWheres.length){let l=i.relPath.join("."),p=yc(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=yc(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 Sc=e=>Array.isArray(e)?e.some(Sc):typeof e=="object"&&e!==null,bc=(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=Mi(e.operator,r);if(u)throw u;let m=b=>{if(Sc(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 Rc=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(Rc),IO=(e,t,r)=>{let o=Ar(r),n=o?"int":"double precision";if(typeof e=="number"||!Rc(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}`},VO=(e,t)=>`make_interval(${Kf.flatMap(o=>{let n=Object.keys(e).filter(i=>e[i]!==void 0&&nr[i].interval===o).map(i=>{let s=IO(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?"+":"-"} ${VO(t,o)}) AT TIME ZONE ${s})`}};var Ha=(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)})`}},Oc=(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 xc,Ec=e=>{xc=e;},Or=(e,t)=>xc(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=Pc(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=Pc(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 bc(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=Ac(e,t);return w?.forEach(p),Ln(a.sql,w,q.includes(e.operator),t,i)}let f=vc(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 Nt(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(qO(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 $c(d,S,false,t);case h.notMatches:return b($c(d,S,true,t));case h.isEmpty:case h.notEmpty:return Ja(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}`)}},vc=(e,t)=>{if(tr.includes(e.operator))return {type:"value",value:void 0};let r=Nc(e,$e(e,t),t);return e.offset===void 0?r:Ha(r,e.offset,t)},Nc=(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)},Ac=(e,t)=>{let r=Nc(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:Ha(s,e.offset,t)})},$c=(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"),Pc=(e,t)=>{if(qe.includes(e.operator)){let o=Ac(e,t);return o?o.every(n=>n.type==="value")?o.map(n=>n.value):Es:null}let r=vc(e,t);return r.type==="value"?r.value:Es},Ja=(e,t,r,o,n)=>{let{sql:i,shape:s}=t;if(s==="list")return r?`(${i} IS NULL OR cardinality(${i}) = 0)`:`cardinality(${i}) > 0`;if(s==="json"||s==="json-path"){let a=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`},qO=e=>Ft(e,"field")==="string"&&!ut.includes(e);var Tc=(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=BO(e,t);return $s(e,t,r)},BO=(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 Cc=(e,t)=>{if(Re(e))throw yt("toSql");if(!e.field)throw Ai("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 Ja(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 WO=(e,t)=>e.type==="column"&&!e.computed?{type:"column",sql:Dn(e,t),computed:true}:e,Mc=e=>e===void 0||e==="instant"||e==="text"||e==="json-path"||e==="unknown",kc=e=>F("toSql",`A date rule on '${e}'`,"it is not a date column"),Lc=(e,t,r)=>{let o=t.some(i=>i.type==="column"),n=e.shape==="json-path"||e.shape==="text";return o||n?{lhs:Dn(e,r),ends:t.map(i=>WO(i,r))}:{lhs:e.sql,ends:t}},_c=(e,t)=>{let r=Ut(e.field,t);if(!Mc(r.shape))throw kc(e.field);let o=$e(e,t);if(o.type==="column"&&!Mc(o.shape))throw kc(String(e.path??e.field));let n=en(e.dateOperator,"date");if(n){let{lhs:s,ends:a}=Lc(r,[KO(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}=Lc(r,s,t);return Ln(l,p,a,t)};switch(e.dateOperator){case v.within:case v.notWithin:return i(GO(e,t),q.includes(e.dateOperator));case v.between:case v.notBetween:return i(zO(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 Nt(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")}},Dc=e=>({type:"value",value:dn(ot(e)).toDate()}),UO=(e,t,r)=>{let o=Ne(e);if(o&&xs(o[0]))return Fn(Dc(r),...o,r);let n=ht(e,Hr(r));return n===null?Kt:{type:"value",value:Co(n,t,ot(r)).toDate()}},Fc=(e,t,r)=>e==null?Kt:oe(e)?UO(e,t,r):{type:"value",value:Ii(e,ot(r).timeZone)},jc=(e,t,r)=>t.offset===void 0?e:Oc(e,t.offset,r),KO=(e,t)=>{let r=$e(e,t),o=r.type==="column"?r:Fc(r.value,e.dateOperator,t);return jc(o,e,t)},GO=(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&&xs(o[0])){let s=Dc(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()}]},zO=(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=>Fc(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=>jc(l,e,t))};var Ic=(e,t)=>e.all.length===0?"TRUE":`(${e.all.map(o=>Or(o,t)).join(" AND ")})`,Vc=(e,t)=>e.any.length===0?"FALSE":`(${e.any.map(o=>Or(o,t)).join(" OR ")})`,qc=(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 Ic(o,t);case "any":return Vc(o,t);case "if":return qc(o,t);case "array":return Cc(o,t);case "aggregate":return Tc(o,t);case "date":return _c(o,t);case "field":return $s(o,t);default:throw gt()}};Ec(jn);var Qa=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}},HO=(e,t)=>ls(e,t,"toSql",JO),JO=(e,t)=>{let r=Qa(t);return {sql:jn(e,r),params:r.params,joins:r.joins??[]}};var Bc=(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:{};Bc(i,o),e[r]={select:i};},QO=(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=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?[]:ws(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],x={[n]:true,...y&&!w?{[y]:true}:{}};for(let N of $)Bc(x,N.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 N=Qa({...l,map:e,mapName:r,model:o,alias:"t0"}),j=jn(a,N),I=w?vt(w,N):void 0,xr=S.map((ge,Pe)=>ge===void 0?void 0:`${vt(ge,N)} AS ${te(`__group_${Pe}`)}`),tn=N.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:N.params};}catch(N){pe={sql:null,params:[],error:N instanceof Error?N.message:String(N)};}return {prisma:W,sql:pe}},Wc=(e,t={})=>{let{lens:r}=M(e);return Gu(e).map(({path:o,visit:n,field:i,label:s,groupBy:a,where:l,recheck:p})=>{let f=l,{prisma:d,sql:u}=QO(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 Uc=(e,t)=>{let r=M(e);return Gr(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=wi;exports.ArrayOperator=E;exports.ConditionShape=Pb;exports.DateOperator=v;exports.FieldKind=Q;exports.LensRefusal=A;exports.NUMERIC_KINDS=ze;exports.Operator=h;exports.RuleTarget=cb;exports.SourceOptionOrder=bs;exports.SqlDialect=So;exports.UsageError=D;exports.ValueShape=Dt;exports.andWhere=Ke;exports.assertValidFieldMaps=Qd;exports.assertValidNarrowing=Rs;exports.assertValidRule=pR;exports.bindLens=cu;exports.bindRule=Qs;exports.check=ue;exports.clampLens=Ra;exports.coerceRule=wu;exports.composeLens=ac;exports.createLens=Su;exports.describeRule=bu;exports.describeRuleSources=Ru;exports.engineGlobals=Lt;exports.executePrismaPlan=Fu;exports.getAggregateOperators=yb;exports.getArrayOperators=gb;exports.getConditionShapeKeys=vb;exports.getLensRoot=tt;exports.getOperatorsForKind=mb;exports.getValueShape=Ft;exports.indexBridges=xd;exports.lensVisit=Uu;exports.listBindings=gn;exports.listLensBindings=du;exports.matchAll=Xe;exports.matchNothing=Ot;exports.materializeSourceQuery=tc;exports.materializeSources=ec;exports.narrowRule=Ho;exports.orWhere=B;exports.orderRecords=Sd;exports.parseScopeRef=k;exports.prefixConditionFields=zo;exports.projectLens=ic;exports.projectRows=Xu;exports.readLensValue=sc;exports.readScopeRef=Ve;exports.stitchFieldMaps=Wi;exports.storeLens=lc;exports.toLensSelect=Zu;exports.toLensWhereSql=wc;exports.toPrisma=Tn;exports.toSourceQueries=Wc;exports.toSql=HO;exports.toWhereSql=gc;exports.validateFieldMaps=sa;exports.validateNarrowing=Ga;exports.validateRule=Ko;exports.validateRuleInLens=Zo;exports.walkLensPath=Uc;//# sourceMappingURL=index.cjs.map
|
|
16
16
|
//# sourceMappingURL=index.cjs.map
|