@inixiative/json-rules 3.1.0 → 3.2.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 +92 -23
- package/dist/index.cjs +3 -3
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +250 -153
- package/dist/index.d.ts +250 -153
- 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 De=require('dayjs'),hw=require('dayjs/plugin/isoWeek.js'),ww=require('dayjs/plugin/quarterOfYear.js'),Sw=require('dayjs/plugin/timezone.js'),xw=require('dayjs/plugin/utc.js'),$w=require('dayjs/plugin/isSameOrAfter.js'),Pw=require('dayjs/plugin/isSameOrBefore.js'),fastestLevenshtein=require('fastest-levenshtein'),re2js=require('re2js'),module$1=require('module');var _documentCurrentScript=typeof document!=='undefined'?document.currentScript:null;function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var De__default=/*#__PURE__*/_interopDefault(De);var hw__default=/*#__PURE__*/_interopDefault(hw);var ww__default=/*#__PURE__*/_interopDefault(ww);var Sw__default=/*#__PURE__*/_interopDefault(Sw);var xw__default=/*#__PURE__*/_interopDefault(xw);var $w__default=/*#__PURE__*/_interopDefault($w);var Pw__default=/*#__PURE__*/_interopDefault(Pw);var Ni=(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 Gd=typeof global=="object"&&global&&global.Object===Object&&global,Wo=Gd;var Kd=typeof self=="object"&&self&&self.Object===Object&&self,zd=Wo||Kd||Function("return this")(),V=zd;var Hd=V.Symbol,Y=Hd;var Fa=Object.prototype,Jd=Fa.hasOwnProperty,Qd=Fa.toString,go=Y?Y.toStringTag:void 0;function Zd(e){var t=Jd.call(e,go),r=e[go];try{e[go]=void 0;var o=!0;}catch{}var n=Qd.call(e);return o&&(t?e[go]=r:delete e[go]),n}var Ia=Zd;var Yd=Object.prototype,Xd=Yd.toString;function eu(e){return Xd.call(e)}var ja=eu;var tu="[object Null]",ru="[object Undefined]",Ba=Y?Y.toStringTag:void 0;function ou(e){return e==null?e===void 0?ru:tu:Ba&&Ba in Object(e)?Ia(e):ja(e)}var se=ou;function nu(e){return e!=null&&typeof e=="object"}var U=nu;var iu="[object Symbol]";function au(e){return typeof e=="symbol"||U(e)&&se(e)==iu}var pr=au;function su(e,t){for(var r=-1,o=e==null?0:e.length,n=Array(o);++r<o;)n[r]=t(e[r],r,e);return n}var Va=su;var lu=Array.isArray,L=lu;var qa=Y?Y.prototype:void 0,Wa=qa?qa.toString:void 0;function Ua(e){if(typeof e=="string")return e;if(L(e))return Va(e,Ua)+"";if(pr(e))return Wa?Wa.call(e):"";var t=e+"";return t=="0"&&1/e==-Infinity?"-0":t}var Ga=Ua;function pu(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var D=pu;function du(e){return e}var dr=du;var uu="[object AsyncFunction]",cu="[object Function]",mu="[object GeneratorFunction]",gu="[object Proxy]";function yu(e){if(!D(e))return false;var t=se(e);return t==cu||t==mu||t==uu||t==gu}var ur=yu;var hu=V["__core-js_shared__"],Uo=hu;var Ka=(function(){var e=/[^.]+$/.exec(Uo&&Uo.keys&&Uo.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""})();function wu(e){return !!Ka&&Ka in e}var za=wu;var Su=Function.prototype,xu=Su.toString;function bu(e){if(e!=null){try{return xu.call(e)}catch{}try{return e+""}catch{}}return ""}var We=bu;var Ou=/[\\^$.*+?()[\]{}|]/g,Ru=/^\[object .+?Constructor\]$/,Eu=Function.prototype,vu=Object.prototype,Au=Eu.toString,$u=vu.hasOwnProperty,Pu=RegExp("^"+Au.call($u).replace(Ou,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Tu(e){if(!D(e)||za(e))return false;var t=ur(e)?Pu:Ru;return t.test(We(e))}var Ha=Tu;function Nu(e,t){return e?.[t]}var Ja=Nu;function Cu(e,t){var r=Ja(e,t);return Ha(r)?r:void 0}var ne=Cu;var _u=ne(V,"WeakMap"),Go=_u;var Qa=Object.create,Mu=(function(){function e(){}return function(t){if(!D(t))return {};if(Qa)return Qa(t);e.prototype=t;var r=new e;return e.prototype=void 0,r}})(),Za=Mu;function ku(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 Ya=ku;function Lu(e,t){var r=-1,o=e.length;for(t||(t=Array(o));++r<o;)t[r]=e[r];return t}var Ko=Lu;var Du=800,Fu=16,Iu=Date.now;function ju(e){var t=0,r=0;return function(){var o=Iu(),n=Fu-(o-r);if(r=o,n>0){if(++t>=Du)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}var Xa=ju;function Bu(e){return function(){return e}}var es=Bu;var Vu=(function(){try{var e=ne(Object,"defineProperty");return e({},"",{}),e}catch{}})(),cr=Vu;var qu=cr?function(e,t){return cr(e,"toString",{configurable:true,enumerable:false,value:es(t),writable:true})}:dr,ts=qu;var Wu=Xa(ts),rs=Wu;function Uu(e,t){for(var r=-1,o=e==null?0:e.length;++r<o&&t(e[r],r,e)!==false;);return e}var os=Uu;var Gu=9007199254740991,Ku=/^(?:0|[1-9]\d*)$/;function zu(e,t){var r=typeof e;return t=t??Gu,!!t&&(r=="number"||r!="symbol"&&Ku.test(e))&&e>-1&&e%1==0&&e<t}var mt=zu;function Hu(e,t,r){t=="__proto__"&&cr?cr(e,t,{configurable:true,enumerable:true,value:r,writable:true}):e[t]=r;}var mr=Hu;function Ju(e,t){return e===t||e!==e&&t!==t}var Ee=Ju;var Qu=Object.prototype,Zu=Qu.hasOwnProperty;function Yu(e,t,r){var o=e[t];(!(Zu.call(e,t)&&Ee(o,r))||r===void 0&&!(t in e))&&mr(e,t,r);}var gr=Yu;function Xu(e,t,r,o){var n=!r;r||(r={});for(var i=-1,a=t.length;++i<a;){var s=t[i],f=o?o(r[s],e[s],s,r,e):void 0;f===void 0&&(f=e[s]),n?mr(r,s,f):gr(r,s,f);}return r}var ve=Xu;var ns=Math.max;function ec(e,t,r){return t=ns(t===void 0?e.length-1:t,0),function(){for(var o=arguments,n=-1,i=ns(o.length-t,0),a=Array(i);++n<i;)a[n]=o[t+n];n=-1;for(var s=Array(t+1);++n<t;)s[n]=o[n];return s[t]=r(a),Ya(e,this,s)}}var is=ec;function tc(e,t){return rs(is(e,t,dr),e+"")}var as=tc;var rc=9007199254740991;function oc(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=rc}var yr=oc;function nc(e){return e!=null&&yr(e.length)&&!ur(e)}var Ae=nc;function ic(e,t,r){if(!D(r))return false;var o=typeof t;return (o=="number"?Ae(r)&&mt(t,r.length):o=="string"&&t in r)?Ee(r[t],e):false}var zo=ic;function ac(e){return as(function(t,r){var o=-1,n=r.length,i=n>1?r[n-1]:void 0,a=n>2?r[2]:void 0;for(i=e.length>3&&typeof i=="function"?(n--,i):void 0,a&&zo(r[0],r[1],a)&&(i=n<3?void 0:i,n=1),t=Object(t);++o<n;){var s=r[o];s&&e(t,s,o,i);}return t})}var ss=ac;var sc=Object.prototype;function lc(e){var t=e&&e.constructor,r=typeof t=="function"&&t.prototype||sc;return e===r}var hr=lc;function fc(e,t){for(var r=-1,o=Array(e);++r<e;)o[r]=t(r);return o}var ls=fc;var pc="[object Arguments]";function dc(e){return U(e)&&se(e)==pc}var Ci=dc;var fs=Object.prototype,uc=fs.hasOwnProperty,cc=fs.propertyIsEnumerable,mc=Ci((function(){return arguments})())?Ci:function(e){return U(e)&&uc.call(e,"callee")&&!cc.call(e,"callee")},Vt=mc;function gc(){return false}var ps=gc;var cs=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ds=cs&&typeof module=="object"&&module&&!module.nodeType&&module,yc=ds&&ds.exports===cs,us=yc?V.Buffer:void 0,hc=us?us.isBuffer:void 0,wc=hc||ps,Ue=wc;var Sc="[object Arguments]",xc="[object Array]",bc="[object Boolean]",Oc="[object Date]",Rc="[object Error]",Ec="[object Function]",vc="[object Map]",Ac="[object Number]",$c="[object Object]",Pc="[object RegExp]",Tc="[object Set]",Nc="[object String]",Cc="[object WeakMap]",_c="[object ArrayBuffer]",Mc="[object DataView]",kc="[object Float32Array]",Lc="[object Float64Array]",Dc="[object Int8Array]",Fc="[object Int16Array]",Ic="[object Int32Array]",jc="[object Uint8Array]",Bc="[object Uint8ClampedArray]",Vc="[object Uint16Array]",qc="[object Uint32Array]",M={};M[kc]=M[Lc]=M[Dc]=M[Fc]=M[Ic]=M[jc]=M[Bc]=M[Vc]=M[qc]=true;M[Sc]=M[xc]=M[_c]=M[bc]=M[Mc]=M[Oc]=M[Rc]=M[Ec]=M[vc]=M[Ac]=M[$c]=M[Pc]=M[Tc]=M[Nc]=M[Cc]=false;function Wc(e){return U(e)&&yr(e.length)&&!!M[se(e)]}var ms=Wc;function Uc(e){return function(t){return e(t)}}var wr=Uc;var gs=typeof exports=="object"&&exports&&!exports.nodeType&&exports,yo=gs&&typeof module=="object"&&module&&!module.nodeType&&module,Gc=yo&&yo.exports===gs,_i=Gc&&Wo.process,Kc=(function(){try{var e=yo&&yo.require&&yo.require("util").types;return e||_i&&_i.binding&&_i.binding("util")}catch{}})(),Ge=Kc;var ys=Ge&&Ge.isTypedArray,zc=ys?wr(ys):ms,Sr=zc;var Hc=Object.prototype,Jc=Hc.hasOwnProperty;function Qc(e,t){var r=L(e),o=!r&&Vt(e),n=!r&&!o&&Ue(e),i=!r&&!o&&!n&&Sr(e),a=r||o||n||i,s=a?ls(e.length,String):[],f=s.length;for(var l in e)(t||Jc.call(e,l))&&!(a&&(l=="length"||n&&(l=="offset"||l=="parent")||i&&(l=="buffer"||l=="byteLength"||l=="byteOffset")||mt(l,f)))&&s.push(l);return s}var Ho=Qc;function Zc(e,t){return function(r){return e(t(r))}}var Jo=Zc;var Yc=Jo(Object.keys,Object),hs=Yc;var Xc=Object.prototype,em=Xc.hasOwnProperty;function tm(e){if(!hr(e))return hs(e);var t=[];for(var r in Object(e))em.call(e,r)&&r!="constructor"&&t.push(r);return t}var ws=tm;function rm(e){return Ae(e)?Ho(e):ws(e)}var $e=rm;function om(e){var t=[];if(e!=null)for(var r in Object(e))t.push(r);return t}var Ss=om;var nm=Object.prototype,im=nm.hasOwnProperty;function am(e){if(!D(e))return Ss(e);var t=hr(e),r=[];for(var o in e)o=="constructor"&&(t||!im.call(e,o))||r.push(o);return r}var xs=am;function sm(e){return Ae(e)?Ho(e,true):xs(e)}var Pe=sm;var lm=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,fm=/^\w*$/;function pm(e,t){if(L(e))return false;var r=typeof e;return r=="number"||r=="symbol"||r=="boolean"||e==null||pr(e)?true:fm.test(e)||!lm.test(e)||t!=null&&e in Object(t)}var xr=pm;var dm=ne(Object,"create"),Ke=dm;function um(){this.__data__=Ke?Ke(null):{},this.size=0;}var bs=um;function cm(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var Os=cm;var mm="__lodash_hash_undefined__",gm=Object.prototype,ym=gm.hasOwnProperty;function hm(e){var t=this.__data__;if(Ke){var r=t[e];return r===mm?void 0:r}return ym.call(t,e)?t[e]:void 0}var Rs=hm;var wm=Object.prototype,Sm=wm.hasOwnProperty;function xm(e){var t=this.__data__;return Ke?t[e]!==void 0:Sm.call(t,e)}var Es=xm;var bm="__lodash_hash_undefined__";function Om(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=Ke&&t===void 0?bm:t,this}var vs=Om;function br(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]);}}br.prototype.clear=bs;br.prototype.delete=Os;br.prototype.get=Rs;br.prototype.has=Es;br.prototype.set=vs;var Mi=br;function Rm(){this.__data__=[],this.size=0;}var As=Rm;function Em(e,t){for(var r=e.length;r--;)if(Ee(e[r][0],t))return r;return -1}var gt=Em;var vm=Array.prototype,Am=vm.splice;function $m(e){var t=this.__data__,r=gt(t,e);if(r<0)return false;var o=t.length-1;return r==o?t.pop():Am.call(t,r,1),--this.size,true}var $s=$m;function Pm(e){var t=this.__data__,r=gt(t,e);return r<0?void 0:t[r][1]}var Ps=Pm;function Tm(e){return gt(this.__data__,e)>-1}var Ts=Tm;function Nm(e,t){var r=this.__data__,o=gt(r,e);return o<0?(++this.size,r.push([e,t])):r[o][1]=t,this}var Ns=Nm;function Or(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]);}}Or.prototype.clear=As;Or.prototype.delete=$s;Or.prototype.get=Ps;Or.prototype.has=Ts;Or.prototype.set=Ns;var yt=Or;var Cm=ne(V,"Map"),ht=Cm;function _m(){this.size=0,this.__data__={hash:new Mi,map:new(ht||yt),string:new Mi};}var Cs=_m;function Mm(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var _s=Mm;function km(e,t){var r=e.__data__;return _s(t)?r[typeof t=="string"?"string":"hash"]:r.map}var wt=km;function Lm(e){var t=wt(this,e).delete(e);return this.size-=t?1:0,t}var Ms=Lm;function Dm(e){return wt(this,e).get(e)}var ks=Dm;function Fm(e){return wt(this,e).has(e)}var Ls=Fm;function Im(e,t){var r=wt(this,e),o=r.size;return r.set(e,t),this.size+=r.size==o?0:1,this}var Ds=Im;function Rr(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]);}}Rr.prototype.clear=Cs;Rr.prototype.delete=Ms;Rr.prototype.get=ks;Rr.prototype.has=Ls;Rr.prototype.set=Ds;var qt=Rr;var jm="Expected a function";function ki(e,t){if(typeof e!="function"||t!=null&&typeof t!="function")throw new TypeError(jm);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 a=e.apply(this,o);return r.cache=i.set(n,a)||i,a};return r.cache=new(ki.Cache||qt),r}ki.Cache=qt;var Fs=ki;var Bm=500;function Vm(e){var t=Fs(e,function(o){return r.size===Bm&&r.clear(),o}),r=t.cache;return t}var Is=Vm;var qm=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Wm=/\\(\\)?/g,Um=Is(function(e){var t=[];return e.charCodeAt(0)===46&&t.push(""),e.replace(qm,function(r,o,n,i){t.push(n?i.replace(Wm,"$1"):o||r);}),t}),js=Um;function Gm(e){return e==null?"":Ga(e)}var Bs=Gm;function Km(e,t){return L(e)?e:xr(e,t)?[e]:js(Bs(e))}var Er=Km;function Hm(e){if(typeof e=="string"||pr(e))return e;var t=e+"";return t=="0"&&1/e==-Infinity?"-0":t}var Te=Hm;function Jm(e,t){t=Er(t,e);for(var r=0,o=t.length;e!=null&&r<o;)e=e[Te(t[r++])];return r&&r==o?e:void 0}var Qo=Jm;function Qm(e,t,r){var o=e==null?void 0:Qo(e,t);return o===void 0?r:o}var Vs=Qm;function Zm(e,t){for(var r=-1,o=t.length,n=e.length;++r<o;)e[n+r]=t[r];return e}var Zo=Zm;var Ym=Jo(Object.getPrototypeOf,Object),vr=Ym;var Xm="[object Object]",eg=Function.prototype,tg=Object.prototype,qs=eg.toString,rg=tg.hasOwnProperty,og=qs.call(Object);function ng(e){if(!U(e)||se(e)!=Xm)return false;var t=vr(e);if(t===null)return true;var r=rg.call(t,"constructor")&&t.constructor;return typeof r=="function"&&r instanceof r&&qs.call(r)==og}var le=ng;function ig(){this.__data__=new yt,this.size=0;}var Ws=ig;function ag(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var Us=ag;function sg(e){return this.__data__.get(e)}var Gs=sg;function lg(e){return this.__data__.has(e)}var Ks=lg;var fg=200;function pg(e,t){var r=this.__data__;if(r instanceof yt){var o=r.__data__;if(!ht||o.length<fg-1)return o.push([e,t]),this.size=++r.size,this;r=this.__data__=new qt(o);}return r.set(e,t),this.size=r.size,this}var zs=pg;function Ar(e){var t=this.__data__=new yt(e);this.size=t.size;}Ar.prototype.clear=Ws;Ar.prototype.delete=Us;Ar.prototype.get=Gs;Ar.prototype.has=Ks;Ar.prototype.set=zs;var Ne=Ar;function dg(e,t){return e&&ve(t,$e(t),e)}var Hs=dg;function ug(e,t){return e&&ve(t,Pe(t),e)}var Js=ug;var Xs=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Qs=Xs&&typeof module=="object"&&module&&!module.nodeType&&module,cg=Qs&&Qs.exports===Xs,Zs=cg?V.Buffer:void 0,Ys=Zs?Zs.allocUnsafe:void 0;function mg(e,t){if(t)return e.slice();var r=e.length,o=Ys?Ys(r):new e.constructor(r);return e.copy(o),o}var Yo=mg;function gg(e,t){for(var r=-1,o=e==null?0:e.length,n=0,i=[];++r<o;){var a=e[r];t(a,r,e)&&(i[n++]=a);}return i}var el=gg;function yg(){return []}var Xo=yg;var hg=Object.prototype,wg=hg.propertyIsEnumerable,tl=Object.getOwnPropertySymbols,Sg=tl?function(e){return e==null?[]:(e=Object(e),el(tl(e),function(t){return wg.call(e,t)}))}:Xo,$r=Sg;function xg(e,t){return ve(e,$r(e),t)}var rl=xg;var bg=Object.getOwnPropertySymbols,Og=bg?function(e){for(var t=[];e;)Zo(t,$r(e)),e=vr(e);return t}:Xo,en=Og;function Rg(e,t){return ve(e,en(e),t)}var ol=Rg;function Eg(e,t,r){var o=t(e);return L(e)?o:Zo(o,r(e))}var tn=Eg;function vg(e){return tn(e,$e,$r)}var ho=vg;function Ag(e){return tn(e,Pe,en)}var nl=Ag;var $g=ne(V,"DataView"),rn=$g;var Pg=ne(V,"Promise"),on=Pg;var Tg=ne(V,"Set"),nn=Tg;var il="[object Map]",Ng="[object Object]",al="[object Promise]",sl="[object Set]",ll="[object WeakMap]",fl="[object DataView]",Cg=We(rn),_g=We(ht),Mg=We(on),kg=We(nn),Lg=We(Go),Wt=se;(rn&&Wt(new rn(new ArrayBuffer(1)))!=fl||ht&&Wt(new ht)!=il||on&&Wt(on.resolve())!=al||nn&&Wt(new nn)!=sl||Go&&Wt(new Go)!=ll)&&(Wt=function(e){var t=se(e),r=t==Ng?e.constructor:void 0,o=r?We(r):"";if(o)switch(o){case Cg:return fl;case _g:return il;case Mg:return al;case kg:return sl;case Lg:return ll}return t});var ze=Wt;var Dg=Object.prototype,Fg=Dg.hasOwnProperty;function Ig(e){var t=e.length,r=new e.constructor(t);return t&&typeof e[0]=="string"&&Fg.call(e,"index")&&(r.index=e.index,r.input=e.input),r}var pl=Ig;var jg=V.Uint8Array,Pr=jg;function Bg(e){var t=new e.constructor(e.byteLength);return new Pr(t).set(new Pr(e)),t}var Tr=Bg;function Vg(e,t){var r=t?Tr(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.byteLength)}var dl=Vg;var qg=/\w*$/;function Wg(e){var t=new e.constructor(e.source,qg.exec(e));return t.lastIndex=e.lastIndex,t}var ul=Wg;var cl=Y?Y.prototype:void 0,ml=cl?cl.valueOf:void 0;function Ug(e){return ml?Object(ml.call(e)):{}}var gl=Ug;function Gg(e,t){var r=t?Tr(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.length)}var an=Gg;var Kg="[object Boolean]",zg="[object Date]",Hg="[object Map]",Jg="[object Number]",Qg="[object RegExp]",Zg="[object Set]",Yg="[object String]",Xg="[object Symbol]",ey="[object ArrayBuffer]",ty="[object DataView]",ry="[object Float32Array]",oy="[object Float64Array]",ny="[object Int8Array]",iy="[object Int16Array]",ay="[object Int32Array]",sy="[object Uint8Array]",ly="[object Uint8ClampedArray]",fy="[object Uint16Array]",py="[object Uint32Array]";function dy(e,t,r){var o=e.constructor;switch(t){case ey:return Tr(e);case Kg:case zg:return new o(+e);case ty:return dl(e,r);case ry:case oy:case ny:case iy:case ay:case sy:case ly:case fy:case py:return an(e,r);case Hg:return new o;case Jg:case Yg:return new o(e);case Qg:return ul(e);case Zg:return new o;case Xg:return gl(e)}}var yl=dy;function uy(e){return typeof e.constructor=="function"&&!hr(e)?Za(vr(e)):{}}var sn=uy;var cy="[object Map]";function my(e){return U(e)&&ze(e)==cy}var hl=my;var wl=Ge&&Ge.isMap,gy=wl?wr(wl):hl,Sl=gy;var yy="[object Set]";function hy(e){return U(e)&&ze(e)==yy}var xl=hy;var bl=Ge&&Ge.isSet,wy=bl?wr(bl):xl,Ol=wy;var Sy=1,xy=2,by=4,Rl="[object Arguments]",Oy="[object Array]",Ry="[object Boolean]",Ey="[object Date]",vy="[object Error]",El="[object Function]",Ay="[object GeneratorFunction]",$y="[object Map]",Py="[object Number]",vl="[object Object]",Ty="[object RegExp]",Ny="[object Set]",Cy="[object String]",_y="[object Symbol]",My="[object WeakMap]",ky="[object ArrayBuffer]",Ly="[object DataView]",Dy="[object Float32Array]",Fy="[object Float64Array]",Iy="[object Int8Array]",jy="[object Int16Array]",By="[object Int32Array]",Vy="[object Uint8Array]",qy="[object Uint8ClampedArray]",Wy="[object Uint16Array]",Uy="[object Uint32Array]",C={};C[Rl]=C[Oy]=C[ky]=C[Ly]=C[Ry]=C[Ey]=C[Dy]=C[Fy]=C[Iy]=C[jy]=C[By]=C[$y]=C[Py]=C[vl]=C[Ty]=C[Ny]=C[Cy]=C[_y]=C[Vy]=C[qy]=C[Wy]=C[Uy]=true;C[vy]=C[El]=C[My]=false;function ln(e,t,r,o,n,i){var a,s=t&Sy,f=t&xy,l=t&by;if(r&&(a=n?r(e,o,n,i):r(e)),a!==void 0)return a;if(!D(e))return e;var p=L(e);if(p){if(a=pl(e),!s)return Ko(e,a)}else {var d=ze(e),u=d==El||d==Ay;if(Ue(e))return Yo(e,s);if(d==vl||d==Rl||u&&!n){if(a=f||u?{}:sn(e),!s)return f?ol(e,Js(a,e)):rl(e,Hs(a,e))}else {if(!C[d])return n?e:{};a=yl(e,d,s);}}i||(i=new Ne);var g=i.get(e);if(g)return g;i.set(e,a),Ol(e)?e.forEach(function(w){a.add(ln(w,t,r,w,e,i));}):Sl(e)&&e.forEach(function(w,S){a.set(S,ln(w,t,r,S,e,i));});var m=l?f?nl:ho:f?Pe:$e,y=p?void 0:m(e);return os(y||e,function(w,S){y&&(S=w,w=e[S]),gr(a,S,ln(w,t,r,S,e,i));}),a}var fn=ln;var Gy=1,Ky=4;function zy(e){return fn(e,Gy|Ky)}var pn=zy;var Hy=1,Jy=4;function Qy(e,t){return t=typeof t=="function"?t:void 0,fn(e,Hy|Jy,t)}var Li=Qy;var Zy="__lodash_hash_undefined__";function Yy(e){return this.__data__.set(e,Zy),this}var Al=Yy;function Xy(e){return this.__data__.has(e)}var $l=Xy;function dn(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new qt;++t<r;)this.add(e[t]);}dn.prototype.add=dn.prototype.push=Al;dn.prototype.has=$l;var Pl=dn;function eh(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 un=eh;function th(e,t){return e.has(t)}var Tl=th;var rh=1,oh=2;function nh(e,t,r,o,n,i){var a=r&rh,s=e.length,f=t.length;if(s!=f&&!(a&&f>s))return false;var l=i.get(e),p=i.get(t);if(l&&p)return l==t&&p==e;var d=-1,u=true,g=r&oh?new Pl:void 0;for(i.set(e,t),i.set(t,e);++d<s;){var m=e[d],y=t[d];if(o)var w=a?o(y,m,d,t,e,i):o(m,y,d,e,t,i);if(w!==void 0){if(w)continue;u=false;break}if(g){if(!un(t,function(S,x){if(!Tl(g,x)&&(m===S||n(m,S,r,o,i)))return g.push(x)})){u=false;break}}else if(!(m===y||n(m,y,r,o,i))){u=false;break}}return i.delete(e),i.delete(t),u}var cn=nh;function ih(e){var t=-1,r=Array(e.size);return e.forEach(function(o,n){r[++t]=[n,o];}),r}var Nl=ih;function ah(e){var t=-1,r=Array(e.size);return e.forEach(function(o){r[++t]=o;}),r}var Cl=ah;var sh=1,lh=2,fh="[object Boolean]",ph="[object Date]",dh="[object Error]",uh="[object Map]",ch="[object Number]",mh="[object RegExp]",gh="[object Set]",yh="[object String]",hh="[object Symbol]",wh="[object ArrayBuffer]",Sh="[object DataView]",_l=Y?Y.prototype:void 0,Di=_l?_l.valueOf:void 0;function xh(e,t,r,o,n,i,a){switch(r){case Sh:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return false;e=e.buffer,t=t.buffer;case wh:return !(e.byteLength!=t.byteLength||!i(new Pr(e),new Pr(t)));case fh:case ph:case ch:return Ee(+e,+t);case dh:return e.name==t.name&&e.message==t.message;case mh:case yh:return e==t+"";case uh:var s=Nl;case gh:var f=o&sh;if(s||(s=Cl),e.size!=t.size&&!f)return false;var l=a.get(e);if(l)return l==t;o|=lh,a.set(e,t);var p=cn(s(e),s(t),o,n,i,a);return a.delete(e),p;case hh:if(Di)return Di.call(e)==Di.call(t)}return false}var Ml=xh;var bh=1,Oh=Object.prototype,Rh=Oh.hasOwnProperty;function Eh(e,t,r,o,n,i){var a=r&bh,s=ho(e),f=s.length,l=ho(t),p=l.length;if(f!=p&&!a)return false;for(var d=f;d--;){var u=s[d];if(!(a?u in t:Rh.call(t,u)))return false}var g=i.get(e),m=i.get(t);if(g&&m)return g==t&&m==e;var y=true;i.set(e,t),i.set(t,e);for(var w=a;++d<f;){u=s[d];var S=e[u],x=t[u];if(o)var c=a?o(x,S,u,t,e,i):o(S,x,u,e,t,i);if(!(c===void 0?S===x||n(S,x,r,o,i):c)){y=false;break}w||(w=u=="constructor");}if(y&&!w){var b=e.constructor,R=t.constructor;b!=R&&"constructor"in e&&"constructor"in t&&!(typeof b=="function"&&b instanceof b&&typeof R=="function"&&R instanceof R)&&(y=false);}return i.delete(e),i.delete(t),y}var kl=Eh;var vh=1,Ll="[object Arguments]",Dl="[object Array]",mn="[object Object]",Ah=Object.prototype,Fl=Ah.hasOwnProperty;function $h(e,t,r,o,n,i){var a=L(e),s=L(t),f=a?Dl:ze(e),l=s?Dl:ze(t);f=f==Ll?mn:f,l=l==Ll?mn:l;var p=f==mn,d=l==mn,u=f==l;if(u&&Ue(e)){if(!Ue(t))return false;a=true,p=false;}if(u&&!p)return i||(i=new Ne),a||Sr(e)?cn(e,t,r,o,n,i):Ml(e,t,f,r,o,n,i);if(!(r&vh)){var g=p&&Fl.call(e,"__wrapped__"),m=d&&Fl.call(t,"__wrapped__");if(g||m){var y=g?e.value():e,w=m?t.value():t;return i||(i=new Ne),n(y,w,r,o,i)}}return u?(i||(i=new Ne),kl(e,t,r,o,n,i)):false}var Il=$h;function jl(e,t,r,o,n){return e===t?true:e==null||t==null||!U(e)&&!U(t)?e!==e&&t!==t:Il(e,t,r,o,jl,n)}var Nr=jl;var Ph=1,Th=2;function Nh(e,t,r,o){var n=r.length,i=n,a=!o;if(e==null)return !i;for(e=Object(e);n--;){var s=r[n];if(a&&s[2]?s[1]!==e[s[0]]:!(s[0]in e))return false}for(;++n<i;){s=r[n];var f=s[0],l=e[f],p=s[1];if(a&&s[2]){if(l===void 0&&!(f in e))return false}else {var d=new Ne;if(o)var u=o(l,p,f,e,t,d);if(!(u===void 0?Nr(p,l,Ph|Th,o,d):u))return false}}return true}var Bl=Nh;function Ch(e){return e===e&&!D(e)}var gn=Ch;function _h(e){for(var t=$e(e),r=t.length;r--;){var o=t[r],n=e[o];t[r]=[o,n,gn(n)];}return t}var Vl=_h;function Mh(e,t){return function(r){return r==null?false:r[e]===t&&(t!==void 0||e in Object(r))}}var yn=Mh;function kh(e){var t=Vl(e);return t.length==1&&t[0][2]?yn(t[0][0],t[0][1]):function(r){return r===e||Bl(r,e,t)}}var ql=kh;function Lh(e,t){return e!=null&&t in Object(e)}var Wl=Lh;function Dh(e,t,r){t=Er(t,e);for(var o=-1,n=t.length,i=false;++o<n;){var a=Te(t[o]);if(!(i=e!=null&&r(e,a)))break;e=e[a];}return i||++o!=n?i:(n=e==null?0:e.length,!!n&&yr(n)&&mt(a,n)&&(L(e)||Vt(e)))}var Ul=Dh;function Fh(e,t){return e!=null&&Ul(e,t,Wl)}var Gl=Fh;var Ih=1,jh=2;function Bh(e,t){return xr(e)&&gn(t)?yn(Te(e),t):function(r){var o=Vs(r,e);return o===void 0&&o===t?Gl(r,e):Nr(t,o,Ih|jh)}}var Kl=Bh;function Vh(e){return function(t){return t?.[e]}}var zl=Vh;function qh(e){return function(t){return Qo(t,e)}}var Hl=qh;function Wh(e){return xr(e)?zl(Te(e)):Hl(e)}var Jl=Wh;function Uh(e){return typeof e=="function"?e:e==null?dr:typeof e=="object"?L(e)?Kl(e[0],e[1]):ql(e):Jl(e)}var Ql=Uh;function Gh(e){return function(t,r,o){for(var n=-1,i=Object(t),a=o(t),s=a.length;s--;){var f=a[e?s:++n];if(r(i[f],f,i)===false)break}return t}}var Zl=Gh;var Kh=Zl(),hn=Kh;function zh(e,t){return e&&hn(e,t,$e)}var Yl=zh;function Hh(e,t){return function(r,o){if(r==null)return r;if(!Ae(r))return e(r,o);for(var n=r.length,i=t?n:-1,a=Object(r);(t?i--:++i<n)&&o(a[i],i,a)!==false;);return r}}var Xl=Hh;var Jh=Xl(Yl),ef=Jh;function Qh(e,t,r){(r!==void 0&&!Ee(e[t],r)||r===void 0&&!(t in e))&&mr(e,t,r);}var wo=Qh;function Zh(e){return U(e)&&Ae(e)}var tf=Zh;function Yh(e,t){if(!(t==="constructor"&&typeof e[t]=="function")&&t!="__proto__")return e[t]}var So=Yh;function Xh(e){return ve(e,Pe(e))}var rf=Xh;function ew(e,t,r,o,n,i,a){var s=So(e,r),f=So(t,r),l=a.get(f);if(l){wo(e,r,l);return}var p=i?i(s,f,r+"",e,t,a):void 0,d=p===void 0;if(d){var u=L(f),g=!u&&Ue(f),m=!u&&!g&&Sr(f);p=f,u||g||m?L(s)?p=s:tf(s)?p=Ko(s):g?(d=false,p=Yo(f,true)):m?(d=false,p=an(f,true)):p=[]:le(f)||Vt(f)?(p=s,Vt(s)?p=rf(s):(!D(s)||ur(s))&&(p=sn(f))):d=false;}d&&(a.set(f,p),n(p,f,o,i,a),a.delete(f)),wo(e,r,p);}var of=ew;function nf(e,t,r,o,n){e!==t&&hn(t,function(i,a){if(n||(n=new Ne),D(i))of(e,t,a,r,nf,o,n);else {var s=o?o(So(e,a),i,a+"",e,t,n):void 0;s===void 0&&(s=i),wo(e,a,s);}},Pe);}var af=nf;function tw(e,t){return Nr(e,t)}var Ut=tw;var rw=ss(function(e,t,r){af(e,t,r);}),Fi=rw;function ow(e,t,r,o){if(!D(e))return e;t=Er(t,e);for(var n=-1,i=t.length,a=i-1,s=e;s!=null&&++n<i;){var f=Te(t[n]),l=r;if(f==="__proto__"||f==="constructor"||f==="prototype")return e;if(n!=a){var p=s[f];l=o?o(p,f,s):void 0,l===void 0&&(l=D(p)?p:mt(t[n+1])?[]:{});}gr(s,f,l),s=s[f];}return e}var sf=ow;function nw(e,t,r){return e==null?e:sf(e,t,r)}var Ii=nw;function iw(e,t){var r;return ef(e,function(o,n,i){return r=t(o,n,i),!r}),!!r}var lf=iw;function aw(e,t,r){var o=L(e)?un:lf;return r&&zo(e,t,r)&&(t=void 0),o(e,Ql(t))}var ji=aw;var sw=/^(\$+)\.(.*)$/,K=e=>{let t=sw.exec(e);return t?{depth:t[1].length,path:t[2]}:null},Bi=(e,t,r)=>`Scope ref '${e}' needs depth ${t} but only ${r} ${r===1?"scope is":"scopes are"} in reach`,Ce=(e,t)=>{let r=K(e);return r?r.depth>t.length?{outOfBounds:Bi(e,r.depth,t.length)}:{scope:t[t.length-r.depth],path:r.path}:{scope:t[t.length-1],path:e}},lw=/\[(\d+)\]|\[(["'])(.*?)\2\]|([^.[\]]+)/g,fw=e=>e===""?[""]:[...e.matchAll(lw)].map(t=>t[1]??t[3]??t[4]),pw=(e,t)=>{if(e==null)return;let r=Object(e);if(Object.hasOwn(r,t))return r[t];if(t in Object.prototype||!(t in r))return;let o=r[t];return typeof o=="function"?void 0:o},X=(e,t)=>fw(t).reduce(pw,e),St=(e,t)=>{let r=Ce(e,t);if("outOfBounds"in r)throw new Error(r.outOfBounds);return X(r.scope,r.path)},ff=(e,t,r)=>K(e)?St(e,t):X(r,e),xo=(e,t)=>`Scope ref '${e}' is not supported by ${t}(); evaluate with check()`,wn=(e,t)=>{if(!(!("field"in e)||typeof e.field!="string")&&K(e.field))throw new Error(xo(e.field,t))},Sn=(e,t,r)=>{if(!t)throw new Error(`context is required to resolve path '${e}'. Pass context when calling ${r}().`);return X(t,e)??null};var pf={string:{caseInsensitive:false,fuzzy:false},prismaOptions:{datasource:{provider:"postgresql"}}},Cr=pn(pf),Vi=e=>Li(e,t=>typeof t=="object"&&t!==null&&!Array.isArray(t)&&!le(t)?t:void 0),dw=e=>e!=null&&typeof e.then=="function",Gt={set:(e,t)=>{Ii(Cr,e,Vi(t));},get:e=>X(Cr,e),reset:()=>{Cr=pn(pf);},with:(e,t)=>{let r=Cr;Cr=Fi(Vi(r),Vi(e));try{let o=t();if(dw(o))throw new Error("engineGlobals.with() callback must be synchronous (it returned a Promise).");return o}finally{Cr=r;}}},uw=new Set(["postgresql","cockroachdb","mongodb"]),df=e=>uw.has(e),fe=e=>e??Gt.get("string.caseInsensitive")??false,xn=e=>{let t=e??Gt.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"},O={all:"all",any:"any",none:"none",atLeast:"atLeast",atMost:"atMost",exactly:"exactly",empty:"empty",notEmpty:"notEmpty"},A={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 F={String:"String",Boolean:"Boolean",Int:"Int",BigInt:"BigInt",Float:"Float",Decimal:"Decimal",DateTime:"DateTime",Json:"Json",Bytes:"Bytes",Enum:"Enum"},he=["Int","Float","Decimal","BigInt"],_r=["String",...he,"DateTime"],xt=["String"],bn=["String","Boolean","Int","BigInt","Float","Decimal","DateTime","Enum"],On=Object.values(F),uf=On,cw={check:"check",toPrisma:"toPrisma",toSql:"toSql"},vn=e=>typeof e=="string"&&Object.hasOwn(F,e),P=["check","toPrisma","toSql"],Mr=["check","toPrisma"],Rn=["check","toSql"],Je={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"},kr={[h.equals]:{kinds:bn,targets:P,valueShape:"scalar"},[h.notEquals]:{negates:h.equals,kinds:bn,targets:P,valueShape:"scalar"},[h.lessThan]:{kinds:_r,targets:P,valueShape:"ordered",comparator:"lt"},[h.lessThanEquals]:{kinds:_r,targets:P,valueShape:"ordered",comparator:"lte"},[h.greaterThan]:{kinds:_r,targets:P,valueShape:"ordered",comparator:"gt"},[h.greaterThanEquals]:{kinds:_r,targets:P,valueShape:"ordered",comparator:"gte"},[h.in]:{kinds:bn,targets:P,valueShape:"array"},[h.notIn]:{negates:h.in,kinds:bn,targets:P,valueShape:"array"},[h.contains]:{kinds:xt,targets:P,valueShape:"string"},[h.notContains]:{negates:h.contains,kinds:xt,targets:P,valueShape:"string"},[h.startsWith]:{kinds:xt,targets:P,valueShape:"string"},[h.notStartsWith]:{negates:h.startsWith,kinds:xt,targets:P,valueShape:"string"},[h.endsWith]:{kinds:xt,targets:P,valueShape:"string"},[h.notEndsWith]:{negates:h.endsWith,kinds:xt,targets:P,valueShape:"string"},[h.matches]:{kinds:xt,targets:Rn,valueShape:"pattern"},[h.notMatches]:{negates:h.matches,kinds:xt,targets:Rn,valueShape:"pattern"},[h.between]:{kinds:_r,targets:P,valueShape:"range"},[h.notBetween]:{negates:h.between,kinds:_r,targets:P,valueShape:"range"},[h.isEmpty]:{kinds:uf,targets:P,valueShape:"none"},[h.notEmpty]:{kinds:uf,targets:P,valueShape:"none"},[h.exists]:{kinds:On,targets:P,valueShape:"none"},[h.notExists]:{kinds:On,targets:P,valueShape:"none"}},Lr={[A.before]:{kinds:["DateTime"],targets:P,valueShape:"dateValue",acceptsExpr:true,comparator:"lt"},[A.after]:{kinds:["DateTime"],targets:P,valueShape:"dateValue",acceptsExpr:true,comparator:"gt"},[A.onOrBefore]:{kinds:["DateTime"],targets:P,valueShape:"dateValue",acceptsExpr:true,comparator:"lte"},[A.onOrAfter]:{kinds:["DateTime"],targets:P,valueShape:"dateValue",acceptsExpr:true,comparator:"gte"},[A.notBefore]:{negates:A.before,kinds:["DateTime"],targets:P,valueShape:"dateValue",acceptsExpr:true,comparator:"gte"},[A.notAfter]:{negates:A.after,kinds:["DateTime"],targets:P,valueShape:"dateValue",acceptsExpr:true,comparator:"lte"},[A.within]:{kinds:["DateTime"],targets:P,valueShape:"dateWindow",acceptsExpr:true},[A.notWithin]:{negates:A.within,kinds:["DateTime"],targets:P,valueShape:"dateWindow",acceptsExpr:true},[A.between]:{kinds:["DateTime"],targets:P,valueShape:"dateRange",acceptsExpr:true},[A.notBetween]:{negates:A.between,kinds:["DateTime"],targets:P,valueShape:"dateRange",acceptsExpr:true},[A.dayIn]:{kinds:["DateTime"],targets:Rn,valueShape:"dayList",acceptsExpr:false},[A.dayNotIn]:{negates:A.dayIn,kinds:["DateTime"],targets:Rn,valueShape:"dayList",acceptsExpr:false}},En={[O.all]:{targets:Mr,valueShape:"predicate"},[O.any]:{targets:Mr,valueShape:"predicate"},[O.none]:{targets:Mr,valueShape:"predicate"},[O.atLeast]:{targets:Mr,valueShape:"count",comparator:"gte"},[O.atMost]:{targets:Mr,valueShape:"count",comparator:"lte"},[O.exactly]:{targets:Mr,valueShape:"count",comparator:"equals"},[O.empty]:{targets:P,valueShape:"none"},[O.notEmpty]:{targets:P,valueShape:"none"}},cf={field:kr,date:Lr,array:En},He=(e,t)=>Object.hasOwn(cf[t],e)?cf[t][e]:void 0,Dr=e=>typeof e.operator=="string"?He(e.operator,"field"):typeof e.dateOperator=="string"?He(e.dateOperator,"date"):void 0,bt=(e,t)=>He(e,t)?.comparator,Qe=(e,t)=>{let r=He(e,t);if(!r)throw z(e,t);return r.valueShape},An=(e,t,r)=>He(e,t)?.targets.includes(r)??false,mw=(e,t)=>{let r=Object.keys(kr).filter(n=>{let i=kr[n];return !(!i.kinds.includes(e)||t&&!i.targets.includes(t))}),o=Object.keys(Lr).filter(n=>{let i=Lr[n];return !(!i.kinds.includes(e)||t&&!i.targets.includes(t))});return {field:r,date:o}},gw=e=>Object.keys(En).filter(t=>e?En[t].targets.includes(e):true),mf=[...Object.entries(kr),...Object.entries(Lr)],pe=(...e)=>mf.flatMap(([t,r])=>e.includes(r.valueShape)?[t]:[]),Ot=pe("none"),Fr=pe("ordered"),bo=pe("dateWindow"),ce=pe("range","dateRange","dateWindow"),gf=pe("ordered","string","pattern","array"),Ir=[h.contains,h.notContains],$n=pe("scalar","ordered","range"),_e=["sum","avg"],yw=()=>$n,jr=pe("scalar"),Br=pe("array"),yf=pe("scalar","array"),hf=pe("dayList"),wf=pe("dateRange"),Sf=pe("scalar","ordered","range","dateValue","dateRange"),xf=(...e)=>Object.entries(En).flatMap(([t,r])=>e.includes(r.valueShape)?[t]:[]),Pn=xf("count"),bf=xf("predicate","count"),Of=[O.any,O.atLeast],k=[...Object.entries(kr),...Object.entries(Lr)].flatMap(([e,t])=>t.negates?[e]:[]),Rf=k.filter(e=>pe("string").includes(e)),Vr=k.filter(e=>ce.includes(e)),Ef=(...e)=>mf.flatMap(([t,r])=>r.comparator&&e.includes(r.comparator)&&!k.includes(t)?[t]:[]),Tn=Ef("lt","lte"),vf=Ef("gt","gte"),Af=["Int","BigInt"],$f=[...he,"DateTime","Boolean","String"],Pf=["Int","BigInt","Float","Boolean","String"],Tf=["scalar","ordered","string"],Rt={years:{interval:"months",factor:12,calendar:true},quarters:{interval:"months",factor:3,calendar:true},months:{interval:"months",factor:1,calendar:true},weeks:{interval:"days",factor:7,calendar:true},days:{interval:"days",factor:1,calendar:true},hours:{interval:"secs",factor:3600,calendar:false},minutes:{interval:"secs",factor:60,calendar:false},seconds:{interval:"secs",factor:1,calendar:false}},Nf=["months","days","secs"],qi=e=>Object.hasOwn(Rt,e),Kt=e=>qi(e)&&Rt[e].calendar,Nn=["year","quarter","month","week","isoWeek","day","hour","minute","second"],qr=["sunday","monday","tuesday","wednesday","thursday","friday","saturday"],Cf=e=>qr.includes(e.toLowerCase()),_f=(e,t=[])=>Object.fromEntries([...Object.entries(e).flatMap(([r,o])=>o.negates?[[o.negates,r]]:[]),...t].flatMap(([r,o])=>[[r,o],[o,r]])),Oo=_f(kr,[[h.isEmpty,h.notEmpty],[h.exists,h.notExists]]),Mf=_f(Lr),Cn={[h.lessThan]:h.greaterThanEquals,[h.lessThanEquals]:h.greaterThan,[h.greaterThan]:h.lessThanEquals,[h.greaterThanEquals]:h.lessThan,[A.onOrBefore]:A.after,[A.onOrAfter]:A.before};var _n=e=>new Error(`${e}: ArrayRule.field is required (fieldless arrayOps are check-only)`),z=(e,t)=>new Error(`Unknown ${t} operator: ${String(e)}`),Wr=e=>new Error(`${e} requires a count`),we=e=>new Error(`${e} requires a range date expression (a period or rolling window), not a single point`),Se=e=>new Error(`${e} requires a condition to check against array elements`),Ur=e=>new Error(`'${e}' is a relation: it exists or not; compare its fields with '${e}.<field>'.`),Mn=e=>new Error(`'${e}' is a list of rows: compare it with an arrayOperator (any / all / none / empty / atLeast \u2026).`),kn=e=>Ir.includes(e.operator)&&xn(e.fuzzy)?new Error("Fuzzy matching has no compiled form \u2014 evaluate it in memory with check()."):null,Ln=(e,t)=>!Fr.includes(e)&&!ce.includes(e)?null:(ce.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,Et=e=>new Error(`aggregate.mode must be one of ${_e.join(" / ")}, not '${String(e)}'`),Me=()=>new Error("A condition is exactly one of: a field, date, array or aggregate rule, all, any, or if/then[/else]"),N=(e,t,r)=>new Error(`${t} has no ${e==="toSql"?"SQL":"Prisma"} form${r?` (${r})`:""}; use ${e==="toSql"?"check()":"toSql() or check()"}.`),ke=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":""}.`),Dn=(e,t)=>new Error(`'${e}' reads through the to-many relation '${t.prefix}'; compare its rows with an arrayOperator rule on '${t.prefix}'.`),Fn=(e,t)=>new Error(`'${e}' continues past '${t}', which is not a Json column`);De__default.default.extend(xw__default.default);De__default.default.extend(Sw__default.default);De__default.default.extend(ww__default.default);De__default.default.extend(hw__default.default);var q=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},Ze="UTC",Ro=e=>{if(e.now===void 0)throw new Error("date expressions require `now` to be supplied to the evaluator");let t=De__default.default(e.now).tz(e.timeZone);if(!t.isValid())throw new Error(`invalid \`now\`: ${String(e.now)}`);return t},Wi=(e,t)=>Object.entries(e).reduce((r,[o,n])=>Rt[o].interval===t?r+n*Rt[o].factor:r,0),kf="YYYY-MM-DDTHH:mm:ss.SSS",vt=(e,t,r,o)=>{let n=Wi(t,"months"),i=Wi(t,"days"),a=Wi(t,"secs"),s=De__default.default.utc(e.tz(o).format(kf));return n&&(s=s.add(r*n,"month")),i&&(s=s.add(r*i,"day")),a&&(s=s.add(r*a*1e3,"millisecond")),De__default.default.tz(s.format(kf),o)},bw=e=>"ago"in e||"ahead"in e,In=(e,t)=>t===-1?{ago:e}:{ahead:e},ie=e=>bw(e)?"ago"in e?[e.ago,-1]:[e.ahead,1]:null,Eo=e=>"this"in e||"last"in e||"next"in e,Ui=e=>"start"in e||"end"in e,jn=e=>"this"in e?e.this:"last"in e?e.last:e.next,Ow=e=>{let t=jn(e);if(typeof t!="string"||!Nn.includes(t))throw new Error(`Unknown period unit '${String(t)}'`);return t},Rw=(e,t)=>e==="week"?t.weekStart==="sunday"?"week":"isoWeek":e,Gi=(e,t)=>{let r=Ro(t),o=Ow(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 a=Rw(o,t);return [i.startOf(a),i.endOf(a)]},Ki=(e,t)=>{let r=ie(e);if(r)return vt(Ro(t),...r,t.timeZone);if(Ui(e)){let o="start"in e?e.start:e.end,[n,i]=Gi(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")},Gr=(e,t,r)=>{if(Eo(e)){let[o,n]=Gi(e,r),i=Dr({dateOperator:t})?.negates??t;return Tn.includes(i)?o:n}return Ki(e,r)},Kr=(e,t)=>{if(Eo(e))return Gi(e,t);let r=ie(e);if(r){let o=Ro(t),n=vt(o,...r,t.timeZone);return r[1]===-1?[n,o]:[o,n]}throw we("within")};var Lf=["value","bind","path"],Ht=e=>typeof e.path=="string"&&e.path!=="",Jt=e=>Ht(e)?K(e.path):null,vo=(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(Ht(e))return t.path(e.path);throw new Error("No value, path or bind specified")},Bn=e=>le(e)&&(e.value!==void 0||Ht(e)||typeof e.bind=="string"),zi=(e,t,r)=>{if(!r||!Object.hasOwn(r,e)){if(t===true)return null;throw new Error(`Missing binding for "${e}"`)}let o=r[e];return o===void 0?null:o},Vn=(e,t,r)=>{if(t===true)return null;throw new Error(`Unresolved binding '${e}' \u2014 resolve bindings (bindRule / bindLens) before compiling with ${r}().`)},Ye=(e,t,r,o)=>vo(e,{value:n=>n,bind:(n,i)=>zi(n,i,o),path:n=>ff(n,t,r)??null});var Df=e=>typeof e=="object"&&e!==null,Ji=e=>"if"in e||"then"in e||"else"in e,Qt=e=>"arrayOperator"in e||"aggregate"in e,Ff=e=>[...["all","any"].flatMap(t=>Array.isArray(e[t])?e[t].map((r,o)=>({key:t,index:o,child:r,nested:false})):[]),...Ji(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}]:[])],Xe=e=>"all"in e||"any"in e||Ji(e),ee=(e,t,r)=>{if(!Df(e))return;let o=e,n=t(o,r),i=n===void 0?r:n;for(let{child:a,nested:s}of Ff(o))s?i!==false&&ee(a,t,i):ee(a,t,r);},If=(e,t,r,o)=>{let n=false;return ee(e,(i,a)=>(!n&&t(i,a)&&(n=true),n?false:r?.(i,a)),o),n},At=(e,t,r)=>{if(!Df(e))return e;let o=r,n={...e},i=t.rewrite?t.rewrite(n,o):n,a=Ff(i),s=a.some(l=>l.nested)&&t.below?t.below(i,o):o;for(let l of ["all","any"])Array.isArray(i[l])&&(i[l]=[...i[l]]);for(let{key:l,index:p,child:d,nested:u}of a){if(u&&s===false)continue;let g=At(d,t,u?s:o);p===void 0?i[l]=g:i[l][p]=g;}let f=t.after?t.after(i,o):i;return f===i&&Ew(i,e)?e:f},Ew=(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((a,s)=>a===i[s])})},vw=(e,t)=>le(e)?Object.fromEntries(Object.entries(e).map(([r,o])=>[r,Bn(o)?t(o,Kt(r)?"whole":"number"):o])):e,Hi=(e,t)=>{let r=q(e)?ie(e):null;return r?In(vw(r[0],t),r[1]):e},qn=(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=>Hi(i,t)):Hi(e.value,t);o={...o,value:n};}if(Bn(e.offset)){let n=r?{...e.offset,...e.offset.value!==void 0&&{value:Hi(e.offset.value,t)}}:e.offset;o={...o,offset:t(n,r?"shift":"number")};}return Bn(o)&&(o=t(o,"value")),o},Ao=e=>{let t=[];return qn(e,(r,o)=>(t.push({source:r,role:o}),r)),t},Qi=e=>Ao(e).flatMap(({source:t,role:r})=>Ht(t)?[{ref:t.path,role:r}]:[]),Wn=e=>Qi(e).map(t=>t.ref),Un=e=>[...Array.isArray(e.orderBy)?e.orderBy.flatMap(t=>typeof t?.field=="string"?[t.field]:[]):[],...typeof e.aggregate?.field=="string"?[e.aggregate.field]:[]],H=e=>{let t=new Set;return "all"in e&&t.add("all"),"any"in e&&t.add("any"),Ji(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},I=e=>e.length===0?true:e.length===1?e[0]:{all:[...e]},et=e=>e.length===0?false:e.length===1?e[0]:{any:[...e]};var Aw=e=>Ao(e).flatMap(({source:t})=>typeof t.bind=="string"?[t]:[]),$o=(e,{required:t=false}={})=>{let r=new Set;return ee(e,o=>{for(let n of Aw(o))(!t||n.bindOptional!==true)&&r.add(n.bind);}),[...r].sort()},Zi=(e,t)=>{let r=o=>{if(typeof o.bind!="string"||!Object.hasOwn(t,o.bind))return o;let{bind:n,bindOptional:i,...a}=o;return {...a,value:zi(n,true,t)}};return At(e,{rewrite:o=>qn(qn(o,r),r)})};var jf=BigInt(Number.MAX_SAFE_INTEGER),Po=e=>{if(e>jf||e<-jf)throw new RangeError(`BigInt ${e} is outside the safe integer range (\xB12^53); json-rules compares BigInt as Int.`);return Number(e)},Yi=e=>typeof e=="bigint"?Po(e):typeof e=="string"&&e.trim()!==""&&Number.isFinite(Number(e))?Number(e):e,Gn=(e,t)=>{if(e==null)return null;let r=Yi(e);if(typeof r!="number"||!Number.isFinite(r))throw new Error(`${t} reads a number (got ${String(e)})`);return r},me=([e,t])=>t<e?[t,e]:[e,t],xe=(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]]},zr=(e,t)=>{let r=xe(e,t);if(!r.every(J))throw new Error(`${t} requires two ends that order \u2014 numbers, strings or dates (got ${JSON.stringify(e)})`);return r},Kn=e=>{if(!Array.isArray(e))throw new Error(`in / notIn requires a list (got ${JSON.stringify(e)})`);return e},tt=e=>{let t=Kn(e),r=t.filter(o=>o!==null);return {values:r,hasNull:r.length!==t.length}},J=e=>typeof e=="string"||typeof e=="number"||e instanceof Date;var Xi=(e,t)=>typeof e=="number"&&Number.isFinite(e)&&e>=0&&(!Kt(t)||Number.isInteger(e))?null:`${t} must be a non-negative${Kt(t)?" whole":""} number (got ${String(e)})`,ea=(e,t,r)=>{let o=typeof e=="number"?e:Gn(t(e),e.path?`'${e.path}' (${r})`:r),n=o===null?null:Xi(o,r);if(n===null)return o;if(typeof e!="number"&&Ht(e))return null;throw new Error(n)},Zt=(e,t)=>{let r={};for(let[o,n]of Object.entries(e)){if(n===void 0)continue;let i=ea(n,t,o);if(i===null)return null;r[o]=i;}return r},Le=(e,t)=>{let r=ie(e);if(!r)return e;let o=Zt(r[0],t);return o?In(o,r[1]):null};var Yt=(e,t)=>{if(e==null)return null;if(Array.isArray(e)){let o=e.map(n=>Yt(n,t));return o.some(n=>n===null)?null:o}let r=Yi(e);if(typeof r!="number"||!Number.isFinite(r))throw new Error(`offset needs a numeric comparison value (got ${String(e)})`);return r+t},Xt=e=>Gn(e,"an offset"),Hr=e=>{if(e==null)return null;let t=q(e)?ie(e):null;if(!t)throw new Error(`a date offset reads { ago } or { ahead } (got ${JSON.stringify(e)})`);return t};De__default.default.extend(xw__default.default);De__default.default.extend(Sw__default.default);De__default.default.extend(Pw__default.default);De__default.default.extend($w__default.default);var Bf=(e,t,r,o={},n)=>{let i=St(e.field,t),a=er(o,g=>Ye(g,t,r,n)),s=a.timeZone;if(i==null)return k.includes(e.dateOperator)?true:e.error||`${e.field} has no value`;let f=J(i)?$t(i,s):null;if(!f?.isValid())throw new Error(`${e.field} is not a valid date: ${String(i)}`);let l=g=>e.error||`${e.field} ${g}`;if(hf.includes(e.dateOperator)){let g=ta(Ye(e,t,r,n));if(g===null)return e.error||`${e.field} has no comparison value`;let m=g.includes(f.tz(s).day()),y=g.map(w=>qr[w]).join(" or ");return e.dateOperator===A.dayIn?m||l(`must be on ${y}`):!m||l(`must not be on ${y}`)}let p=Cw(e,t,r,a,s,n);if(p===null)return e.error||`${e.field} has no comparison value`;let[d,u=d]=p;switch(e.dateOperator){case A.before:return f.isBefore(d)||l(`must be before ${d.format()}`);case A.after:return f.isAfter(d)||l(`must be after ${d.format()}`);case A.onOrBefore:return f.isSameOrBefore(d)||l(`must be on or before ${d.format()}`);case A.onOrAfter:return f.isSameOrAfter(d)||l(`must be on or after ${d.format()}`);case A.within:return f.isSameOrAfter(d)&&f.isSameOrBefore(u)||l(`must be within ${d.format()} and ${u.format()}`);case A.notBefore:return f.isSameOrAfter(d)||l(`must not be before ${d.format()}`);case A.notAfter:return f.isSameOrBefore(d)||l(`must not be after ${d.format()}`);case A.notWithin:return f.isBefore(d)||f.isAfter(u)||l(`must not be within ${d.format()} and ${u.format()}`);case A.between:return f.isSameOrAfter(d)&&f.isSameOrBefore(u)||l(`must be between ${d.format()} and ${u.format()}`);case A.notBetween:return f.isBefore(d)||f.isAfter(u)||l(`must not be between ${d.format()} and ${u.format()}`);default:throw z(e.dateOperator,"date")}},Cw=(e,t,r,o,n,i)=>{let a=e.dateOperator,s=y=>Ye(y,t,r,i),f=Ye(e,t,r,i);if(f==null)return null;let l=e.offset===void 0?void 0:Hr(s(e.offset));if(l===null)return null;let p=y=>{if(l===void 0)return y;let w=Zt(l[0],s);return w&&vt(y,w,l[1],n)};if(bo.includes(a)){if(!q(f))throw we(a);let y=Le(f,s);return y&&Kr(y,o)}let d=(y,w)=>{if(y==null)return null;if(q(y)){let x=Le(y,s);return x&&Ki(x,o)}let S=$t(y,n);if(!S.isValid())throw new Error(`Invalid ${w}: ${String(y)}`);return S};if(wf.includes(a)){let[y,w]=xe(f,a),S=d(y,"start date"),x=d(w,"end date");if(!S||!x)return null;let[c,b]=me([S,x]),R=p(c),$=p(b);return R&&$?[R,$]:null}if(Array.isArray(f))throw new Error(`${a} operator requires a single date value`);let u=y=>{let w=Le(y,s);return w&&Gr(w,a,o)},g=q(f)?u(f):d(f,"comparison date");if(!g)return null;let m=p(g);return m&&[m]},er=(e,t)=>{let r=e.timeZone;if(r===void 0||typeof r=="string")return {...e,timeZone:r??Ze};if(Jt(r))throw new Error(`timeZone is one per evaluation; read it from context, not '${r.path}'`);let o=t(r);if(o!=null&&typeof o!="string")throw new Error(`timeZone reads a zone name (got ${String(o)})`);return {...e,timeZone:o??Ze}},_w=/\d{2}:\d{2}(?::\d{2}(?:\.\d+)?)?\s*(?:[zZ]|[+-]\d{2}(?::?\d{2})?)$/,Mw=e=>_w.test(e.trim())||/\b(?:GMT|UTC)\b/.test(e),$t=(e,t)=>{if(typeof e=="string"&&/^-?\d+$/.test(e.trim()))return De__default.default(Number(e));if(typeof e=="string"&&!Mw(e)){let r=De__default.default(e);return r.isValid()?De__default.default.tz(e,t):r}return typeof e=="string"?De__default.default(new Date(e.trim())):De__default.default(e)},zn=(e,t)=>{let r=J(e)?$t(e,t):De__default.default(Number.NaN);if(!r.isValid())throw new Error(`Invalid date value: ${String(e)}`);return r.toDate()},ta=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=qr.indexOf(String(t).toLowerCase());if(r===-1)throw new Error(`Unknown day name: ${String(t)}`);return r})};var Lw=e=>e<=3?0:e<=6?1:2,Dw=(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):Lw(t)},Vf=e=>e.split(/[^a-z0-9\p{L}]+/u).filter(Boolean),Fw=e=>/^\d+$/.test(e),Iw=(e,t,r)=>e===t?true:Math.abs(e.length-t.length)>r?false:fastestLevenshtein.distance(e,t)<=r,qf=(e,t,r={})=>{let o=t.trim().toLowerCase();if(!o)return true;let n=e.toLowerCase();if(n.includes(o))return true;let i=Vf(o);if(i.length===0)return false;let a=Vf(n);return a.length===0?false:i.every(s=>{let f=Dw(r,s.length);return f===0||Fw(s)?a.includes(s):a.some(l=>Iw(s,l,f))})};var Pt=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}`)}},Jr={d:"0-9",w:"0-9A-Za-z_",s:"\\t\\n\\f\\r "},Uf={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"},jw=/[\\^$.|?*+()[\]{}]/,ra=255,Gf=e=>e<=65535?`\\u${e.toString(16).padStart(4,"0")}`:`\\U${e.toString(16).padStart(8,"0")}`,Bw=e=>jw.test(e)?`\\${e}`:e,To=e=>{let t=a=>{throw new Error(`Refused pattern /${e}/: ${a} has no Postgres form`)},r="",o=0,n=()=>{/^([*+?]|\{\d)/.test(e.slice(o))&&t("a quantified anchor");},i=a=>{let s=e[o+1];if(o+=2,Object.hasOwn(Jr,s))return a?Jr[s]:`[${Jr[s]}]`;let f=s.toLowerCase();if(s!==f&&Object.hasOwn(Jr,f))return a&&t(`a negated class \\${s} inside brackets`),`[^${Jr[f]}]`;if(s==="p"||s==="P")return t("a Unicode class");if(s==="C")return t("\\C");if(s==="x"){let l=e[o]==="{",p=l?e.indexOf("}",o):o+2,d=e.slice(l?o+1:o,p);return o=l?p+1:p,Gf(Number.parseInt(d,16))}if(s>="0"&&s<="7"){let l=s;for(;l.length<3&&e[o]>="0"&&e[o]<="7";)l+=e[o++];return Gf(Number.parseInt(l,8))}if(!a&&(s==="b"||s==="B")){let l=`[${Jr.w}]`;return s==="b"?`(?:(?<=${l})(?!${l})|(?<!${l})(?=${l}))`:`(?:(?<=${l})(?=${l})|(?<!${l})(?!${l}))`}if(!a&&(s==="z"||s==="A"))return n(),s==="z"?"\\Z":"\\A";if(s==="Q"){let l=e.indexOf("\\E",o),p=e.slice(o,l===-1?void 0:l);return o=l===-1?e.length:l+2,[...p].map(a?d=>/[\\\]^-]/.test(d)?`\\${d}`:d:Bw).join("")}return `\\${s}`};for(;o<e.length;){let a=e[o];if(a==="\\")r+=i(false);else if(a===".")r+="[^\\n]",o++;else if(a==="("&&e[o+1]==="?"){let s=/^\(\?P?<[^>]+>/.exec(e.slice(o));s?(r+="(",o+=s[0].length):e[o+2]===":"?(r+="(?:",o+=3):t("a flag group");}else if(a==="{"){let s=/^\{(0|[1-9]\d*)(?:,(0|[1-9]\d*)?)?\}/.exec(e.slice(o));if(!s){r+="\\{",o++;continue}(Number(s[1])>ra||Number(s[2]??0)>ra)&&t(`a repeat count past ${ra}`),r+=s[0],o+=s[0].length;}else if(a==="["){r+="[",o++,e[o]==="^"&&(r+="^",o++),e[o]==="]"&&(r+="\\]",o++);let s=false,f=false,l=0;for(;o<e.length&&e[o]!=="]";){let p=f?null:/^\[:(\^?)([a-z]+):\]/.exec(e.slice(o)),d=!!p||/^\\[dswDSW]/.test(e.slice(o)),u=e[o]==="-"&&l>0&&e[o+1]!=="]"&&!f;p?(p[1]&&t(`a negated class [:^${p[2]}:]`),Object.hasOwn(Uf,p[2])||t(`the class [:${p[2]}:]`),r+=Uf[p[2]],o+=p[0].length):e[o]==="\\"?r+=i(true):u&&s?(r+="\\-",o++):(r+=e[o]==="["?"\\[":e[o],o++);let g=f;f=u&&!s,s=d||g,l++;}r+="]",o++;}else r+=a,o++,(a==="^"||a==="$")&&n();}return r},Kf=(e,t)=>{try{let{source:r}=Pt(e);return t==="toSql"&&To(r),null}catch(r){return r.message}};var zf=e=>e==null||e===""||Array.isArray(e)&&e.length===0,Fe=(e,t)=>{let r=t==null;return r&&(e.offset!==void 0||gf.includes(e.operator))?true:ce.includes(e.operator)?r||Array.isArray(t)&&t.some(o=>o==null):false},Zr=e=>Ot.includes(e.operator)||jr.includes(e.operator)&&e.value===null&&e.path===void 0&&e.bind===void 0,Jn=(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?et(o(h.equals)):I(o(h.notEquals))},rr=e=>typeof e=="string"?e.toLowerCase():Array.isArray(e)?e.map(rr):e,Hf=e=>typeof e=="bigint"?Po(e):Array.isArray(e)&&e.some(t=>typeof t=="bigint")?e.map(t=>typeof t=="bigint"?Po(t):t):e,Jf=(e,t,r)=>{if(e==null)return e;if(he.includes(t)){if(typeof e!="string"||e.trim()==="")return e;if(t==="BigInt"&&/^-?\d+$/.test(e.trim()))return Po(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=$t(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}},tr=(e,t,r=Ze)=>t===void 0?e:Array.isArray(e)?e.map(o=>Jf(o,t,r)):Jf(e,t,r),No=(e,t,r,o,n={},i)=>{let a=i?i.value:St(e.field,t)??null,s=e.coerceType??(a instanceof Date?"DateTime":void 0),f=s==="DateTime"?er(n,c=>Ye(c,t,r,o)).timeZone:Ze,l=tr(Hf(a),s,f),p=!Ot.includes(e.operator),d=p?Vw(tr(Hf(Ye(e,t,r,o)??null),s,f),e,t,r,o):void 0;if(p&&Fe(e,d))return k.includes(e.operator)&&l==null?true:e.error||`${e.field} has no comparison value`;let u=c=>e.error||`${e.field} ${c}${p?` ${JSON.stringify(d)}`:""}`,g=fe(e.caseInsensitive),m=c=>g?rr(c):c,y=m(l),w=m(d),S=xn(e.fuzzy),x=()=>S&&typeof l=="string"&&typeof d=="string"?qf(l,d,S):Array.isArray(l)?y.some(c=>Ut(c,w)):qw(y,w);switch(e.operator){case h.equals:return Ut(y,w)||u("must equal");case h.notEquals:return !Ut(y,w)||u("must not equal");case h.lessThan:return Hn(l,d,"lt")||u("must be less than");case h.lessThanEquals:return Hn(l,d,"lte")||u("must be less than or equal to");case h.greaterThan:return Hn(l,d,"gt")||u("must be greater than");case h.greaterThanEquals:return Hn(l,d,"gte")||u("must be greater than or equal to");case h.in:return Kn(w).some(c=>Ut(c,y))||u("must be one of");case h.notIn:return !Kn(w).some(c=>Ut(c,y))||u("must not be one of");case h.contains:return x()||u("must contain");case h.notContains:return !x()||u("must not contain");case h.matches:return Qf(l)&&Zf(d)&&Pt(d).re.test(l)||u("must match pattern");case h.notMatches:return !Qf(l)||!Zf(d)||!Pt(d).re.test(l)||u("must not match pattern");case h.between:{let c=Yf(d,e.operator);if(!ep(l,c))return u("must be between");let b=Qr(l),[R,$]=c;return b>=R&&b<=$||u("must be between")}case h.notBetween:{let c=Yf(d,e.operator);if(!ep(l,c))return true;let b=Qr(l),[R,$]=c;return b<R||b>$||u("must not be between")}case h.isEmpty:return zf(l)||u("must be empty");case h.notEmpty:return !zf(l)||u("must not be empty");case h.exists:return l!=null||u("must exist");case h.notExists:return l==null||u("must not exist");case h.startsWith:return typeof y=="string"&&typeof w=="string"&&y.startsWith(w)||u("must start with");case h.endsWith:return typeof y=="string"&&typeof w=="string"&&y.endsWith(w)||u("must end with");case h.notStartsWith:return !(typeof y=="string"&&typeof w=="string"&&y.startsWith(w))||u("must not start with");case h.notEndsWith:return !(typeof y=="string"&&typeof w=="string"&&y.endsWith(w))||u("must not end with");default:throw new Error("Unknown operator")}},Vw=(e,t,r,o,n)=>{if(t.offset===void 0)return e;let i=Xt(Ye(t.offset,r,o,n));return i===null?null:Yt(e,i)},Qr=e=>e instanceof Date?e.getTime():e,Hn=(e,t,r)=>{if(!Ww(e,t)||!J(t))return false;let o=Qr(e),n=Qr(t);switch(r){case "lt":return o<n;case "lte":return o<=n;case "gt":return o>n;case "gte":return o>=n}},Qf=e=>typeof e=="string",Zf=e=>typeof e=="string"||e instanceof RegExp,Yf=(e,t)=>me(zr(e,t).map(r=>Qr(r))),qw=(e,t)=>typeof e=="string"&&typeof t=="string"&&e.includes(t),Ww=(e,t)=>J(e)&&J(t)&&Xf(e)===Xf(t),Xf=e=>e instanceof Date?"date":typeof e,ep=(e,t)=>J(e)&&typeof Qr(e)==typeof t[0];var de=e=>e.filter!==void 0||!!e.orderBy?.length||e.take!==void 0||e.skip!==void 0,Uw=e=>{if(typeof e!="object"||e===null)return null;let t=e,r=H(t);return r!=="field"&&r!=="date"||typeof t.field!="string"?null:{op:String(r==="date"?t.dateOperator:t.operator),field:t.field}},Gw=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===O.all?o="all":(e.arrayOperator===O.any||e.arrayOperator===O.atLeast&&e.count===1)&&(o="any"),!o)return null;let n=Uw(e.condition);if(!n||n.field!==t)return null;let i=Tn.includes(n.op),a=vf.includes(n.op);if(!i&&!a)return null;let s=r==="desc";if(!(o==="all"?s&&i||!s&&a:s&&a||!s&&i))return null;let{orderBy:l,take:p,skip:d,count:u,...g}=e;if(o==="any")return {...g,arrayOperator:O.any};let m={field:t,operator:h.exists};return {any:[{field:e.field,arrayOperator:O.empty},{all:[{field:e.field,arrayOperator:O.any,condition:m},{...g,arrayOperator:O.all,condition:{if:m,then:e.condition}}]}]}},oa=(e,t,r)=>{let o=e;if(t.filter!==void 0&&r&&(o=o.filter(r)),t.orderBy?.length){let n=t.orderBy;o=[...o].sort((i,a)=>{for(let{field:s,dir:f}of n){let l=Kw(X(i,s),X(a,s),f);if(l!==0)return l}return 0});}return t.skip!==void 0&&(o=o.slice(t.skip)),t.take!==void 0&&(o=o.slice(0,t.take)),o},Kw=(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,a=t instanceof Date?t.getTime():t,s=i<a?-1:i>a?1:0;return r==="asc"?s:-s},Yr=e=>{if(!de(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:I([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:I([r,e.condition])}}}return "aggregate"in e||e.filter!==void 0?null:Gw(e)};var zw=e=>ee(e,t=>{let r=H(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)")}}),rt=(e,t,r)=>(Array.isArray(t)&&zw(e),Ie(e,t,{...r,context:r?.context??t,scopes:[t]})),Ie=(e,t,r)=>{if(typeof e=="boolean")return e;let o=e;switch(H(e)){case "all":return Hw(o.all,t,r,o.error);case "any":return Jw(o.any,t,r,o.error);case "if":return Qw(o,t,r);case "array":return Yw(o,r);case "aggregate":return Zw(o,r);case "date":return Bf(o,r.scopes,r.context,r,r.bindings);case "field":return No(o,r.scopes,r.context,r.bindings,r);default:throw Me()}},Qn=(e,t)=>({...e,scopes:[...e.scopes,t]}),Hw=(e,t,r,o)=>{let n=[];for(let i of e){let a=Ie(i,t,r);a!==true&&(typeof a=="string"?n.push(a):n.push("false"));}return n.length?o||(n.length===1?n[0]:`All conditions must pass: ${n.join(" AND ")}`):true},Jw=(e,t,r,o)=>{let n=[];for(let i of e){let a=Ie(i,t,r);if(a===true)return true;typeof a=="string"&&n.push(a);}return o||(n.length===1?n[0]:`At least one condition must pass: ${n.join(" OR ")}`)},Qw=(e,t,r)=>Ie(e.if,t,r)===true?Ie(e.then,t,r):e.else!==void 0?Ie(e.else,t,r):true,tp=(e,t)=>{if(e==null)return [];if(!Array.isArray(e))throw new Error(`${t} must be an array`);return e},Zw=(e,t)=>{let r=tp(St(e.field,t.scopes),e.field),o=e.filter,n=oa(r,e,o?g=>Ie(o,g,Qn(t,g))===true:void 0),{mode:i,field:a}=e.aggregate;if(!_e.includes(i))throw Et(i);let s=e.condition,l=(s?n.filter(g=>Ie(s,g,Qn(t,g))===true):n).flatMap((g,m)=>{let y=a?X(g,a):g;if(y==null)return [];if(typeof y!="number"||!Number.isFinite(y)){let w=`${e.field}[${m}]${a?`.${a}`:""}`;throw new Error(`${w} must be a finite number`)}return [y]}),p=l.reduce((g,m)=>g+m,0),d=i==="sum"||l.length===0?p:p/l.length,u={...e,field:`${e.field} ${i}`};return No(u,t.scopes,t.context,t.bindings,t,{value:d})},Yw=(e,t)=>{let r=tp(e.field?St(e.field,t.scopes):t.scopes[t.scopes.length-1],e.field||"(root)"),o=e.filter,n=oa(r,e,o?d=>Ie(o,d,Qn(t,d))===true:void 0),i=d=>e.error||`${e.field} ${d}`,a=e.condition,s=bf.includes(e.arrayOperator);if(s&&a===void 0)throw Se(e.arrayOperator);let f=e.count??0;if(Pn.includes(e.arrayOperator)&&e.count===void 0)throw Wr(e.arrayOperator);let l=0,p=0;if(s&&a!==void 0){if(n.length>0&&!ji(n,D))return i("contains only primitive values; use 'in' or 'contains' instead of array operators on primitive arrays");let d=n.map(u=>Ie(a,u,Qn(t,u)));l=d.filter(u=>u===true).length,p=d.filter(u=>typeof u=="string").length;}switch(e.arrayOperator){case O.empty:return !n.length||i("must be empty");case O.notEmpty:return !!n.length||i("must not be empty");case O.all:return l===n.length||i(`all elements must match (${p} failed)`);case O.any:return !!l||i("at least one element must match");case O.none:return !l||i(`no elements should match (${l} matched)`);case O.atLeast:return l>=f||i(`at least ${f} elements must match (${l} matched)`);case O.atMost:return l<=f||i(`at most ${f} elements must match (${l} matched)`);case O.exactly:return l===f||i(`exactly ${f} elements must match (${l} matched)`);default:throw z(e.arrayOperator,"array")}};var E=(e,t)=>e!==void 0&&Object.hasOwn(e,t)?e[t]:void 0,Zn=(e,t,r)=>(Object.hasOwn(e,t)||(e[t]=r()),e[t]),j=(e,t)=>E(e?.models,t),be=(e,t,r)=>E(j(e,t)?.fields,r);var Oe=({fieldMap:e,model:t})=>`${e}:${t}`,rp=(e,t)=>{let r=e.indexOf(":");return r===-1?{mapName:t,modelName:e}:{mapName:e.slice(0,r),modelName:e.slice(r+1)}};var op=(e,t,r,o)=>{let n={};for(let i of e){let a=E(i,t);if(a==null)continue;let s=String(a);if(Object.hasOwn(n,s)){let f=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 '${s}' on '${r}' \u2014 ${f}.`)}n[s]=i;}return n},Xw=(e,t)=>{let r={};for(let o of e){let n=E(o,t);n!=null&&Zn(r,String(n),()=>[]).push(o);}return r},np=(e,t)=>{let r={};for(let o of e.bridges??[]){let[n,i]=o.endpoints,a=Oe(n),s=Oe(i),f=o.cardinality==="oneToMany"?"one":"oneToOne",l=(u,g)=>Zn(Zn(r,u,()=>({})),g,()=>({})),p=E(t,a);p&&(l(n.fieldMap,n.model)[n.on]=op(p,n.on,a,f));let d=E(t,s);d&&(o.cardinality==="oneToMany"?l(i.fieldMap,i.model)[i.on]=Xw(d,i.on):l(i.fieldMap,i.model)[i.on]=op(d,i.on,s,"oneToOne"));}return r};var Yn=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=Oe(o),a=Oe(n),s=j(E(t.maps,o.fieldMap),o.model),f=j(E(t.maps,n.fieldMap),n.model);if(!s)throw new Error(`stitchFieldMaps: endpoint '${i}' not found`);if(!f)throw new Error(`stitchFieldMaps: endpoint '${a}' not found`);if(o.fieldMap===n.fieldMap&&o.model===n.model)throw new Error(`stitchFieldMaps: self-bridge '${i}' to itself is not supported`);if(!E(s.fields,o.on))throw new Error(`stitchFieldMaps: endpoint '${i}' has no field '${o.on}' for join`);if(!E(f.fields,n.on))throw new Error(`stitchFieldMaps: endpoint '${a}' has no field '${n.on}' for join`);if(E(s.fields,a))throw new Error(`stitchFieldMaps: bridge '${a}' already injected on '${i}'`);if(E(f.fields,i))throw new Error(`stitchFieldMaps: bridge '${i}' already injected on '${a}'`);let l=r.cardinality==="oneToMany";s.fields[a]={kind:"bridge",type:a,isList:l},f.fields[i]={kind:"bridge",type:i,isList:false};}return t};var or=e=>({ok:e.length===0,errors:e}),Co=(e,t)=>{if(!e.ok)throw new Error(`${t}:
|
|
1
|
+
'use strict';var Be=require('dayjs'),Vw=require('dayjs/plugin/isoWeek.js'),qw=require('dayjs/plugin/quarterOfYear.js'),Ww=require('dayjs/plugin/timezone.js'),Uw=require('dayjs/plugin/utc.js'),Zw=require('dayjs/plugin/isSameOrAfter.js'),Yw=require('dayjs/plugin/isSameOrBefore.js'),fastestLevenshtein=require('fastest-levenshtein'),re2js=require('re2js'),module$1=require('module');var _documentCurrentScript=typeof document!=='undefined'?document.currentScript:null;function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var Be__default=/*#__PURE__*/_interopDefault(Be);var Vw__default=/*#__PURE__*/_interopDefault(Vw);var qw__default=/*#__PURE__*/_interopDefault(qw);var Ww__default=/*#__PURE__*/_interopDefault(Ww);var Uw__default=/*#__PURE__*/_interopDefault(Uw);var Zw__default=/*#__PURE__*/_interopDefault(Zw);var Yw__default=/*#__PURE__*/_interopDefault(Yw);var Li=(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 gu=typeof global=="object"&&global&&global.Object===Object&&global,Ho=gu;var yu=typeof self=="object"&&self&&self.Object===Object&&self,hu=Ho||yu||Function("return this")(),W=hu;var wu=W.Symbol,ee=wu;var Gs=Object.prototype,Su=Gs.hasOwnProperty,bu=Gs.toString,wo=ee?ee.toStringTag:void 0;function xu(e){var t=Su.call(e,wo),r=e[wo];try{e[wo]=void 0;var o=!0;}catch{}var n=bu.call(e);return o&&(t?e[wo]=r:delete e[wo]),n}var Ks=xu;var Ou=Object.prototype,Ru=Ou.toString;function Eu(e){return Ru.call(e)}var zs=Eu;var vu="[object Null]",Au="[object Undefined]",Hs=ee?ee.toStringTag:void 0;function $u(e){return e==null?e===void 0?Au:vu:Hs&&Hs in Object(e)?Ks(e):zs(e)}var le=$u;function Pu(e){return e!=null&&typeof e=="object"}var K=Pu;var Tu="[object Symbol]";function Nu(e){return typeof e=="symbol"||K(e)&&le(e)==Tu}var hr=Nu;function Cu(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 Js=Cu;var Mu=Array.isArray,F=Mu;var Qs=ee?ee.prototype:void 0,Zs=Qs?Qs.toString:void 0;function Ys(e){if(typeof e=="string")return e;if(F(e))return Js(e,Ys)+"";if(hr(e))return Zs?Zs.call(e):"";var t=e+"";return t=="0"&&1/e==-Infinity?"-0":t}var Xs=Ys;function Lu(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var j=Lu;function ku(e){return e}var wr=ku;var Du="[object AsyncFunction]",Fu="[object Function]",ju="[object GeneratorFunction]",Iu="[object Proxy]";function Bu(e){if(!j(e))return false;var t=le(e);return t==Fu||t==ju||t==Du||t==Iu}var Sr=Bu;var Vu=W["__core-js_shared__"],Jo=Vu;var ea=(function(){var e=/[^.]+$/.exec(Jo&&Jo.keys&&Jo.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""})();function qu(e){return !!ea&&ea in e}var ta=qu;var Wu=Function.prototype,Uu=Wu.toString;function Gu(e){if(e!=null){try{return Uu.call(e)}catch{}try{return e+""}catch{}}return ""}var Qe=Gu;var Ku=/[\\^$.*+?()[\]{}|]/g,zu=/^\[object .+?Constructor\]$/,Hu=Function.prototype,Ju=Object.prototype,Qu=Hu.toString,Zu=Ju.hasOwnProperty,Yu=RegExp("^"+Qu.call(Zu).replace(Ku,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Xu(e){if(!j(e)||ta(e))return false;var t=Sr(e)?Yu:zu;return t.test(Qe(e))}var ra=Xu;function ec(e,t){return e?.[t]}var oa=ec;function tc(e,t){var r=oa(e,t);return ra(r)?r:void 0}var ne=tc;var rc=ne(W,"WeakMap"),Qo=rc;var na=Object.create,oc=(function(){function e(){}return function(t){if(!j(t))return {};if(na)return na(t);e.prototype=t;var r=new e;return e.prototype=void 0,r}})(),ia=oc;function nc(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 sa=nc;function ic(e,t){var r=-1,o=e.length;for(t||(t=Array(o));++r<o;)t[r]=e[r];return t}var Zo=ic;var sc=800,ac=16,lc=Date.now;function pc(e){var t=0,r=0;return function(){var o=lc(),n=ac-(o-r);if(r=o,n>0){if(++t>=sc)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}var aa=pc;function fc(e){return function(){return e}}var la=fc;var dc=(function(){try{var e=ne(Object,"defineProperty");return e({},"",{}),e}catch{}})(),br=dc;var uc=br?function(e,t){return br(e,"toString",{configurable:true,enumerable:false,value:la(t),writable:true})}:wr,pa=uc;var cc=aa(pa),fa=cc;function mc(e,t){for(var r=-1,o=e==null?0:e.length;++r<o&&t(e[r],r,e)!==false;);return e}var da=mc;var gc=9007199254740991,yc=/^(?:0|[1-9]\d*)$/;function hc(e,t){var r=typeof e;return t=t??gc,!!t&&(r=="number"||r!="symbol"&&yc.test(e))&&e>-1&&e%1==0&&e<t}var wt=hc;function wc(e,t,r){t=="__proto__"&&br?br(e,t,{configurable:true,enumerable:true,value:r,writable:true}):e[t]=r;}var xr=wc;function Sc(e,t){return e===t||e!==e&&t!==t}var Te=Sc;var bc=Object.prototype,xc=bc.hasOwnProperty;function Oc(e,t,r){var o=e[t];(!(xc.call(e,t)&&Te(o,r))||r===void 0&&!(t in e))&&xr(e,t,r);}var Or=Oc;function Rc(e,t,r,o){var n=!r;r||(r={});for(var i=-1,s=t.length;++i<s;){var a=t[i],p=o?o(r[a],e[a],a,r,e):void 0;p===void 0&&(p=e[a]),n?xr(r,a,p):Or(r,a,p);}return r}var Ne=Rc;var ua=Math.max;function Ec(e,t,r){return t=ua(t===void 0?e.length-1:t,0),function(){for(var o=arguments,n=-1,i=ua(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),sa(e,this,a)}}var ca=Ec;function vc(e,t){return fa(ca(e,t,wr),e+"")}var ma=vc;var Ac=9007199254740991;function $c(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=Ac}var Rr=$c;function Pc(e){return e!=null&&Rr(e.length)&&!Sr(e)}var Ce=Pc;function Tc(e,t,r){if(!j(r))return false;var o=typeof t;return (o=="number"?Ce(r)&&wt(t,r.length):o=="string"&&t in r)?Te(r[t],e):false}var Yo=Tc;function Nc(e){return ma(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&&Yo(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 ga=Nc;var Cc=Object.prototype;function Mc(e){var t=e&&e.constructor,r=typeof t=="function"&&t.prototype||Cc;return e===r}var Er=Mc;function _c(e,t){for(var r=-1,o=Array(e);++r<e;)o[r]=t(r);return o}var ya=_c;var Lc="[object Arguments]";function kc(e){return K(e)&&le(e)==Lc}var ki=kc;var ha=Object.prototype,Dc=ha.hasOwnProperty,Fc=ha.propertyIsEnumerable,jc=ki((function(){return arguments})())?ki:function(e){return K(e)&&Dc.call(e,"callee")&&!Fc.call(e,"callee")},Kt=jc;function Ic(){return false}var wa=Ic;var xa=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Sa=xa&&typeof module=="object"&&module&&!module.nodeType&&module,Bc=Sa&&Sa.exports===xa,ba=Bc?W.Buffer:void 0,Vc=ba?ba.isBuffer:void 0,qc=Vc||wa,Ze=qc;var Wc="[object Arguments]",Uc="[object Array]",Gc="[object Boolean]",Kc="[object Date]",zc="[object Error]",Hc="[object Function]",Jc="[object Map]",Qc="[object Number]",Zc="[object Object]",Yc="[object RegExp]",Xc="[object Set]",em="[object String]",tm="[object WeakMap]",rm="[object ArrayBuffer]",om="[object DataView]",nm="[object Float32Array]",im="[object Float64Array]",sm="[object Int8Array]",am="[object Int16Array]",lm="[object Int32Array]",pm="[object Uint8Array]",fm="[object Uint8ClampedArray]",dm="[object Uint16Array]",um="[object Uint32Array]",L={};L[nm]=L[im]=L[sm]=L[am]=L[lm]=L[pm]=L[fm]=L[dm]=L[um]=true;L[Wc]=L[Uc]=L[rm]=L[Gc]=L[om]=L[Kc]=L[zc]=L[Hc]=L[Jc]=L[Qc]=L[Zc]=L[Yc]=L[Xc]=L[em]=L[tm]=false;function cm(e){return K(e)&&Rr(e.length)&&!!L[le(e)]}var Oa=cm;function mm(e){return function(t){return e(t)}}var vr=mm;var Ra=typeof exports=="object"&&exports&&!exports.nodeType&&exports,So=Ra&&typeof module=="object"&&module&&!module.nodeType&&module,gm=So&&So.exports===Ra,Di=gm&&Ho.process,ym=(function(){try{var e=So&&So.require&&So.require("util").types;return e||Di&&Di.binding&&Di.binding("util")}catch{}})(),Ye=ym;var Ea=Ye&&Ye.isTypedArray,hm=Ea?vr(Ea):Oa,Ar=hm;var wm=Object.prototype,Sm=wm.hasOwnProperty;function bm(e,t){var r=F(e),o=!r&&Kt(e),n=!r&&!o&&Ze(e),i=!r&&!o&&!n&&Ar(e),s=r||o||n||i,a=s?ya(e.length,String):[],p=a.length;for(var l in e)(t||Sm.call(e,l))&&!(s&&(l=="length"||n&&(l=="offset"||l=="parent")||i&&(l=="buffer"||l=="byteLength"||l=="byteOffset")||wt(l,p)))&&a.push(l);return a}var Xo=bm;function xm(e,t){return function(r){return e(t(r))}}var en=xm;var Om=en(Object.keys,Object),va=Om;var Rm=Object.prototype,Em=Rm.hasOwnProperty;function vm(e){if(!Er(e))return va(e);var t=[];for(var r in Object(e))Em.call(e,r)&&r!="constructor"&&t.push(r);return t}var Aa=vm;function Am(e){return Ce(e)?Xo(e):Aa(e)}var Me=Am;function $m(e){var t=[];if(e!=null)for(var r in Object(e))t.push(r);return t}var $a=$m;var Pm=Object.prototype,Tm=Pm.hasOwnProperty;function Nm(e){if(!j(e))return $a(e);var t=Er(e),r=[];for(var o in e)o=="constructor"&&(t||!Tm.call(e,o))||r.push(o);return r}var Pa=Nm;function Cm(e){return Ce(e)?Xo(e,true):Pa(e)}var _e=Cm;var Mm=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,_m=/^\w*$/;function Lm(e,t){if(F(e))return false;var r=typeof e;return r=="number"||r=="symbol"||r=="boolean"||e==null||hr(e)?true:_m.test(e)||!Mm.test(e)||t!=null&&e in Object(t)}var $r=Lm;var km=ne(Object,"create"),Xe=km;function Dm(){this.__data__=Xe?Xe(null):{},this.size=0;}var Ta=Dm;function Fm(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var Na=Fm;var jm="__lodash_hash_undefined__",Im=Object.prototype,Bm=Im.hasOwnProperty;function Vm(e){var t=this.__data__;if(Xe){var r=t[e];return r===jm?void 0:r}return Bm.call(t,e)?t[e]:void 0}var Ca=Vm;var qm=Object.prototype,Wm=qm.hasOwnProperty;function Um(e){var t=this.__data__;return Xe?t[e]!==void 0:Wm.call(t,e)}var Ma=Um;var Gm="__lodash_hash_undefined__";function Km(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=Xe&&t===void 0?Gm:t,this}var _a=Km;function Pr(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]);}}Pr.prototype.clear=Ta;Pr.prototype.delete=Na;Pr.prototype.get=Ca;Pr.prototype.has=Ma;Pr.prototype.set=_a;var Fi=Pr;function zm(){this.__data__=[],this.size=0;}var La=zm;function Hm(e,t){for(var r=e.length;r--;)if(Te(e[r][0],t))return r;return -1}var St=Hm;var Jm=Array.prototype,Qm=Jm.splice;function Zm(e){var t=this.__data__,r=St(t,e);if(r<0)return false;var o=t.length-1;return r==o?t.pop():Qm.call(t,r,1),--this.size,true}var ka=Zm;function Ym(e){var t=this.__data__,r=St(t,e);return r<0?void 0:t[r][1]}var Da=Ym;function Xm(e){return St(this.__data__,e)>-1}var Fa=Xm;function eg(e,t){var r=this.__data__,o=St(r,e);return o<0?(++this.size,r.push([e,t])):r[o][1]=t,this}var ja=eg;function Tr(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]);}}Tr.prototype.clear=La;Tr.prototype.delete=ka;Tr.prototype.get=Da;Tr.prototype.has=Fa;Tr.prototype.set=ja;var bt=Tr;var tg=ne(W,"Map"),xt=tg;function rg(){this.size=0,this.__data__={hash:new Fi,map:new(xt||bt),string:new Fi};}var Ia=rg;function og(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var Ba=og;function ng(e,t){var r=e.__data__;return Ba(t)?r[typeof t=="string"?"string":"hash"]:r.map}var Ot=ng;function ig(e){var t=Ot(this,e).delete(e);return this.size-=t?1:0,t}var Va=ig;function sg(e){return Ot(this,e).get(e)}var qa=sg;function ag(e){return Ot(this,e).has(e)}var Wa=ag;function lg(e,t){var r=Ot(this,e),o=r.size;return r.set(e,t),this.size+=r.size==o?0:1,this}var Ua=lg;function Nr(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]);}}Nr.prototype.clear=Ia;Nr.prototype.delete=Va;Nr.prototype.get=qa;Nr.prototype.has=Wa;Nr.prototype.set=Ua;var zt=Nr;var pg="Expected a function";function ji(e,t){if(typeof e!="function"||t!=null&&typeof t!="function")throw new TypeError(pg);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(ji.Cache||zt),r}ji.Cache=zt;var Ga=ji;var fg=500;function dg(e){var t=Ga(e,function(o){return r.size===fg&&r.clear(),o}),r=t.cache;return t}var Ka=dg;var ug=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,cg=/\\(\\)?/g,mg=Ka(function(e){var t=[];return e.charCodeAt(0)===46&&t.push(""),e.replace(ug,function(r,o,n,i){t.push(n?i.replace(cg,"$1"):o||r);}),t}),za=mg;function gg(e){return e==null?"":Xs(e)}var Ha=gg;function yg(e,t){return F(e)?e:$r(e,t)?[e]:za(Ha(e))}var Cr=yg;function wg(e){if(typeof e=="string"||hr(e))return e;var t=e+"";return t=="0"&&1/e==-Infinity?"-0":t}var Le=wg;function Sg(e,t){t=Cr(t,e);for(var r=0,o=t.length;e!=null&&r<o;)e=e[Le(t[r++])];return r&&r==o?e:void 0}var tn=Sg;function bg(e,t,r){var o=e==null?void 0:tn(e,t);return o===void 0?r:o}var Ja=bg;function xg(e,t){for(var r=-1,o=t.length,n=e.length;++r<o;)e[n+r]=t[r];return e}var rn=xg;var Og=en(Object.getPrototypeOf,Object),Mr=Og;var Rg="[object Object]",Eg=Function.prototype,vg=Object.prototype,Qa=Eg.toString,Ag=vg.hasOwnProperty,$g=Qa.call(Object);function Pg(e){if(!K(e)||le(e)!=Rg)return false;var t=Mr(e);if(t===null)return true;var r=Ag.call(t,"constructor")&&t.constructor;return typeof r=="function"&&r instanceof r&&Qa.call(r)==$g}var pe=Pg;function Tg(){this.__data__=new bt,this.size=0;}var Za=Tg;function Ng(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var Ya=Ng;function Cg(e){return this.__data__.get(e)}var Xa=Cg;function Mg(e){return this.__data__.has(e)}var el=Mg;var _g=200;function Lg(e,t){var r=this.__data__;if(r instanceof bt){var o=r.__data__;if(!xt||o.length<_g-1)return o.push([e,t]),this.size=++r.size,this;r=this.__data__=new zt(o);}return r.set(e,t),this.size=r.size,this}var tl=Lg;function _r(e){var t=this.__data__=new bt(e);this.size=t.size;}_r.prototype.clear=Za;_r.prototype.delete=Ya;_r.prototype.get=Xa;_r.prototype.has=el;_r.prototype.set=tl;var ke=_r;function kg(e,t){return e&&Ne(t,Me(t),e)}var rl=kg;function Dg(e,t){return e&&Ne(t,_e(t),e)}var ol=Dg;var al=typeof exports=="object"&&exports&&!exports.nodeType&&exports,nl=al&&typeof module=="object"&&module&&!module.nodeType&&module,Fg=nl&&nl.exports===al,il=Fg?W.Buffer:void 0,sl=il?il.allocUnsafe:void 0;function jg(e,t){if(t)return e.slice();var r=e.length,o=sl?sl(r):new e.constructor(r);return e.copy(o),o}var on=jg;function Ig(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 ll=Ig;function Bg(){return []}var nn=Bg;var Vg=Object.prototype,qg=Vg.propertyIsEnumerable,pl=Object.getOwnPropertySymbols,Wg=pl?function(e){return e==null?[]:(e=Object(e),ll(pl(e),function(t){return qg.call(e,t)}))}:nn,Lr=Wg;function Ug(e,t){return Ne(e,Lr(e),t)}var fl=Ug;var Gg=Object.getOwnPropertySymbols,Kg=Gg?function(e){for(var t=[];e;)rn(t,Lr(e)),e=Mr(e);return t}:nn,sn=Kg;function zg(e,t){return Ne(e,sn(e),t)}var dl=zg;function Hg(e,t,r){var o=t(e);return F(e)?o:rn(o,r(e))}var an=Hg;function Jg(e){return an(e,Me,Lr)}var bo=Jg;function Qg(e){return an(e,_e,sn)}var ul=Qg;var Zg=ne(W,"DataView"),ln=Zg;var Yg=ne(W,"Promise"),pn=Yg;var Xg=ne(W,"Set"),fn=Xg;var cl="[object Map]",ey="[object Object]",ml="[object Promise]",gl="[object Set]",yl="[object WeakMap]",hl="[object DataView]",ty=Qe(ln),ry=Qe(xt),oy=Qe(pn),ny=Qe(fn),iy=Qe(Qo),Ht=le;(ln&&Ht(new ln(new ArrayBuffer(1)))!=hl||xt&&Ht(new xt)!=cl||pn&&Ht(pn.resolve())!=ml||fn&&Ht(new fn)!=gl||Qo&&Ht(new Qo)!=yl)&&(Ht=function(e){var t=le(e),r=t==ey?e.constructor:void 0,o=r?Qe(r):"";if(o)switch(o){case ty:return hl;case ry:return cl;case oy:return ml;case ny:return gl;case iy:return yl}return t});var et=Ht;var sy=Object.prototype,ay=sy.hasOwnProperty;function ly(e){var t=e.length,r=new e.constructor(t);return t&&typeof e[0]=="string"&&ay.call(e,"index")&&(r.index=e.index,r.input=e.input),r}var wl=ly;var py=W.Uint8Array,kr=py;function fy(e){var t=new e.constructor(e.byteLength);return new kr(t).set(new kr(e)),t}var Dr=fy;function dy(e,t){var r=t?Dr(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.byteLength)}var Sl=dy;var uy=/\w*$/;function cy(e){var t=new e.constructor(e.source,uy.exec(e));return t.lastIndex=e.lastIndex,t}var bl=cy;var xl=ee?ee.prototype:void 0,Ol=xl?xl.valueOf:void 0;function my(e){return Ol?Object(Ol.call(e)):{}}var Rl=my;function gy(e,t){var r=t?Dr(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.length)}var dn=gy;var yy="[object Boolean]",hy="[object Date]",wy="[object Map]",Sy="[object Number]",by="[object RegExp]",xy="[object Set]",Oy="[object String]",Ry="[object Symbol]",Ey="[object ArrayBuffer]",vy="[object DataView]",Ay="[object Float32Array]",$y="[object Float64Array]",Py="[object Int8Array]",Ty="[object Int16Array]",Ny="[object Int32Array]",Cy="[object Uint8Array]",My="[object Uint8ClampedArray]",_y="[object Uint16Array]",Ly="[object Uint32Array]";function ky(e,t,r){var o=e.constructor;switch(t){case Ey:return Dr(e);case yy:case hy:return new o(+e);case vy:return Sl(e,r);case Ay:case $y:case Py:case Ty:case Ny:case Cy:case My:case _y:case Ly:return dn(e,r);case wy:return new o;case Sy:case Oy:return new o(e);case by:return bl(e);case xy:return new o;case Ry:return Rl(e)}}var El=ky;function Dy(e){return typeof e.constructor=="function"&&!Er(e)?ia(Mr(e)):{}}var un=Dy;var Fy="[object Map]";function jy(e){return K(e)&&et(e)==Fy}var vl=jy;var Al=Ye&&Ye.isMap,Iy=Al?vr(Al):vl,$l=Iy;var By="[object Set]";function Vy(e){return K(e)&&et(e)==By}var Pl=Vy;var Tl=Ye&&Ye.isSet,qy=Tl?vr(Tl):Pl,Nl=qy;var Wy=1,Uy=2,Gy=4,Cl="[object Arguments]",Ky="[object Array]",zy="[object Boolean]",Hy="[object Date]",Jy="[object Error]",Ml="[object Function]",Qy="[object GeneratorFunction]",Zy="[object Map]",Yy="[object Number]",_l="[object Object]",Xy="[object RegExp]",eh="[object Set]",th="[object String]",rh="[object Symbol]",oh="[object WeakMap]",nh="[object ArrayBuffer]",ih="[object DataView]",sh="[object Float32Array]",ah="[object Float64Array]",lh="[object Int8Array]",ph="[object Int16Array]",fh="[object Int32Array]",dh="[object Uint8Array]",uh="[object Uint8ClampedArray]",ch="[object Uint16Array]",mh="[object Uint32Array]",M={};M[Cl]=M[Ky]=M[nh]=M[ih]=M[zy]=M[Hy]=M[sh]=M[ah]=M[lh]=M[ph]=M[fh]=M[Zy]=M[Yy]=M[_l]=M[Xy]=M[eh]=M[th]=M[rh]=M[dh]=M[uh]=M[ch]=M[mh]=true;M[Jy]=M[Ml]=M[oh]=false;function cn(e,t,r,o,n,i){var s,a=t&Wy,p=t&Uy,l=t&Gy;if(r&&(s=n?r(e,o,n,i):r(e)),s!==void 0)return s;if(!j(e))return e;var f=F(e);if(f){if(s=wl(e),!a)return Zo(e,s)}else {var d=et(e),u=d==Ml||d==Qy;if(Ze(e))return on(e,a);if(d==_l||d==Cl||u&&!n){if(s=p||u?{}:un(e),!a)return p?dl(e,ol(s,e)):fl(e,rl(s,e))}else {if(!M[d])return n?e:{};s=El(e,d,a);}}i||(i=new ke);var g=i.get(e);if(g)return g;i.set(e,s),Nl(e)?e.forEach(function(S){s.add(cn(S,t,r,S,e,i));}):$l(e)&&e.forEach(function(S,b){s.set(b,cn(S,t,r,b,e,i));});var y=l?p?ul:bo:p?_e:Me,m=f?void 0:y(e);return da(m||e,function(S,b){m&&(b=S,S=e[b]),Or(s,b,cn(S,t,r,b,e,i));}),s}var mn=cn;var gh=1,yh=4;function hh(e){return mn(e,gh|yh)}var gn=hh;var wh=1,Sh=4;function bh(e,t){return t=typeof t=="function"?t:void 0,mn(e,wh|Sh,t)}var Ii=bh;var xh="__lodash_hash_undefined__";function Oh(e){return this.__data__.set(e,xh),this}var Ll=Oh;function Rh(e){return this.__data__.has(e)}var kl=Rh;function yn(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new zt;++t<r;)this.add(e[t]);}yn.prototype.add=yn.prototype.push=Ll;yn.prototype.has=kl;var Dl=yn;function Eh(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 hn=Eh;function vh(e,t){return e.has(t)}var Fl=vh;var Ah=1,$h=2;function Ph(e,t,r,o,n,i){var s=r&Ah,a=e.length,p=t.length;if(a!=p&&!(s&&p>a))return false;var l=i.get(e),f=i.get(t);if(l&&f)return l==t&&f==e;var d=-1,u=true,g=r&$h?new Dl:void 0;for(i.set(e,t),i.set(t,e);++d<a;){var y=e[d],m=t[d];if(o)var S=s?o(m,y,d,t,e,i):o(y,m,d,e,t,i);if(S!==void 0){if(S)continue;u=false;break}if(g){if(!hn(t,function(b,w){if(!Fl(g,w)&&(y===b||n(y,b,r,o,i)))return g.push(w)})){u=false;break}}else if(!(y===m||n(y,m,r,o,i))){u=false;break}}return i.delete(e),i.delete(t),u}var wn=Ph;function Th(e){var t=-1,r=Array(e.size);return e.forEach(function(o,n){r[++t]=[n,o];}),r}var jl=Th;function Nh(e){var t=-1,r=Array(e.size);return e.forEach(function(o){r[++t]=o;}),r}var Il=Nh;var Ch=1,Mh=2,_h="[object Boolean]",Lh="[object Date]",kh="[object Error]",Dh="[object Map]",Fh="[object Number]",jh="[object RegExp]",Ih="[object Set]",Bh="[object String]",Vh="[object Symbol]",qh="[object ArrayBuffer]",Wh="[object DataView]",Bl=ee?ee.prototype:void 0,Bi=Bl?Bl.valueOf:void 0;function Uh(e,t,r,o,n,i,s){switch(r){case Wh:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return false;e=e.buffer,t=t.buffer;case qh:return !(e.byteLength!=t.byteLength||!i(new kr(e),new kr(t)));case _h:case Lh:case Fh:return Te(+e,+t);case kh:return e.name==t.name&&e.message==t.message;case jh:case Bh:return e==t+"";case Dh:var a=jl;case Ih:var p=o&Ch;if(a||(a=Il),e.size!=t.size&&!p)return false;var l=s.get(e);if(l)return l==t;o|=Mh,s.set(e,t);var f=wn(a(e),a(t),o,n,i,s);return s.delete(e),f;case Vh:if(Bi)return Bi.call(e)==Bi.call(t)}return false}var Vl=Uh;var Gh=1,Kh=Object.prototype,zh=Kh.hasOwnProperty;function Hh(e,t,r,o,n,i){var s=r&Gh,a=bo(e),p=a.length,l=bo(t),f=l.length;if(p!=f&&!s)return false;for(var d=p;d--;){var u=a[d];if(!(s?u in t:zh.call(t,u)))return false}var g=i.get(e),y=i.get(t);if(g&&y)return g==t&&y==e;var m=true;i.set(e,t),i.set(t,e);for(var S=s;++d<p;){u=a[d];var b=e[u],w=t[u];if(o)var c=s?o(w,b,u,t,e,i):o(b,w,u,e,t,i);if(!(c===void 0?b===w||n(b,w,r,o,i):c)){m=false;break}S||(S=u=="constructor");}if(m&&!S){var x=e.constructor,R=t.constructor;x!=R&&"constructor"in e&&"constructor"in t&&!(typeof x=="function"&&x instanceof x&&typeof R=="function"&&R instanceof R)&&(m=false);}return i.delete(e),i.delete(t),m}var ql=Hh;var Jh=1,Wl="[object Arguments]",Ul="[object Array]",Sn="[object Object]",Qh=Object.prototype,Gl=Qh.hasOwnProperty;function Zh(e,t,r,o,n,i){var s=F(e),a=F(t),p=s?Ul:et(e),l=a?Ul:et(t);p=p==Wl?Sn:p,l=l==Wl?Sn:l;var f=p==Sn,d=l==Sn,u=p==l;if(u&&Ze(e)){if(!Ze(t))return false;s=true,f=false;}if(u&&!f)return i||(i=new ke),s||Ar(e)?wn(e,t,r,o,n,i):Vl(e,t,p,r,o,n,i);if(!(r&Jh)){var g=f&&Gl.call(e,"__wrapped__"),y=d&&Gl.call(t,"__wrapped__");if(g||y){var m=g?e.value():e,S=y?t.value():t;return i||(i=new ke),n(m,S,r,o,i)}}return u?(i||(i=new ke),ql(e,t,r,o,n,i)):false}var Kl=Zh;function zl(e,t,r,o,n){return e===t?true:e==null||t==null||!K(e)&&!K(t)?e!==e&&t!==t:Kl(e,t,r,o,zl,n)}var Fr=zl;var Yh=1,Xh=2;function ew(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 p=a[0],l=e[p],f=a[1];if(s&&a[2]){if(l===void 0&&!(p in e))return false}else {var d=new ke;if(o)var u=o(l,f,p,e,t,d);if(!(u===void 0?Fr(f,l,Yh|Xh,o,d):u))return false}}return true}var Hl=ew;function tw(e){return e===e&&!j(e)}var bn=tw;function rw(e){for(var t=Me(e),r=t.length;r--;){var o=t[r],n=e[o];t[r]=[o,n,bn(n)];}return t}var Jl=rw;function ow(e,t){return function(r){return r==null?false:r[e]===t&&(t!==void 0||e in Object(r))}}var xn=ow;function nw(e){var t=Jl(e);return t.length==1&&t[0][2]?xn(t[0][0],t[0][1]):function(r){return r===e||Hl(r,e,t)}}var Ql=nw;function iw(e,t){return e!=null&&t in Object(e)}var Zl=iw;function sw(e,t,r){t=Cr(t,e);for(var o=-1,n=t.length,i=false;++o<n;){var s=Le(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&&Rr(n)&&wt(s,n)&&(F(e)||Kt(e)))}var Yl=sw;function aw(e,t){return e!=null&&Yl(e,t,Zl)}var Xl=aw;var lw=1,pw=2;function fw(e,t){return $r(e)&&bn(t)?xn(Le(e),t):function(r){var o=Ja(r,e);return o===void 0&&o===t?Xl(r,e):Fr(t,o,lw|pw)}}var ep=fw;function dw(e){return function(t){return t?.[e]}}var tp=dw;function uw(e){return function(t){return tn(t,e)}}var rp=uw;function cw(e){return $r(e)?tp(Le(e)):rp(e)}var op=cw;function mw(e){return typeof e=="function"?e:e==null?wr:typeof e=="object"?F(e)?ep(e[0],e[1]):Ql(e):op(e)}var np=mw;function gw(e){return function(t,r,o){for(var n=-1,i=Object(t),s=o(t),a=s.length;a--;){var p=s[e?a:++n];if(r(i[p],p,i)===false)break}return t}}var ip=gw;var yw=ip(),On=yw;function hw(e,t){return e&&On(e,t,Me)}var sp=hw;function ww(e,t){return function(r,o){if(r==null)return r;if(!Ce(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 ap=ww;var Sw=ap(sp),lp=Sw;function bw(e,t,r){(r!==void 0&&!Te(e[t],r)||r===void 0&&!(t in e))&&xr(e,t,r);}var xo=bw;function xw(e){return K(e)&&Ce(e)}var pp=xw;function Ow(e,t){if(!(t==="constructor"&&typeof e[t]=="function")&&t!="__proto__")return e[t]}var Oo=Ow;function Rw(e){return Ne(e,_e(e))}var fp=Rw;function Ew(e,t,r,o,n,i,s){var a=Oo(e,r),p=Oo(t,r),l=s.get(p);if(l){xo(e,r,l);return}var f=i?i(a,p,r+"",e,t,s):void 0,d=f===void 0;if(d){var u=F(p),g=!u&&Ze(p),y=!u&&!g&&Ar(p);f=p,u||g||y?F(a)?f=a:pp(a)?f=Zo(a):g?(d=false,f=on(p,true)):y?(d=false,f=dn(p,true)):f=[]:pe(p)||Kt(p)?(f=a,Kt(a)?f=fp(a):(!j(a)||Sr(a))&&(f=un(p))):d=false;}d&&(s.set(p,f),n(f,p,o,i,s),s.delete(p)),xo(e,r,f);}var dp=Ew;function up(e,t,r,o,n){e!==t&&On(t,function(i,s){if(n||(n=new ke),j(i))dp(e,t,s,r,up,o,n);else {var a=o?o(Oo(e,s),i,s+"",e,t,n):void 0;a===void 0&&(a=i),xo(e,s,a);}},_e);}var cp=up;function vw(e,t){return Fr(e,t)}var Jt=vw;var Aw=ga(function(e,t,r){cp(e,t,r);}),Vi=Aw;function $w(e,t,r,o){if(!j(e))return e;t=Cr(t,e);for(var n=-1,i=t.length,s=i-1,a=e;a!=null&&++n<i;){var p=Le(t[n]),l=r;if(p==="__proto__"||p==="constructor"||p==="prototype")return e;if(n!=s){var f=a[p];l=o?o(f,p,a):void 0,l===void 0&&(l=j(f)?f:wt(t[n+1])?[]:{});}Or(a,p,l),a=a[p];}return e}var mp=$w;function Pw(e,t,r){return e==null?e:mp(e,t,r)}var qi=Pw;function Tw(e,t){var r;return lp(e,function(o,n,i){return r=t(o,n,i),!r}),!!r}var gp=Tw;function Nw(e,t,r){var o=F(e)?hn:gp;return r&&Yo(e,t,r)&&(t=void 0),o(e,np(t))}var Wi=Nw;var Cw=/^(\$+)\.(.*)$/,q=e=>{let t=Cw.exec(e);return t?{depth:t[1].length,path:t[2]}:null},Ui=(e,t,r)=>`Scope ref '${e}' needs depth ${t} but only ${r} ${r===1?"scope is":"scopes are"} in reach`,ge=(e,t)=>{let r=q(e);return r?r.depth>t.length?{outOfBounds:Ui(e,r.depth,t.length)}:{scope:t[t.length-r.depth],path:r.path}:{scope:t[t.length-1],path:e}},Mw=/\[(\d+)\]|\[(["'])(.*?)\2\]|([^.[\]]+)/g,_w=e=>e===""?[""]:[...e.matchAll(Mw)].map(t=>t[1]??t[3]??t[4]),Lw=(e,t)=>{if(e==null)return;let r=Object(e);if(Object.hasOwn(r,t))return r[t];if(t in Object.prototype||!(t in r))return;let o=r[t];return typeof o=="function"?void 0:o},te=(e,t)=>_w(t).reduce(Lw,e),Rt=(e,t)=>{let r=ge(e,t);if("outOfBounds"in r)throw new Error(r.outOfBounds);return te(r.scope,r.path)},yp=(e,t,r)=>q(e)?Rt(e,t):te(r,e),Ro=(e,t)=>`Scope ref '${e}' is not supported by ${t}(); evaluate with check()`,Rn=(e,t)=>{if(!(!("field"in e)||typeof e.field!="string")&&q(e.field))throw new Error(Ro(e.field,t))},En=(e,t,r)=>{if(!t)throw new Error(`context is required to resolve path '${e}'. Pass context when calling ${r}().`);return te(t,e)??null};var hp={string:{caseInsensitive:false,fuzzy:false},prismaOptions:{datasource:{provider:"postgresql"}}},jr=gn(hp),Gi=e=>Ii(e,t=>typeof t=="object"&&t!==null&&!Array.isArray(t)&&!pe(t)?t:void 0),kw=e=>e!=null&&typeof e.then=="function",Qt={set:(e,t)=>{qi(jr,e,Gi(t));},get:e=>te(jr,e),reset:()=>{jr=gn(hp);},with:(e,t)=>{let r=jr;jr=Vi(Gi(r),Gi(e));try{let o=t();if(kw(o))throw new Error("engineGlobals.with() callback must be synchronous (it returned a Promise).");return o}finally{jr=r;}}},Dw=new Set(["postgresql","cockroachdb","mongodb"]),wp=e=>Dw.has(e),fe=e=>e??Qt.get("string.caseInsensitive")??false,vn=e=>{let t=e??Qt.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"},$={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 I={String:"String",Boolean:"Boolean",Int:"Int",BigInt:"BigInt",Float:"Float",Decimal:"Decimal",DateTime:"DateTime",Json:"Json",Bytes:"Bytes",Enum:"Enum"},xe=["Int","Float","Decimal","BigInt"],Ir=["String",...xe,"DateTime"],Et=["String"],An=["String","Boolean","Int","BigInt","Float","Decimal","DateTime","Enum"],$n=Object.values(I),Sp=$n,Fw={check:"check",toPrisma:"toPrisma",toSql:"toSql"},Nn=e=>typeof e=="string"&&Object.hasOwn(I,e),P=["check","toPrisma","toSql"],Br=["check","toPrisma"],Pn=["check","toSql"],rt={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"},Vr={[h.equals]:{kinds:An,targets:P,valueShape:"scalar"},[h.notEquals]:{negates:h.equals,kinds:An,targets:P,valueShape:"scalar"},[h.lessThan]:{kinds:Ir,targets:P,valueShape:"ordered",comparator:"lt"},[h.lessThanEquals]:{kinds:Ir,targets:P,valueShape:"ordered",comparator:"lte"},[h.greaterThan]:{kinds:Ir,targets:P,valueShape:"ordered",comparator:"gt"},[h.greaterThanEquals]:{kinds:Ir,targets:P,valueShape:"ordered",comparator:"gte"},[h.in]:{kinds:An,targets:P,valueShape:"array"},[h.notIn]:{negates:h.in,kinds:An,targets:P,valueShape:"array"},[h.contains]:{kinds:Et,targets:P,valueShape:"string"},[h.notContains]:{negates:h.contains,kinds:Et,targets:P,valueShape:"string"},[h.startsWith]:{kinds:Et,targets:P,valueShape:"string"},[h.notStartsWith]:{negates:h.startsWith,kinds:Et,targets:P,valueShape:"string"},[h.endsWith]:{kinds:Et,targets:P,valueShape:"string"},[h.notEndsWith]:{negates:h.endsWith,kinds:Et,targets:P,valueShape:"string"},[h.matches]:{kinds:Et,targets:Pn,valueShape:"pattern"},[h.notMatches]:{negates:h.matches,kinds:Et,targets:Pn,valueShape:"pattern"},[h.between]:{kinds:Ir,targets:P,valueShape:"range"},[h.notBetween]:{negates:h.between,kinds:Ir,targets:P,valueShape:"range"},[h.isEmpty]:{kinds:Sp,targets:P,valueShape:"none"},[h.notEmpty]:{kinds:Sp,targets:P,valueShape:"none"},[h.exists]:{kinds:$n,targets:P,valueShape:"none"},[h.notExists]:{kinds:$n,targets:P,valueShape:"none"}},qr={[$.before]:{kinds:["DateTime"],targets:P,valueShape:"dateValue",acceptsExpr:true,comparator:"lt"},[$.after]:{kinds:["DateTime"],targets:P,valueShape:"dateValue",acceptsExpr:true,comparator:"gt"},[$.onOrBefore]:{kinds:["DateTime"],targets:P,valueShape:"dateValue",acceptsExpr:true,comparator:"lte"},[$.onOrAfter]:{kinds:["DateTime"],targets:P,valueShape:"dateValue",acceptsExpr:true,comparator:"gte"},[$.notBefore]:{negates:$.before,kinds:["DateTime"],targets:P,valueShape:"dateValue",acceptsExpr:true,comparator:"gte"},[$.notAfter]:{negates:$.after,kinds:["DateTime"],targets:P,valueShape:"dateValue",acceptsExpr:true,comparator:"lte"},[$.within]:{kinds:["DateTime"],targets:P,valueShape:"dateWindow",acceptsExpr:true},[$.notWithin]:{negates:$.within,kinds:["DateTime"],targets:P,valueShape:"dateWindow",acceptsExpr:true},[$.between]:{kinds:["DateTime"],targets:P,valueShape:"dateRange",acceptsExpr:true},[$.notBetween]:{negates:$.between,kinds:["DateTime"],targets:P,valueShape:"dateRange",acceptsExpr:true},[$.dayIn]:{kinds:["DateTime"],targets:Pn,valueShape:"dayList",acceptsExpr:false},[$.dayNotIn]:{negates:$.dayIn,kinds:["DateTime"],targets:Pn,valueShape:"dayList",acceptsExpr:false}},Tn={[E.all]:{targets:Br,valueShape:"predicate"},[E.any]:{targets:Br,valueShape:"predicate"},[E.none]:{targets:Br,valueShape:"predicate"},[E.atLeast]:{targets:Br,valueShape:"count",comparator:"gte"},[E.atMost]:{targets:Br,valueShape:"count",comparator:"lte"},[E.exactly]:{targets:Br,valueShape:"count",comparator:"equals"},[E.empty]:{targets:P,valueShape:"none"},[E.notEmpty]:{targets:P,valueShape:"none"}},bp={field:Vr,date:qr,array:Tn},tt=(e,t)=>Object.hasOwn(bp[t],e)?bp[t][e]:void 0,Wr=e=>typeof e.operator=="string"?tt(e.operator,"field"):typeof e.dateOperator=="string"?tt(e.dateOperator,"date"):void 0,vt=(e,t)=>tt(e,t)?.comparator,ot=(e,t)=>{let r=tt(e,t);if(!r)throw H(e,t);return r.valueShape},Cn=(e,t,r)=>tt(e,t)?.targets.includes(r)??false,jw=(e,t)=>{let r=Object.keys(Vr).filter(n=>{let i=Vr[n];return !(!i.kinds.includes(e)||t&&!i.targets.includes(t))}),o=Object.keys(qr).filter(n=>{let i=qr[n];return !(!i.kinds.includes(e)||t&&!i.targets.includes(t))});return {field:r,date:o}},Iw=e=>Object.keys(Tn).filter(t=>e?Tn[t].targets.includes(e):true),xp=[...Object.entries(Vr),...Object.entries(qr)],de=(...e)=>xp.flatMap(([t,r])=>e.includes(r.valueShape)?[t]:[]),At=de("none"),Ur=de("ordered"),Eo=de("dateWindow"),ye=de("range","dateRange","dateWindow"),Op=de("ordered","string","pattern","array"),Gr=[h.contains,h.notContains],Mn=de("scalar","ordered","range"),De=["sum","avg"],Bw=()=>Mn,$t=de("scalar"),Kr=de("array"),Rp=de("scalar","array"),Ep=de("dayList"),vp=de("dateRange"),Ap=de("scalar","ordered","range","dateValue","dateRange"),$p=(...e)=>Object.entries(Tn).flatMap(([t,r])=>e.includes(r.valueShape)?[t]:[]),_n=$p("count"),Pp=$p("predicate","count"),Tp=[E.any,E.atLeast],k=[...Object.entries(Vr),...Object.entries(qr)].flatMap(([e,t])=>t.negates?[e]:[]),Np=k.filter(e=>de("string").includes(e)),zr=k.filter(e=>ye.includes(e)),Cp=(...e)=>xp.flatMap(([t,r])=>r.comparator&&e.includes(r.comparator)&&!k.includes(t)?[t]:[]),Ln=Cp("lt","lte"),Mp=Cp("gt","gte"),_p=["Int","BigInt"],Lp=[...xe,"DateTime","Boolean","String"],kp=["Int","BigInt","Float","Boolean","String"],Dp=["scalar","ordered","string"],Pt={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}},Fp=["months","days","secs"],Ki=e=>Object.hasOwn(Pt,e),Zt=e=>Ki(e)&&Pt[e].calendar,kn=["year","quarter","month","week","isoWeek","day","hour","minute","second"],Hr=["sunday","monday","tuesday","wednesday","thursday","friday","saturday"],jp=e=>Hr.includes(e.toLowerCase()),Ip=(e,t=[])=>Object.fromEntries([...Object.entries(e).flatMap(([r,o])=>o.negates?[[o.negates,r]]:[]),...t].flatMap(([r,o])=>[[r,o],[o,r]])),vo=Ip(Vr,[[h.isEmpty,h.notEmpty],[h.exists,h.notExists]]),Bp=Ip(qr),Dn={[h.lessThan]:h.greaterThanEquals,[h.lessThanEquals]:h.greaterThan,[h.greaterThan]:h.lessThanEquals,[h.greaterThanEquals]:h.lessThan,[$.onOrBefore]:$.after,[$.onOrAfter]:$.before};var Fn=e=>new Error(`${e}: ArrayRule.field is required (fieldless arrayOps are check-only)`),H=(e,t)=>new Error(`Unknown ${t} operator: ${String(e)}`),Jr=e=>new Error(`${e} requires a count`),Oe=e=>new Error(`${e} requires a range date expression (a period or rolling window), not a single point`),Re=e=>new Error(`${e} requires a condition to check against array elements`),Qr=e=>new Error(`'${e}' is a relation: it exists or not; compare its fields with '${e}.<field>'.`),jn=e=>new Error(`'${e}' is a list of rows: compare it with an arrayOperator (any / all / none / empty / atLeast \u2026).`),In=e=>Gr.includes(e.operator)&&vn(e.fuzzy)?new Error("Fuzzy matching has no compiled form \u2014 evaluate it in memory with check()."):null,Bn=(e,t)=>!Ur.includes(e)&&!ye.includes(e)?null:(ye.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,Tt=e=>new Error(`aggregate.mode must be one of ${De.join(" / ")}, not '${String(e)}'`),Fe=()=>new Error("A condition is exactly one of: a field, date, array or aggregate rule, all, any, or if/then[/else]"),N=(e,t,r)=>new Error(`${t} has no ${e==="toSql"?"SQL":"Prisma"} form${r?` (${r})`:""}; use ${e==="toSql"?"check()":"toSql() or check()"}.`),je=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":""}.`),Vn=(e,t)=>new Error(`'${e}' reads through the to-many relation '${t.prefix}'; compare its rows with an arrayOperator rule on '${t.prefix}'.`),qn=(e,t)=>new Error(`'${e}' continues past '${t}', which is not a Json column`);Be__default.default.extend(Uw__default.default);Be__default.default.extend(Ww__default.default);Be__default.default.extend(qw__default.default);Be__default.default.extend(Vw__default.default);var U=e=>{if(!pe(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},nt="UTC",Ao=e=>{if(e.now===void 0)throw new Error("date expressions require `now` to be supplied to the evaluator");let t=Be__default.default(e.now).tz(e.timeZone);if(!t.isValid())throw new Error(`invalid \`now\`: ${String(e.now)}`);return t},zi=(e,t)=>Object.entries(e).reduce((r,[o,n])=>Pt[o].interval===t?r+n*Pt[o].factor:r,0),Vp="YYYY-MM-DDTHH:mm:ss.SSS",Nt=(e,t,r,o)=>{let n=zi(t,"months"),i=zi(t,"days"),s=zi(t,"secs"),a=Be__default.default.utc(e.tz(o).format(Vp));return n&&(a=a.add(r*n,"month")),i&&(a=a.add(r*i,"day")),s&&(a=a.add(r*s*1e3,"millisecond")),Be__default.default.tz(a.format(Vp),o)},Gw=e=>"ago"in e||"ahead"in e,Wn=(e,t)=>t===-1?{ago:e}:{ahead:e},ie=e=>Gw(e)?"ago"in e?[e.ago,-1]:[e.ahead,1]:null,$o=e=>"this"in e||"last"in e||"next"in e,Hi=e=>"start"in e||"end"in e,Un=e=>"this"in e?e.this:"last"in e?e.last:e.next,Kw=e=>{let t=Un(e);if(typeof t!="string"||!kn.includes(t))throw new Error(`Unknown period unit '${String(t)}'`);return t},zw=(e,t)=>e==="week"?t.weekStart==="sunday"?"week":"isoWeek":e,Ji=(e,t)=>{let r=Ao(t),o=Kw(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=zw(o,t);return [i.startOf(s),i.endOf(s)]},Qi=(e,t)=>{let r=ie(e);if(r)return Nt(Ao(t),...r,t.timeZone);if(Hi(e)){let o="start"in e?e.start:e.end,[n,i]=Ji(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")},Zr=(e,t,r)=>{if($o(e)){let[o,n]=Ji(e,r),i=Wr({dateOperator:t})?.negates??t;return Ln.includes(i)?o:n}return Qi(e,r)},Yr=(e,t)=>{if($o(e))return Ji(e,t);let r=ie(e);if(r){let o=Ao(t),n=Nt(o,...r,t.timeZone);return r[1]===-1?[n,o]:[o,n]}throw Oe("within")};var qp=["value","bind","path"],Xt=e=>typeof e.path=="string"&&e.path!=="",er=e=>Xt(e)?q(e.path):null,Po=(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(Xt(e))return t.path(e.path);throw new Error("No value, path or bind specified")},Gn=e=>pe(e)&&(e.value!==void 0||Xt(e)||typeof e.bind=="string"),Zi=(e,t,r)=>{if(!r||!Object.hasOwn(r,e)){if(t===true)return null;throw new Error(`Missing binding for "${e}"`)}let o=r[e];return o===void 0?null:o},Kn=(e,t,r)=>{if(t===true)return null;throw new Error(`Unresolved binding '${e}' \u2014 resolve bindings (bindRule / bindLens) before compiling with ${r}().`)},it=(e,t,r,o)=>Po(e,{value:n=>n,bind:(n,i)=>Zi(n,i,o),path:n=>yp(n,t,r)??null});var Wp=e=>typeof e=="object"&&e!==null,Xi=e=>"if"in e||"then"in e||"else"in e,st=e=>"arrayOperator"in e||"aggregate"in e,Up=e=>[...["all","any"].flatMap(t=>Array.isArray(e[t])?e[t].map((r,o)=>({key:t,index:o,child:r,nested:false})):[]),...Xi(e)?["if","then","else"].flatMap(t=>e[t]!==void 0?[{key:t,child:e[t],nested:false}]:[]):[],...["condition","filter"].flatMap(t=>e[t]!==void 0?[{key:t,child:e[t],nested:true}]:[])],Ee=e=>"all"in e||"any"in e||Xi(e),J=(e,t,r)=>{if(!Wp(e))return;let o=e,n=t(o,r),i=n===void 0?r:n;for(let{child:s,nested:a}of Up(o))a?i!==false&&J(s,t,i):J(s,t,r);},Gp=(e,t,r,o)=>{let n=false;return J(e,(i,s)=>(!n&&t(i,s)&&(n=true),n?false:r?.(i,s)),o),n},Ct=(e,t,r)=>{if(!Wp(e))return e;let o=r,n={...e},i=t.rewrite?t.rewrite(n,o):n,s=Up(i),a=s.some(l=>l.nested)&&t.below?t.below(i,o):o;for(let l of ["all","any"])Array.isArray(i[l])&&(i[l]=[...i[l]]);for(let{key:l,index:f,child:d,nested:u}of s){if(u&&a===false)continue;let g=Ct(d,t,u?a:o);f===void 0?i[l]=g:i[l][f]=g;}let p=t.after?t.after(i,o):i;return p===i&&Hw(i,e)?e:p},Hw=(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])})},Jw=(e,t)=>pe(e)?Object.fromEntries(Object.entries(e).map(([r,o])=>[r,Gn(o)?t(o,Zt(r)?"whole":"number"):o])):e,Yi=(e,t)=>{let r=U(e)?ie(e):null;return r?Wn(Jw(r[0],t),r[1]):e},zn=(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=>Yi(i,t)):Yi(e.value,t);o={...o,value:n};}if(Gn(e.offset)){let n=r?{...e.offset,...e.offset.value!==void 0&&{value:Yi(e.offset.value,t)}}:e.offset;o={...o,offset:t(n,r?"shift":"number")};}return Gn(o)&&(o=t(o,"value")),o},To=e=>{let t=[];return zn(e,(r,o)=>(t.push({source:r,role:o}),r)),t},es=e=>To(e).flatMap(({source:t,role:r})=>Xt(t)?[{ref:t.path,role:r}]:[]),Xr=e=>es(e).map(t=>t.ref),eo=e=>[...Array.isArray(e.orderBy)?e.orderBy.flatMap(t=>typeof t?.field=="string"?[t.field]:[]):[],...typeof e.aggregate?.field=="string"?[e.aggregate.field]:[]],Q=e=>{let t=new Set;return "all"in e&&t.add("all"),"any"in e&&t.add("any"),Xi(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},D=e=>e.length===0?true:e.length===1?e[0]:{all:[...e]},at=e=>e.length===0?false:e.length===1?e[0]:{any:[...e]};var Qw=e=>To(e).flatMap(({source:t})=>typeof t.bind=="string"?[t]:[]),No=(e,{required:t=false}={})=>{let r=new Set;return J(e,o=>{for(let n of Qw(o))(!t||n.bindOptional!==true)&&r.add(n.bind);}),[...r].sort()},ts=(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:Zi(n,true,t)}};return Ct(e,{rewrite:o=>zn(zn(o,r),r)})};var Kp=BigInt(Number.MAX_SAFE_INTEGER),Co=e=>{if(e>Kp||e<-Kp)throw new RangeError(`BigInt ${e} is outside the safe integer range (\xB12^53); json-rules compares BigInt as Int.`);return Number(e)},rs=e=>typeof e=="bigint"?Co(e):typeof e=="string"&&e.trim()!==""&&Number.isFinite(Number(e))?Number(e):e,Hn=(e,t)=>{if(e==null)return null;let r=rs(e);if(typeof r!="number"||!Number.isFinite(r))throw new Error(`${t} reads a number (got ${String(e)})`);return r},he=([e,t])=>t<e?[t,e]:[e,t],ve=(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]]},to=(e,t)=>{let r=ve(e,t);if(!r.every(Z))throw new Error(`${t} requires two ends that order \u2014 numbers, strings or dates (got ${JSON.stringify(e)})`);return r},Jn=e=>{if(!Array.isArray(e))throw new Error(`in / notIn requires a list (got ${JSON.stringify(e)})`);return e},lt=e=>{let t=Jn(e),r=t.filter(o=>o!==null);return {values:r,hasNull:r.length!==t.length}},Z=e=>typeof e=="string"||typeof e=="number"||e instanceof Date;var os=(e,t)=>typeof e=="number"&&Number.isFinite(e)&&e>=0&&(!Zt(t)||Number.isInteger(e))?null:`${t} must be a non-negative${Zt(t)?" whole":""} number (got ${String(e)})`,ns=(e,t,r)=>{let o=typeof e=="number"?e:Hn(t(e),e.path?`'${e.path}' (${r})`:r),n=o===null?null:os(o,r);if(n===null)return o;if(typeof e!="number"&&Xt(e))return null;throw new Error(n)},tr=(e,t)=>{let r={};for(let[o,n]of Object.entries(e)){if(n===void 0)continue;let i=ns(n,t,o);if(i===null)return null;r[o]=i;}return r},Ie=(e,t)=>{let r=ie(e);if(!r)return e;let o=tr(r[0],t);return o?Wn(o,r[1]):null};var rr=(e,t)=>{if(e==null)return null;if(Array.isArray(e)){let o=e.map(n=>rr(n,t));return o.some(n=>n===null)?null:o}let r=rs(e);if(typeof r!="number"||!Number.isFinite(r))throw new Error(`offset needs a numeric comparison value (got ${String(e)})`);return r+t},or=e=>Hn(e,"an offset"),ro=e=>{if(e==null)return null;let t=U(e)?ie(e):null;if(!t)throw new Error(`a date offset reads { ago } or { ahead } (got ${JSON.stringify(e)})`);return t};Be__default.default.extend(Uw__default.default);Be__default.default.extend(Ww__default.default);Be__default.default.extend(Yw__default.default);Be__default.default.extend(Zw__default.default);var zp=(e,t,r,o={},n)=>{let i=Rt(e.field,t),s=nr(o,g=>it(g,t,r,n)),a=s.timeZone;if(i==null)return k.includes(e.dateOperator)?true:e.error||`${e.field} has no value`;let p=Z(i)?Mt(i,a):null;if(!p?.isValid())throw new Error(`${e.field} is not a valid date: ${String(i)}`);let l=g=>e.error||`${e.field} ${g}`;if(Ep.includes(e.dateOperator)){let g=is(it(e,t,r,n));if(g===null)return e.error||`${e.field} has no comparison value`;let y=g.includes(p.tz(a).day()),m=g.map(S=>Hr[S]).join(" or ");return e.dateOperator===$.dayIn?y||l(`must be on ${m}`):!y||l(`must not be on ${m}`)}let f=tS(e,t,r,s,a,n);if(f===null)return e.error||`${e.field} has no comparison value`;let[d,u=d]=f;switch(e.dateOperator){case $.before:return p.isBefore(d)||l(`must be before ${d.format()}`);case $.after:return p.isAfter(d)||l(`must be after ${d.format()}`);case $.onOrBefore:return p.isSameOrBefore(d)||l(`must be on or before ${d.format()}`);case $.onOrAfter:return p.isSameOrAfter(d)||l(`must be on or after ${d.format()}`);case $.within:return p.isSameOrAfter(d)&&p.isSameOrBefore(u)||l(`must be within ${d.format()} and ${u.format()}`);case $.notBefore:return p.isSameOrAfter(d)||l(`must not be before ${d.format()}`);case $.notAfter:return p.isSameOrBefore(d)||l(`must not be after ${d.format()}`);case $.notWithin:return p.isBefore(d)||p.isAfter(u)||l(`must not be within ${d.format()} and ${u.format()}`);case $.between:return p.isSameOrAfter(d)&&p.isSameOrBefore(u)||l(`must be between ${d.format()} and ${u.format()}`);case $.notBetween:return p.isBefore(d)||p.isAfter(u)||l(`must not be between ${d.format()} and ${u.format()}`);default:throw H(e.dateOperator,"date")}},tS=(e,t,r,o,n,i)=>{let s=e.dateOperator,a=m=>it(m,t,r,i),p=it(e,t,r,i);if(p==null)return null;let l=e.offset===void 0?void 0:ro(a(e.offset));if(l===null)return null;let f=m=>{if(l===void 0)return m;let S=tr(l[0],a);return S&&Nt(m,S,l[1],n)};if(Eo.includes(s)){if(!U(p))throw Oe(s);let m=Ie(p,a);return m&&Yr(m,o)}let d=(m,S)=>{if(m==null)return null;if(U(m)){let w=Ie(m,a);return w&&Qi(w,o)}let b=Mt(m,n);if(!b.isValid())throw new Error(`Invalid ${S}: ${String(m)}`);return b};if(vp.includes(s)){let[m,S]=ve(p,s),b=d(m,"start date"),w=d(S,"end date");if(!b||!w)return null;let[c,x]=he([b,w]),R=f(c),A=f(x);return R&&A?[R,A]:null}if(Array.isArray(p))throw new Error(`${s} operator requires a single date value`);let u=m=>{let S=Ie(m,a);return S&&Zr(S,s,o)},g=U(p)?u(p):d(p,"comparison date");if(!g)return null;let y=f(g);return y&&[y]},nr=(e,t)=>{let r=e.timeZone;if(r===void 0||typeof r=="string")return {...e,timeZone:r??nt};if(er(r))throw new Error(`timeZone is one per evaluation; read it from context, not '${r.path}'`);let o=t(r);if(o!=null&&typeof o!="string")throw new Error(`timeZone reads a zone name (got ${String(o)})`);return {...e,timeZone:o??nt}},rS=/\d{2}:\d{2}(?::\d{2}(?:\.\d+)?)?\s*(?:[zZ]|[+-]\d{2}(?::?\d{2})?)$/,oS=e=>rS.test(e.trim())||/\b(?:GMT|UTC)\b/.test(e),Mt=(e,t)=>{if(typeof e=="string"&&/^-?\d+$/.test(e.trim()))return Be__default.default(Number(e));if(typeof e=="string"&&!oS(e)){let r=Be__default.default(e);return r.isValid()?Be__default.default.tz(e,t):r}return typeof e=="string"?Be__default.default(new Date(e.trim())):Be__default.default(e)},Qn=(e,t)=>{let r=Z(e)?Mt(e,t):Be__default.default(Number.NaN);if(!r.isValid())throw new Error(`Invalid date value: ${String(e)}`);return r.toDate()},is=e=>{if(e==null)return null;if(!Array.isArray(e))throw new Error("a weekday operator requires an array of day names");return e.map(t=>{let r=Hr.indexOf(String(t).toLowerCase());if(r===-1)throw new Error(`Unknown day name: ${String(t)}`);return r})};var iS=e=>e<=3?0:e<=6?1:2,sS=(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):iS(t)},Hp=e=>e.split(/[^a-z0-9\p{L}]+/u).filter(Boolean),aS=e=>/^\d+$/.test(e),lS=(e,t,r)=>e===t?true:Math.abs(e.length-t.length)>r?false:fastestLevenshtein.distance(e,t)<=r,Jp=(e,t,r={})=>{let o=t.trim().toLowerCase();if(!o)return true;let n=e.toLowerCase();if(n.includes(o))return true;let i=Hp(o);if(i.length===0)return false;let s=Hp(n);return s.length===0?false:i.every(a=>{let p=sS(r,a.length);return p===0||aS(a)?s.includes(a):s.some(l=>lS(a,l,p))})};var _t=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}`)}},oo={d:"0-9",w:"0-9A-Za-z_",s:"\\t\\n\\f\\r "},Zp={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"},pS=/[\\^$.|?*+()[\]{}]/,ss=255,Yp=e=>e<=65535?`\\u${e.toString(16).padStart(4,"0")}`:`\\U${e.toString(16).padStart(8,"0")}`,fS=e=>pS.test(e)?`\\${e}`:e,Mo=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(oo,a))return s?oo[a]:`[${oo[a]}]`;let p=a.toLowerCase();if(a!==p&&Object.hasOwn(oo,p))return s&&t(`a negated class \\${a} inside brackets`),`[^${oo[p]}]`;if(a==="p"||a==="P")return t("a Unicode class");if(a==="C")return t("\\C");if(a==="x"){let l=e[o]==="{",f=l?e.indexOf("}",o):o+2,d=e.slice(l?o+1:o,f);return o=l?f+1:f,Yp(Number.parseInt(d,16))}if(a>="0"&&a<="7"){let l=a;for(;l.length<3&&e[o]>="0"&&e[o]<="7";)l+=e[o++];return Yp(Number.parseInt(l,8))}if(!s&&(a==="b"||a==="B")){let l=`[${oo.w}]`;return a==="b"?`(?:(?<=${l})(?!${l})|(?<!${l})(?=${l}))`:`(?:(?<=${l})(?=${l})|(?<!${l})(?!${l}))`}if(!s&&(a==="z"||a==="A"))return n(),a==="z"?"\\Z":"\\A";if(a==="Q"){let l=e.indexOf("\\E",o),f=e.slice(o,l===-1?void 0:l);return o=l===-1?e.length:l+2,[...f].map(s?d=>/[\\\]^-]/.test(d)?`\\${d}`:d:fS).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])>ss||Number(a[2]??0)>ss)&&t(`a repeat count past ${ss}`),r+=a[0],o+=a[0].length;}else if(s==="["){r+="[",o++,e[o]==="^"&&(r+="^",o++),e[o]==="]"&&(r+="\\]",o++);let a=false,p=false,l=0;for(;o<e.length&&e[o]!=="]";){let f=p?null:/^\[:(\^?)([a-z]+):\]/.exec(e.slice(o)),d=!!f||/^\\[dswDSW]/.test(e.slice(o)),u=e[o]==="-"&&l>0&&e[o+1]!=="]"&&!p;f?(f[1]&&t(`a negated class [:^${f[2]}:]`),Object.hasOwn(Zp,f[2])||t(`the class [:${f[2]}:]`),r+=Zp[f[2]],o+=f[0].length):e[o]==="\\"?r+=i(true):u&&a?(r+="\\-",o++):(r+=e[o]==="["?"\\[":e[o],o++);let g=p;p=u&&!a,a=d||g,l++;}r+="]",o++;}else r+=s,o++,(s==="^"||s==="$")&&n();}return r},Xp=(e,t)=>{try{let{source:r}=_t(e);return t==="toSql"&&Mo(r),null}catch(r){return r.message}};var ef=e=>e==null||e===""||Array.isArray(e)&&e.length===0,se=(e,t)=>{let r=t==null;return r&&(e.offset!==void 0||Op.includes(e.operator))?true:ye.includes(e.operator)?r||Array.isArray(t)&&t.some(o=>o==null):false},sr=e=>At.includes(e.operator)||$t.includes(e.operator)&&e.value===null&&e.path===void 0&&e.bind===void 0,Yn=(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?at(o(h.equals)):D(o(h.notEquals))},ar=e=>typeof e=="string"?e.toLowerCase():Array.isArray(e)?e.map(ar):e,tf=e=>typeof e=="bigint"?Co(e):Array.isArray(e)&&e.some(t=>typeof t=="bigint")?e.map(t=>typeof t=="bigint"?Co(t):t):e,rf=(e,t,r)=>{if(e==null)return e;if(xe.includes(t)){if(typeof e!="string"||e.trim()==="")return e;if(t==="BigInt"&&/^-?\d+$/.test(e.trim()))return Co(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=Mt(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}},ir=(e,t,r=nt)=>t===void 0?e:Array.isArray(e)?e.map(o=>rf(o,t,r)):rf(e,t,r),_o=(e,t,r,o,n={},i)=>{let s=i?i.value:Rt(e.field,t)??null,a=e.coerceType??(s instanceof Date?"DateTime":void 0),p=a==="DateTime"?nr(n,c=>it(c,t,r,o)).timeZone:nt,l=ir(tf(s),a,p),f=!At.includes(e.operator),d=f?dS(ir(tf(it(e,t,r,o)??null),a,p),e,t,r,o):void 0;if(f&&se(e,d))return k.includes(e.operator)&&l==null?true:e.error||`${e.field} has no comparison value`;let u=c=>e.error||`${e.field} ${c}${f?` ${d instanceof RegExp?String(d):JSON.stringify(d)}`:""}`,g=fe(e.caseInsensitive),y=c=>g?ar(c):c,m=y(l),S=y(d),b=vn(e.fuzzy),w=()=>b&&typeof l=="string"&&typeof d=="string"?Jp(l,d,b):Array.isArray(l)?m.some(c=>Jt(c,S)):uS(m,S);switch(e.operator){case h.equals:return Jt(m,S)||u("must equal");case h.notEquals:return !Jt(m,S)||u("must not equal");case h.lessThan:return Zn(l,d,"lt")||u("must be less than");case h.lessThanEquals:return Zn(l,d,"lte")||u("must be less than or equal to");case h.greaterThan:return Zn(l,d,"gt")||u("must be greater than");case h.greaterThanEquals:return Zn(l,d,"gte")||u("must be greater than or equal to");case h.in:return Jn(S).some(c=>Jt(c,m))||u("must be one of");case h.notIn:return !Jn(S).some(c=>Jt(c,m))||u("must not be one of");case h.contains:return w()||u("must contain");case h.notContains:return !w()||u("must not contain");case h.matches:return of(l)&&nf(d)&&_t(d).re.test(l)||u("must match pattern");case h.notMatches:return !of(l)||!nf(d)||!_t(d).re.test(l)||u("must not match pattern");case h.between:{let c=sf(d,e.operator);if(!lf(l,c))return u("must be between");let x=no(l),[R,A]=c;return x>=R&&x<=A||u("must be between")}case h.notBetween:{let c=sf(d,e.operator);if(!lf(l,c))return true;let x=no(l),[R,A]=c;return x<R||x>A||u("must not be between")}case h.isEmpty:return ef(l)||u("must be empty");case h.notEmpty:return !ef(l)||u("must not be empty");case h.exists:return l!=null||u("must exist");case h.notExists:return l==null||u("must not exist");case h.startsWith:return typeof m=="string"&&typeof S=="string"&&m.startsWith(S)||u("must start with");case h.endsWith:return typeof m=="string"&&typeof S=="string"&&m.endsWith(S)||u("must end with");case h.notStartsWith:return !(typeof m=="string"&&typeof S=="string"&&m.startsWith(S))||u("must not start with");case h.notEndsWith:return !(typeof m=="string"&&typeof S=="string"&&m.endsWith(S))||u("must not end with");default:throw new Error("Unknown operator")}},dS=(e,t,r,o,n)=>{if(t.offset===void 0)return e;let i=or(it(t.offset,r,o,n));return i===null?null:rr(e,i)},no=e=>e instanceof Date?e.getTime():e,Zn=(e,t,r)=>{if(!cS(e,t)||!Z(t))return false;let o=no(e),n=no(t);switch(r){case "lt":return o<n;case "lte":return o<=n;case "gt":return o>n;case "gte":return o>=n}},of=e=>typeof e=="string",nf=e=>typeof e=="string"||e instanceof RegExp,sf=(e,t)=>he(to(e,t).map(r=>no(r))),uS=(e,t)=>typeof e=="string"&&typeof t=="string"&&e.includes(t),cS=(e,t)=>Z(e)&&Z(t)&&af(e)===af(t),af=e=>e instanceof Date?"date":typeof e,lf=(e,t)=>Z(e)&&typeof no(e)==typeof t[0];var ue=e=>e.filter!==void 0||!!e.orderBy?.length||e.take!==void 0||e.skip!==void 0,mS=e=>{if(typeof e!="object"||e===null)return null;let t=e,r=Q(t);return r!=="field"&&r!=="date"||typeof t.field!="string"?null:{op:String(r==="date"?t.dateOperator:t.operator),field:t.field}},gS=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=mS(e.condition);if(!n||n.field!==t)return null;let i=Ln.includes(n.op),s=Mp.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:l,take:f,skip:d,count:u,...g}=e;if(o==="any")return {...g,arrayOperator:E.any};let y={field:t,operator:h.exists};return {any:[{field:e.field,arrayOperator:E.empty},{all:[{field:e.field,arrayOperator:E.any,condition:y},{...g,arrayOperator:E.all,condition:{if:y,then:e.condition}}]}]}},as=(e,t,r)=>{let o=e;if(t.filter!==void 0&&r&&(o=o.filter(r)),t.orderBy?.length){let n=t.orderBy;o=[...o].sort((i,s)=>{for(let{field:a,dir:p}of n){let l=yS(te(i,a),te(s,a),p);if(l!==0)return l}return 0});}return t.skip!==void 0&&(o=o.slice(t.skip)),t.take!==void 0&&(o=o.slice(0,t.take)),o},yS=(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(!ue(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:D([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:D([r,e.condition])}}}return "aggregate"in e||e.filter!==void 0?null:gS(e)};var hS=e=>J(e,t=>{let r=Q(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)")}}),we=(e,t,r)=>(Array.isArray(t)&&hS(e),Ve(e,t,{...r,context:r?.context??t,scopes:[t]})),Ve=(e,t,r)=>{if(typeof e=="boolean")return e;let o=e;switch(Q(e)){case "all":return wS(o.all,t,r,o.error);case "any":return SS(o.any,t,r,o.error);case "if":return bS(o,t,r);case "array":return OS(o,r);case "aggregate":return xS(o,r);case "date":return zp(o,r.scopes,r.context,r,r.bindings);case "field":return _o(o,r.scopes,r.context,r.bindings,r);default:throw Fe()}},Xn=(e,t)=>({...e,scopes:[...e.scopes,t]}),wS=(e,t,r,o)=>{let n=[];for(let i of e){let s=Ve(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},SS=(e,t,r,o)=>{let n=[];for(let i of e){let s=Ve(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 ")}`)},bS=(e,t,r)=>Ve(e.if,t,r)===true?Ve(e.then,t,r):e.else!==void 0?Ve(e.else,t,r):true,pf=(e,t)=>{if(e==null)return [];if(!Array.isArray(e))throw new Error(`${t} must be an array`);return e},xS=(e,t)=>{let r=pf(Rt(e.field,t.scopes),e.field),o=e.filter,n=as(r,e,o?g=>Ve(o,g,Xn(t,g))===true:void 0),{mode:i,field:s}=e.aggregate;if(!De.includes(i))throw Tt(i);let a=e.condition,l=(a?n.filter(g=>Ve(a,g,Xn(t,g))===true):n).flatMap((g,y)=>{let m=s?te(g,s):g;if(m==null)return [];if(typeof m!="number"||!Number.isFinite(m)){let S=`${e.field}[${y}]${s?`.${s}`:""}`;throw new Error(`${S} must be a finite number`)}return [m]}),f=l.reduce((g,y)=>g+y,0),d=i==="sum"||l.length===0?f:f/l.length,u={...e,field:`${e.field} ${i}`};return _o(u,t.scopes,t.context,t.bindings,t,{value:d})},OS=(e,t)=>{let r=pf(e.field?Rt(e.field,t.scopes):t.scopes[t.scopes.length-1],e.field||"(root)"),o=e.filter,n=as(r,e,o?d=>Ve(o,d,Xn(t,d))===true:void 0),i=d=>e.error||`${e.field} ${d}`,s=e.condition,a=Pp.includes(e.arrayOperator);if(a&&s===void 0)throw Re(e.arrayOperator);let p=e.count??0;if(_n.includes(e.arrayOperator)&&e.count===void 0)throw Jr(e.arrayOperator);let l=0,f=0;if(a&&s!==void 0){if(n.length>0&&!Wi(n,j))return i("contains only primitive values; use 'in' or 'contains' instead of array operators on primitive arrays");let d=n.map(u=>Ve(s,u,Xn(t,u)));l=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 l===n.length||i(`all elements must match (${f} failed)`);case E.any:return !!l||i("at least one element must match");case E.none:return !l||i(`no elements should match (${l} matched)`);case E.atLeast:return l>=p||i(`at least ${p} elements must match (${l} matched)`);case E.atMost:return l<=p||i(`at most ${p} elements must match (${l} matched)`);case E.exactly:return l===p||i(`exactly ${p} elements must match (${l} matched)`);default:throw H(e.arrayOperator,"array")}};var O=(e,t)=>e!==void 0&&Object.hasOwn(e,t)?e[t]:void 0,lr=(e,t,r)=>(Object.hasOwn(e,t)||(e[t]=r()),e[t]),C=(e,t)=>O(e?.models,t),Ae=(e,t,r)=>O(C(e,t)?.fields,r);var $e=({fieldMap:e,model:t})=>`${e}:${t}`,ff=(e,t)=>{let r=e.indexOf(":");return r===-1?{mapName:t,modelName:e}:{mapName:e.slice(0,r),modelName:e.slice(r+1)}};var df=(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 p=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 ${p}.`)}n[a]=i;}return n},RS=(e,t)=>{let r={};for(let o of e){let n=O(o,t);n!=null&&lr(r,String(n),()=>[]).push(o);}return r},uf=(e,t)=>{let r={};for(let o of e.bridges??[]){let[n,i]=o.endpoints,s=$e(n),a=$e(i),p=o.cardinality==="oneToMany"?"one":"oneToOne",l=(u,g)=>lr(lr(r,u,()=>({})),g,()=>({})),f=O(t,s);f&&(l(n.fieldMap,n.model)[n.on]=df(f,n.on,s,p));let d=O(t,a);d&&(o.cardinality==="oneToMany"?l(i.fieldMap,i.model)[i.on]=RS(d,i.on):l(i.fieldMap,i.model)[i.on]=df(d,i.on,a,"oneToOne"));}return r};var ei=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=$e(o),s=$e(n),a=C(O(t.maps,o.fieldMap),o.model),p=C(O(t.maps,n.fieldMap),n.model);if(!a)throw new Error(`stitchFieldMaps: endpoint '${i}' not found`);if(!p)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(p.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(p.fields,i))throw new Error(`stitchFieldMaps: bridge '${i}' already injected on '${s}'`);let l=r.cardinality==="oneToMany";a.fields[s]={kind:"bridge",type:s,isList:l},p.fields[i]={kind:"bridge",type:i,isList:false};}return t};var kt=e=>({ok:e.length===0,errors:e}),Lo=(e,t)=>{if(!e.ok)throw new Error(`${t}:
|
|
2
2
|
${e.errors.map(r=>`${r.path}: ${r.message}`).join(`
|
|
3
|
-
`)}`)},Xn=(e,t={})=>{let r={target:t.target??"check",errors:[]};return ot(e,"$",r,1),or(r.errors)},eS=(e,t={})=>{Co(Xn(e,t),"validateRule");},ot=(e,t,r,o)=>{if(typeof e=="boolean")return;if(!Tt(e)){v(r,t,"invalid_condition","Condition must be a boolean or object");return}let n=H(e);if(!n){v(r,t,"ambiguous_condition",Me().message);return}switch(n){case "all":ip(e.all,`${t}.all`,r,o);break;case "any":ip(e.any,`${t}.any`,r,o);break;case "if":ot(e.if,`${t}.if`,r,o),ot(e.then,`${t}.then`,r,o),"else"in e&&e.else!==void 0&&ot(e.else,`${t}.else`,r,o);break;case "field":tS(e,t,r,o);break;case "aggregate":oS(e,t,r,o);break;case "array":nS(e,t,r,o);break;case "date":iS(e,t,r,o);break}},ip=(e,t,r,o)=>{if(!Array.isArray(e)){v(r,t,"logical_array_required","Logical operator requires an array of conditions");return}e.forEach((n,i)=>{ot(n,`${t}[${i}]`,r,o);});},ei=(e,t,r,o)=>{typeof e.field=="string"&&lp(e.field,"field",`${t}.field`,r,o);},lp=(e,t,r,o,n)=>{let i=K(e);if(!i)return;let a=t==="field"?"Field":"Path";i.depth>n&&v(o,r,"scope_out_of_bounds",Bi(e,i.depth,n)),o.target==="toPrisma"?v(o,r,`unsupported_prisma_${t}`,`${a} '${e}' is not supported by toPrisma()`):o.target==="toSql"&&(t==="field"||i.depth>1)&&v(o,r,`unsupported_sql_${t}`,`${a} '${e}' is not supported by toSql()`);},Xr=(e,t,r,o)=>{let n=Lf.filter(a=>e[a]!==void 0);if(n.length>1)return v(r,t,"ambiguous_value_source","Takes one of value, path or bind"),null;if(n.length===0)return v(r,t,"missing_value_source","Requires value, path or bind"),null;let[i]=n;return i!=="value"&&(typeof e[i]!="string"||e[i]==="")?(v(r,`${t}.${i}`,"invalid_value_source",`${i} is a non-empty string`),null):(e.bindOptional!==void 0&&(i!=="bind"||typeof e.bindOptional!="boolean")&&v(r,`${t}.bindOptional`,"invalid_value_source","bindOptional is a boolean beside bind"),i==="path"&&lp(e.path,"path",`${t}.path`,r,o),i)},fp=(e,t,r,o,n,i)=>{let{offset:a}=e;if(a===void 0)return;let s=`${o}.offset`;if(!Sf.includes(r)){v(n,s,"unsupported_offset_operator",`Operator '${r}' has no comparison point to offset`);return}if(!Tt(a)){v(n,s,"invalid_offset","An offset is one of { value }, { path } or { bind }");return}let f=Xr(a,s,n,i);if(f==="path"){let d=a.path,u=Jt(a);t==="date"&&u&&u.depth<=1&&n.target==="toSql"&&v(n,`${s}.path`,"unsupported_sql_path",`A row path on a date offset ('${d}') is not supported by toSql()`);return}if(f!=="value")return;let l=a.value;if(t==="field"){(typeof l!="number"||!Number.isFinite(l))&&v(n,`${s}.value`,"invalid_offset","A field offset value is a number");return}let p=Tt(l)&&Object.keys(l).length===1&&q(l)?ie(l):null;if(!p){v(n,`${s}.value`,"invalid_offset","A date offset value is { ago } or { ahead }");return}dp(p[0],`${s}.value.${Object.keys(l)[0]}`,n,i);},pp=(e,t,r,o)=>{o.target!=="toSql"||!ce.includes(t)||Jt(e)&&v(o,`${r}.path`,"unsupported_sql_path",`A range read from the row ('${e.path}') is not supported by toSql()`);},tS=(e,t,r,o)=>{if(typeof e.field!="string"&&v(r,`${t}.field`,"field_required","Field rule requires a string field"),ei(e,t,r,o),typeof e.operator!="string"||!He(e.operator,"field")){v(r,`${t}.operator`,"invalid_operator",z(e.operator,"field").message);return}let n=e.operator;fp(e,"field",n,t,r,o),An(n,"field",r.target)||v(r,`${t}.operator`,`unsupported_${ti(r.target)}_operator`,`Operator '${n}' is not supported by ${r.target}()`),e.coerceType!==void 0&&!vn(e.coerceType)&&v(r,`${t}.coerceType`,"invalid_coerce_type",`coerceType must be one of: ${Object.keys(F).join(", ")}`);let i=Qe(n,"field");if(i==="none"){aS(e,t,r);return}Xr(e,t,r,o)!==null&&(pp(e,n,t,r),!(typeof e.path=="string"||typeof e.bind=="string")&&rS(i,e.value,n,`${t}.value`,r));},rS=(e,t,r,o,n)=>{switch(e){case "scalar":case "string":e==="string"&&typeof t!="string"&&v(n,o,"invalid_string_value",`Operator '${r}' requires a string value`);return;case "ordered":J(t)||v(n,o,"invalid_ordered_value",`Operator '${r}' requires a string, number, or Date value`);return;case "array":Array.isArray(t)||v(n,o,"invalid_membership_value",`Operator '${r}' requires an array value`);return;case "pattern":{if(!(typeof t=="string"||t instanceof RegExp)){v(n,o,"invalid_pattern_value",`Operator '${r}' requires a string or RegExp value`);return}let i=Kf(t,n.target);i&&v(n,o,"unsupported_pattern",i);return}case "range":try{zr(t,r);}catch(i){v(n,o,"invalid_range_value",i.message);}return}},oS=(e,t,r,o)=>{if(e.offset!==void 0&&v(r,`${t}.offset`,"unexpected_offset","Aggregate rules take no offset"),up(e,t,r,o),typeof e.field!="string"&&v(r,`${t}.field`,"field_required","Aggregate rule requires a string field"),ei(e,t,r,o),!Tt(e.aggregate)){v(r,`${t}.aggregate`,"invalid_aggregate","aggregate must be an object");return}let n=e.aggregate;if(_e.includes(n.mode)||v(r,`${t}.aggregate.mode`,"invalid_aggregate_mode",Et(n.mode).message),"field"in n&&n.field!==void 0&&typeof n.field!="string"&&v(r,`${t}.aggregate.field`,"invalid_aggregate_field","aggregate.field must be a string"),!$n.includes(e.operator)){v(r,`${t}.operator`,"invalid_aggregate_operator",`Aggregate rules only support: ${$n.join(", ")}`);return}if(r.target==="toPrisma"&&typeof e.path=="string"&&v(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"&&v(r,`${t}.condition`,"unsupported_sql_aggregate_condition","Aggregate condition filtering is not supported by toSql(); use check() or toPrisma()"),ot(e.condition,`${t}.condition`,r,o+1)),Xr(e,t,r,o)===null||typeof e.path=="string"||typeof e.bind=="string")return;let i=e.value;ce.includes(e.operator)?sS(i)||v(r,`${t}.value`,"invalid_range_value",`Operator '${e.operator}' requires a two-item numeric range`):typeof i!="number"&&v(r,`${t}.value`,"invalid_aggregate_value","Aggregate rule value must be a number");},nS=(e,t,r,o)=>{if(typeof e.field!="string"&&r.target!=="check"&&v(r,`${t}.field`,"field_required","Array rule requires a string field for this target"),ei(e,t,r,o),up(e,t,r,o),typeof e.arrayOperator!="string"||!He(e.arrayOperator,"array")){v(r,`${t}.arrayOperator`,"invalid_array_operator",z(e.arrayOperator,"array").message);return}let n=e.arrayOperator;An(n,"array",r.target)||v(r,`${t}.arrayOperator`,`unsupported_${ti(r.target)}_array_operator`,`Array operator '${n}' is not supported by ${r.target}()`);let i=Qe(n,"array"),a=e.condition!==void 0,s=()=>{e.count!==void 0&&v(r,`${t}.count`,"unexpected_count",`Array operator '${n}' does not accept count`);};i==="none"?(a&&v(r,`${t}.condition`,"unexpected_condition",`Array operator '${n}' does not accept condition`),s()):i==="predicate"?(a?ot(e.condition,`${t}.condition`,r,o+1):v(r,`${t}.condition`,"missing_condition",Se(n).message),s()):i==="count"&&(r.target!=="toPrisma"&&typeof e.count!="number"?v(r,`${t}.count`,"missing_count",Wr(n).message):e.count!==void 0&&!(typeof e.count=="number"&&Number.isInteger(e.count)&&e.count>=0)&&v(r,`${t}.count`,"invalid_count","count must be a non-negative whole number"),a?ot(e.condition,`${t}.condition`,r,o+1):r.target==="check"&&v(r,`${t}.condition`,"missing_condition",Se(n).message));},iS=(e,t,r,o)=>{if(typeof e.field!="string"&&v(r,`${t}.field`,"field_required","Date rule requires a string field"),ei(e,t,r,o),typeof e.dateOperator!="string"||!He(e.dateOperator,"date")){v(r,`${t}.dateOperator`,"invalid_date_operator",z(e.dateOperator,"date").message);return}let n=e.dateOperator;fp(e,"date",n,t,r,o),An(n,"date",r.target)||v(r,`${t}.dateOperator`,`unsupported_${ti(r.target)}_date_operator`,`Date operator '${n}' is not supported by ${r.target}()`);let i=Qe(n,"date");if(i==="dayList"){if(Xr(e,t,r,o)!=="value")return;let a=e.value;(!Array.isArray(a)||!a.every(s=>typeof s=="string"&&Cf(s)))&&v(r,`${t}.value`,"invalid_day_list",`Date operator '${n}' requires an array of day names (${qr.join(", ")})`);return}if(Xr(e,t,r,o)!==null&&(pp(e,n,t,r),!(typeof e.path=="string"||typeof e.bind=="string"))){if(q(e.value)){sp(e.value,n,`${t}.value`,r,o);return}if(bo.includes(n)){v(r,`${t}.value`,"invalid_date_range",we(n).message);return}if(i==="dateRange"){if(!lS(e.value)){v(r,`${t}.value`,"invalid_date_range",`Date operator '${n}' requires a two-item date range`);return}e.value.forEach((a,s)=>{q(a)?sp(a,n,`${t}.value[${s}]`,r,o):J(a)&&!$t(a,Ze).isValid()&&v(r,`${t}.value[${s}]`,"invalid_date_value",`Date operator '${n}' value '${String(a)}' does not parse as a date`);});return}if(!J(e.value)){v(r,`${t}.value`,"invalid_date_value",`Date operator '${n}' requires a date-like value`);return}$t(e.value,Ze).isValid()||v(r,`${t}.value`,"invalid_date_value",`Date operator '${n}' value '${String(e.value)}' does not parse as a date`);}},dp=(e,t,r,o)=>{if(!Tt(e)||Object.keys(e).length===0){v(r,t,"invalid_relative_units","Relative offset requires at least one unit");return}for(let[n,i]of Object.entries(e)){if(!qi(n)){v(r,`${t}.${n}`,"invalid_relative_unit",`Unknown relative unit '${n}'`);continue}let a=Tt(i)?Xr(i,`${t}.${n}`,r,o):"literal";if(a===null||a==="path"||a==="bind")continue;let s=a==="value"?i.value:i,f=Xi(s,n);f&&v(r,`${t}.${n}`,"invalid_relative_magnitude",f);}},ap=(e,t,r)=>{(typeof e!="string"||!Nn.includes(e))&&v(r,t,"invalid_period_unit",`Unknown period unit '${String(e)}'`);},sp=(e,t,r,o,n)=>{let i=bo.includes(t),a=ie(e);if(a){dp(a[0],r,o,n);return}if(Eo(e)){ap(jn(e),r,o);return}if(Ui(e)){if(i){v(o,r,"invalid_date_range",we(t).message);return}let s="start"in e?e.start:e.end;if(!Tt(s)||!Eo(s)){v(o,r,"invalid_period_unit","start/end requires a this/last/next period");return}ap(jn(s),r,o);return}v(o,r,"invalid_date_expression","Unrecognized date expression");},aS=(e,t,r)=>{"value"in e&&e.value!==void 0&&v(r,`${t}.value`,"unexpected_value","Rule does not accept value"),"path"in e&&e.path!==void 0&&v(r,`${t}.path`,"unexpected_path","Rule does not accept path"),"bind"in e&&e.bind!==void 0&&v(r,`${t}.bind`,"unexpected_bind","Rule does not accept bind");},ti=e=>e==="toPrisma"?"prisma":e==="toSql"?"sql":"check",Tt=e=>le(e),sS=e=>Array.isArray(e)&&e.length===2&&typeof e[0]=="number"&&typeof e[1]=="number",lS=e=>Array.isArray(e)&&e.length===2&&(J(e[0])||q(e[0]))&&(J(e[1])||q(e[1])),up=(e,t,r,o)=>{if(de(e)&&r.target!=="check"&&(r.target==="toPrisma"&&Yr(e)!==null||v(r,t,`unsupported_${ti(r.target)}_window`,ke(r.target).message)),"filter"in e&&e.filter!==void 0&&ot(e.filter,`${t}.filter`,r,o+1),"orderBy"in e&&e.orderBy!==void 0){let i=e.orderBy;Array.isArray(i)?i.forEach((a,s)=>{(!Tt(a)||typeof a.field!="string"||a.dir!=="asc"&&a.dir!=="desc")&&v(r,`${t}.orderBy[${s}]`,"invalid_order_by",'orderBy entries must be { field: string, dir: "asc" | "desc" }');}):v(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 a=e[i];(typeof a!="number"||!Number.isInteger(a)||a<0)&&v(r,`${t}.${i}`,`invalid_window_${i}`,`${i} must be a non-negative integer`);}},v=(e,t,r,o)=>{e.errors.push({path:t,code:r,message:o});};var fS=/[.:]/,na=e=>{let t=[];for(let[r,o]of Object.entries(e.maps))for(let[n,i]of Object.entries(o.models))for(let[a,s]of Object.entries(i.fields))s.kind!=="bridge"&&fS.test(a)&&t.push({path:`${Oe({fieldMap:r,model:n})}.${a}`,message:"contains forbidden character . or :",code:"invalid_field_name"});return or(t)},cp=e=>Co(na(e),"validateFieldMaps");var eo=e=>"model"in e,je=e=>{let t=[],r=new Set,o=e;for(;!eo(o);){if(r.has(o))throw new Error("cycle detected in narrowing parent chain");r.add(o),t.unshift(o),o=o.parent;}return t},to=e=>eo(e)?e:je(e)[0].parent;var nt=e=>e.kind==="scalar"&&e.type==="Json",ae=e=>e.kind==="object"||e.kind==="bridge",nr=(e,t)=>e.values??E(t,e.type);var it=(e,t)=>e.kind==="object"?{mapName:t,modelName:e.type}:e.kind==="bridge"?rp(e.type,t):null;function*ri(e,t,r){let o=r.split("."),n=t;for(let i=0;i<o.length;i++){let a=o[i],s=be(E(e,n.mapName),n.modelName,a),f=s?it(s,n.mapName):null;if(yield {index:i,field:a,at:n,entry:s,next:f},!f)return;n={...f,relPath:[...n.relPath,a]};}}var Be=(e,t,r)=>{let o=e.split("."),n=[],i={mapName:"",modelName:r,relPath:[]};for(let{index:a,field:s,at:f,entry:l}of ri({"":t},i,e)){let p=f.modelName;if(!l)return {kind:"fallback",hops:n};if(l.kind==="bridge")return {kind:"bridge",hops:n};let d=a===o.length-1;if(l.kind==="object"){if(!j(t,l.type))return {kind:"fallback",hops:n};if(d)return {kind:"direct",hops:n,entry:l,model:p,column:s};n.push({field:s,prefix:o.slice(0,a+1).join("."),entry:l,from:p});continue}return d?{kind:"direct",hops:n,entry:l,model:p,column:s}:nt(l)?{kind:"json-path",hops:n,entry:l,model:p,column:s,stopIndex:a+1,jsonPath:o.slice(a+1)}:{kind:"past-scalar",hops:n,column:s}}return {kind:"fallback",hops:n}},Nt=(e,t,r)=>t&&r?Be(e,t,r):void 0,te=(e,t,r)=>{let o=Nt(e,t,r);return o?.kind==="direct"?o.entry:void 0},mp=(e,t,r)=>Be(e,t,r).hops.filter(o=>!o.entry.isList&&o.entry.isRequired===false).map(o=>o.prefix),ia=(e,t,r)=>{let o=Be(e,t,r);return o.kind==="direct"&&o.entry.kind==="object"?o.entry.type:null},aa=(e,t,r)=>Be(e,t,r).kind==="bridge",Ct=(e,t,r)=>!!t&&!!r&&If(e,(o,n)=>typeof o.field=="string"&&o.field!==""&&aa(o.field,t,n),(o,n)=>(typeof o.field=="string"?ia(o.field,t,n):n)??false,r);var sa=(e,t)=>t.length?I([...t,e]):e,pS=e=>{if(Wn(e).length)return false;let t=e.field,r=typeof t=="string"?K(t):null;try{return rt(r?{...e,field:r.path}:e,{})===!0}catch{return false}},la=(e,t)=>{if(!t.length)return e;if(!pS(e))return I([...t.flatMap(n=>n.grants),e]);let[r,...o]=t;return et([I([...r.grants,la(e,o)]),I([{field:r.prefix,operator:"notExists"},e])])},oi=(e,t)=>At(e,{rewrite:r=>{if(Xe(r))return r;if(typeof r.field!="string"||r.field==="")throw new Error(`narrowRule: cannot re-root a relation grant of unknown shape under '${t}'`);let o=Wn(r);if(o.length)throw new Error(`narrowRule: cannot re-root a relation grant with a path reference ('${o[0]}') under '${t}'. Author the grant without 'path', or anchor it at the relation itself.`);if(K(r.field))throw new Error(`narrowRule: cannot re-root a relation grant with a scope ref field ('${r.field}') under '${t}'. Author the grant against the model's own columns.`);if(r.condition!==void 0)throw new Error(`narrowRule: cannot re-root a relation grant with a nested array/aggregate condition on '${r.field}' under '${t}'. Anchor such grants at the relation's own model.`);return {...r,field:`${t}.${r.field}`}},below:()=>false}),fa=(e,t)=>t.flatMap(r=>{let o=Q(e,r.map,r.model,r.relPath);if(o.whereClauses.length===0)return [];if(r.isList)throw new Error(`narrowRule: cannot enforce a to-many relation grant on '${r.prefix}' without an arrayOperator condition to anchor it (row-scoped). Traverse '${r.prefix}' via an array operator (any/all/none/...) so the grant can be injected safely.`);return [{prefix:r.prefix,grants:o.whereClauses.map(n=>oi(n,r.prefix))}]}),gp=(e,t)=>fa(e,t).flatMap(r=>r.grants),hp=(e,t,r)=>{let o=Ce(e,r);if("outOfBounds"in o)throw new Error(`narrowRule: ${o.outOfBounds}`);if(!o.scope)return {hops:[],end:null};let n=e.slice(0,e.length-o.path.length);return at(t.lens.maps,o.scope,o.path,n==="$."?"":n)},dS=(e,t,r)=>{if(K(e))return hp(e,t,r).hops;let o=r.length===1?"":`${"$".repeat(r.length)}.`;return r[0]?at(t.lens.maps,r[0],e,o).hops:[]},yp=(e,t,r)=>{if(Xe(e)||typeof e.field!="string"||e.field==="")return null;let{hops:o,end:n}=hp(e.field,t,r);return {hops:o,below:n}},pa=(e,t,r)=>At(e,{below:(o,n)=>{let i=yp(o,t,n);return i?i.below?[...n,i.below]:Qt(o)?[...n,null]:false:false},after:(o,n)=>{let i=yp(o,t,n);if(!i)return o;let a=gp(t,Wn(o).flatMap(d=>dS(d,t,n))),s=i.below;if(!s||!Qt(o))return sa(la(o,fa(t,i.hops)),a);let f=[...Q(t,s.mapName,s.modelName,s.relPath).whereClauses,...gp(t,Un(o).flatMap(d=>at(t.lens.maps,s,d).hops))],l=o.condition===void 0||o.arrayOperator===O.all||de(o),p={...o};return f.length&&l?p.filter=I([...o.filter!==void 0?[o.filter]:[],...f]):f.length&&(p.condition=I([...f,o.condition])),sa(la(p,fa(t,i.hops.slice(0,-1))),a)}},[r]),wp=(e,t)=>{let r=B(t),o=Q(r,r.lens.mapName,r.lens.model,[]),n=pa(e,r,{mapName:r.lens.mapName,modelName:r.lens.model,relPath:[]});return sa(n,o.whereClauses)};var ni=e=>e===void 0?void 0:Array.isArray(e)?e:[e],_o=e=>typeof e=="object"&&e!==null&&!Array.isArray(e)&&("where"in e||"label"in e||"groupBy"in e||"from"in e),Mo=e=>{if(_o(e))return e;if(typeof e=="object"&&e!==null&&!Array.isArray(e)&&Object.keys(e).length===0)throw new Error("sources: {} is not a Condition \u2014 use `true` for an unconstrained source");return {where:e}},st=["__offpath__"],B=e=>{let t=to(e),r=e.maps===t.maps?[]:je(e);return {lens:t,chain:r}},ii=(e,t)=>e===null?new Set(t):new Set(t.filter(r=>e.has(r))),da=e=>{if(!e.picks)return;if(!("relations"in e)||!e.relations)return e.picks;let t=[...e.picks];for(let r of Object.keys(e.relations))t.includes(r)||t.push(r);return t},uS=(e,t)=>{let r=da(t);if(r&&(e.picks=ii(e.picks,r)),t.omits)for(let o of t.omits)e.omits.add(o);},Sp=(e,t,r)=>{e.set(t,ii(e.get(t)??null,r));},xp=(e,t,r)=>{let o=e.get(t)??new Set;for(let n of r)o.add(n);e.set(t,o);},cS=(e,t,r)=>{if(r.enumPicks)for(let[o,n]of Object.entries(r.enumPicks))Sp(e,o,n);if(r.enumOmits)for(let[o,n]of Object.entries(r.enumOmits))xp(t,o,n);},bp=(e,t,r)=>JSON.stringify([e,t,r]),mS=(e,t,r,o)=>{if(uS(e,t),t.where!==void 0&&e.whereClauses.push(r(t.where)),t.sources)for(let[n,i]of Object.entries(t.sources)){let a=Mo(i),s=e.sources.get(n)??[];a.where!==void 0&&s.push(r(a.where)),e.sources.set(n,s);let f=ni(a.groupBy);for(let[l,p]of [["label",a.label],["groupBy",f]]){if(p===void 0)continue;let d=bp(n,l,p);e.sourceDeclaredAt.has(d)||e.sourceDeclaredAt.set(d,o);}a.label!==void 0&&e.sourceLabels.set(n,a.label),f!==void 0&&e.sourceGroupBys.set(n,f),a.from==="mapDefaults"&&e.sourcesFromMapDefaults.add(n);}},Q=(e,t,r,o)=>{let n={picks:null,omits:new Set,enumValuesByField:new Map,whereClauses:[],sources:new Map,sourceLabels:new Map,sourceGroupBys:new Map,sourceDeclaredAt:new Map,sourcesFromMapDefaults:new Set,relations:new Map},i=E(e.lens.maps,t),a=j(i,r);if(!a)return n;let s=new Map,f=new Map,l=new Map,p=new Map,d=m=>m,u=0,g=m=>{mS(n,m,d,u),cS(s,f,m);};for(let[m,y]of e.chain.entries()){u=m;let w={lens:e.lens,chain:e.chain.slice(0,m)};d=c=>m===0?c:pa(c,w,{mapName:t,modelName:r,relPath:o});let S=E(y.mapDefaults,t);if(S){let c=E(S.models,r);c&&g(c);for(let[b,R]of Object.entries(S.enums??{}))R.picks&&Sp(l,b,R.picks),R.omits&&xp(p,b,R.omits);}let x=y.root;if(o.length===0){if(t===e.lens.mapName&&r===e.lens.model&&x){g(x);for(let[c,b]of Object.entries(x.relations??{}))n.relations.set(c,b);}}else {for(let c of o)if(x=E(x?.relations,c),!x)break;if(x){g(x);for(let[c,b]of Object.entries(x.relations??{}))n.relations.set(c,b);}}}for(let[m,y]of Object.entries(a.fields)){let w=y.kind==="enum",x=y.options?.map($=>$.value)??(w?nr(y,i?.enums):y.values);if(!x)continue;let c=x;if(w){let $=l.get(y.type),oe=p.get(y.type);$&&(c=c.filter(jt=>$.has(jt))),oe&&(c=c.filter(jt=>!oe.has(jt)));}let b=s.get(m),R=f.get(m);b&&(c=c.filter($=>b.has($))),R&&(c=c.filter($=>!R.has($))),n.enumValuesByField.set(m,c);}return n},ai=(e,t,r,o)=>Q(e,t,r,st).sources.has(o),si=(e,t,r,o)=>new Error(`source '${o}' at '${e}' offers mapDefaults.${t}.models.${r}.sources.${o}, which no layer declares`),ir=(e,t)=>!(e.omits.has(t)||e.picks!==null&&!e.picks.has(t)),li=(e,t)=>e.enumValuesByField.get(t)??null,fi=(e,t,r)=>{let o=r.split("."),n=[],i=[];for(let{index:a,field:s,at:f,entry:l,next:p}of ri(e.lens.maps,t,r)){if(!l)return {resolution:{outcome:"missing",index:a,hops:n},effects:i};let d=Q(e,f.mapName,f.modelName,f.relPath);if(!ir(d,s))return {resolution:{outcome:"hidden",index:a,hops:n},effects:i};let u={field:s,entry:l,mapName:f.mapName,model:f.modelName,relPath:[...f.relPath]};n.push(u),i.push(d);let g=a===o.length-1;if(g||nt(l))return {resolution:{outcome:"resolved",hops:n,terminal:u,jsonSubPath:g?[]:o.slice(a+1)},effects:i};if(!p)return {resolution:{outcome:"pastScalar",index:a,hops:n},effects:i}}return {resolution:{outcome:"missing",index:o.length,hops:n},effects:i}},ro=(e,t,r,o,n)=>{let i=n==="label"?t.sourceLabels.get(o):t.sourceGroupBys.get(o);if(i===void 0)return true;let a=t.sourceDeclaredAt.get(bp(o,n,i))??-1,s={lens:e.lens,chain:e.chain.filter((f,l)=>l!==a)};return (typeof i=="string"?[i]:i).every(f=>fi(s,r,f).resolution.outcome!=="hidden")},oo=(e,t,r)=>{let{resolution:o,effects:n}=fi(e,t,r);if(o.outcome!=="resolved")return null;let{terminal:i,jsonSubPath:a}=o;return {mapName:i.mapName,modelName:i.model,relPath:i.relPath,entry:i.entry,terminalEffect:n[n.length-1],terminalFieldName:i.field,jsonSubPath:a}},_t=e=>({mapName:e.lens.mapName,modelName:e.lens.model,relPath:[],open:false}),no=(e,t,r)=>{let o=Ce(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=oo(e,o.scope,o.path);if(!n)return {issue:{code:"not_in_lens",message:"path does not resolve through the narrowed lens"}};let i=nt(n.entry),a=it(n.entry,n.mapName),s=a?{...a,relPath:[...n.relPath,n.terminalFieldName],open:i}:{...o.scope,open:i};return {from:o.scope,next:s,walked:n}},at=(e,t,r,o="")=>{let n=r.split("."),i=[],a=null;for(let{index:s,field:f,at:l,entry:p,next:d}of ri(e,t,r)){if(!p||!d)break;let u=[...l.relPath,f];i.push({map:d.mapName,model:d.modelName,relPath:u,prefix:`${o}${n.slice(0,s+1).join(".")}`,isList:p.isList===true}),s===n.length-1&&(a={...d,relPath:[...u]});}return {hops:i,end:a}};var ca="parent:",ma=e=>e.startsWith(ca),Rp=e=>ma(e)?e.slice(ca.length):e,ua=(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]=_o(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]=ua(i,t);r.relations=o;}return r},Ep=(e,t)=>{let r={};for(let[o,n]of Object.entries(e.mapDefaults??{})){let i={};for(let[a,s]of Object.entries(n.models??{}))i[a]=ua(s,t);r[o]=n.models?{...n,models:i}:n;}return {...e,root:e.root?ua(e.root,t):void 0,mapDefaults:e.mapDefaults?r:void 0}},ga=e=>{let t=[];return Ep(e,r=>(t.push(r),r)),t},Op=e=>{let t=new Set;for(let r of ga(e))for(let o of $o(r))ma(o)||t.add(o);return t},vp=e=>{let t=new Set;for(let r of je(e))for(let o of ga(r))for(let n of $o(o,{required:true}))t.add(Rp(n));return [...t].sort()},ya=(e,t)=>{if(eo(e))return e;let r={...t};for(let[o,n]of Object.entries(t))r[`${ca}${o}`]=n;return {...Ep(e,o=>Zi(o,r)),parent:ya(e.parent,t)}},Ap=e=>{let t=[],r=new Set;for(let n of je(e.parent))for(let i of Op(n))r.add(i);for(let n of Op(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 ga(e))for(let i of $o(n))ma(i)&&o.add(Rp(i));for(let n of o)r.has(n)||t.push(`bind 'parent:${n}' references an inherited binding no ancestor declares`);return t};var $p=(e,t)=>{let r=B(t),o=(n,i)=>typeof n=="string"&&n!==""?no(r,i,n):null;return At(e,{rewrite:(n,i)=>{if(H(n)!=="field"||n.coerceType)return n;let a=o(n.field,i);if(!a||"issue"in a||!a.walked||a.walked.jsonSubPath.length)return n;let{entry:s}=a.walked;return s.kind==="scalar"&&$f.includes(s.type)?{...n,coerceType:s.type}:n},below:(n,i)=>{if(!Qt(n))return false;let a=o(n.field,i),s=a&&!("issue"in a)?a.walked?.entry:void 0;return a&&!("issue"in a)&&s&&ae(s)?[...i,a.next]:false}},[_t(r)])};var Pp=({maps:e,bridges:t,mapName:r,model:o})=>({...Yn({maps:e,bridges:t}),mapName:r,model:o});var pi=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":Tp(e.entry.type),Tp=e=>e===F.Json?"json":e===F.Enum?"enum":e===F.DateTime?"instant":e===F.String?"text":"scalar",di=(e,t,r)=>{let o=te(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"},ui=(e,t,r)=>{if(pi(Nt(e,t,r))==="relations")throw Mn(e)},ar=e=>e!=="scalar"&&e!=="instant"&&e!=="list"&&e!=="enum"&&e!=="relation"&&e!=="relations",io=(e,t)=>ar(e)&&Np(t),Np=e=>typeof e=="string"||Array.isArray(e)&&e.some(Np),ue=(e,t,r)=>{let o=pi(Nt(e.field,t,r));return o==="unknown"&&e.coerceType!==void 0?Tp(e.coerceType):o},lt=e=>{if(!e.isList){if(e.kind==="enum")return F.Enum;if(!(e.kind!=="scalar"||e.type===F.Json))return vn(e.type)?e.type:void 0}};var ha=(e,t)=>{let r=tr(e,F.DateTime,t);return typeof r=="number"&&!Number.isNaN(new Date(r).getTime())?r:void 0},gS=(e,t,r)=>o=>{if(o==null)return o;let n=ha(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()},ci=(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 a=i?lt(i):void 0;if(e.coerceType!==void 0&&a!==void 0&&e.coerceType!==a)throw new Error(`coerceType '${e.coerceType}' overrides ${a} field '${e.field}', but ${o} compares the column as stored \u2014 evaluate it in memory with check(), or drop the override.`);if((a??e.coerceType)===F.DateTime){let f=gS(e.field,o,n());return Array.isArray(t)?t.map(f):f(t)}if(e.coerceType===void 0&&a===F.String&&(Array.isArray(t)?t:[t]).some(f=>typeof f=="number"||typeof f=="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&&a!==void 0&&(he.includes(a)||a===F.Boolean)&&(Array.isArray(t)?t:[t]).some(f=>typeof f=="string"))throw new Error(`'${e.field}' is ${a} but the literal is a string; pass a ${a===F.Boolean?"boolean":"number"}, or stamp coerceType: '${a}'.`);return e.coerceType!==void 0&&Pf.includes(e.coerceType)?tr(t,e.coerceType,e.coerceType===F.DateTime?n():void 0):t};var Cp=e=>Array.isArray(e)?e.flatMap(Cp):[e],ko=e=>e.value===void 0?null:Cp(e.value),yS=e=>ha(e)!==void 0,hS=/^-?\d+(\.\d+)?$/,wS={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"&&hS.test(e)},Boolean:{expected:"a boolean",fits:e=>typeof e=="boolean"},DateTime:{expected:"a date",fits:yS},Json:{expected:"a value",fits:()=>true},Bytes:{expected:"a value",fits:()=>true}},SS=e=>typeof e=="string"?`'${e}'`:typeof e=="object"&&e!==null?JSON.stringify(e):String(e),_p=(e,t)=>{let r="coerceType"in e?e.coerceType:void 0,o=r??t;if(o===void 0||o===F.Json)return [];let n="operator"in e?e.operator:e.dateOperator,i=Dr(e);if(!i)return [];let s=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 ${s} (applies to: ${i.kinds.join(", ")})`}];if(e.offset!==void 0&&!("dateOperator"in e?o===F.DateTime:he.includes(o)))return [{path:e.field,code:"invalid_offset",message:`an offset does not apply to ${s}`}];if("dateOperator"in e||i.valueShape==="none"||i.valueShape==="pattern")return [];if(Tf.includes(i.valueShape)&&Array.isArray(e.value))return [{path:e.field,code:"invalid_value_shape",message:`operator '${n}' compares one value, but ${s} was given a list`}];let{expected:f,fits:l}=wS[o],p=u=>{try{return l(tr(u,o))}catch{return false}},d=u=>l(u)||r!==void 0&&p(u);return (ko(e)??[]).filter(u=>u!==null&&!d(u)).map(u=>({path:e.field,code:"invalid_value",message:`value ${SS(u)} does not fit ${s} (expected ${f})`}))},Mp=(e,t,r)=>{if(r.isList===true||nt(r))return null;let o=ae(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 ${lt(r)??r.type} value`;return {path:e,code:"invalid_array_operator",message:o}};var xS=(e,t,r,o)=>ee(e,(n,i)=>{let a=H(n);if(a===null)return o.push({path:typeof n.field=="string"?n.field:"",code:"ambiguous_condition",message:Me().message}),false;if(Xe(n))return;let s=n,f=S=>{let x=Ce(S,i);return "outOfBounds"in x?(o.push({path:S,code:"scope_out_of_bounds",message:x.outOfBounds}),null):{scope:x.scope,field:x.path}},l=i[i.length-1],p=true,d=null;if("field"in s&&typeof s.field=="string"&&s.field!==""){let S=no(t,i,s.field);"issue"in S?(o.push({path:s.field,...S.issue}),p=false):{next:l,walked:d}=S;}let u=d?.entry??null,g=d?.terminalFieldName??null,m=d?.entry.kind==="enum",y=d?.entry.type??null,w=d&&d.jsonSubPath.length===0?li(d.terminalEffect,d.terminalFieldName):null;for(let{ref:S,role:x}of Qi(s)){let c=K(S)?f(S):{scope:_t(t),field:S};if(!c||c.scope.open)continue;let b=oo(t,c.scope,c.field);if(!b){o.push({path:S,code:"not_in_lens",message:x==="value"?"path (comparison ref) does not resolve through the narrowed lens":"offset or magnitude ref does not resolve through the narrowed lens"});continue}if(ae(b.entry)){o.push({path:S,code:"not_in_lens",message:"a value ref reads a column, not a relation"});continue}let R=lt(b.entry);if(x==="value"||x==="shift"||R===void 0)continue;(x==="whole"?Af.includes(R):he.includes(R))||o.push({path:S,code:"not_in_lens",message:`${x==="whole"?"a calendar unit reads a whole number":"an offset or magnitude reads a number"}, not ${R}`});}if(!p)return false;if("arrayOperator"in s&&typeof s.field=="string"&&u){let S=Mp(s.field,s.arrayOperator,u);if(S)return o.push(S),false}if(u&&ae(u)&&(a==="field"||a==="date")&&(u.isList||!Zr(s))){let S=s.field;return o.push({path:S,code:"operator_kind_mismatch",message:(u.isList?Mn(S):Ur(S)).message}),false}if(!u?.isList&&(a==="field"||a==="date")&&o.push(..._p(s,u?lt(u):void 0)),!l.open)for(let S of Un(s))S!==""&&!oo(t,l,S)&&o.push({path:S,code:"not_in_lens",message:"an orderBy or aggregate field does not resolve through the narrowed lens"});if(w&&"operator"in s&&g){let S=ko(s);if(S){let x=new Set(w),c=m?`enum '${y}'`:`field '${g}'`;for(let b of S)typeof b=="string"&&!x.has(b)&&o.push({path:g,code:"value_not_allowed",message:`value '${b}' is not in the allowed set for ${c} (allowed: ${[...x].join(", ")})`});}}return [...i,l]},[r]),wa=(e,t,r,o,n)=>{let i=[];return xS(e,t,{mapName:r,modelName:o,relPath:n,open:false},i),i},mi=(e,t)=>{let r=B(t);return or(wa(e,r,r.lens.mapName,r.lens.model,[]))};var bS=(e,t)=>ee(e,(r,o)=>{if(t.sources.add(o[o.length-1].mapName),Xe(r)||typeof r.field!="string"||r.field==="")return;let n=no(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])},[_t(t.policy)]),kp=(e,t)=>{let o={policy:B(t),sources:new Set,bridgesCrossed:false};return bS(e,o),{sources:[...o.sources].sort(),bridgesCrossed:o.bridgesCrossed,supportedTargets:P.filter(n=>(n==="check"||!o.bridgesCrossed)&&Xn(e,{target:n}).ok),errors:mi(e,t).errors}};var OS=new Set([Je.scalar,Je.ordered,Je.array,Je.dayList,Je.dateValue]),RS=new Set([Je.none,Je.count]),ES=e=>{if(e.offset!==void 0||Ao(e).some(({source:r})=>r.value===void 0))return {values:[],dynamic:true};let t=Dr(e);return t?RS.has(t.valueShape)?{values:[],dynamic:false}:OS.has(t.valueShape)?"value"in e?{values:ko(e)??[],dynamic:false}:{values:[],dynamic:false}:{values:[],dynamic:true}:{values:[],dynamic:true}},vS=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)}`,Lp=(e,t)=>{let r=B(t),o=r.lens.model,n=new Map,i=new Map,a=(f,l)=>{if(f.length===0)return;let p=oo(r,{mapName:r.lens.mapName,modelName:o,relPath:[]},f.join("."));if(!p||p.jsonSubPath.length>0)return;let{mapName:d,modelName:u,relPath:g,terminalEffect:m,terminalFieldName:y}=p;if(!m.sources.has(y))return;let w=[o,...g].join("."),S=`${w}|${y}`,x=n.get(S);x||(x={path:w,mapName:d,model:u,field:y,values:[],dynamic:false},n.set(S,x));let c=ES(l);c.dynamic&&(x.dynamic=true);let b=i.get(S)??new Set;i.set(S,b);for(let R of c.values){let $=vS(R);b.has($)||(b.add($),x.values.push(R));}},s=(f,l)=>{let p=Ce(f,l);if(!("outOfBounds"in p))return [...p.scope,...p.path.split(".")]};return ee(e,(f,l)=>{if(Xe(f))return;let p=typeof f.field=="string"?s(f.field,l):l.at(-1);return p?(!Qt(f)&&typeof f.field=="string"&&a(p,f),[...l,p]):false},[[]]),[...n.values()]};var AS=(e,t,r,o)=>{let n=j(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},Lo=(e,t,r)=>{if(r.fromFields?.length)return r.fromFields.map((n,i)=>({here:n,there:r.toFields?.[i]??"id"}));let o=AS(e,r.type,t,r.relationName);return o?.fromFields?.length?o.fromFields.map((n,i)=>({here:o.toFields?.[i]??"id",there:n})):null},Dp=(e,t,r,o)=>{if(o.relationName===void 0)return null;let n=Object.entries(j(e,o.type)?.fields??{}).filter(([i,a])=>a.kind==="object"&&a.type===t&&a.relationName===o.relationName&&!(o.type===t&&i===r));return n.length===1?{field:n[0][0],entry:n[0][1]}:null};var Sa=(e,t,r,o,n)=>{let i={};for(let[a,s]of Object.entries(o.fields)){if(!ir(t,a))continue;let f=t.enumValuesByField.get(a),l=n(a)?.filter(d=>f===void 0||f.includes(d.value)),p=ro(e,t,r,a,"groupBy")?t.sourceGroupBys.get(a):void 0;i[a]={...s,...f!==void 0&&{values:f},...l!==void 0&&{options:l},...p!==void 0&&{groupBy:p}};}return i},ao=(e,t={})=>{let r=B(e),o={},n=new Map;for(let a of t.sourceValues??[])n.set(`${a.path}|${a.field}`,a.options);let i=(a,s,f,l)=>{if(Object.hasOwn(o,l))return;let p=E(E(r.lens.maps,a)?.models??{},s);if(!p)return;let d=Q(r,a,s,f),u={mapName:a,modelName:s,relPath:f},g=Sa(r,d,u,p,x=>{let c=n.get(`${l}|${x}`),b=d.enumValuesByField.get(x);return c??b?.map(R=>({value:R,label:R}))}),m={};for(let[x,c]of d.sources)ir(d,x)&&(m[x]=c);let y={};for(let[x,c]of d.sourceLabels)ir(d,x)&&ro(r,d,u,x,"label")&&(y[x]=c);let w={};for(let[x,c]of d.sourceGroupBys)ir(d,x)&&ro(r,d,u,x,"groupBy")&&(w[x]=c);let S={};for(let x of d.sourcesFromMapDefaults)if(Object.hasOwn(m,x)){if(!ai(r,a,s,x))throw si(l,a,s,x);S[x]="mapDefaults";}o[l]={mapName:a,model:s,fields:g,whereClauses:d.whereClauses,sources:m,sourceLabels:y,sourceGroupBys:w,sourceFrom:S};for(let x of d.relations.keys()){if(!ir(d,x))continue;let c=E(p.fields,x);if(!c)continue;let b=it(c,a);b&&i(b.mapName,b.modelName,[...f,x],`${l}.${x}`);}};return i(r.lens.mapName,r.lens.model,[],r.lens.model),o};var xa=(e,t,r,o,n,i,a,s)=>{let f=n.split("."),{hops:l}=at(e.lens.maps,{mapName:t,modelName:r,relPath:o},n),p=l.filter((d,u)=>u<f.length-1);if(i&&p.length<f.length-1){let d=f[p.length],u=p.at(-1)?.model??r;throw new Error(`${i} '${n}': hop '${d}' is not a resolvable relation on '${u}' \u2014 cannot guard its join`)}for(let d of p){let u=d.relPath.join(".");if(a.has(u))continue;a.add(u);let g=Q(e,d.map,d.model,d.relPath);if(d.isList&&g.whereClauses.length)throw new Error(`source path '${n}': cannot enforce the grant on to-many relation '${d.prefix}' in a dotted path`);for(let m of g.whereClauses)s.push(oi(m,d.prefix));}},$S=e=>{let t=[];return ee(e,r=>(typeof r.field=="string"&&t.push(r.field),false)),t},PS=(e,t,r,o,n,i,a)=>{let s=[],f=new Set;for(let l of n)xa(e,t,r,o,l,"groupBy",f,s);a?.includes(".")&&xa(e,t,r,o,a,"label",f,s);for(let l of i)for(let p of $S(l))p.includes(".")&&xa(e,t,r,o,p,null,f,s);return s},Do=(e,t)=>{let r=X(e,t);return r==null||typeof r=="object"?void 0:String(r)},gi=(e,t)=>{let r=[];for(let o of t){let n=Do(e,o);if(n===void 0)return;r.push(n);}return r},ba=(e,t)=>JSON.stringify([e??null,t]),TS=(e,t,r,o)=>{let n=ba(o,t),i=e.get(n);i===void 0?e.set(n,{value:t,...r!==void 0?{label:r}:{},...o!==void 0?{groups:o}:{}}):i.label===void 0&&r!==void 0&&e.set(n,{...i,label:r});},yi=(e,t,r,o,n)=>{let i=X(t,r),a=o==null?void 0:String(o);for(let s of Array.isArray(i)?i:[i])s==null||typeof s=="object"||TS(e,String(s),a,n);},hi=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 a=0;a<Math.max(n.length,i.length);a++){let s=(n[a]??"").localeCompare(i[a]??"","en",{numeric:true});if(s!==0)return s}return (t.label??t.value).localeCompare(r.label??r.value,"en",{numeric:true})}),NS=(e,t)=>{if(t.length===0)return [];let r={mapName:e.lens.mapName,modelName:e.lens.model,relPath:[]},{hops:o,end:n}=at(e.lens.maps,r,t.join("."));if(!n)return [false];let i=[r,...o.map(s=>({mapName:s.map,modelName:s.model}))],a=null;for(let s=0;s<t.length;s++){let f=i[s],l=Q(e,f.mapName,f.modelName,t.slice(0,s)).whereClauses,p=a===null?l:[...l,a];if(p.length===0){a=null;continue}let d=E(e.lens.maps,f.mapName),u=d&&be(d,f.modelName,t[s]),g=d&&u&&u.kind==="object"&&i[s+1].mapName===f.mapName?Dp(d,f.modelName,t[s],u):null;if(!g)return [false];let m=I(p);try{a=g.entry.isList?{field:g.field,arrayOperator:"any",condition:m}:I([{field:g.field,operator:"exists"},oi(m,g.field)]);}catch{return [false]}}return a===null?[]:[a]},wi=e=>{let t=B(e);return Object.entries(ao(e)).flatMap(([r,o])=>Object.entries(o.sources).map(([n,i])=>{let a=E(o.sourceLabels,n),s=E(o.sourceGroupBys,n),f=Object.hasOwn(o.sourceFrom,n),l=r.split(".").slice(1),p=PS(t,o.mapName,o.model,f?st:l,s??[],i,a),d=E(o.fields,n)?.values,u=f?[]:NS(t,l);return {path:r,visit:o,field:n,...f&&{from:"mapDefaults"},...a!==void 0&&{label:a},...s!==void 0&&{groupBy:s},eligibility:[...u,...i,...p,...d?[{field:n,operator:"in",value:[...d]}]:[]]}}))};var Fp=(e,t,r={})=>{let o=r.rowShape??"prisma",n=new Map;for(let i of t){let a=o==="sql";yi(n,i,e.field,e.label===void 0?void 0:a&&e.label.includes(".")?i.__label:Do(i,e.label),e.groupBy===void 0?void 0:gi(i,a?e.groupBy.map((s,f)=>`__group_${f}`):e.groupBy));}return {path:e.path,mapName:e.mapName,model:e.model,field:e.field,options:hi(n)}};var CS=(e,t)=>{let r=[...e];for(let o of t.split(".").slice(1)){let n=[];for(let i of r){let a=X(i,o);Array.isArray(a)?n.push(...a):a!=null&&n.push(a);}r=n;}return r},Ip=(e,t,r)=>wi(e).map(({path:o,visit:n,field:i,from:a,label:s,groupBy:f,eligibility:l})=>{if(a)throw new Error(`materializeSources: '${o}.${i}' offers its model's own source, which a fetched collection can't hold \u2014 query it with toSourceQueries and materializeSourceQuery.`);let p=I(l),d=new Map;for(let u of CS(t,o))rt(p,u,r)===true&&yi(d,u,i,s===void 0?void 0:Do(u,s),f===void 0?void 0:gi(u,f));return {path:o,mapName:n.mapName,model:n.model,field:i,options:hi(d)}});var jp=(e,t,r,o,n)=>{if(e===void 0)return;let i=new Set;for(let{mapName:a,modelName:s,relPath:f}of r)for(let l of wa(e,t,a,s,f)){let p=`'${l.path}' ${l.message}`;i.has(p)||(i.add(p),n.push({path:o,code:l.code,message:p}));}},Vp=(e,t,r,o,n,i)=>{let a={lens:r.lens,chain:[...r.chain,t]},s=new Set;for(let f of o){let l=Q(a,f.mapName,f.modelName,f.relPath);for(let[p,d]of Object.entries(e.sources??{})){let u=Mo(d);for(let g of ["label","groupBy"])u[g]===void 0||s.has(`${p}|${g}`)||ro(a,l,f,p,g)||(s.add(`${p}|${g}`),i.push({path:`${n}.sources.${p}`,code:"invalid_source",message:`${g} '${String(u[g])}' reads a column hidden by another layer`}));}}},Bp=(e,t,r,o,n)=>{let i=e.split("."),{hops:a}=at(t,{mapName:r,modelName:o,relPath:[]},e),s=a.find((d,u)=>d.isList&&u<i.length-1);if(s)return `${n} cannot traverse to-many relation '${i[a.indexOf(s)]}'`;if(a.length===i.length)return `${n} must end on a scalar column, '${i.at(-1)}' is a relation`;let f=a.at(-1)??{map:r,model:o},l=i[a.length],p=be(E(t,f.map),f.model,l);return p?ae(p)?`${n} relation '${l}' has no resolvable target`:a.length===i.length-1?null:`${n} segment '${l}' is not a relation`:`${n} segment '${l}' not on model '${f.model}'`},_S=(e,t,r)=>{for(let o of t){let n=da(o);if(n&&!n.includes(e))return "not in ancestor's picks";if(o.omits?.includes(e))return "was omitted by ancestor"}return r?.picks&&!r.picks.includes(e)?"not visible from defaults.picks":r?.omits?.includes(e)?"already excluded by defaults":null},qp=(e,t,r,o,n,i,a,s,f,l,p,d,u=false)=>{e.picks&&e.omits&&l.push({path:`${f}`,code:"conflicting_selection",message:"cannot specify both picks and omits"}),u&&"relations"in e&&e.relations&&l.push({path:`${f}`,code:"invalid_source",message:"defaults cannot declare 'relations' \u2014 relations are path-specific only"});for(let m of ["picks","omits"])for(let y of e[m]??[]){if(!E(i,y)){l.push({path:`${f}.${m}`,code:"not_in_lens",message:`field '${y}' not on model`});continue}let w=_S(y,t,u?void 0:r);w&&l.push({path:`${f}.${m}`,code:"not_visible",message:`'${y}' ${w}`});}let g=(m,y,w)=>{let S=E(i,y);if(!S){l.push({path:`${f}.${m}`,code:"not_in_lens",message:`field '${y}' not on model`});return}if(S.kind!=="enum"){l.push({path:`${f}.${m}`,code:"wrong_kind",message:`field '${y}' is not an enum field`});return}let x=nr(S,s);for(let c of w)x&&!x.includes(c)&&l.push({path:`${f}.${m}.${y}`,code:"value_not_allowed",message:`'${c}' is not a known value of enum '${S.type}'`});};for(let[m,y]of Object.entries(e.enumPicks??{}))g("enumPicks",m,y);for(let[m,y]of Object.entries(e.enumOmits??{}))g("enumOmits",m,y);jp(e.where,p,d,`${f}.where`,l);for(let[m,y]of Object.entries(e.sources??{})){if(!E(i,m)){l.push({path:`${f}.sources`,code:"not_in_lens",message:`field '${m}' not on model`});continue}let w=Mo(y),S=w.from;if(S!==void 0){let b=S!=="mapDefaults"?`from takes 'mapDefaults', not '${String(S)}'`:u?"a mapDefaults source is what a path source's from: 'mapDefaults' points at; it can't point itself":w.label!==void 0||w.groupBy!==void 0?"a from: 'mapDefaults' source takes the model source's label and groupBy":null;b&&l.push({path:`${f}.sources.${m}`,code:"invalid_source",message:b});}let x=w.label?.includes(".")?w.label:void 0;if(w.label!==void 0)if(x){let b=Bp(x,o,n,a,"label");b&&l.push({path:`${f}.sources.${m}`,code:"invalid_source",message:`${b}`});}else E(i,w.label)||l.push({path:`${f}.sources.${m}`,code:"not_in_lens",message:`label column '${w.label}' not on model`});let c=ni(w.groupBy);if(c!==void 0||x!==void 0){let b=/^__(group(_\d+)?|label)$/;(b.test(m)||w.label!==void 0&&b.test(w.label))&&l.push({path:`${f}.sources.${m}`,code:"invalid_source",message:"'__group*' / '__label' names are reserved on grouped or path-labeled sources (sql column aliases)"});}if(c!==void 0){for(let R of c){let $=Bp(R,o,n,a,"groupBy");$&&l.push({path:`${f}.sources.${m}`,code:"invalid_source",message:`${$}`});}let b=JSON.stringify(c);for(let R of t){let $=E(R.sources,m);if($===void 0)continue;let oe=ni(Mo($).groupBy);oe!==void 0&&JSON.stringify(oe)!==b&&l.push({path:`${f}.sources.${m}`,code:"not_visible",message:`groupBy [${c}] conflicts with an ancestor layer's groupBy [${oe}]`});}}jp(w.where,p,d,`${f}.sources.${m}`,l);}},MS=(e,t,r,o,n)=>{for(let[i,a]of Object.entries(t)){let s=E(r,i);if(!s){n.push({path:`mapDefaults.${e}.enums.${i}`,code:"not_in_lens",message:"enum not in registry"});continue}let f=null,l=new Set;for(let d of o){let u=d[i];if(u&&(u.picks&&(f=ii(f,u.picks)),u.omits))for(let g of u.omits)l.add(g);}let p=d=>!(l.has(d)||f&&!f.has(d));for(let d of a.picks??[])s.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 a.omits??[])s.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`});}},Wp=(e,t,r,o,n,i,a)=>{let s=Q(t,r.mapName,r.modelName,r.relPath);for(let f of ["enumPicks","enumOmits"])for(let[l,p]of Object.entries(e[f]??{})){let d=E(o,l);if(d?.kind!=="enum")continue;let u=nr(d,n)??[],g=li(s,l)??u;for(let m of p)u.includes(m)&&!g.includes(m)&&a.push({path:`${i}.${f}.${l}`,code:"not_visible",message:`'${m}' is not visible (not allowed by the inherited enum narrowing)`});}},Up=(e,t,r,o,n,i,a,s,f,l,p)=>{let d=E(n,i),u=j(d,a);if(!u)return;let g=E(E(r.mapDefaults,i)?.models,a),y=[...o.map(S=>E(E(S.mapDefaults,i)?.models,a)).filter(S=>S!==void 0).map(S=>S),...t];qp(e,y,g,n,i,u.fields,a,d?.enums,s,f,l,[{mapName:i,modelName:a,relPath:p}],false),Wp(e,{lens:l.lens,chain:[...l.chain,{parent:r.parent,mapDefaults:r.mapDefaults}]},{mapName:i,modelName:a,relPath:p},u.fields,d?.enums,s,f),Vp(e,r,l,[{mapName:i,modelName:a,relPath:p}],s,f);let w={lens:l.lens,chain:[...l.chain,r]};for(let[S,x]of Object.entries(e.sources??{}))!_o(x)||x.from!=="mapDefaults"||ai(w,i,a,S)||f.push({path:`${s}.sources.${S}`,code:"invalid_source",message:si(s,i,a,S).message});for(let[S,x]of Object.entries(e.relations??{})){let c=E(u.fields,S);if(!c){f.push({path:`${s}.relations`,code:"not_in_lens",message:`'${S}' not on model`});continue}if(!ae(c)){f.push({path:`${s}.relations`,code:"wrong_kind",message:`'${S}' is not a relation (kind=${c.kind})`});continue}let b=it(c,i);if(!b)continue;if(!j(E(n,b.mapName),b.modelName)){f.push({path:`${s}.relations.${S}`,code:"not_in_lens",message:"target model not found in lens"});continue}let R=t.map($=>E($.relations,S)).filter($=>$!==void 0);Up(x,R,r,o,n,b.mapName,b.modelName,`${s}.relations.${S}`,f,l,[...p,S]);}},Oa=e=>{let t=[],r=to(e),o=je(e.parent),n=B(e.parent),i=ao(e.parent);for(let[a,s]of Object.entries(e.mapDefaults??{})){let f=E(r.maps,a);if(!f){t.push({path:`mapDefaults.${a}`,code:"not_in_lens",message:"not in lens"});continue}let l=o.map(p=>E(p.mapDefaults,a)?.enums).filter(p=>p!==void 0);for(let[p,d]of Object.entries(s.models??{})){let u=j(f,p);if(!u){t.push({path:`mapDefaults.${a}.models.${p}`,code:"not_in_lens",message:"not in fieldMap"});continue}let g=o.map(y=>E(E(y.mapDefaults,a)?.models,p)).filter(y=>y!==void 0),m=[{mapName:a,modelName:p,relPath:st}];for(let[y,w]of Object.entries(i))w.mapName===a&&w.model===p&&m.push({mapName:a,modelName:p,relPath:y.split(".").slice(1)});qp(d,g,void 0,r.maps,a,u.fields,p,f.enums,`mapDefaults.${a}.models.${p}`,t,n,m,true),Wp(d,n,{mapName:a,modelName:p,relPath:st},u.fields,f.enums,`mapDefaults.${a}.models.${p}`,t),Vp(d,e,n,m,`mapDefaults.${a}.models.${p}`,t);}s.enums&&MS(a,s.enums,f.enums,l,t);}if(e.root){let a=r.mapName,s=r.model,f=E(r.maps,a);if(!f)t.push({path:"root",code:"not_in_lens",message:`lens map '${a}' not in lens`});else if(!j(f,s))t.push({path:"root",code:"not_in_lens",message:`lens model '${s}' not in fieldMap`});else {let l=o.map(p=>p.root).filter(p=>p!==void 0);Up(e.root,l,e,o,r.maps,a,s,"root",t,n,[]);}}for(let a of Ap(e))t.push({path:"bindings",code:"invalid_binding",message:a});return or(t)},Si=e=>Co(Oa(e),"validateNarrowing");var kS=(e,t)=>`${e}::${t}`,LS=(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);},Gp=(e,t={})=>{let r=B(e),{lens:o}=r,n=new Map;for(let u of t.sourceValues??[]){let g=`${u.mapName}::${u.model}::${u.field}`,m=n.get(g)??new Map;for(let y of u.options)m.set(ba(y.groups,y.value),y);n.set(g,m);}let i=new Map,a=new Set,s=new Set,f=[{mapName:o.mapName,modelName:o.model,relPath:[],declared:true}];for(;f.length>0;){let{mapName:u,modelName:g,relPath:m,declared:y}=f.shift(),w=j(E(o.maps,u),g);if(!w)continue;let S=kS(u,g);if(y){let $=`${S}::${m.join(".")}`;if(a.has($))continue;a.add($);}else {if(s.has(S))continue;s.add(S);}let x=Q(r,u,g,y?m:st),c=i.get(S);c||(c={mapName:u,modelName:g,fields:new Map},i.set(S,c));let R=Sa(r,x,{mapName:u,modelName:g,relPath:y?m:st},w,$=>{let oe=n.get(`${u}::${g}::${$}`);return oe&&[...oe.values()]});for(let[$,oe]of Object.entries(R)){let jt=oe,Bt=oe.groupBy,co=c.fields.get($)?.groupBy;if(Bt!==void 0&&co!==void 0&&JSON.stringify(co)!==JSON.stringify(Bt))throw new Error(`projectLens: '${g}.${$}' is grouped by different axes on different paths ([${co}] vs [${Bt}]) \u2014 one surface field cannot carry two partition namespaces`);if(LS(c.fields,$,oe),ae(jt)){let mo=it(jt,u);if(!mo)continue;y&&x.relations.has($)?f.push({mapName:mo.mapName,modelName:mo.modelName,relPath:[...m,$],declared:true}):f.push({mapName:mo.mapName,modelName:mo.modelName,relPath:[],declared:false});}}}let l={};for(let{mapName:u,modelName:g,fields:m}of i.values()){let y=E(l,u);y||(y={models:{}},l[u]=y);let w={},S=new Map;for(let[x,c]of m)if(w[x]=c.options===void 0&&c.values?{...c,options:c.values.map(b=>({value:b,label:b}))}:c,c.kind==="enum"&&c.values){let b=S.get(c.type)??new Set;for(let R of c.values)b.add(R);S.set(c.type,b);}y.models[g]={...j(E(o.maps,u),g),fields:w};for(let[x,c]of S)y.enums??={},y.enums[x]=[...c];}let p=o.bridges?.filter(u=>{let[g,m]=u.endpoints,y=be(E(l,g.fieldMap),g.model,Oe(m)),w=be(E(l,m.fieldMap),m.model,Oe(g));return y!==void 0||w!==void 0}),d={maps:l};return p&&p.length>0&&(d.bridges=p),{...d,mapName:o.mapName,model:o.model}};function Kp(e,{by:t="path",...r}={}){return t==="model"?Gp(e,r):ao(e,r)}var DS=e=>"maps"in e,zp=(e,t)=>{let r=i=>{let a=E(t,i);if(!a)throw new Error(`composeLens: no stored lens '${i}'`);return a},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,a]of o.entries()){let s=r(a),{id:f,parents:l,...p}=s;if(l.join("\0")!==o.slice(0,i).join("\0"))throw new Error(`composeLens: '${a}' composes with [${l.join(", ")}], not [${o.slice(0,i).join(", ")}] as '${e}' lists`);if(DS(s)!==(i===0))throw new Error(i===0?`composeLens: '${a}' is not a base lens, so it can't head '${e}''s parents`:`composeLens: '${a}' is a base lens, so it can only head a chain`);if(n===null){n=p;continue}let u={parent:n,...p};Si(u),n=u;}return n},Hp=(e,t)=>{let r=eo(e)?[]:je(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 [{...to(e),id:t[0],parents:[]},...r.map(({parent:o,...n},i)=>({...n,id:t[i+1],parents:t.slice(0,i+1)}))]};var xi=(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=E(e.maps,t);if(!o)throw new Error(`${r}: fieldMap set has no entry for '${t}'`);return o};var Jp=e=>({field:e,operator:"notExists"}),FS=(e,t)=>{let r=t(e);if(r===null){let n=e.operator??e.dateOperator;return k.includes(n)?{field:e.field,operator:"exists"}:true}if("aggregate"in r){let n=E(Oo,r.operator);return n?{...r,operator:n}:{...r,operator:E(Cn,r.operator)}}if(typeof r.dateOperator=="string"){let n=E(Mf,r.dateOperator);return n?{...r,dateOperator:n}:et([{...r,dateOperator:E(Cn,r.dateOperator)},Jp(r.field)])}if(typeof r.arrayOperator=="string"){let n=r.count;switch(r.arrayOperator){case O.any:return {...r,arrayOperator:O.none};case O.none:return {...r,arrayOperator:O.any};case O.all:return {...r,arrayOperator:O.any,condition:ge(r.condition,t)};case O.empty:return {...r,arrayOperator:O.notEmpty};case O.notEmpty:return {...r,arrayOperator:O.empty};case O.atLeast:return n<=0?false:{...r,arrayOperator:O.atMost,count:n-1};case O.atMost:return {...r,arrayOperator:O.atLeast,count:n+1};case O.exactly:return et([...n>0?[{...r,arrayOperator:O.atMost,count:n-1}]:[],{...r,arrayOperator:O.atLeast,count:n+1}])}}let o=E(Oo,r.operator);return o?{...r,operator:o}:et([{...r,operator:E(Cn,r.operator)},Jp(r.field)])},ge=(e,t=r=>r)=>{if(typeof e=="boolean")return !e;let r=e;if(Array.isArray(r.all))return et(r.all.map(o=>ge(o,t)));if(Array.isArray(r.any))return I(r.any.map(o=>ge(o,t)));if("if"in r){let o=I([r.if,ge(r.then,t)]);return r.else===void 0?o:{any:[o,I([ge(r.if,t),ge(r.else,t)])]}}return FS(r,t)},Qp=e=>H(e)==="field"&&e.value!==void 0&&Fe(e,e.value)?null:e;var bi=(e,t,r,o)=>{if(!yf.includes(e.operator))throw new Error(`'${e.operator}' does not apply to the enum '${e.field}'; compare its values with equals / in.`);let n=fe(e.caseInsensitive),i=nr(r,o?.enums),{values:a,hasNull:s}=tt(jr.includes(e.operator)?[t]:t);if(!n&&(!i||a.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 f=d=>n?d.toLowerCase():d,l=new Set(a.filter(d=>typeof d=="string").map(d=>f(d))),p=i.filter(d=>l.has(f(d)));return k.includes(e.operator)?{values:i.filter(d=>!p.includes(d)),matchesNull:!s}:{values:p,matchesNull:s}};var W=e=>`"${e.replace(/"/g,'""')}"`;var Z=e=>e.replace(/\\/g,"\\\\").replace(/%/g,"\\%").replace(/_/g,"\\_"),Ra=(e,t,r=false)=>{let[o,...n]=e.split("."),i=t?`${W(t)}.${W(o)}`:W(o);if(n.length===0)return i;let a=n.map(Ea),s=a.pop();return [i,...a].join("->")+(r?"->":"->>")+s},Ea=e=>`'${e.replace(/'/g,"''")}'`;var jS=["@prisma/client/runtime/client","@prisma/client/runtime/library"],Oi,BS=()=>{if(Oi!==void 0)return Oi;for(let e of VS())for(let t of jS)try{let r=e(t);if(r.AnyNull!==void 0)return Oi=r.AnyNull,Oi}catch{}},VS=()=>{let e=[];try{e.push(module$1.createRequire((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 Ni=="function"&&e.push(Ni),e},Zp=()=>{let e=Gt.get("prismaOptions.anyNull")??BS();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 Yp,Xp=e=>{Yp=e;},G=(e,t,r)=>Yp(e,t,r);var qS=(e,t)=>{let r=K(e);if(r)throw r.depth>1?new Error(xo(e,"toPrisma")):new Error(`Path '${e}' is not supported by toPrisma(): Prisma WHERE has no column-to-column comparison or arithmetic. Use toSql() or prisma.$queryRaw.`);return Sn(e,t?.context,"toPrisma")},Ve=(e,t)=>vo(e,{value:r=>r,path:r=>qS(r,t),bind:(r,o)=>Vn(r,o,"toPrisma")}),Fo=e=>t=>Ve(t,e),so=e=>er({now:e?.now,timeZone:e?.timeZone,weekStart:e?.weekStart},Fo(e)),lo=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)return t;let n=ue({field:String(t.field)},e?.map,e?.model);if((n==="json"||n==="json-path")&&typeof t.operator=="string"&&Fr.includes(t.operator))throw N("toPrisma",`The complement of '${t.operator}' on the Json value '${t.field}'`,"it keeps values of other types");let i=Ve(t,e),a=t.offset===void 0?void 0:Ve(t.offset,e);if(t.offset!==void 0&&a==null)return null;let{path:s,bind:f,bindOptional:l,...p}=t,d={...p,value:i,...t.offset!==void 0&&{offset:{value:a}}};return typeof t.dateOperator=="string"?i==null?null:d:Qp(d)};var ft=()=>({}),sr=ft,fo=()=>({OR:[]}),va=e=>Object.keys(e).length===0,ed=e=>{let t=Object.keys(e);return t.length===1&&t[0]==="OR"&&Array.isArray(e.OR)&&e.OR.length===0},po=e=>{if(e.some(ed))return fo();let t=e.filter(r=>!va(r));return t.length===0?ft():t.length===1?t[0]:{AND:t}},_=e=>{if(e.some(va))return ft();let t=e.filter(r=>!ed(r));return t.length===0?fo():t.length===1?t[0]:{OR:t}},ye=e=>va(e)?e:{NOT:e},td=(e,t,r)=>po(e.all.map(o=>G(o,t,r))),rd=(e,t,r)=>_(e.any.map(o=>G(o,t,r))),od=(e,t,r)=>{if(Ct(e,t?.map,t?.model))return sr();let o=G(ge(e.if,lo(t)),t,r),n=G(e.then,t,r),i=_([o,n]);if(e.else!==void 0){let a=G(e.if,t,r),s=G(e.else,t,r);return po([i,_([a,s])])}return i};var nd=(e,t,r)=>{let o=Xt(Ve(t,r));return o===null?null:Yt(e,o)},id=(e,t,r)=>{if(e===null)return null;let o=Hr(Ve(t,r)),n=o&&Zt(o[0],Fo(r));return !o||!n?null:vt(De__default.default(e),n,o[1],so(r).timeZone).toDate()};var lr=(e,t)=>{let r=e.split("."),o=t;for(let n=r.length-1;n>=0;n--)o={[r[n]]:o};return o};var Aa=(e,t)=>ue(e,t?.map,t?.model),pt=e=>e==="json"||e==="json-path",Mt=e=>pt(e)?Zp():null,kt=(e,t)=>t?.map&&t?.model?mp(e,t.map,t.model).map(r=>lr(r,{is:null})):[],$a=(e,t)=>{let r=Aa(e,t);return [...pt(r)||r==="list"||te(e.field,t?.map,t?.model)?.isRequired===false?[Lt(e.field,{equals:Mt(r)},t)]:[],...kt(e.field,t)]},Ri=(e,t,r,o)=>{if(r.mode&&pt(o)&&Array.isArray(t))throw N("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]:Z(t),...r};if(/[%_\\"\u0000-\u001f]/.test(t))throw N("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}},Pa=(e,t,r,o)=>{let n=t?.datasource?.provider??Gt.get("prismaOptions.datasource.provider");return fe(e.caseInsensitive)&&df(n)&&io(r,o)?{mode:"insensitive"}:{}},US=(e,t)=>{if(e==="list")return [{isEmpty:true}];let r=t?[{equals:""}]:[];return pt(e)?[...r,{equals:[]}]:r},GS=e=>"isEmpty"in e?{isEmpty:false}:{not:e.equals},Ta=(e,t,r,o,n)=>{let i=s=>Lt(e,s,n),a=US(t,o);return r?_([i({equals:Mt(t)}),...kt(e,n),...a.map(s=>i(s))]):po([...t==="list"?[]:[i({not:Mt(t)})],...a.map(s=>i(GS(s)))])},KS=(e,t)=>{if(!Zr(e))throw Ur(e.field);let r=i=>Lt(e.field,i,t),o=rt({...e,field:"relation"},{relation:null})===true,n=kt(e.field,t);return te(e.field,t?.map,t?.model)?.isRequired?o?_(n):n.length?ye(_(n)):ft():o?_([r({is:null}),...n]):r({isNot:null})},ad=(e,t)=>{let r=u=>Lt(e.field,u,t),o=Aa(e,t),n=()=>$a(e,t),i=di(e,t?.map,t?.model);if(o==="relation")return KS(e,t);switch(e.operator){case h.exists:return o==="list"?ye(r({equals:null})):r({not:Mt(o)});case h.notExists:{let u=n();return u.length?_(u):r({equals:Mt(o)})}case h.isEmpty:case h.notEmpty:return Ta(e.field,o,e.operator===h.isEmpty,i,t)}let a=sd(e,t);if(Fe(e,a))return _(k.includes(e.operator)?n():[]);if(o==="list"&&Br.includes(e.operator)&&Array.isArray(a))return G(Jn(e,a),t);if(o==="list"&&Array.isArray(a)&&a.includes(null))throw N("toPrisma",`A list holding null in '${e.field}'`);if(o==="list"&&fe(e.caseInsensitive)&&io("text",a))throw N("toPrisma",`A case-insensitive comparison on the list '${e.field}'`);let s=o==="enum"?te(e.field,t?.map,t?.model):void 0,f=s?bi(e,a,s,t?.map):null;if(f){let u=r({in:f.values});return f.matchesNull?_([u,...n()]):u}if(Br.includes(e.operator)){let{values:u,hasNull:g}=tt(a),m=Pa(e,t,o,u),y=pt(o)?e.operator===h.in?_(u.map(w=>r(Ri("equals",w,m,o)))):po(u.map(w=>r(Ri("not",w,m,o)))):r({[e.operator]:u,...m});return e.operator===h.in?g?_([y,...n()]):y:g?po([y,r({not:Mt(o)})]):_([y,...n()])}let l=u=>{if(!pt(o)||u!==h.contains)return r(Io({...e,operator:u},t));let g=r({array_contains:[zS(e,a,t,o)]});return typeof a=="string"?_([r(Io({...e,operator:u},t)),g]):g};if(e.operator===h.contains)return l(h.contains);let p=Rf.includes(e.operator)?Oo[e.operator]:Vr.includes(e.operator)?h.between:void 0;if(p){if(pt(o))throw N("toPrisma",`'${e.operator}' on the Json value '${e.field}'`,"it keeps values of other types");return _([ye(l(p)),...n()])}let d=r(Io(e,t));return e.operator===h.equals&&a===null?_([d,...kt(e.field,t)]):e.operator===h.notEquals&&o==="list"?a===null?ye(r({equals:null})):_([ye(r({equals:a})),...n()]):e.operator===h.notEquals&&a!==null?_([d,...n()]):d},sd=(e,t)=>{let r=ci(e,Ve(e,t),Nt(e.field,t?.map,t?.model),"toPrisma",()=>so(t).timeZone);return e.offset===void 0?r:nd(r,e.offset,t)},Io=(e,t)=>{let r=kn(e);if(r)throw r;let o=Aa(e,t),n=()=>sd(e,t),i=l=>Pa(e,t,o,l),a=l=>{let p=n();if(o==="list"){if(l!=="contains")throw new Error(`Operator '${l}' does not apply to the list '${e.field}'.`);return {has:p}}let d=pt(o)?HS[l]:l,u=typeof p=="string"?Z(p):p;return {[d]:u,...i(p)}},s=Ln(e.operator,n());if(s)throw s;let f=bt(e.operator,"field");if(f&&Fr.includes(e.operator))return {[f]:n()};switch(e.operator){case h.equals:{let l=n()??Mt(o);return Ri("equals",l,i(l),o)}case h.notEquals:{let l=n()??Mt(o);return Ri("not",l,i(l),o)}case h.in:case h.notIn:return {[e.operator]:n()};case h.contains:return a("contains");case h.startsWith:return a("startsWith");case h.endsWith:return a("endsWith");case h.matches:case h.notMatches:throw N("toPrisma",`'${e.operator}'`,"Prisma has no pattern filter");case h.between:case h.notBetween:{let[l,p]=me(xe(n(),e.operator));return {gte:l,lte:p}}default:throw new Error(`Operator '${e.operator}' is built by buildFieldRule`)}},zS=(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(Pa(e,r,o,t).mode)throw N("toPrisma",`A case-insensitive member of the Json array '${e.field}'`);return t},HS={contains:"string_contains",startsWith:"string_starts_with",endsWith:"string_ends_with"},Lt=(e,t,r)=>{if(!r?.map||!r?.model)return lr(e,t);let o=Be(e,r.map,r.model),n=o.hops.find(a=>a.entry.isList);if(n)throw Dn(e,n);let i=e.split(".");switch(o.kind){case "fallback":case "direct":return lr(e,t);case "bridge":return sr();case "past-scalar":throw Fn(e,o.column);case "json-path":{let a={path:o.jsonPath,...t},s=i.slice(0,o.stopIndex).join(".");return lr(s,a)}}};var Ei=(e,t,r,o)=>{let n=e.split("."),i=Be(e,t,r);if(i.kind!=="direct"||i.entry.kind!=="object"){let f=i.hops.at(-1)?.entry.type??r;throw new Error(`Field '${n[i.hops.length]}' is not a relation in model '${f}'. ${o} require a relation field.`)}let a=i.hops.find(f=>f.entry.isList);if(a)throw new Error(`Intermediate field '${a.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 s=Lo(t,i.model,i.entry);if(!s){let f=Object.values(j(t,i.entry.type)?.fields??{}).some(l=>l.kind==="object"&&l.type===i.model&&l.isList&&!l.fromFields?.length);throw new Error(f?`'${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(s.length>1)throw new Error(`${o} do not support composite FK relations ('${i.model}.${i.column}'). Use prisma.$queryRaw.`);return {through:i.hops.map(f=>f.field).join("."),target:i.entry.type,parentKey:s[0].here,targetKey:s[0].there}},vi=(e,t,r,o,n)=>{let i={operation:"groupBy",model:t.target,args:{by:[t.targetKey],where:r,having:o},extract:t.targetKey},a={__step:e.steps.length};e.steps.push(i);let s={[t.parentKey]:{in:a}},f=n?ye(s):s;return t.through?lr(t.through,f):f};var ld=(e,t,r)=>{if(de(e)){let o=Yr(e);if(!o)throw ke("toPrisma");return G(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(!_e.includes(e.aggregate.mode))throw Et(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 JS(e,t,r)},JS=(e,t,r)=>{let o=Ei(e.field,t.map,t.model,"Aggregate rules");if(e.condition&&Ct(e.condition,t.map,o.target))return sr();let n=e.aggregate.field??"",i=be(t.map,o.target,n);if(!i)throw new Error(`aggregate.field '${n}' does not exist on model '${o.target}'.`);if(i.kind!=="scalar"||nt(i))throw new Error(`aggregate.field '${n}' on model '${o.target}' must be a numeric scalar, got ${i.kind==="scalar"?"Json":`'${i.kind}'`}.`);let a=lo(t)(e);if(a===null)return fo();let s=No(a,[{}],void 0,void 0,{},{value:0})===true,f=s?ge(a):a,l=Io(f,t),p={[e.aggregate.mode==="sum"?"_sum":"_avg"]:l},d=Vr.includes(f.operator)?ye({[n]:p}):{[n]:p},u=e.condition?G(e.condition,{...t,model:o.target},r):ft(),g=vi(r,o,u,d,s);return s?_([g,...kt(e.field,t)]):g};var pd=(e,t,r)=>{if(!e.field)throw new Error("toPrisma: count-based ArrayRule requires a field path");let o=Ei(e.field,t.map,t.model,"Count operators");if(e.condition===void 0)throw Se(e.arrayOperator);if(e.count===void 0)throw Wr(e.arrayOperator);let n=e.count;if(e.arrayOperator===O.atLeast&&n===0)return ft();let i=G(e.condition,{...t,model:o.target},r),a=Na(e),s=a?fd(O.atLeast,e.arrayOperator===O.atMost?n+1:1,o.targetKey):fd(e.arrayOperator,n,o.targetKey);return vi(r,o,i,s,a)},fd=(e,t,r)=>{let o=bt(e,"array");if(!o)throw new Error(`'${e}' does not count`);return {[r]:{_count:{[o]:t}}}};var dd=(e,t,r)=>{let o=QS(e,t,r);return e.field&&Na(e)&&!ud(e.field,t)?_([o,...kt(e.field,t)]):o},Na=e=>rt({...e,field:"items"},{items:[]})===true,QS=(e,t,r)=>{if(de(e)){let i=Yr(e);if(!i)throw ke("toPrisma");return G(i,t,r)}if(e.condition!==void 0&&!Of.includes(e.arrayOperator)&&Ct(e.condition,t?.map,cd(e,t)?.model))return sr();if(Pn.includes(e.arrayOperator)){if(t?.map&&t?.model&&r)return pd(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 _n("toPrisma");let{field:o}=e;if(ud(o,t))return ZS(e,o,ue({field:o},t?.map,t?.model),t);let n=YS(e,t,r);return Lt(e.field,n,t)},ud=(e,t)=>{let r=ue({field:e},t?.map,t?.model);return r==="list"||r==="json"||r==="json-path"},ZS=(e,t,r,o)=>{switch(e.arrayOperator){case O.empty:case O.notEmpty:return Ta(t,r,e.arrayOperator===O.empty,false,o);default:throw N("toPrisma",`'${e.arrayOperator}' over the ${r==="list"?"list":"Json array"} '${t}'`,r==="list"?"test a list's membership with 'contains'":void 0)}},cd=(e,t)=>{if(!t?.map||!t?.model||!e.field)return t;let r=ia(e.field,t.map,t.model);return r?{...t,model:r}:t},YS=(e,t,r)=>{let o=cd(e,t);switch(e.arrayOperator){case O.all:if(!e.condition)throw Se(e.arrayOperator);return {none:G(ge(e.condition,lo(o)),o,r)};case O.any:if(!e.condition)throw Se(e.arrayOperator);return {some:G(e.condition,o,r)};case O.none:if(!e.condition)throw Se(e.arrayOperator);return {none:G(e.condition,o,r)};case O.empty:return {none:{}};case O.notEmpty:return {some:{}};default:throw z(e.arrayOperator,"array")}};var md=(e,t)=>{let r=t?.map,o=ue({field:e.field},r,t?.model);if(o==="json"||o==="json-path")throw N("toPrisma",`A date rule on the Json value '${e.field}'`,"Prisma compares Json text");let n=te(e.field,r,t?.model);if(n&&!ae(n)&<(n)!==F.DateTime)throw N("toPrisma",`A date rule on the ${n.type} field '${e.field}'`,`Prisma compares it as ${n.type}, not as an instant`);let i=k.includes(e.dateOperator)?$a(e,t):[],a=XS(e,t);if(a===null)return _(i);let s=Lt(e.field,a,t),f=Vr.includes(e.dateOperator)?ye(s):s;return _([f,...i])},XS=(e,t)=>{let r=so(t),o=Fo(t),n=g=>e.offset===void 0?g:id(g,e.offset,t),i=g=>{if(g==null)return null;if(!q(g))return zn(g,r.timeZone);let m=Le(g,o);return m&&Gr(m,e.dateOperator,r).toDate()},a=()=>Ve(e,t),s=()=>n(i(a())),f=()=>{let g=a();if(g==null)return null;let m=xe(g,e.dateOperator).map(i);if(m[0]===null||m[1]===null)return null;let[y,w]=me(m).map(n);return y&&w?[y,w]:null},l=()=>{let g=a();if(g==null)return null;if(!q(g))throw we(e.dateOperator);let m=Le(g,o);if(!m)return null;let[y,w]=Kr(m,r);return [y.toDate(),w.toDate()]},p=g=>{let m=s();return m===null?null:{[g]:m}},d=g=>g?{gte:g[0],lte:g[1]}:null,u=bt(e.dateOperator,"date");if(u)return p(u);switch(e.dateOperator){case A.within:case A.notWithin:return d(l());case A.between:case A.notBetween:return d(f());case A.dayIn:case A.dayNotIn:throw N("toPrisma",`'${e.dateOperator}'`);default:throw z(e.dateOperator,"date")}};var Ca=(e,t,r)=>{if(typeof e=="boolean")return e?{}:fo();wn(e,"toPrisma");let o=H(e);(o==="field"||o==="date")&&ui(e.field,t?.map,t?.model);let n=e;switch(o){case "all":return td(n,t,r);case "any":return rd(n,t,r);case "if":return od(n,t,r);case "array":return dd(n,t,r);case "aggregate":return ld(n,t,r);case "date":return md(n,t);case "field":return ad(n,t);default:throw Me()}};Xp(Ca);var gd=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 a=i.model.charAt(0).toLowerCase()+i.model.slice(1),s=t[a];if(!s)throw new Error(`executePrismaPlan: no delegate for model '${i.model}'. Ensure prismaDelegate has a key '${a}'.`);let f=await s[i.operation](i.args);n.push(f.map(l=>l[i.extract]).filter(l=>l!=null));}return _a(o.where,n)},_a=(e,t)=>{if(e==null)return e;if(Array.isArray(e))return e.map(r=>_a(r,t));if(typeof e=="object"){let r=Object.getPrototypeOf(e);if(r!==Object.prototype&&r!==null)return e;let o=e;if("__step"in o&&typeof o.__step=="number"){let i=o.__step;if(i>=t.length)throw new Error(`Step ref __step: ${i} out of range (${t.length} steps executed)`);return t[i]}let n={};for(let[i,a]of Object.entries(o))n[i]=_a(a,t);return n}return e};var ex=e=>e?.map?{...e,map:xi(e.map,e.mapName,"toPrisma")}:e,Ma=(e,t)=>{let r={steps:[]},o=Ca(e,ex(t),r);return {steps:[...r.steps,{operation:"where",where:o}]}};var yd=e=>e instanceof Date?e.toISOString():Array.isArray(e)&&e.some(t=>t instanceof Date)?e.map(yd):e,T=(e,t)=>(e.params.push(yd(t)),`$${++e.paramIndex}`);var dt=(e,t,{jsonb:r=false}={})=>{let o=()=>({sql:Ra(e,void 0,r),shape:e.includes(".")?"json-path":"unknown"});if(!t.map||!t.currentModel||!t.currentAlias)return o();let n=Be(e,t.map,t.currentModel);if(n.kind==="past-scalar")throw Fn(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 Dn(e,i);let a=t.currentAlias;for(let p of n.hops){let d=hd(t,a,p);if(!d)return o();a=d;}let s=pi(n);if(n.kind==="direct"&&n.entry.kind==="object"){let p={field:n.column,entry:n.entry,from:n.model},d=Lo(t.map,n.model,n.entry),u=hd(t,a,p);return !d||!u?o():{sql:`${W(u)}.${W(d[0].there)}`,shape:s}}let f=n.kind==="json-path"?[n.column,...n.jsonPath]:[n.column],l=Ra(f.join("."),a,r);return {sql:s==="json"&&!r?`NULLIF(${l}, 'null'::jsonb)`:l,shape:s}},Dt=(e,t,r)=>dt(e,t,r).sql,hd=(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}`,a=tx(e.map,r.from,t,r.entry,i);return a?(e.joinCounter.n+=1,e.joins?.push(a),e.joinRegistry?.set(o,i),i):null},tx=(e,t,r,o,n)=>{let i=o.type,a=j(e,i)?.dbName??i,s=Lo(e,t,o);if(!s)return null;let f=s.map(({here:l,there:p})=>`${W(n)}.${W(p)} = ${W(r)}.${W(l)}`).join(" AND ");return `LEFT JOIN ${W(a)} AS ${W(n)} ON ${f}`};var ut={type:"value",value:null},ct=e=>e.type==="value"&&(e.value===null||e.value===void 0),rx=(e,t)=>{let r=K(e);if(r){if(r.depth>1)throw new Error(xo(e,"toSql"));let o=dt(r.path,t);if(o.shape==="relation")throw new Error(`'${e}' is a relation; a value ref reads a column`);return {type:"column",...o}}return {type:"value",value:Sn(e,t.context,"toSql")}},re=(e,t)=>vo(e,{value:r=>({type:"value",value:r}),path:r=>rx(r,t),bind:(r,o)=>({type:"value",value:Vn(r,o,"toSql")})}),fr=e=>t=>{let r=re(t,e);if(r.type==="column")throw new Error(`'${t.path}' is a row ref`);return r.value},Re=e=>er(e.dateConfig??{},fr(e));var ox={lt:"<",lte:"<=",gt:">",gte:">=",equals:"="},uo=(e,t)=>{let r=bt(e,t);return r?{symbol:ox[r],negated:k.includes(e)}:void 0},wd=(e,t)=>e.type==="column"?e.sql:T(t,e.value),qe=(e,t)=>`(${t} OR ${e} IS NULL)`,Ft=(e,t,r=true)=>t&&r?`${e} IS NULL`:"FALSE",Ai=(e,t,r,o,n)=>{if(ct(r))return Ft(e,o);let i=`${e} ${t} ${wd(r,n)}`;return o?qe(e,i):i},jo=(e,t,r,o,n=true)=>{if(!t||t.some(ct))return Ft(e,r,n);let[i,a]=t.map(d=>wd(d,o)),s=t.some(d=>d.type==="column"),f=s?"SYMMETRIC ":"";if(!r)return `${e} BETWEEN ${f}${i} AND ${a}`;let l=`${e} NOT BETWEEN ${f}${i} AND ${a}`,p=s?`(${l} AND ${i} IS NOT NULL AND ${a} IS NOT NULL)`:l;return n?qe(e,p):p};var Sd=e=>Array.isArray(e)?e.some(Sd):typeof e=="object"&&e!==null,xd=(e,t,r,o)=>{let n=`NULLIF(${t}, 'null'::jsonb)`,i=`jsonb_typeof(${n})`,a=`(${n} #>> '{}')`,s=c=>`${T(o,JSON.stringify(c))}::jsonb`,f=fe(e.caseInsensitive),l=c=>f?`LOWER(${c})`:c,p=k.includes(e.operator),d=c=>qe(n,`NOT (${c})`);if(Fe(e,r))return Ft(n,p);let u=Ln(e.operator,r);if(u)throw u;let g=c=>{if(Sd(c))throw N("toSql",`A case-insensitive comparison of '${e.field}' with a list holding objects`);return s(rr(c))},m=c=>f&&typeof c=="string"?`(${i} = 'string' AND LOWER(${a}) = LOWER(${T(o,c)}))`:f&&Array.isArray(c)?`(${i} = 'array' AND LOWER(${n}::text)::jsonb = ${g(c)})`:`${n} = ${s(c)}`,y=c=>`(${i} = 'string' AND ${l(a)} LIKE ${l(T(o,c))})`,w=c=>{let b=R=>`(CASE WHEN ${i} = 'array' THEN EXISTS (SELECT 1 FROM jsonb_array_elements(${n}) AS e WHERE ${R}) ELSE FALSE END)`;return f&&typeof c=="string"?b(`jsonb_typeof(e) = 'string' AND LOWER(e #>> '{}') = LOWER(${T(o,c)})`):f&&Array.isArray(c)?b(`LOWER(e::text)::jsonb = ${g(c)}`):typeof c=="object"&&c!==null?b(`e = ${s(c)}`):`(${i} = 'array' AND ${n} @> ${s([c])})`},S=c=>typeof c=="string"?`(${y(`%${Z(c)}%`)} OR ${w(c)})`:w(c);switch(e.operator){case h.equals:return r===null?`${n} IS NULL`:m(r);case h.notEquals:return r===null?`${n} IS NOT NULL`:d(m(r));case h.in:case h.notIn:{let{values:c,hasNull:b}=tt(r),R=c.length?`(${c.map(m).join(" OR ")})`:"FALSE";return e.operator===h.in?b?`(${R} OR ${n} IS NULL)`:R:b?`(NOT ${R} AND ${n} IS NOT NULL)`:d(R)}case h.between:case h.notBetween:{let[c,b]=r,R=`(${i} = jsonb_typeof(${s(c)}) AND ${n} BETWEEN ${s(c)} AND ${s(b)})`;return e.operator===h.between?R:d(R)}case h.contains:return S(r);case h.notContains:return d(S(r));case h.startsWith:return y(`${Z(String(r))}%`);case h.endsWith:return y(`%${Z(String(r))}`);case h.notStartsWith:return d(y(`${Z(String(r))}%`));case h.notEndsWith:return d(y(`%${Z(String(r))}`));case h.matches:case h.notMatches:{let{source:c,caseInsensitive:b}=Pt(r),R=`(${i} = 'string' AND ${a} ~${b?"*":""} ${T(o,To(c))})`;return e.operator===h.matches?R:d(R)}}let x=uo(e.operator,"field")?.symbol;if(x)return `(${i} = jsonb_typeof(${s(r)}) AND ${n} ${x} ${s(r)})`;throw new Error(`Operator '${e.operator}' is not supported on a Json value in SQL`)};var bd=e=>typeof e=="object"&&Jt(e)!==null,Bo=({sql:e,shape:t},r)=>{if(t!=="json-path"&&t!=="text")return `to_timestamp(EXTRACT(EPOCH FROM ${e}))`;let o=T(r,Re(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)`},$i=e=>Object.values(e).some(bd),ix=(e,t,r)=>{let o=Kt(r),n=o?"int":"double precision";if(typeof e=="number"||!bd(e)){let s=ea(e,fr(t),r);return `${T(t,s)}::${n}`}let i=re(e,t).sql;return `(CASE WHEN ${o?`${i} >= 0 AND ${i} = trunc(${i})`:`${i} >= 0`} THEN ${i} END)::${n}`},ax=(e,t)=>`make_interval(${Nf.flatMap(o=>{let n=Object.keys(e).filter(i=>e[i]!==void 0&&Rt[i].interval===o).map(i=>{let a=ix(e[i],t,i),{factor:s}=Rt[i];return s===1?a:`${s} * ${a}`});return n.length?[`${o} => ${n.join(" + ")}`]:[]}).join(", ")})`,Vo=(e,t,r,o)=>{let n=Re(o).timeZone;if(e.type==="value"&&!$i(t)){let f=Zt(t,fr(o));return e.value===null||e.value===void 0||f===null?ut:{type:"value",value:vt(De__default.default(e.value),f,r,n).toDate()}}let i=e.type==="column"?e.computed?e.sql:Bo(e,o):`${T(o,e.value??null)}::timestamptz`,a=T(o,n);return {type:"column",computed:true,sql:`(((${i} AT TIME ZONE ${a}) ${r===1?"+":"-"} ${ax(t,o)}) AT TIME ZONE ${a})`}};var ka=(e,t,r)=>{let o=re(t,r);if(e.type==="value"&&o.type==="value"){let i=Xt(o.value);return i===null?ut:{type:"value",value:Yt(e.value,i)}}let n=(i,a)=>i.type==="column"?`(${i.sql})::double precision`:`${T(r,a(i.value)??null)}::double precision`;return {type:"column",computed:true,sql:`(${n(e,i=>i)} + ${n(o,Xt)})`}},Od=(e,t,r)=>{if(ct(e))return ut;let o=re(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=Hr(o.value);return n===null?ut:Vo(e,...n,r)};var Rd,Ed=e=>{Rd=e;},It=(e,t)=>Rd(e,t);var Ti=(e,t,r)=>{let o=kn(e);if(o)throw o;let n=r===void 0?dt(e.field,t):{sql:r,shape:"scalar"};if(n.shape==="relation"&&!Zr(e))throw Ur(e.field);let i=r===void 0;if(n.shape==="enum"&&!Ot.includes(e.operator)){let c=Ad(e,t),b=te(e.field,t.map,t.currentModel),R=c!==Pi&&b&&!Fe(e,c)?bi(e,c,b,t.map):null;if(R){let $=`${n.sql}::text = ANY(${T(t,R.values)})`;return R.matchesNull?qe(n.sql,$):$}}let a=n.shape==="enum"&&!Ot.includes(e.operator)?{...n,sql:`${n.sql}::text`}:n;if((n.shape==="json"||n.shape==="json-path")&&!Ot.includes(e.operator)){let c=Ad(e,t);if(c===Pi)throw new Error(`The Json value '${e.field}' compares against an operand known when compiling, not one read per row.`);return xd(e,Dt(e.field,t,{jsonb:true}),c,t)}let f=c=>{if(c.type==="column"&&!c.computed&&(c.shape==="json"||c.shape==="json-path"))throw N("toSql",`'${e.field}' compared with a Json value read per row`,"SQL would compare its text")};if(ce.includes(e.operator)){let c=Td(e,t);return c?.forEach(f),jo(a.sql,c,k.includes(e.operator),t,i)}let l=$d(e,t);if(f(l),l.type==="column"&&Qe(e.operator,"field")==="string"&&!ar(n.shape)&&n.shape!=="list")throw N("toSql",`'${e.operator}' on '${e.field}'`,"it is not text");if(l.type==="column"&&l.computed&&n.shape==="text"&&r===void 0)throw N("toSql",`'${e.field}' against a value moved by an offset`,"an offset moves a number or a date");let p=a.sql,d=uo(e.operator,"field");if(d)return Ai(p,d.symbol,l,false,t);if(l.type==="value"&&Fe(e,l.value))return Ft(p,k.includes(e.operator),i);let u=l.type==="column"&&l.computed===true,g=fe(e.caseInsensitive)&&(l.type==="column"?!u&&ar(n.shape)&&ar(l.shape):io(n.shape,l.value)),m=c=>g?`LOWER(${c})`:c,y=c=>g?rr(c):c;if(n.shape==="list"&&l.type==="column"&&Ir.includes(e.operator)){if(te(e.field,t.map,t.currentModel)?.type!=="String"||!ar(l.shape))throw N("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 c=fe(e.caseInsensitive)&&ar(l.shape)?`EXISTS (SELECT 1 FROM unnest(${p}) AS e WHERE LOWER(e) = LOWER(${l.sql}))`:`array_position(${p}, ${l.sql}) IS NOT NULL`;return e.operator===h.contains?`(${l.sql} IS NOT NULL AND ${c})`:`(${p} IS NULL OR (${l.sql} IS NOT NULL AND NOT ${c}))`}if(n.shape==="list"&&l.type==="value"){let c=fe(e.caseInsensitive)&&io("text",l.value);if(Ir.includes(e.operator)){let b=T(t,l.value),R=c?`EXISTS (SELECT 1 FROM unnest(${p}) AS e WHERE LOWER(e) = LOWER(${b}))`:`array_position(${p}, ${b}) IS NOT NULL`;return e.operator===h.contains?R:`NOT ${R}`}if(Br.includes(e.operator)&&Array.isArray(l.value))return It(Jn(e,l.value),t);if(sx(e.operator))throw new Error(`'${e.operator}' does not apply to the list '${e.field}'; test its members with contains.`);if(c&&jr.includes(e.operator)&&Array.isArray(l.value)){let b=T(t,rr(l.value)),R=`(${p} IS NOT NULL AND ARRAY(SELECT LOWER(e) FROM unnest(${p}) AS e) = ${b})`;return e.operator===h.equals?R:qe(p,`NOT ${R}`)}}let w=l.type==="value"?l.value:void 0,S=l.type==="column"?l.sql:void 0;if(S!==void 0&&(Br.includes(e.operator)||Qe(e.operator,"field")==="pattern"))throw N("toSql",`'${e.operator}' against an operand read per row ('${e.path}')`);let x=c=>i?qe(p,c):c;switch(e.operator){case h.equals:return u?`${p} = ${S}`:S!==void 0?`${m(p)} IS NOT DISTINCT FROM ${m(S)}`:w===null?`${p} IS NULL`:`${m(p)} = ${m(T(t,w))}`;case h.notEquals:return u?x(`${p} <> ${S}`):S!==void 0?`${m(p)} IS DISTINCT FROM ${m(S)}`:w===null?`${p} IS NOT NULL`:x(`${m(p)} <> ${m(T(t,w))}`);case h.in:{let{values:c,hasNull:b}=tt(w);if(!c.length)return b?`${p} IS NULL`:"FALSE";let R=`${m(p)} = ANY(${T(t,y(c))})`;return b?x(R):R}case h.notIn:{let{values:c,hasNull:b}=tt(w);if(!c.length)return b?`${p} IS NOT NULL`:"TRUE";let R=`${m(p)} <> ALL(${T(t,y(c))})`;return b?`(${R} AND ${p} IS NOT NULL)`:x(R)}case h.contains:return `${m(p)} LIKE ${m(T(t,`%${Z(String(w))}%`))}`;case h.notContains:return x(`${m(p)} NOT LIKE ${m(T(t,`%${Z(String(w))}%`))}`);case h.startsWith:return `${m(p)} LIKE ${m(T(t,`${Z(String(w))}%`))}`;case h.endsWith:return `${m(p)} LIKE ${m(T(t,`%${Z(String(w))}`))}`;case h.notStartsWith:return x(`${m(p)} NOT LIKE ${m(T(t,`${Z(String(w))}%`))}`);case h.notEndsWith:return x(`${m(p)} NOT LIKE ${m(T(t,`%${Z(String(w))}`))}`);case h.matches:return vd(p,w,false,t);case h.notMatches:return x(vd(p,w,true,t));case h.isEmpty:case h.notEmpty:return La(e.field,n,e.operator===h.isEmpty,t,di(e,t.map,t.currentModel));case h.exists:return `${p} IS NOT NULL`;case h.notExists:return `${p} IS NULL`;default:throw new Error(`Unknown operator: ${e.operator}`)}},$d=(e,t)=>{if(Ot.includes(e.operator))return {type:"value",value:void 0};let r=Pd(e,re(e,t),t);return e.offset===void 0?r:ka(r,e.offset,t)},Pd=(e,t,r)=>t.type==="column"?t:{type:"value",value:ci(e,t.value,Nt(e.field,r.map,r.currentModel),"toSql",()=>Re(r).timeZone)},Td=(e,t)=>{let r=Pd(e,re(e,t),t),o=r.type==="value"?r.value:void 0;if(o==null)return null;let n=xe(o,e.operator);return n.some(i=>i!=null&&!J(i))&&zr(o,e.operator),me(n).map(i=>{let a={type:"value",value:i};return e.offset===void 0?a:ka(a,e.offset,t)})},vd=(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}=Pt(t);return `${e} ${r?"!":""}~${i?"*":""} ${T(o,To(n))}`},Pi=Symbol("not known"),Ad=(e,t)=>{if(ce.includes(e.operator)){let o=Td(e,t);return o?o.every(n=>n.type==="value")?o.map(n=>n.value):Pi:null}let r=$d(e,t);return r.type==="value"?r.value:Pi},La=(e,t,r,o,n)=>{let{sql:i,shape:a}=t;if(a==="list")return r?`(${i} IS NULL OR cardinality(${i}) = 0)`:`cardinality(${i}) > 0`;if(a==="json"||a==="json-path"){let s=Dt(e,o,{jsonb:true}),f=["'null'::jsonb",...n?[`'""'::jsonb`]:[],"'[]'::jsonb"].join(", ");return r?`(${s} IS NULL OR ${s} IN (${f}))`:`${s} NOT IN (${f})`}return n?r?`(${i} IS NULL OR ${i} = '')`:`(${i} IS NOT NULL AND ${i} <> '')`:r?`${i} IS NULL`:`${i} IS NOT NULL`},sx=e=>Qe(e,"field")==="string"&&!Ir.includes(e);var Nd=(e,t)=>{if(de(e))throw ke("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=lx(e,t);return Ti(e,t,r)},lx=(e,t)=>{let{mode:r,field:o}=e.aggregate;if(!_e.includes(r))throw Et(r);let n=r==="sum"?"SUM":"AVG",i=ue({field:e.field},t.map,t.currentModel);if(i==="relation"||te(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 a=i==="list",s=Dt(e.field,t,{jsonb:!a}),f=a?s:`(CASE WHEN jsonb_typeof(${s}) = 'array' THEN ${s} END)`;if(a){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(${f}) AS elem)`}if(o){let d=`(elem->>${Ea(o)})::numeric`;return `(SELECT ${`COALESCE(${n}(${d}), 0)`} FROM jsonb_array_elements(${f}) AS elem)`}return `(SELECT ${`COALESCE(${n}(elem::numeric), 0)`} FROM jsonb_array_elements_text(${f}) AS elem)`};var Cd=(e,t)=>{if(de(e))throw ke("toSql");if(!e.field)throw _n("toSql");if(ue({field:e.field},t.map,t.currentModel)==="relation"||te(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 O.empty:case O.notEmpty:{let o=dt(e.field,t),n=o.shape==="list"?o:{...o,shape:"json-path"};return La(e.field,n,e.arrayOperator===O.empty,t,false)}case O.all:case O.any:case O.none:case O.atLeast:case O.atMost:case O.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 z(e.arrayOperator,"array")}};var fx=(e,t)=>e.type==="column"&&!e.computed?{type:"column",sql:Bo(e,t),computed:true}:e,_d=e=>e===void 0||e==="instant"||e==="text"||e==="json-path"||e==="unknown",Md=e=>N("toSql",`A date rule on '${e}'`,"it is not a date column"),kd=(e,t,r)=>{let o=t.some(i=>i.type==="column"),n=e.shape==="json-path"||e.shape==="text";return o||n?{lhs:Bo(e,r),ends:t.map(i=>fx(i,r))}:{lhs:e.sql,ends:t}},Ld=(e,t)=>{let r=dt(e.field,t);if(!_d(r.shape))throw Md(e.field);let o=re(e,t);if(o.type==="column"&&!_d(o.shape))throw Md(String(e.path??e.field));let n=uo(e.dateOperator,"date");if(n){let{lhs:a,ends:s}=kd(r,[dx(e,t)],t);return Ai(a,n.symbol,s[0],n.negated,t)}let i=(a,s)=>{if(!a)return jo(r.sql,null,s,t);let{lhs:f,ends:l}=kd(r,a,t);return jo(f,l,s,t)};switch(e.dateOperator){case A.within:case A.notWithin:return i(ux(e,t),k.includes(e.dateOperator));case A.between:case A.notBetween:return i(cx(e,t),k.includes(e.dateOperator));case A.dayIn:case A.dayNotIn:{let a=e.dateOperator===A.dayNotIn,s=re(e,t);if(s.type==="column")throw N("toSql",`A weekday list read from the row ('${e.path}')`);let f=ta(s.value);if(f===null)return Ft(r.sql,a);let l=T(t,Re(t).timeZone),p=T(t,f),d=`EXTRACT(DOW FROM (${Bo(r,t)} AT TIME ZONE ${l}))`;return e.dateOperator===A.dayIn?`${d} = ANY(${p})`:qe(r.sql,`${d} <> ALL(${p})`)}default:throw z(e.dateOperator,"date")}},Dd=e=>({type:"value",value:Ro(Re(e)).toDate()}),px=(e,t,r)=>{let o=ie(e);if(o&&$i(o[0]))return Vo(Dd(r),...o,r);let n=Le(e,fr(r));return n===null?ut:{type:"value",value:Gr(n,t,Re(r)).toDate()}},Fd=(e,t,r)=>e==null?ut:q(e)?px(e,t,r):{type:"value",value:zn(e,Re(r).timeZone)},Id=(e,t,r)=>t.offset===void 0?e:Od(e,t.offset,r),dx=(e,t)=>{let r=re(e,t),o=r.type==="column"?r:Fd(r.value,e.dateOperator,t);return Id(o,e,t)},ux=(e,t)=>{let r=re(e,t);if(ct(r))return null;if(r.type==="column"||!q(r.value))throw we(e.dateOperator);let o=ie(r.value);if(o&&$i(o[0])){let a=Dd(t),s=Vo(a,...o,t);return o[1]===-1?[s,a]:[a,s]}let n=Le(r.value,fr(t));if(n===null)return null;let i=Kr(n,Re(t));return [{type:"value",value:i[0].toDate()},{type:"value",value:i[1].toDate()}]},cx=(e,t)=>{let r=re(e,t);if(ct(r))return null;let o=r.type==="value"?r.value:void 0,n=xe(o,e.dateOperator).map(f=>Fd(f,e.dateOperator,t));if(n.some(ct))return null;let[i,a]=n;return (i.type==="value"&&a.type==="value"?me([i.value,a.value]).map(f=>({type:"value",value:f})):n).map(f=>Id(f,e,t))};var jd=(e,t)=>e.all.length===0?"TRUE":`(${e.all.map(o=>It(o,t)).join(" AND ")})`,Bd=(e,t)=>e.any.length===0?"FALSE":`(${e.any.map(o=>It(o,t)).join(" OR ")})`,Vd=(e,t)=>{if(Ct(e,t.map,t.currentModel))return "TRUE";let r=It(e.if,t),o=It(e.then,t);if(e.else!==void 0){let n=It(e.else,t);return `(((${r}) IS NOT TRUE OR ${o}) AND ((${r}) IS TRUE OR ${n}))`}return `((${r}) IS NOT TRUE OR ${o})`};var qo=(e,t)=>{if(typeof e=="boolean")return e?"TRUE":"FALSE";if(wn(e,"toSql"),"field"in e&&typeof e.field=="string"&&t.map&&t.currentModel&&aa(e.field,t.map,t.currentModel))return "TRUE";let r=H(e);(r==="field"||r==="date")&&ui(e.field,t.map,t.currentModel);let o=e;switch(r){case "all":return jd(o,t);case "any":return Bd(o,t);case "if":return Vd(o,t);case "array":return Cd(o,t);case "aggregate":return Nd(o,t);case "date":return Ld(o,t);case "field":return Ti(o,t);default:throw Me()}};Ed(qo);var Da=e=>{let t=xi(e?.map,e?.mapName,"toSql"),r=!!(t&&e?.model),o=e?.alias??(r?"t0":void 0);return {params:[],paramIndex:0,context:e?.context,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}},mx=(e,t)=>{let r=Da(t);return {sql:qo(e,r),params:r.params,joins:r.joins??[]}};var qd=(e,t)=>{let[r,...o]=t;if(o.length===0){e[r]=true;return}let n=e[r],i=n!==void 0&&n!==true?n.select:{};qd(i,o),e[r]={select:i};},gx=e=>{let t={};for(let r of e)qd(t,r.split("."));return t},yx=(e,t,r,o,n,i,a)=>{let s=Ma(a,{map:e,mapName:t,model:r}),f=s.steps.at(-1).where,l=s.steps.filter(y=>y.operation!=="where"),p=n?.includes(".")?n:void 0,d=[...i??[],...p?[p]:[]],u={[o]:true,...n&&!p?{[n]:true}:{},...d.length?gx(d):{}},g={model:r,...i?{}:{distinct:[o]},select:u,where:f,...l.length?{steps:s.steps}:{}},m;try{let y=Da({map:e,mapName:t,model:r,alias:"t0"}),w=qo(a,y),S=p?Dt(p,y):void 0,x=i?.map(Bt=>Dt(Bt,y)),c=y.joins??[],b=c.length?` ${c.join(" ")}`:"",R=w?.trim()?` WHERE ${w}`:"",$=W("t0");m={sql:`SELECT DISTINCT ${[`${$}.${W(o)}`,...S?[`${S} AS ${W("__label")}`]:n?[`${$}.${W(n)}`]:[],...x?x.map((Bt,co)=>`${Bt} AS ${W(`__group_${co}`)}`):[]].join(", ")} FROM ${W(r)} AS ${$}${b}${R}`,params:y.params};}catch(y){m={sql:null,params:[],error:y instanceof Error?y.message:String(y)};}return {prisma:g,sql:m}},Wd=e=>{let{lens:t}=B(e);return wi(e).map(({path:r,visit:o,field:n,label:i,groupBy:a,eligibility:s})=>{let f=I([...o.whereClauses,...s]),{prisma:l,sql:p}=yx(t,o.mapName,o.model,n,i,a,f);return {path:r,mapName:o.mapName,model:o.model,field:n,...i!==void 0?{label:i}:{},...a!==void 0?{groupBy:a}:{},composedWhere:f,prisma:l,sql:p}})};var Ud=(e,t)=>{let r=B(e);return fi(r,_t(r),t).resolution};/*! Bundled license information:
|
|
3
|
+
`)}`)},ti=(e,t={})=>{let r={target:t.target??"check",errors:[]};return pt(e,"$",r,1),kt(r.errors)},ES=(e,t={})=>{Lo(ti(e,t),"validateRule");},pt=(e,t,r,o)=>{if(typeof e=="boolean")return;if(!Lt(e)){v(r,t,"invalid_condition","Condition must be a boolean or object");return}let n=Q(e);if(!n){v(r,t,"ambiguous_condition",Fe().message);return}switch(n){case "all":cf(e.all,`${t}.all`,r,o);break;case "any":cf(e.any,`${t}.any`,r,o);break;case "if":pt(e.if,`${t}.if`,r,o),pt(e.then,`${t}.then`,r,o),"else"in e&&e.else!==void 0&&pt(e.else,`${t}.else`,r,o);break;case "field":vS(e,t,r,o);break;case "aggregate":$S(e,t,r,o);break;case "array":PS(e,t,r,o);break;case "date":TS(e,t,r,o);break}},cf=(e,t,r,o)=>{if(!Array.isArray(e)){v(r,t,"logical_array_required","Logical operator requires an array of conditions");return}e.forEach((n,i)=>{pt(n,`${t}[${i}]`,r,o);});},ri=(e,t,r,o)=>{typeof e.field=="string"&&yf(e.field,"field",`${t}.field`,r,o);},yf=(e,t,r,o,n)=>{let i=q(e);if(!i)return;let s=t==="field"?"Field":"Path";i.depth>n&&v(o,r,"scope_out_of_bounds",Ui(e,i.depth,n)),o.target==="toPrisma"?v(o,r,`unsupported_prisma_${t}`,`${s} '${e}' is not supported by toPrisma()`):o.target==="toSql"&&(t==="field"||i.depth>1)&&v(o,r,`unsupported_sql_${t}`,`${s} '${e}' is not supported by toSql()`);},so=(e,t,r,o)=>{let n=qp.filter(s=>e[s]!==void 0);if(n.length>1)return v(r,t,"ambiguous_value_source","Takes one of value, path or bind"),null;if(n.length===0)return v(r,t,"missing_value_source","Requires value, path or bind"),null;let[i]=n;return i!=="value"&&(typeof e[i]!="string"||e[i]==="")?(v(r,`${t}.${i}`,"invalid_value_source",`${i} is a non-empty string`),null):(e.bindOptional!==void 0&&(i!=="bind"||typeof e.bindOptional!="boolean")&&v(r,`${t}.bindOptional`,"invalid_value_source","bindOptional is a boolean beside bind"),i==="path"&&yf(e.path,"path",`${t}.path`,r,o),i)},hf=(e,t,r,o,n,i)=>{let{offset:s}=e;if(s===void 0)return;let a=`${o}.offset`;if(!Ap.includes(r)){v(n,a,"unsupported_offset_operator",`Operator '${r}' has no comparison point to offset`);return}if(!Lt(s)){v(n,a,"invalid_offset","An offset is one of { value }, { path } or { bind }");return}let p=so(s,a,n,i);if(p==="path"){let d=s.path,u=er(s);t==="date"&&u&&u.depth<=1&&n.target==="toSql"&&v(n,`${a}.path`,"unsupported_sql_path",`A row path on a date offset ('${d}') is not supported by toSql()`);return}if(p!=="value")return;let l=s.value;if(t==="field"){(typeof l!="number"||!Number.isFinite(l))&&v(n,`${a}.value`,"invalid_offset","A field offset value is a number");return}let f=Lt(l)&&Object.keys(l).length===1&&U(l)?ie(l):null;if(!f){v(n,`${a}.value`,"invalid_offset","A date offset value is { ago } or { ahead }");return}Sf(f[0],`${a}.value.${Object.keys(l)[0]}`,n,i);},wf=(e,t,r,o)=>{o.target!=="toSql"||!ye.includes(t)||er(e)&&v(o,`${r}.path`,"unsupported_sql_path",`A range read from the row ('${e.path}') is not supported by toSql()`);},vS=(e,t,r,o)=>{if(typeof e.field!="string"&&v(r,`${t}.field`,"field_required","Field rule requires a string field"),ri(e,t,r,o),typeof e.operator!="string"||!tt(e.operator,"field")){v(r,`${t}.operator`,"invalid_operator",H(e.operator,"field").message);return}let n=e.operator;hf(e,"field",n,t,r,o),Cn(n,"field",r.target)||v(r,`${t}.operator`,`unsupported_${oi(r.target)}_operator`,`Operator '${n}' is not supported by ${r.target}()`),e.coerceType!==void 0&&!Nn(e.coerceType)&&v(r,`${t}.coerceType`,"invalid_coerce_type",`coerceType must be one of: ${Object.keys(I).join(", ")}`);let i=ot(n,"field");if(i==="none"){NS(e,t,r);return}so(e,t,r,o)!==null&&(wf(e,n,t,r),!(typeof e.path=="string"||typeof e.bind=="string")&&AS(i,e.value,n,`${t}.value`,r));},AS=(e,t,r,o,n)=>{switch(e){case "scalar":case "string":e==="string"&&typeof t!="string"&&v(n,o,"invalid_string_value",`Operator '${r}' requires a string value`);return;case "ordered":Z(t)||v(n,o,"invalid_ordered_value",`Operator '${r}' requires a string, number, or Date value`);return;case "array":Array.isArray(t)||v(n,o,"invalid_membership_value",`Operator '${r}' requires an array value`);return;case "pattern":{if(!(typeof t=="string"||t instanceof RegExp)){v(n,o,"invalid_pattern_value",`Operator '${r}' requires a string or RegExp value`);return}let i=Xp(t,n.target);i&&v(n,o,"unsupported_pattern",i);return}case "range":try{to(t,r);}catch(i){v(n,o,"invalid_range_value",i.message);}return}},$S=(e,t,r,o)=>{if(e.offset!==void 0&&v(r,`${t}.offset`,"unexpected_offset","Aggregate rules take no offset"),bf(e,t,r,o),typeof e.field!="string"&&v(r,`${t}.field`,"field_required","Aggregate rule requires a string field"),ri(e,t,r,o),!Lt(e.aggregate)){v(r,`${t}.aggregate`,"invalid_aggregate","aggregate must be an object");return}let n=e.aggregate;if(De.includes(n.mode)||v(r,`${t}.aggregate.mode`,"invalid_aggregate_mode",Tt(n.mode).message),"field"in n&&n.field!==void 0&&typeof n.field!="string"&&v(r,`${t}.aggregate.field`,"invalid_aggregate_field","aggregate.field must be a string"),!Mn.includes(e.operator)){v(r,`${t}.operator`,"invalid_aggregate_operator",`Aggregate rules only support: ${Mn.join(", ")}`);return}if(r.target==="toPrisma"&&typeof e.path=="string"&&v(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"&&v(r,`${t}.condition`,"unsupported_sql_aggregate_condition","Aggregate condition filtering is not supported by toSql(); use check() or toPrisma()"),pt(e.condition,`${t}.condition`,r,o+1)),so(e,t,r,o)===null||typeof e.path=="string"||typeof e.bind=="string")return;let i=e.value;ye.includes(e.operator)?CS(i)||v(r,`${t}.value`,"invalid_range_value",`Operator '${e.operator}' requires a two-item numeric range`):typeof i!="number"&&v(r,`${t}.value`,"invalid_aggregate_value","Aggregate rule value must be a number");},PS=(e,t,r,o)=>{if(typeof e.field!="string"&&r.target!=="check"&&v(r,`${t}.field`,"field_required","Array rule requires a string field for this target"),ri(e,t,r,o),bf(e,t,r,o),typeof e.arrayOperator!="string"||!tt(e.arrayOperator,"array")){v(r,`${t}.arrayOperator`,"invalid_array_operator",H(e.arrayOperator,"array").message);return}let n=e.arrayOperator;Cn(n,"array",r.target)||v(r,`${t}.arrayOperator`,`unsupported_${oi(r.target)}_array_operator`,`Array operator '${n}' is not supported by ${r.target}()`);let i=ot(n,"array"),s=e.condition!==void 0,a=()=>{e.count!==void 0&&v(r,`${t}.count`,"unexpected_count",`Array operator '${n}' does not accept count`);};i==="none"?(s&&v(r,`${t}.condition`,"unexpected_condition",`Array operator '${n}' does not accept condition`),a()):i==="predicate"?(s?pt(e.condition,`${t}.condition`,r,o+1):v(r,`${t}.condition`,"missing_condition",Re(n).message),a()):i==="count"&&(r.target!=="toPrisma"&&typeof e.count!="number"?v(r,`${t}.count`,"missing_count",Jr(n).message):e.count!==void 0&&!(typeof e.count=="number"&&Number.isInteger(e.count)&&e.count>=0)&&v(r,`${t}.count`,"invalid_count","count must be a non-negative whole number"),s?pt(e.condition,`${t}.condition`,r,o+1):r.target==="check"&&v(r,`${t}.condition`,"missing_condition",Re(n).message));},TS=(e,t,r,o)=>{if(typeof e.field!="string"&&v(r,`${t}.field`,"field_required","Date rule requires a string field"),ri(e,t,r,o),typeof e.dateOperator!="string"||!tt(e.dateOperator,"date")){v(r,`${t}.dateOperator`,"invalid_date_operator",H(e.dateOperator,"date").message);return}let n=e.dateOperator;hf(e,"date",n,t,r,o),Cn(n,"date",r.target)||v(r,`${t}.dateOperator`,`unsupported_${oi(r.target)}_date_operator`,`Date operator '${n}' is not supported by ${r.target}()`);let i=ot(n,"date");if(i==="dayList"){if(so(e,t,r,o)!=="value")return;let s=e.value;(!Array.isArray(s)||!s.every(a=>typeof a=="string"&&jp(a)))&&v(r,`${t}.value`,"invalid_day_list",`Date operator '${n}' requires an array of day names (${Hr.join(", ")})`);return}if(so(e,t,r,o)!==null&&(wf(e,n,t,r),!(typeof e.path=="string"||typeof e.bind=="string"))){if(U(e.value)){gf(e.value,n,`${t}.value`,r,o);return}if(Eo.includes(n)){v(r,`${t}.value`,"invalid_date_range",Oe(n).message);return}if(i==="dateRange"){if(!MS(e.value)){v(r,`${t}.value`,"invalid_date_range",`Date operator '${n}' requires a two-item date range`);return}e.value.forEach((s,a)=>{U(s)?gf(s,n,`${t}.value[${a}]`,r,o):Z(s)&&!Mt(s,nt).isValid()&&v(r,`${t}.value[${a}]`,"invalid_date_value",`Date operator '${n}' value '${String(s)}' does not parse as a date`);});return}if(!Z(e.value)){v(r,`${t}.value`,"invalid_date_value",`Date operator '${n}' requires a date-like value`);return}Mt(e.value,nt).isValid()||v(r,`${t}.value`,"invalid_date_value",`Date operator '${n}' value '${String(e.value)}' does not parse as a date`);}},Sf=(e,t,r,o)=>{if(!Lt(e)||Object.keys(e).length===0){v(r,t,"invalid_relative_units","Relative offset requires at least one unit");return}for(let[n,i]of Object.entries(e)){if(!Ki(n)){v(r,`${t}.${n}`,"invalid_relative_unit",`Unknown relative unit '${n}'`);continue}let s=Lt(i)?so(i,`${t}.${n}`,r,o):"literal";if(s===null||s==="path"||s==="bind")continue;let a=s==="value"?i.value:i,p=os(a,n);p&&v(r,`${t}.${n}`,"invalid_relative_magnitude",p);}},mf=(e,t,r)=>{(typeof e!="string"||!kn.includes(e))&&v(r,t,"invalid_period_unit",`Unknown period unit '${String(e)}'`);},gf=(e,t,r,o,n)=>{let i=Eo.includes(t),s=ie(e);if(s){Sf(s[0],r,o,n);return}if($o(e)){mf(Un(e),r,o);return}if(Hi(e)){if(i){v(o,r,"invalid_date_range",Oe(t).message);return}let a="start"in e?e.start:e.end;if(!Lt(a)||!$o(a)){v(o,r,"invalid_period_unit","start/end requires a this/last/next period");return}mf(Un(a),r,o);return}v(o,r,"invalid_date_expression","Unrecognized date expression");},NS=(e,t,r)=>{"value"in e&&e.value!==void 0&&v(r,`${t}.value`,"unexpected_value","Rule does not accept value"),"path"in e&&e.path!==void 0&&v(r,`${t}.path`,"unexpected_path","Rule does not accept path"),"bind"in e&&e.bind!==void 0&&v(r,`${t}.bind`,"unexpected_bind","Rule does not accept bind");},oi=e=>e==="toPrisma"?"prisma":e==="toSql"?"sql":"check",Lt=e=>pe(e),CS=e=>Array.isArray(e)&&e.length===2&&typeof e[0]=="number"&&typeof e[1]=="number",MS=e=>Array.isArray(e)&&e.length===2&&(Z(e[0])||U(e[0]))&&(Z(e[1])||U(e[1])),bf=(e,t,r,o)=>{if(ue(e)&&r.target!=="check"&&(r.target==="toPrisma"&&io(e)!==null||v(r,t,`unsupported_${oi(r.target)}_window`,je(r.target).message)),"filter"in e&&e.filter!==void 0&&pt(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)=>{(!Lt(s)||typeof s.field!="string"||s.dir!=="asc"&&s.dir!=="desc")&&v(r,`${t}.orderBy[${a}]`,"invalid_order_by",'orderBy entries must be { field: string, dir: "asc" | "desc" }');}):v(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)&&v(r,`${t}.${i}`,`invalid_window_${i}`,`${i} must be a non-negative integer`);}},v=(e,t,r,o)=>{e.errors.push({path:t,code:r,message:o});};var _S=/[.:]/,ls=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"&&_S.test(s)&&t.push({path:`${$e({fieldMap:r,model:n})}.${s}`,message:"contains forbidden character . or :",code:"invalid_field_name"});return kt(t)},xf=e=>Lo(ls(e),"validateFieldMaps");var Dt=e=>!Object.hasOwn(e,"parent"),qe=e=>{let t=[],r=new Set,o=e;for(;!Dt(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},We=e=>Dt(e)?e:qe(e)[0].parent;var ft=e=>e.kind==="scalar"&&e.type==="Json",ae=e=>e.kind==="object"||e.kind==="bridge",pr=(e,t)=>e.values??O(t,e.type);var Se=(e,t)=>e.kind==="object"?{mapName:t,modelName:e.type}:e.kind==="bridge"?ff(e.type,t):null;function*ni(e,t,r){let o=r.split("."),n=t;for(let i=0;i<o.length;i++){let s=o[i],a=Ae(O(e,n.mapName),n.modelName,s),p=a?Se(a,n.mapName):null;if(yield {index:i,field:s,at:n,entry:a,next:p},!p)return;n={...p,relPath:[...n.relPath,s]};}}var Ue=(e,t,r)=>{let o=e.split("."),n=[],i={mapName:"",modelName:r,relPath:[]};for(let{index:s,field:a,at:p,entry:l}of ni({"":t},i,e)){let f=p.modelName;if(!l)return {kind:"fallback",hops:n};if(l.kind==="bridge")return {kind:"bridge",hops:n};let d=s===o.length-1;if(l.kind==="object"){if(!C(t,l.type))return {kind:"fallback",hops:n};if(d)return {kind:"direct",hops:n,entry:l,model:f,column:a};n.push({field:a,prefix:o.slice(0,s+1).join("."),entry:l,from:f});continue}return d?{kind:"direct",hops:n,entry:l,model:f,column:a}:ft(l)?{kind:"json-path",hops:n,entry:l,model:f,column:a,stopIndex:s+1,jsonPath:o.slice(s+1)}:{kind:"past-scalar",hops:n,column:a}}return {kind:"fallback",hops:n}},Ft=(e,t,r)=>t&&r?Ue(e,t,r):void 0,re=(e,t,r)=>{let o=Ft(e,t,r);return o?.kind==="direct"?o.entry:void 0},Of=(e,t,r)=>Ue(e,t,r).hops.filter(o=>!o.entry.isList&&o.entry.isRequired===false).map(o=>o.prefix),ps=(e,t,r)=>{let o=Ue(e,t,r);return o.kind==="direct"&&o.entry.kind==="object"?o.entry.type:null},fs=(e,t,r)=>Ue(e,t,r).kind==="bridge",jt=(e,t,r)=>!!t&&!!r&&Gp(e,(o,n)=>typeof o.field=="string"&&o.field!==""&&fs(o.field,t,n),(o,n)=>(typeof o.field=="string"?ps(o.field,t,n):n)??false,r);var ds=(e,t)=>t.length?D([...t,e]):e,LS=e=>{if(Xr(e).length)return false;let t=e.field,r=typeof t=="string"?q(t):null;try{return we(r?{...e,field:r.path}:e,{})===!0}catch{return false}},us=(e,t)=>{if(!t.length)return e;if(!LS(e))return D([...t.flatMap(n=>n.grants),e]);let[r,...o]=t;return at([D([...r.grants,us(e,o)]),D([{field:r.prefix,operator:"notExists"},e])])},ii=(e,t)=>Ct(e,{rewrite:r=>{if(Ee(r))return r;if(typeof r.field!="string"||r.field==="")throw new Error(`narrowRule: cannot re-root a relation grant of unknown shape under '${t}'`);let o=Xr(r);if(o.length)throw new Error(`narrowRule: cannot re-root a relation grant with a path reference ('${o[0]}') under '${t}'. Author the grant without 'path', or anchor it at the relation itself.`);if(q(r.field))throw new Error(`narrowRule: cannot re-root a relation grant with a scope ref field ('${r.field}') under '${t}'. Author the grant against the model's own columns.`);if(r.condition!==void 0)throw new Error(`narrowRule: cannot re-root a relation grant with a nested array/aggregate condition on '${r.field}' under '${t}'. Anchor such grants at the relation's own model.`);return {...r,field:`${t}.${r.field}`}},below:()=>false}),cs=(e,t)=>t.flatMap(r=>{let o=V(e,r.map,r.model,r.relPath);if(o.whereClauses.length===0)return [];if(r.isList)throw new Error(`narrowRule: cannot enforce a to-many relation grant on '${r.prefix}' without an arrayOperator condition to anchor it (row-scoped). Traverse '${r.prefix}' via an array operator (any/all/none/...) so the grant can be injected safely.`);return [{prefix:r.prefix,grants:o.whereClauses.map(n=>ii(n,r.prefix))}]}),Rf=(e,t)=>cs(e,t).flatMap(r=>r.grants),vf=(e,t,r)=>{let o=ge(e,r);if("outOfBounds"in o)throw new Error(`narrowRule: ${o.outOfBounds}`);if(!o.scope)return {hops:[],end:null};let n=e.slice(0,e.length-o.path.length);return dt(t.lens.maps,o.scope,o.path,n==="$."?"":n)},kS=(e,t,r,o)=>{if(q(e))return vf(e,t,r).hops;if(o)return [];let n=r.length===1?"":`${"$".repeat(r.length)}.`;return r[0]?dt(t.lens.maps,r[0],e,n).hops:[]},Ef=(e,t,r)=>{if(Ee(e)||typeof e.field!="string"||e.field==="")return null;let{hops:o,end:n}=vf(e.field,t,r);return {hops:o,below:n}},ms=(e,t,r,o=false)=>Ct(e,{below:(n,i)=>{let s=Ef(n,t,i);return s?s.below?[...i,s.below]:st(n)?[...i,null]:false:false},after:(n,i)=>{let s=Ef(n,t,i);if(!s)return n;let a=Rf(t,Xr(n).flatMap(u=>kS(u,t,i,o))),p=s.below;if(!p||!st(n))return ds(us(n,cs(t,s.hops)),a);let l=[...V(t,p.mapName,p.modelName,p.relPath).whereClauses,...Rf(t,eo(n).flatMap(u=>dt(t.lens.maps,p,u).hops))],f=n.condition===void 0||n.arrayOperator===E.all||ue(n),d={...n};return l.length&&f?d.filter=D([...n.filter!==void 0?[n.filter]:[],...l]):l.length&&(d.condition=D([...l,n.condition])),ds(us(d,cs(t,s.hops.slice(0,-1))),a)}},[r]),Af=(e,t)=>Pf(e,t,false),$f=(e,t)=>Pf(e,t,true),Pf=(e,t,r)=>{let o=_(t),n=V(o,o.lens.mapName,o.lens.model,[]),i=ms(e,o,{mapName:o.lens.mapName,modelName:o.lens.model,relPath:[]},r);return ds(i,n.whereClauses)};var ko=e=>e===void 0?void 0:Array.isArray(e)?e:[e],Do=e=>typeof e=="object"&&e!==null&&!Array.isArray(e)&&("where"in e||"label"in e||"groupBy"in e||"from"in e),Fo=e=>{if(Do(e))return e;if(typeof e=="object"&&e!==null&&!Array.isArray(e)&&Object.keys(e).length===0)throw new Error("sources: {} is not a Condition \u2014 use `true` for an unconstrained source");return {where:e}},fr=["__offpath__"],_=e=>{let t=We(e),r=Dt(e)?[]:qe(e);return {lens:t,chain:r}},si=(e,t)=>e===null?new Set(t):new Set(t.filter(r=>e.has(r))),ys=e=>{if(!e.picks)return;if(!("relations"in e)||!e.relations)return e.picks;let t=[...e.picks];for(let r of Object.keys(e.relations))t.includes(r)||t.push(r);return t},DS=(e,t)=>{let r=ys(t);if(r&&(e.picks=si(e.picks,r)),t.omits)for(let o of t.omits)e.omits.add(o);},Tf=(e,t,r)=>{e.set(t,si(e.get(t)??null,r));},Nf=(e,t,r)=>{let o=e.get(t)??new Set;for(let n of r)o.add(n);e.set(t,o);},FS=(e,t,r)=>{if(r.enumPicks)for(let[o,n]of Object.entries(r.enumPicks))Tf(e,o,n);if(r.enumOmits)for(let[o,n]of Object.entries(r.enumOmits))Nf(t,o,n);},gs=(e,t,r)=>JSON.stringify([e,t,r]),jS=(e,t,r,o)=>{if(DS(e,t),t.where!==void 0&&e.whereClauses.push(r(t.where)),t.sources)for(let[n,i]of Object.entries(t.sources)){let s=Fo(i),a=e.sources.get(n)??[];s.where!==void 0&&a.push(r(s.where)),e.sources.set(n,a);let p=ko(s.groupBy);for(let[l,f,d]of [["label",s.label,e.sourceLabels.get(n)],["groupBy",p,e.sourceGroupBys.get(n)]]){if(f===void 0)continue;let u=gs(n,l,f);d!==void 0&&gs(n,l,d)===u||e.sourceDeclaredAt.set(u,o);}s.label!==void 0&&e.sourceLabels.set(n,s.label),p!==void 0&&e.sourceGroupBys.set(n,p),s.from==="mapDefaults"&&!e.sourcesFromMapDefaults.has(n)&&e.sourcesFromMapDefaults.set(n,o);}},V=(e,t,r,o)=>{let n={picks:null,omits:new Set,enumValuesByField:new Map,whereClauses:[],sources:new Map,sourceLabels:new Map,sourceGroupBys:new Map,sourceDeclaredAt:new Map,sourcesFromMapDefaults:new Map,relations:new Map},i=O(e.lens.maps,t),s=C(i,r);if(!s)return n;let a=new Map,p=new Map,l=new Map,f=new Map,d=y=>y,u=0,g=y=>{jS(n,y,d,u),FS(a,p,y);};for(let[y,m]of e.chain.entries()){u=y;let S={lens:e.lens,chain:e.chain.slice(0,y)};d=c=>y===0?c:ms(c,S,{mapName:t,modelName:r,relPath:o});let b=O(m.mapDefaults,t);if(b){let c=O(b.models,r);c&&g(c);for(let[x,R]of Object.entries(b.enums??{}))R.picks&&Tf(l,x,R.picks),R.omits&&Nf(f,x,R.omits);}let w=m.root;if(o.length===0){if(t===e.lens.mapName&&r===e.lens.model&&w){g(w);for(let[c,x]of Object.entries(w.relations??{}))n.relations.set(c,x);}}else {for(let c of o)if(w=O(w?.relations,c),!w)break;if(w){g(w);for(let[c,x]of Object.entries(w.relations??{}))n.relations.set(c,x);}}}for(let[y,m]of Object.entries(s.fields)){let S=m.kind==="enum",w=m.options?.map(A=>A.value)??(S?pr(m,i?.enums):m.values);if(!w)continue;let c=w;if(S){let A=l.get(m.type),X=f.get(m.type);A&&(c=c.filter(Ut=>A.has(Ut))),X&&(c=c.filter(Ut=>!X.has(Ut)));}let x=a.get(y),R=p.get(y);x&&(c=c.filter(A=>x.has(A))),R&&(c=c.filter(A=>!R.has(A))),n.enumValuesByField.set(y,c);}return n},ai=(e,t,r,o)=>V(e,t,r,fr).sources.has(o),li=(e,t,r,o)=>new Error(`source '${o}' at '${e}' offers mapDefaults.${t}.models.${r}.sources.${o}, which no layer declares`),Ge=(e,t)=>!(e.omits.has(t)||e.picks!==null&&!e.picks.has(t)),pi=(e,t)=>e.enumValuesByField.get(t)??null,fi=(e,t,r)=>{let o=r.split("."),n=[],i=[];for(let{index:s,field:a,at:p,entry:l,next:f}of ni(e.lens.maps,t,r)){if(!l)return {resolution:{outcome:"missing",index:s,hops:n},effects:i};let d=V(e,p.mapName,p.modelName,p.relPath);if(!Ge(d,a))return {resolution:{outcome:"hidden",index:s,hops:n},effects:i};let u={field:a,entry:l,mapName:p.mapName,model:p.modelName,relPath:[...p.relPath]};n.push(u),i.push(d);let g=s===o.length-1;if(g||ft(l))return {resolution:{outcome:"resolved",hops:n,terminal:u,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}},ao=(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(gs(o,n,i))??-1,a={lens:e.lens,chain:e.chain.filter((p,l)=>l!==s)};return (typeof i=="string"?[i]:i).every(p=>fi(a,r,p).resolution.outcome!=="hidden")},lo=(e,t,r)=>{let{resolution:o,effects:n}=fi(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}},It=e=>({mapName:e.lens.mapName,modelName:e.lens.model,relPath:[],open:false}),po=(e,t,r)=>{let o=ge(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=lo(e,o.scope,o.path);if(!n)return {issue:{code:"not_in_lens",message:"path does not resolve through the narrowed lens"}};let i=ft(n.entry),s=Se(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}},dt=(e,t,r,o="")=>{let n=r.split("."),i=[],s=null;for(let{index:a,field:p,at:l,entry:f,next:d}of ni(e,t,r)){if(!f||!d)break;let u=[...l.relPath,p];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 ws="parent:",Ss=e=>e.startsWith(ws),Mf=e=>Ss(e)?e.slice(ws.length):e,hs=(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]=Do(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]=hs(i,t);r.relations=o;}return r},_f=(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]=hs(a,t);r[o]=n.models?{...n,models:i}:n;}return {...e,root:e.root?hs(e.root,t):void 0,mapDefaults:e.mapDefaults?r:void 0}},bs=e=>{let t=[];return _f(e,r=>(t.push(r),r)),t},Cf=e=>{let t=new Set;for(let r of bs(e))for(let o of No(r))Ss(o)||t.add(o);return t},Lf=e=>{let t=new Set;for(let r of qe(e))for(let o of bs(r))for(let n of No(o,{required:true}))t.add(Mf(n));return [...t].sort()},kf=(e,t)=>{if(Dt(e))return e;let r={...t};for(let[o,n]of Object.entries(t))r[`${ws}${o}`]=n;return {..._f(e,o=>ts(o,r)),parent:kf(e.parent,t)}},Df=(e,t)=>kf(e,t),Ff=e=>{let t=[],r=new Set;for(let n of qe(e.parent))for(let i of Cf(n))r.add(i);for(let n of Cf(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 bs(e))for(let i of No(n))Ss(i)&&o.add(Mf(i));for(let n of o)r.has(n)||t.push(`bind 'parent:${n}' references an inherited binding no ancestor declares`);return t};var jf=(e,t)=>{let r=_(t),o=(n,i)=>typeof n=="string"&&n!==""?po(r,i,n):null;return Ct(e,{rewrite:(n,i)=>{if(Q(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"&&Lp.includes(a.type)?{...n,coerceType:a.type}:n},below:(n,i)=>{if(!st(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&&ae(a)?[...i,s.next]:false}},[It(r)])};var If=({maps:e,bridges:t,mapName:r,model:o})=>({...ei({maps:e,bridges:t}),mapName:r,model:o});var di=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":Bf(e.entry.type),Bf=e=>e===I.Json?"json":e===I.Enum?"enum":e===I.DateTime?"instant":e===I.String?"text":"scalar",ui=(e,t,r)=>{let o=re(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"},ci=(e,t,r)=>{if(di(Ft(e,t,r))==="relations")throw jn(e)},dr=e=>e!=="scalar"&&e!=="instant"&&e!=="list"&&e!=="enum"&&e!=="relation"&&e!=="relations",fo=(e,t)=>dr(e)&&Vf(t),Vf=e=>typeof e=="string"||Array.isArray(e)&&e.some(Vf),ce=(e,t,r)=>{let o=di(Ft(e.field,t,r));return o==="unknown"&&e.coerceType!==void 0?Bf(e.coerceType):o},ut=e=>{if(!e.isList){if(e.kind==="enum")return I.Enum;if(!(e.kind!=="scalar"||e.type===I.Json))return Nn(e.type)?e.type:void 0}};var xs=(e,t)=>{let r=ir(e,I.DateTime,t);return typeof r=="number"&&!Number.isNaN(new Date(r).getTime())?r:void 0},IS=(e,t,r)=>o=>{if(o==null)return o;let n=xs(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()},mi=(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?ut(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)===I.DateTime){let p=IS(e.field,o,n());return Array.isArray(t)?t.map(p):p(t)}if(e.coerceType===void 0&&s===I.String&&(Array.isArray(t)?t:[t]).some(p=>typeof p=="number"||typeof p=="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&&(xe.includes(s)||s===I.Boolean)&&(Array.isArray(t)?t:[t]).some(p=>typeof p=="string"))throw new Error(`'${e.field}' is ${s} but the literal is a string; pass a ${s===I.Boolean?"boolean":"number"}, or stamp coerceType: '${s}'.`);return e.coerceType!==void 0&&kp.includes(e.coerceType)?ir(t,e.coerceType,e.coerceType===I.DateTime?n():void 0):t};var qf=e=>Array.isArray(e)?e.flatMap(qf):[e],jo=e=>e.value===void 0?null:qf(e.value),BS=e=>xs(e)!==void 0,VS=/^-?\d+(\.\d+)?$/,qS={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"&&VS.test(e)},Boolean:{expected:"a boolean",fits:e=>typeof e=="boolean"},DateTime:{expected:"a date",fits:BS},Json:{expected:"a value",fits:()=>true},Bytes:{expected:"a value",fits:()=>true}},WS=e=>typeof e=="string"?`'${e}'`:typeof e=="object"&&e!==null?JSON.stringify(e):String(e),Wf=(e,t)=>{let r="coerceType"in e?e.coerceType:void 0,o=r??t;if(o===void 0||o===I.Json)return [];let n="operator"in e?e.operator:e.dateOperator,i=Wr(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===I.DateTime:xe.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(Dp.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:p,fits:l}=qS[o],f=u=>{try{return l(ir(u,o))}catch{return false}},d=u=>l(u)||r!==void 0&&f(u);return (jo(e)??[]).filter(u=>u!==null&&!d(u)).map(u=>({path:e.field,code:"invalid_value",message:`value ${WS(u)} does not fit ${a} (expected ${p})`}))},Uf=(e,t,r)=>{if(r.isList===true||ft(r))return null;let o=ae(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 ${ut(r)??r.type} value`;return {path:e,code:"invalid_array_operator",message:o}};var Gf=(e,t,r,o,n=false)=>J(e,(i,s)=>{let a=Q(i);if(a===null)return o.push({path:typeof i.field=="string"?i.field:"",code:"ambiguous_condition",message:Fe().message}),false;if(Ee(i))return;let p=i,l=w=>{let c=ge(w,s);return "outOfBounds"in c?(o.push({path:w,code:"scope_out_of_bounds",message:c.outOfBounds}),null):{scope:c.scope,field:c.path}},f=s[s.length-1],d=true,u=null;if("field"in p&&typeof p.field=="string"&&p.field!==""){let w=po(t,s,p.field);"issue"in w?(o.push({path:p.field,...w.issue}),d=false):{next:f,walked:u}=w;}let g=u?.entry??null,y=u?.terminalFieldName??null,m=u?.entry.kind==="enum",S=u?.entry.type??null,b=u&&u.jsonSubPath.length===0?pi(u.terminalEffect,u.terminalFieldName):null;for(let{ref:w,role:c}of es(p)){if(!q(w)&&n)continue;let x=q(w)?l(w):{scope:It(t),field:w};if(!x||x.scope.open)continue;let R=lo(t,x.scope,x.field);if(!R){o.push({path:w,code:"not_in_lens",message:c==="value"?"path (comparison ref) does not resolve through the narrowed lens":"offset or magnitude ref does not resolve through the narrowed lens"});continue}if(ae(R.entry)){o.push({path:w,code:"not_in_lens",message:"a value ref reads a column, not a relation"});continue}let A=ut(R.entry);if(c==="value"||c==="shift"||A===void 0)continue;(c==="whole"?_p.includes(A):xe.includes(A))||o.push({path:w,code:"not_in_lens",message:`${c==="whole"?"a calendar unit reads a whole number":"an offset or magnitude reads a number"}, not ${A}`});}if(!d)return false;if("arrayOperator"in p&&typeof p.field=="string"&&g){let w=Uf(p.field,p.arrayOperator,g);if(w)return o.push(w),false}if(g&&ae(g)&&(a==="field"||a==="date")&&(g.isList||!sr(p))){let w=p.field;return o.push({path:w,code:"operator_kind_mismatch",message:(g.isList?jn(w):Qr(w)).message}),false}if(!g?.isList&&(a==="field"||a==="date")&&o.push(...Wf(p,g?ut(g):void 0)),!f.open)for(let w of eo(p))w!==""&&!lo(t,f,w)&&o.push({path:w,code:"not_in_lens",message:"an orderBy or aggregate field does not resolve through the narrowed lens"});if(b&&"operator"in p&&y){let w=jo(p);if(w){let c=new Set(b),x=m?`enum '${S}'`:`field '${y}'`;for(let R of w)typeof R=="string"&&!c.has(R)&&o.push({path:y,code:"value_not_allowed",message:`value '${R}' is not in the allowed set for ${x} (allowed: ${[...c].join(", ")})`});}}return [...s,f]},[r]),Os=(e,t,r,o,n)=>{let i=[];return Gf(e,t,{mapName:r,modelName:o,relPath:n,open:false},i),i},Kf=(e,t)=>{let r=_(t),o=[];return Gf(e,r,{mapName:r.lens.mapName,modelName:r.lens.model,relPath:[],open:false},o,true),kt(o)},gi=(e,t)=>{let r=_(t);return kt(Os(e,r,r.lens.mapName,r.lens.model,[]))};var US=(e,t)=>J(e,(r,o)=>{if(t.sources.add(o[o.length-1].mapName),Ee(r)||typeof r.field!="string"||r.field==="")return;let n=po(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])},[It(t.policy)]),zf=(e,t)=>{let o={policy:_(t),sources:new Set,bridgesCrossed:false};return US(e,o),{sources:[...o.sources].sort(),bridgesCrossed:o.bridgesCrossed,supportedTargets:P.filter(n=>(n==="check"||!o.bridgesCrossed)&&ti(e,{target:n}).ok),errors:gi(e,t).errors}};var GS=new Set([rt.scalar,rt.ordered,rt.array,rt.dayList,rt.dateValue]),KS=new Set([rt.none,rt.count]),zS=e=>{if(e.offset!==void 0||To(e).some(({source:r})=>r.value===void 0))return {values:[],dynamic:true};let t=Wr(e);return t?KS.has(t.valueShape)?{values:[],dynamic:false}:GS.has(t.valueShape)?"value"in e?{values:jo(e)??[],dynamic:false}:{values:[],dynamic:false}:{values:[],dynamic:true}:{values:[],dynamic:true}},HS=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)}`,Hf=(e,t)=>{let r=_(t),o=r.lens.model,n=new Map,i=new Map,s=(p,l)=>{if(p.length===0)return;let f=lo(r,{mapName:r.lens.mapName,modelName:o,relPath:[]},p.join("."));if(!f||f.jsonSubPath.length>0)return;let{mapName:d,modelName:u,relPath:g,terminalEffect:y,terminalFieldName:m}=f;if(!y.sources.has(m))return;let S=[o,...g].join("."),b=`${S}|${m}`,w=n.get(b);w||(w={path:S,mapName:d,model:u,field:m,values:[],dynamic:false},n.set(b,w));let c=zS(l);c.dynamic&&(w.dynamic=true);let x=i.get(b)??new Set;i.set(b,x);for(let R of c.values){let A=HS(R);x.has(A)||(x.add(A),w.values.push(R));}},a=(p,l)=>{let f=ge(p,l);if(!("outOfBounds"in f))return [...f.scope,...f.path.split(".")]};return J(e,(p,l)=>{if(Ee(p))return;let f=typeof p.field=="string"?a(p.field,l):l.at(-1);return f?(!st(p)&&typeof p.field=="string"&&s(f,p),[...l,f]):false},[[]]),[...n.values()]};var yi=(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 hi=(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 Error(`${r}: pass \`lens\` or \`map\` / \`mapName\` / \`model\`, not both \u2014 the lens names its own`);let n=Kf(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=We(o);return {condition:$f(e,o),options:{...t,lens:void 0,map:i,mapName:i.mapName,model:i.model}}};var Jf=e=>({field:e,operator:"notExists"}),JS=(e,t)=>{let r=t(e);if(r===null){let n=e.operator??e.dateOperator;return k.includes(n)?{field:e.field,operator:"exists"}:true}if("aggregate"in r){let n=O(vo,r.operator);return n?{...r,operator:n}:{...r,operator:O(Dn,r.operator)}}if(typeof r.dateOperator=="string"){let n=O(Bp,r.dateOperator);return n?{...r,dateOperator:n}:at([{...r,dateOperator:O(Dn,r.dateOperator)},Jf(r.field)])}if(typeof r.arrayOperator=="string"){let n=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:be(r.condition,t)};case E.empty:return {...r,arrayOperator:E.notEmpty};case E.notEmpty:return {...r,arrayOperator:E.empty};case E.atLeast:return n<=0?false:{...r,arrayOperator:E.atMost,count:n-1};case E.atMost:return {...r,arrayOperator:E.atLeast,count:n+1};case E.exactly:return at([...n>0?[{...r,arrayOperator:E.atMost,count:n-1}]:[],{...r,arrayOperator:E.atLeast,count:n+1}])}}let o=O(vo,r.operator);return o?{...r,operator:o}:at([{...r,operator:O(Dn,r.operator)},Jf(r.field)])},be=(e,t=r=>r)=>{if(typeof e=="boolean")return !e;let r=e;if(Array.isArray(r.all))return at(r.all.map(o=>be(o,t)));if(Array.isArray(r.any))return D(r.any.map(o=>be(o,t)));if("if"in r){let o=D([r.if,be(r.then,t)]);return r.else===void 0?o:{any:[o,D([be(r.if,t),be(r.else,t)])]}}return JS(r,t)},Qf=e=>Q(e)==="field"&&e.value!==void 0&&se(e,e.value)?null:e;var wi=(e,t,r,o)=>{if(!Rp.includes(e.operator))throw new Error(`'${e.operator}' does not apply to the enum '${e.field}'; compare its values with equals / in.`);let n=fe(e.caseInsensitive),i=pr(r,o?.enums),{values:s,hasNull:a}=lt($t.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 p=d=>n?d.toLowerCase():d,l=new Set(s.filter(d=>typeof d=="string").map(d=>p(d))),f=i.filter(d=>l.has(p(d)));return k.includes(e.operator)?{values:i.filter(d=>!f.includes(d)),matchesNull:!a}:{values:f,matchesNull:a}};var G=e=>`"${e.replace(/"/g,'""')}"`;var Y=e=>e.replace(/\\/g,"\\\\").replace(/%/g,"\\%").replace(/_/g,"\\_"),Rs=(e,t,r=false)=>{let[o,...n]=e.split("."),i=t?`${G(t)}.${G(o)}`:G(o);if(n.length===0)return i;let s=n.map(Es),a=s.pop();return [i,...s].join("->")+(r?"->":"->>")+a},Es=e=>`'${e.replace(/'/g,"''")}'`;var ZS=["@prisma/client/runtime/client","@prisma/client/runtime/library"],Si,YS=()=>{if(Si!==void 0)return Si;for(let e of XS())for(let t of ZS)try{let r=e(t);if(r.AnyNull!==void 0)return Si=r.AnyNull,Si}catch{}},XS=()=>{let e=[];try{e.push(module$1.createRequire((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 Li=="function"&&e.push(Li),e},Zf=()=>{let e=Qt.get("prismaOptions.anyNull")??YS();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 Yf,Xf=e=>{Yf=e;},z=(e,t,r)=>Yf(e,t,r);var eb=(e,t)=>{let r=q(e);if(r)throw r.depth>1?new Error(Ro(e,"toPrisma")):new Error(`Path '${e}' is not supported by toPrisma(): Prisma WHERE has no column-to-column comparison or arithmetic. Use toSql() or prisma.$queryRaw.`);return En(e,t?.context,"toPrisma")},Ke=(e,t)=>Po(e,{value:r=>r,path:r=>eb(r,t),bind:(r,o)=>Kn(r,o,"toPrisma")}),Io=e=>t=>Ke(t,e),uo=e=>nr({now:e?.now,timeZone:e?.timeZone,weekStart:e?.weekStart},Io(e)),co=e=>t=>{let r=typeof t.operator=="string"||typeof t.dateOperator=="string",o=t.value!==void 0||typeof t.path=="string"&&t.path!==""||typeof t.bind=="string";if(!r||"aggregate"in t||!o)return t;let n=ce({field:String(t.field)},e?.map,e?.model);if((n==="json"||n==="json-path")&&typeof t.operator=="string"&&Ur.includes(t.operator))throw N("toPrisma",`The complement of '${t.operator}' on the Json value '${t.field}'`,"it keeps values of other types");let i=Ke(t,e),s=t.offset===void 0?void 0:Ke(t.offset,e);if(t.offset!==void 0&&s==null)return null;let{path:a,bind:p,bindOptional:l,...f}=t,d={...f,value:i,...t.offset!==void 0&&{offset:{value:s}}};return typeof t.dateOperator=="string"?i==null||se({operator:t.dateOperator},i)?null:d:Qf(d)};var ct=()=>({}),ur=ct,Bt=()=>({OR:[]}),vs=e=>Object.keys(e).length===0,ed=e=>{let t=Object.keys(e);return t.length===1&&t[0]==="OR"&&Array.isArray(e.OR)&&e.OR.length===0},cr=e=>{if(e.some(ed))return Bt();let t=e.filter(r=>!vs(r));return t.length===0?ct():t.length===1?t[0]:{AND:t}},B=e=>{if(e.some(vs))return ct();let t=e.filter(r=>!ed(r));return t.length===0?Bt():t.length===1?t[0]:{OR:t}},me=e=>vs(e)?e:{NOT:e},td=(e,t,r)=>cr(e.all.map(o=>z(o,t,r))),rd=(e,t,r)=>B(e.any.map(o=>z(o,t,r))),od=(e,t,r)=>{if(jt(e,t?.map,t?.model))return ur();let o=z(be(e.if,co(t)),t,r),n=z(e.then,t,r),i=B([o,n]);if(e.else!==void 0){let s=z(e.if,t,r),a=z(e.else,t,r);return cr([i,B([s,a])])}return i};var nd=(e,t,r)=>{let o=or(Ke(t,r));return o===null?null:rr(e,o)},id=(e,t,r)=>{if(e===null)return null;let o=ro(Ke(t,r)),n=o&&tr(o[0],Io(r));return !o||!n?null:Nt(Be__default.default(e),n,o[1],uo(r).timeZone).toDate()};var mr=(e,t)=>{let r=e.split("."),o=t;for(let n=r.length-1;n>=0;n--)o={[r[n]]:o};return o};var As=(e,t)=>ce(e,t?.map,t?.model),ze=e=>e==="json"||e==="json-path",Vt=e=>ze(e)?Zf():null,gr=(e,t)=>t?.map&&t?.model?Of(e,t.map,t.model).map(r=>mr(r,{is:null})):[],$s=(e,t)=>{let r=As(e,t);return [...ze(r)||r==="list"||re(e.field,t?.map,t?.model)?.isRequired===false?[mt(e.field,{equals:Vt(r)},t)]:[],...gr(e.field,t)]},bi=(e,t,r,o)=>{if(r.mode&&ze(o)&&Array.isArray(t))throw N("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(!ze(o))return {[e]:Y(t),...r};if(/[%_\\"\u0000-\u001f]/.test(t))throw N("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}},Ps=(e,t,r,o)=>{let n=t?.datasource?.provider??Qt.get("prismaOptions.datasource.provider");return fe(e.caseInsensitive)&&wp(n)&&fo(r,o)?{mode:"insensitive"}:{}},sd=(e,t)=>{if(e==="list")return [{isEmpty:true}];let r=t?[{equals:""}]:[];return ze(e)?[...r,{equals:[]}]:r},ad=e=>"isEmpty"in e?{isEmpty:false}:{not:e.equals},Ts=(e,t,r,o,n)=>{let i=a=>mt(e,a,n),s=sd(t,o);return r?B([i({equals:Vt(t)}),...gr(e,n),...s.map(a=>i(a))]):cr([...t==="list"?[]:[i({not:Vt(t)})],...s.map(a=>i(ad(a)))])},rb=(e,t)=>{if(!sr(e))throw Qr(e.field);let o=(n=>mt(e.field,n,t))({is:{}});return we({...e,field:"relation"},{relation:null})===true?me(o):o},ob=(e,t)=>re(e.field,t?.map,t?.model),ld=ct(),nb=(e,t,r)=>{if(t==="list"||ze(t)||ob(e,r)?.isRequired!==true)return null;let o=e.field.split(".").slice(0,-1).join(".");return o?mt(o,{is:{}},r):ld},pd=(e,t)=>{let r=m=>mt(e.field,m,t),o=As(e,t),n=()=>$s(e,t),i=ui(e,t?.map,t?.model);if(o==="relation")return rb(e,t);let s=nb(e,o,t),a=s&&(s===ld?Bt():me(s)),p=m=>s&&a?we({field:"f",operator:m,value:null},{f:null})===true?a:s:null;if(s&&a&&sr(e)){let m=sd(o,i);return e.operator===h.isEmpty?B([a,...m.map(r)]):e.operator===h.notEmpty?cr([s,...m.map(S=>r(ad(S)))]):p(e.operator)}switch(e.operator){case h.exists:case h.notExists:{if(e.operator===h.exists)return o==="list"?me(r({equals:null})):r({not:Vt(o)});let m=n();return m.length?B(m):r({equals:Vt(o)})}case h.isEmpty:case h.notEmpty:return Ts(e.field,o,e.operator===h.isEmpty,i,t)}let l=fd(e,t);if(se(e,l))return B(k.includes(e.operator)?n():[]);if(l===null&&$t.includes(e.operator)){let m=p(e.operator);if(m)return m}if(o==="list"&&Kr.includes(e.operator)&&Array.isArray(l))return z(Yn(e,l),t);if(o==="list"&&Array.isArray(l)&&l.includes(null))throw N("toPrisma",`A list holding null in '${e.field}'`);if(o==="list"&&fe(e.caseInsensitive)&&fo("text",l))throw N("toPrisma",`A case-insensitive comparison on the list '${e.field}'`);let f=o==="enum"?re(e.field,t?.map,t?.model):void 0,d=f?wi(e,l,f,t?.map):null;if(d){let m=r({in:d.values});return d.matchesNull?B([m,...n()]):m}if(Kr.includes(e.operator)){let{values:m,hasNull:S}=lt(l),b=Ps(e,t,o,m),w=ze(o)?e.operator===h.in?B(m.map(c=>r(bi("equals",c,b,o)))):cr(m.map(c=>r(bi("not",c,b,o)))):r({[e.operator]:m,...b});return e.operator===h.in?S?B([w,...n()]):w:S?cr([w,s??r({not:Vt(o)})]):B([w,...n()])}let u=m=>{if(!ze(o)||m!==h.contains)return r(Bo({...e,operator:m},t));let S=r({array_contains:[ib(e,l,t,o)]});return typeof l=="string"?B([r(Bo({...e,operator:m},t)),S]):S};if(e.operator===h.contains)return u(h.contains);let g=Np.includes(e.operator)?vo[e.operator]:zr.includes(e.operator)?h.between:void 0;if(g){if(ze(o))throw N("toPrisma",`'${e.operator}' on the Json value '${e.field}'`,"it keeps values of other types");return B([me(u(g)),...n()])}let y=r(Bo(e,t));return e.operator===h.equals&&l===null?B([y,...gr(e.field,t)]):e.operator===h.notEquals&&o==="list"?l===null?me(r({equals:null})):B([me(r({equals:l})),...n()]):e.operator===h.notEquals&&l!==null?B([y,...n()]):y},fd=(e,t)=>{let r=mi(e,Ke(e,t),Ft(e.field,t?.map,t?.model),"toPrisma",()=>uo(t).timeZone);return e.offset===void 0?r:nd(r,e.offset,t)},Bo=(e,t)=>{let r=In(e);if(r)throw r;let o=As(e,t),n=()=>fd(e,t),i=l=>Ps(e,t,o,l),s=l=>{let f=n();if(o==="list"){if(l!=="contains")throw new Error(`Operator '${l}' does not apply to the list '${e.field}'.`);return {has:f}}let d=ze(o)?sb[l]:l,u=typeof f=="string"?Y(f):f;return {[d]:u,...i(f)}},a=Bn(e.operator,n());if(a)throw a;let p=vt(e.operator,"field");if(p&&Ur.includes(e.operator))return {[p]:n()};switch(e.operator){case h.equals:{let l=n()??Vt(o);return bi("equals",l,i(l),o)}case h.notEquals:{let l=n()??Vt(o);return bi("not",l,i(l),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 N("toPrisma",`'${e.operator}'`,"Prisma has no pattern filter");case h.between:case h.notBetween:{let[l,f]=he(ve(n(),e.operator));return {gte:l,lte:f}}default:throw new Error(`Operator '${e.operator}' is built by buildFieldRule`)}},ib=(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(Ps(e,r,o,t).mode)throw N("toPrisma",`A case-insensitive member of the Json array '${e.field}'`);return t},sb={contains:"string_contains",startsWith:"string_starts_with",endsWith:"string_ends_with"},mt=(e,t,r)=>{if(!r?.map||!r?.model)return mr(e,t);let o=Ue(e,r.map,r.model),n=o.hops.find(s=>s.entry.isList);if(n)throw Vn(e,n);let i=e.split(".");switch(o.kind){case "fallback":case "direct":return mr(e,t);case "bridge":return ur();case "past-scalar":throw qn(e,o.column);case "json-path":{let s={path:o.jsonPath,...t},a=i.slice(0,o.stopIndex).join(".");return mr(a,s)}}};var ab=(e,t,r,o)=>{let n=C(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},Vo=(e,t,r)=>{if(r.fromFields?.length)return r.fromFields.map((n,i)=>({here:n,there:r.toFields?.[i]??"id"}));let o=ab(e,r.type,t,r.relationName);return o?.fromFields?.length?o.fromFields.map((n,i)=>({here:o.toFields?.[i]??"id",there:n})):null},dd=(e,t,r,o)=>{if(o.relationName===void 0)return null;let n=Object.entries(C(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 xi=(e,t,r,o)=>{let n=e.split("."),i=Ue(e,t,r);if(i.kind!=="direct"||i.entry.kind!=="object"){let p=i.hops.at(-1)?.entry.type??r;throw new Error(`Field '${n[i.hops.length]}' is not a relation in model '${p}'. ${o} require a relation field.`)}let s=i.hops.find(p=>p.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=Vo(t,i.model,i.entry);if(!a){let p=Object.values(C(t,i.entry.type)?.fields??{}).some(l=>l.kind==="object"&&l.type===i.model&&l.isList&&!l.fromFields?.length);throw new Error(p?`'${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(p=>p.field).join("."),target:i.entry.type,parentKey:a[0].here,targetKey:a[0].there}},Oi=(e,t,r,o,n)=>{let i={operation:"groupBy",model:t.target,args:{by:[t.targetKey],where:r,having:o},extract:t.targetKey},s={__step:e.steps.length};e.steps.push(i);let a={[t.parentKey]:{in:s}},p=n?me(a):a;return t.through?mr(t.through,p):p};var ud=(e,t,r)=>{if(ue(e)){let o=io(e);if(!o)throw je("toPrisma");return z(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(!De.includes(e.aggregate.mode))throw Tt(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 lb(e,t,r)},lb=(e,t,r)=>{let o=xi(e.field,t.map,t.model,"Aggregate rules");if(e.condition&&jt(e.condition,t.map,o.target))return ur();let n=e.aggregate.field??"",i=Ae(t.map,o.target,n);if(!i)throw new Error(`aggregate.field '${n}' does not exist on model '${o.target}'.`);if(i.kind!=="scalar"||ft(i))throw new Error(`aggregate.field '${n}' on model '${o.target}' must be a numeric scalar, got ${i.kind==="scalar"?"Json":`'${i.kind}'`}.`);let s=co(t)(e);if(s===null||se(s,s.value))return Bt();let a=_o(s,[{}],void 0,void 0,{},{value:0})===true,p=a?be(s):s,l=Bo(p,t),f={[e.aggregate.mode==="sum"?"_sum":"_avg"]:l},d=zr.includes(p.operator)?me({[n]:f}):{[n]:f},u=e.condition?z(e.condition,{...t,model:o.target},r):ct(),g=Oi(r,o,u,d,a);return a?B([g,...gr(e.field,t)]):g};var md=(e,t,r)=>{if(!e.field)throw new Error("toPrisma: count-based ArrayRule requires a field path");let o=xi(e.field,t.map,t.model,"Count operators");if(e.condition===void 0)throw Re(e.arrayOperator);if(e.count===void 0)throw Jr(e.arrayOperator);let n=e.count;if(e.arrayOperator===E.atLeast&&n===0)return ct();let i=z(e.condition,{...t,model:o.target},r),s=Ns(e),a=s?cd(E.atLeast,e.arrayOperator===E.atMost?n+1:1,o.targetKey):cd(e.arrayOperator,n,o.targetKey);return Oi(r,o,i,a,s)},cd=(e,t,r)=>{let o=vt(e,"array");if(!o)throw new Error(`'${e}' does not count`);return {[r]:{_count:{[o]:t}}}};var gd=(e,t,r)=>{let o=pb(e,t,r);return e.field&&Ns(e)&&!yd(e.field,t)?B([o,...gr(e.field,t)]):o},Ns=e=>we({...e,field:"items"},{items:[]})===true,pb=(e,t,r)=>{if(ue(e)){let i=io(e);if(!i)throw je("toPrisma");return z(i,t,r)}if(e.condition!==void 0&&!Tp.includes(e.arrayOperator)&&jt(e.condition,t?.map,hd(e,t)?.model))return ur();if(_n.includes(e.arrayOperator)){if(t?.map&&t?.model&&r)return md(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 Fn("toPrisma");let{field:o}=e;if(yd(o,t))return fb(e,o,ce({field:o},t?.map,t?.model),t);let n=db(e,t,r);return mt(e.field,n,t)},yd=(e,t)=>{let r=ce({field:e},t?.map,t?.model);return r==="list"||r==="json"||r==="json-path"},fb=(e,t,r,o)=>{switch(e.arrayOperator){case E.empty:case E.notEmpty:return Ts(t,r,e.arrayOperator===E.empty,false,o);default:throw N("toPrisma",`'${e.arrayOperator}' over the ${r==="list"?"list":"Json array"} '${t}'`,r==="list"?"test a list's membership with 'contains'":void 0)}},hd=(e,t)=>{if(!t?.map||!t?.model||!e.field)return t;let r=ps(e.field,t.map,t.model);return r?{...t,model:r}:t},db=(e,t,r)=>{let o=hd(e,t);switch(e.arrayOperator){case E.all:if(!e.condition)throw Re(e.arrayOperator);return {none:z(be(e.condition,co(o)),o,r)};case E.any:if(!e.condition)throw Re(e.arrayOperator);return {some:z(e.condition,o,r)};case E.none:if(!e.condition)throw Re(e.arrayOperator);return {none:z(e.condition,o,r)};case E.empty:return {none:{}};case E.notEmpty:return {some:{}};default:throw H(e.arrayOperator,"array")}};var wd=(e,t)=>{let r=t?.map,o=ce({field:e.field},r,t?.model);if(o==="json"||o==="json-path")throw N("toPrisma",`A date rule on the Json value '${e.field}'`,"Prisma compares Json text");let n=re(e.field,r,t?.model);if(n&&!ae(n)&&ut(n)!==I.DateTime)throw N("toPrisma",`A date rule on the ${n.type} field '${e.field}'`,`Prisma compares it as ${n.type}, not as an instant`);let i=k.includes(e.dateOperator)?$s(e,t):[],s=ub(e,t);if(s===null)return B(i);let a=mt(e.field,s,t),p=zr.includes(e.dateOperator)?me(a):a;return B([p,...i])},ub=(e,t)=>{let r=uo(t),o=Io(t),n=g=>e.offset===void 0?g:id(g,e.offset,t),i=g=>{if(g==null)return null;if(!U(g))return Qn(g,r.timeZone);let y=Ie(g,o);return y&&Zr(y,e.dateOperator,r).toDate()},s=()=>Ke(e,t),a=()=>n(i(s())),p=()=>{let g=s();if(g==null)return null;let y=ve(g,e.dateOperator).map(i);if(y[0]===null||y[1]===null)return null;let[m,S]=he(y).map(n);return m&&S?[m,S]:null},l=()=>{let g=s();if(g==null)return null;if(!U(g))throw Oe(e.dateOperator);let y=Ie(g,o);if(!y)return null;let[m,S]=Yr(y,r);return [m.toDate(),S.toDate()]},f=g=>{let y=a();return y===null?null:{[g]:y}},d=g=>g?{gte:g[0],lte:g[1]}:null,u=vt(e.dateOperator,"date");if(u)return f(u);switch(e.dateOperator){case $.within:case $.notWithin:return d(l());case $.between:case $.notBetween:return d(p());case $.dayIn:case $.dayNotIn:throw N("toPrisma",`'${e.dateOperator}'`);default:throw H(e.dateOperator,"date")}};var Cs=(e,t,r)=>{if(typeof e=="boolean")return e?{}:Bt();Rn(e,"toPrisma");let o=Q(e);(o==="field"||o==="date")&&ci(e.field,t?.map,t?.model);let n=e;switch(o){case "all":return td(n,t,r);case "any":return rd(n,t,r);case "if":return od(n,t,r);case "array":return gd(n,t,r);case "aggregate":return ud(n,t,r);case "date":return wd(n,t);case "field":return pd(n,t);default:throw Fe()}};Xf(Cs);var Sd=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=i.model.charAt(0).toLowerCase()+i.model.slice(1),a=t[s];if(!a)throw new Error(`executePrismaPlan: no delegate for model '${i.model}'. Ensure prismaDelegate has a key '${s}'.`);let p=await a[i.operation](i.args);n.push(p.map(l=>l[i.extract]).filter(l=>l!=null));}return Ms(o.where,n)},Ms=(e,t)=>{if(e==null)return e;if(Array.isArray(e))return e.map(r=>Ms(r,t));if(typeof e=="object"){let r=Object.getPrototypeOf(e);if(r!==Object.prototype&&r!==null)return e;let o=e;if("__step"in o&&typeof o.__step=="number"){let i=o.__step;if(i>=t.length)throw new Error(`Step ref __step: ${i} out of range (${t.length} steps executed)`);return t[i]}let n={};for(let[i,s]of Object.entries(o))n[i]=Ms(s,t);return n}return e};var cb=e=>e?.map?{...e,map:yi(e.map,e.mapName,"toPrisma")}:e,qo=(e,t)=>{let{condition:r,options:o}=hi(e,t,"toPrisma"),n={steps:[]},i=Cs(r,cb(o),n);return {steps:[...n.steps,{operation:"where",where:i}]}};var bd=(e,t)=>e===""?t:t===""?e:`${e}.${t}`,_s=e=>{let t=new Set,r=n=>{n&&t.add(n);},o=(n,i)=>{let s=ge(n,i);return "outOfBounds"in s?null:bd(s.scope,s.path)};return J(e,(n,i)=>{if(Ee(n))return;for(let p of Xr(n))r(q(p)?o(p,i):p);let s=typeof n.field=="string"&&n.field!==""?o(n.field,i):null;if(r(s),!st(n))return;let a=s??i[i.length-1];for(let p of eo(n))r(bd(a,p));return [...i,a]},[""]),[...t]};var Ri=(e,t)=>{for(let r of t){let o=e;for(let n of r.split("."))o=lr(o,n,()=>({}));}return e},Ei=(e,t)=>{for(let[r,o]of Object.entries(t))Ei(lr(e,r,()=>({})),o);return e},Ds=e=>e.whereClauses.flatMap(_s),mb=(e,t,r)=>Ri(Ei({},r??{}),Ds(V(e,t.mapName,t.modelName,t.relPath))),xd=e=>Ri({},(e??[]).flatMap(_s)),Od=e=>({mapName:e.lens.mapName,modelName:e.lens.model,relPath:[]}),Fs=(e,t,r)=>({...r,relPath:[...e.relPath,t]}),Rd=(e,t,r,o)=>o!==void 0||e==="declared"&&t.relations.has(r)?"declared":e==="declared"?"shallow":"paths",gb=(e,t,r,o)=>{if(!r.whereClauses.length)return;let n=qo(D(r.whereClauses),{...o,map:e.lens,mapName:t.mapName,model:t.modelName});if(n.steps.length>1)throw new Error(`toLensSelect: the grant on '${t.relPath.join(".")}' needs a counting step (executePrismaPlan), which a relation's where in a select can't run`);let{where:i}=n.steps[0];return Object.keys(i).length?i:void 0},Ed=(e,t,r,o,n,i)=>{let s=C(O(e.lens.maps,t.mapName),t.modelName)?.fields??{},a=V(e,t.mapName,t.modelName,t.relPath),p=r==="paths"?o:Ri(Ei({},o),Ds(a)),l={};for(let[f,d]of Object.entries(s)){let u=r!=="paths"&&Ge(a,f),g=O(p,f),y=r==="paths"?void 0:O(n,f);if(!u&&g===void 0||d.kind==="bridge")continue;if(d.kind!=="object"){l[f]=true;continue}if(r==="shallow"&&g===void 0&&y===void 0)continue;let m=u?Rd(r,a,f,y):"paths",S=Fs(t,f,{mapName:t.mapName,modelName:d.type}),b=Ed(e,S,m,g??{},y??{},i),w=d.isList&&m!=="paths"&&g===void 0?gb(e,S,V(e,S.mapName,S.modelName,S.relPath),i):void 0;l[f]=Object.keys(b).length?{select:b,...w&&{where:w}}:w?{where:w}:true;}return l},vd=(e,{rules:t,...r}={})=>{let o=_(e);return {select:Ed(o,Od(o),"declared",{},xd(t),r)}},Ls=(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,ks=(e,t,r,o)=>{let n={},i=C(O(e.lens.maps,t.mapName),t.modelName);for(let[s,a]of Object.entries(o)){if(!Object.hasOwn(r,s))continue;let p=O(i?.fields,s),l=p?Se(p,t.mapName):null;n[s]=l?Ls(r[s],f=>ks(e,Fs(t,s,l),f,a)):r[s];}return n},Ad=(e,t,r,o,n,i,s,a)=>{let p=V(e,t.mapName,t.modelName,t.relPath);if(!p.whereClauses.every(u=>we(u,o,a)===true))return null;let l=C(O(e.lens.maps,t.mapName),t.modelName)?.fields??{},f=s?Ri(Ei({},n),Ds(p)):{},d={};for(let[u,g]of Object.entries(l)){if(!Object.hasOwn(o,u))continue;let y=Ge(p,u),m=O(f,u),S=O(i,u),b=Se(g,t.mapName);if(!b){(y||m!==void 0)&&(d[u]=o[u]);continue}let w=Fs(t,u,b);if(y&&(r==="declared"||S!==void 0)){let c=Rd(r,p,u,S),x=!Array.isArray(o[u])||m!==void 0;d[u]=Ls(o[u],R=>Ad(e,w,c,R,m??{},S??{},s,a)??(s&&x?ks(e,w,R,mb(e,w,m)):null));}else m!==void 0&&(d[u]=Ls(o[u],c=>ks(e,w,c,m)));}return d},$d=(e,t,{keepGrantColumns:r=false,rules:o,...n}={})=>{let i=_(e),s=Od(i),a=xd(o);return t.flatMap(p=>{let l=Ad(i,s,"declared",p,{},a,r,n);return l===null?[]:[l]})};var js=(e,t,r,o,n)=>{let i={};for(let[s,a]of Object.entries(o.fields)){if(!Ge(t,s))continue;let p=t.enumValuesByField.get(s),l=n(s)?.filter(d=>p===void 0||p.includes(d.value)),f=ao(e,t,r,s,"groupBy")?t.sourceGroupBys.get(s):void 0;i[s]={...a,...p!==void 0&&{values:p},...l!==void 0&&{options:l},...f!==void 0&&{groupBy:f}};}return i},mo=(e,t={})=>{let r=_(e),o={},n=new Map;for(let s of t.sourceValues??[])n.set(`${s.path}|${s.field}`,s.options);let i=(s,a,p,l)=>{if(Object.hasOwn(o,l))return;let f=O(O(r.lens.maps,s)?.models??{},a);if(!f)return;let d=V(r,s,a,p),u={mapName:s,modelName:a,relPath:p},g=js(r,d,u,f,w=>{let c=n.get(`${l}|${w}`),x=d.enumValuesByField.get(w);return c??x?.map(R=>({value:R,label:R}))}),y={};for(let[w,c]of d.sources)Ge(d,w)&&(y[w]=c);let m={};for(let[w,c]of d.sourceLabels)Ge(d,w)&&ao(r,d,u,w,"label")&&(m[w]=c);let S={};for(let[w,c]of d.sourceGroupBys)Ge(d,w)&&ao(r,d,u,w,"groupBy")&&(S[w]=c);let b={};for(let w of d.sourcesFromMapDefaults.keys()){if(!ai(r,s,a,w))throw li(l,s,a,w);Object.hasOwn(y,w)&&(b[w]="mapDefaults");}o[l]={mapName:s,model:a,fields:g,whereClauses:d.whereClauses,sources:y,sourceLabels:m,sourceGroupBys:S,sourceFrom:b};for(let w of d.relations.keys()){if(!Ge(d,w))continue;let c=O(f.fields,w);if(!c)continue;let x=Se(c,s);x&&i(x.mapName,x.modelName,[...p,w],`${l}.${w}`);}};return i(r.lens.mapName,r.lens.model,[],r.lens.model),o};var Is=(e,t,r,o,n,i,s,a)=>{let p=n.split("."),{hops:l}=dt(e.lens.maps,{mapName:t,modelName:r,relPath:o},n),f=l.filter((d,u)=>u<p.length-1);if(i&&f.length<p.length-1){let d=p[f.length],u=f.at(-1)?.model??r;throw new Error(`${i} '${n}': hop '${d}' is not a resolvable relation on '${u}' \u2014 cannot guard its join`)}for(let d of f){let u=d.relPath.join(".");if(s.has(u))continue;s.add(u);let g=V(e,d.map,d.model,d.relPath);if(d.isList&&g.whereClauses.length)throw new Error(`source path '${n}': cannot enforce the grant on to-many relation '${d.prefix}' in a dotted path`);for(let y of g.whereClauses)a.push(ii(y,d.prefix));}},yb=e=>{let t=[];return J(e,r=>(typeof r.field=="string"&&t.push(r.field),false)),t},hb=(e,t,r,o,n,i,s)=>{let a=[],p=new Set;for(let l of n)Is(e,t,r,o,l,"groupBy",p,a);s?.includes(".")&&Is(e,t,r,o,s,"label",p,a);for(let l of i)for(let f of yb(l))f.includes(".")&&Is(e,t,r,o,f,null,p,a);return a},Wo=(e,t)=>{let r=te(e,t);return r==null||typeof r=="object"?void 0:String(r)},vi=(e,t)=>{let r=[];for(let o of t){let n=Wo(e,o);if(n===void 0)return;r.push(n);}return r},Bs=(e,t)=>JSON.stringify([e??null,t]),wb=(e,t,r,o)=>{let n=Bs(o,t),i=e.get(n);i===void 0?e.set(n,{value:t,...r!==void 0?{label:r}:{},...o!==void 0?{groups:o}:{}}):i.label===void 0&&r!==void 0&&e.set(n,{...i,label:r});},Ai=(e,t,r,o,n)=>{let i=te(t,r),s=o==null?void 0:String(o);for(let a of Array.isArray(i)?i:[i])a==null||typeof a=="object"||wb(e,String(a),s,n);},$i=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})}),Sb=(e,t)=>{if(t.length===0)return [];let r={mapName:e.lens.mapName,modelName:e.lens.model,relPath:[]},{hops:o,end:n}=dt(e.lens.maps,r,t.join("."));if(!n)return [false];let i=[r,...o.map(a=>({mapName:a.map,modelName:a.model}))],s=null;for(let a=0;a<t.length;a++){let p=i[a],l=V(e,p.mapName,p.modelName,t.slice(0,a)).whereClauses,f=s===null?l:[...l,s];if(f.length===0){s=null;continue}let d=O(e.lens.maps,p.mapName),u=d&&Ae(d,p.modelName,t[a]),g=d&&u&&u.kind==="object"&&i[a+1].mapName===p.mapName?dd(d,p.modelName,t[a],u):null;if(!g)return [false];let y=D(f);try{s=g.entry.isList?{field:g.field,arrayOperator:"any",condition:y}:D([{field:g.field,operator:"exists"},ii(y,g.field)]);}catch{return [false]}}return s===null?[]:[s]},Pi=e=>{let t=_(e);return Object.entries(mo(e)).flatMap(([r,o])=>Object.entries(o.sources).map(([n,i])=>{let s=O(o.sourceLabels,n),a=O(o.sourceGroupBys,n),p=Object.hasOwn(o.sourceFrom,n),l=r.split(".").slice(1),f=hb(t,o.mapName,o.model,l,a??[],i,s),d=O(o.fields,n)?.values,u=p?V(t,o.mapName,o.model,l).sourcesFromMapDefaults.get(n):void 0,g=Sb(u===void 0?t:{lens:t.lens,chain:t.chain.filter((y,m)=>m!==u)},l);return {path:r,visit:o,field:n,...p&&{from:"mapDefaults"},...s!==void 0&&{label:s},...a!==void 0&&{groupBy:a},eligibility:[...g,...i,...f,...d?[{field:n,operator:"in",value:[...d]}]:[]]}}))};var Pd=(e,t,r={})=>{let o=r.rowShape??"prisma",n=new Map;for(let i of t){let s=o==="sql";Ai(n,i,e.field,e.label===void 0?void 0:s&&e.label.includes(".")?i.__label:Wo(i,e.label),e.groupBy===void 0?void 0:vi(i,s?e.groupBy.map((a,p)=>`__group_${p}`):e.groupBy));}return {path:e.path,mapName:e.mapName,model:e.model,field:e.field,options:$i(n)}};var bb=(e,t)=>{let r=[...e];for(let o of t.split(".").slice(1)){let n=[];for(let i of r){let s=te(i,o);Array.isArray(s)?n.push(...s):s!=null&&n.push(s);}r=n;}return r},Td=(e,t,r)=>Pi(e).map(({path:o,visit:n,field:i,from:s,label:a,groupBy:p,eligibility:l})=>{if(s)throw new Error(`materializeSources: '${o}.${i}' offers its model's own source, which a fetched collection can't hold \u2014 query it with toSourceQueries and materializeSourceQuery.`);let f=D(l),d=new Map;for(let u of bb(t,o))we(f,u,r)===true&&Ai(d,u,i,a===void 0?void 0:Wo(u,a),p===void 0?void 0:vi(u,p));return {path:o,mapName:n.mapName,model:n.model,field:i,options:$i(d)}});var Nd=(e,t,r,o,n)=>{if(e===void 0)return;let i=new Set;for(let{mapName:s,modelName:a,relPath:p}of r)for(let l of Os(e,t,s,a,p)){let f=`'${l.path}' ${l.message}`;i.has(f)||(i.add(f),n.push({path:o,code:l.code,message:f}));}},Md=(e,t,r,o,n,i)=>{let s={lens:r.lens,chain:[...r.chain,t]},a=new Set;for(let p of o){let l=V(s,p.mapName,p.modelName,p.relPath);for(let[f,d]of Object.entries(e.sources??{})){let u=Fo(d);for(let g of ["label","groupBy"]){if(u[g]===void 0||a.has(`${f}|${g}`))continue;let y=g==="label"?u.label:ko(u.groupBy),m=g==="label"?l.sourceLabels.get(f):l.sourceGroupBys.get(f);JSON.stringify(y)===JSON.stringify(m)&&(ao(s,l,p,f,g)||(a.add(`${f}|${g}`),i.push({path:`${n}.sources.${f}`,code:"invalid_source",message:`${g} '${String(u[g])}' reads a column hidden by another layer`})));}}}},Cd=(e,t,r,o,n)=>{let i=e.split("."),{hops:s}=dt(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 p=s.at(-1)??{map:r,model:o},l=i[s.length],f=Ae(O(t,p.map),p.model,l);return f?ae(f)?`${n} relation '${l}' has no resolvable target`:s.length===i.length-1?null:`${n} segment '${l}' is not a relation`:`${n} segment '${l}' not on model '${p.model}'`},xb=(e,t,r)=>{for(let o of t){let n=ys(o);if(n&&!n.includes(e))return "not in ancestor's picks";if(o.omits?.includes(e))return "was omitted by ancestor"}return r?.picks&&!r.picks.includes(e)?"not visible from defaults.picks":r?.omits?.includes(e)?"already excluded by defaults":null},_d=(e,t,r,o,n,i,s,a,p,l,f,d,u=false)=>{e.picks&&e.omits&&l.push({path:`${p}`,code:"conflicting_selection",message:"cannot specify both picks and omits"}),u&&"relations"in e&&e.relations&&l.push({path:`${p}`,code:"invalid_source",message:"defaults cannot declare 'relations' \u2014 relations are path-specific only"});for(let y of ["picks","omits"])for(let m of e[y]??[]){if(!O(i,m)){l.push({path:`${p}.${y}`,code:"not_in_lens",message:`field '${m}' not on model`});continue}let S=xb(m,t,u?void 0:r);S&&l.push({path:`${p}.${y}`,code:"not_visible",message:`'${m}' ${S}`});}let g=(y,m,S)=>{let b=O(i,m);if(!b){l.push({path:`${p}.${y}`,code:"not_in_lens",message:`field '${m}' not on model`});return}if(b.kind!=="enum"){l.push({path:`${p}.${y}`,code:"wrong_kind",message:`field '${m}' is not an enum field`});return}let w=pr(b,a);for(let c of S)w&&!w.includes(c)&&l.push({path:`${p}.${y}.${m}`,code:"value_not_allowed",message:`'${c}' is not a known value of enum '${b.type}'`});};for(let[y,m]of Object.entries(e.enumPicks??{}))g("enumPicks",y,m);for(let[y,m]of Object.entries(e.enumOmits??{}))g("enumOmits",y,m);Nd(e.where,f,d,`${p}.where`,l);for(let[y,m]of Object.entries(e.sources??{})){if(!O(i,y)){l.push({path:`${p}.sources`,code:"not_in_lens",message:`field '${y}' not on model`});continue}let S=Fo(m),b=S.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":S.label!==void 0||S.groupBy!==void 0?"a from: 'mapDefaults' source takes the model source's label and groupBy":null;x&&l.push({path:`${p}.sources.${y}`,code:"invalid_source",message:x});}let w=S.label?.includes(".")?S.label:void 0;if(S.label!==void 0)if(w){let x=Cd(w,o,n,s,"label");x&&l.push({path:`${p}.sources.${y}`,code:"invalid_source",message:`${x}`});}else O(i,S.label)||l.push({path:`${p}.sources.${y}`,code:"not_in_lens",message:`label column '${S.label}' not on model`});let c=ko(S.groupBy);if(c!==void 0||w!==void 0){let x=/^__(group(_\d+)?|label)$/;(x.test(y)||S.label!==void 0&&x.test(S.label))&&l.push({path:`${p}.sources.${y}`,code:"invalid_source",message:"'__group*' / '__label' names are reserved on grouped or path-labeled sources (sql column aliases)"});}if(c!==void 0){for(let R of c){let A=Cd(R,o,n,s,"groupBy");A&&l.push({path:`${p}.sources.${y}`,code:"invalid_source",message:`${A}`});}let x=JSON.stringify(c);for(let R of t){let A=O(R.sources,y);if(A===void 0)continue;let X=ko(Fo(A).groupBy);X!==void 0&&JSON.stringify(X)!==x&&l.push({path:`${p}.sources.${y}`,code:"not_visible",message:`groupBy [${c}] conflicts with an ancestor layer's groupBy [${X}]`});}}Nd(S.where,f,d,`${p}.sources.${y}`,l);}},Ob=(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 p=null,l=new Set;for(let d of o){let u=d[i];if(u&&(u.picks&&(p=si(p,u.picks)),u.omits))for(let g of u.omits)l.add(g);}let f=d=>!(l.has(d)||p&&!p.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`});}},Ld=(e,t,r,o,n,i,s)=>{let a=V(t,r.mapName,r.modelName,r.relPath);for(let p of ["enumPicks","enumOmits"])for(let[l,f]of Object.entries(e[p]??{})){let d=O(o,l);if(d?.kind!=="enum")continue;let u=pr(d,n)??[],g=pi(a,l)??u;for(let y of f)u.includes(y)&&!g.includes(y)&&s.push({path:`${i}.${p}.${l}`,code:"not_visible",message:`'${y}' is not visible (not allowed by the inherited enum narrowing)`});}},kd=(e,t,r,o,n,i,s,a,p,l,f)=>{let d=O(n,i),u=C(d,s);if(!u)return;let g=O(O(r.mapDefaults,i)?.models,s),m=[...o.map(b=>O(O(b.mapDefaults,i)?.models,s)).filter(b=>b!==void 0).map(b=>b),...t];_d(e,m,g,n,i,u.fields,s,d?.enums,a,p,l,[{mapName:i,modelName:s,relPath:f}],false),Ld(e,{lens:l.lens,chain:[...l.chain,{parent:r.parent,mapDefaults:r.mapDefaults}]},{mapName:i,modelName:s,relPath:f},u.fields,d?.enums,a,p),Md(e,r,l,[{mapName:i,modelName:s,relPath:f}],a,p);let S={lens:l.lens,chain:[...l.chain,r]};for(let[b,w]of Object.entries(e.sources??{}))!Do(w)||w.from!=="mapDefaults"||ai(S,i,s,b)||p.push({path:`${a}.sources.${b}`,code:"invalid_source",message:li(a,i,s,b).message});for(let[b,w]of Object.entries(e.relations??{})){let c=O(u.fields,b);if(!c){p.push({path:`${a}.relations`,code:"not_in_lens",message:`'${b}' not on model`});continue}if(!ae(c)){p.push({path:`${a}.relations`,code:"wrong_kind",message:`'${b}' is not a relation (kind=${c.kind})`});continue}let x=Se(c,i);if(!x)continue;if(!C(O(n,x.mapName),x.modelName)){p.push({path:`${a}.relations.${b}`,code:"not_in_lens",message:"target model not found in lens"});continue}let R=t.map(A=>O(A.relations,b)).filter(A=>A!==void 0);kd(w,R,r,o,n,x.mapName,x.modelName,`${a}.relations.${b}`,p,l,[...f,b]);}},Vs=e=>{let t=[],r=We(e),o=qe(e.parent),n=_(e.parent),i=mo(e.parent);for(let[s,a]of Object.entries(e.mapDefaults??{})){let p=O(r.maps,s);if(!p){t.push({path:`mapDefaults.${s}`,code:"not_in_lens",message:"not in lens"});continue}let l=o.map(f=>O(f.mapDefaults,s)?.enums).filter(f=>f!==void 0);for(let[f,d]of Object.entries(a.models??{})){let u=C(p,f);if(!u){t.push({path:`mapDefaults.${s}.models.${f}`,code:"not_in_lens",message:"not in fieldMap"});continue}let g=o.map(m=>O(O(m.mapDefaults,s)?.models,f)).filter(m=>m!==void 0),y=[{mapName:s,modelName:f,relPath:fr}];for(let[m,S]of Object.entries(i))S.mapName===s&&S.model===f&&y.push({mapName:s,modelName:f,relPath:m.split(".").slice(1)});_d(d,g,void 0,r.maps,s,u.fields,f,p.enums,`mapDefaults.${s}.models.${f}`,t,n,y,true),Ld(d,n,{mapName:s,modelName:f,relPath:fr},u.fields,p.enums,`mapDefaults.${s}.models.${f}`,t),Md(d,e,n,y,`mapDefaults.${s}.models.${f}`,t);}a.enums&&Ob(s,a.enums,p.enums,l,t);}if(e.root){let s=r.mapName,a=r.model,p=O(r.maps,s);if(!p)t.push({path:"root",code:"not_in_lens",message:`lens map '${s}' not in lens`});else if(!C(p,a))t.push({path:"root",code:"not_in_lens",message:`lens model '${a}' not in fieldMap`});else {let l=o.map(f=>f.root).filter(f=>f!==void 0);kd(e.root,l,e,o,r.maps,s,a,"root",t,n,[]);}}for(let s of Ff(e))t.push({path:"bindings",code:"invalid_binding",message:s});return kt(t)},Ti=e=>Lo(Vs(e),"validateNarrowing");var Rb=(e,t)=>`${e}::${t}`,Eb=(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);},Dd=(e,t={})=>{let r=_(e),{lens:o}=r,n=new Map;for(let u of t.sourceValues??[]){let g=`${u.mapName}::${u.model}::${u.field}`,y=n.get(g)??new Map;for(let m of u.options)y.set(Bs(m.groups,m.value),m);n.set(g,y);}let i=new Map,s=new Set,a=new Set,p=[{mapName:o.mapName,modelName:o.model,relPath:[],declared:true}];for(;p.length>0;){let{mapName:u,modelName:g,relPath:y,declared:m}=p.shift(),S=C(O(o.maps,u),g);if(!S)continue;let b=Rb(u,g);if(m){let A=`${b}::${y.join(".")}`;if(s.has(A))continue;s.add(A);}else {if(a.has(b))continue;a.add(b);}let w=V(r,u,g,m?y:fr),c=i.get(b);c||(c={mapName:u,modelName:g,fields:new Map},i.set(b,c));let R=js(r,w,{mapName:u,modelName:g,relPath:m?y:fr},S,A=>{let X=n.get(`${u}::${g}::${A}`);return X&&[...X.values()]});for(let[A,X]of Object.entries(R)){let Ut=X,Gt=X.groupBy,yo=c.fields.get(A)?.groupBy;if(Gt!==void 0&&yo!==void 0&&JSON.stringify(yo)!==JSON.stringify(Gt))throw new Error(`projectLens: '${g}.${A}' is grouped by different axes on different paths ([${yo}] vs [${Gt}]) \u2014 one surface field cannot carry two partition namespaces`);if(Eb(c.fields,A,X),ae(Ut)){let ho=Se(Ut,u);if(!ho)continue;m&&w.relations.has(A)?p.push({mapName:ho.mapName,modelName:ho.modelName,relPath:[...y,A],declared:true}):p.push({mapName:ho.mapName,modelName:ho.modelName,relPath:[],declared:false});}}}let l={};for(let{mapName:u,modelName:g,fields:y}of i.values()){let m=O(l,u);m||(m={models:{}},l[u]=m);let S={},b=new Map;for(let[w,c]of y)if(S[w]=c.options===void 0&&c.values?{...c,options:c.values.map(x=>({value:x,label:x}))}:c,c.kind==="enum"&&c.values){let x=b.get(c.type)??new Set;for(let R of c.values)x.add(R);b.set(c.type,x);}m.models[g]={...C(O(o.maps,u),g),fields:S};for(let[w,c]of b)m.enums??={},m.enums[w]=[...c];}let f=o.bridges?.filter(u=>{let[g,y]=u.endpoints,m=Ae(O(l,g.fieldMap),g.model,$e(y)),S=Ae(O(l,y.fieldMap),y.model,$e(g));return m!==void 0||S!==void 0}),d={maps:l};return f&&f.length>0&&(d.bridges=f),{...d,mapName:o.mapName,model:o.model}};function Fd(e,{by:t="path",...r}={}){return t==="model"?Dd(e,r):mo(e,r)}var vb=e=>"maps"in e,jd=(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:p,parents:l,...f}=a;if(l.join("\0")!==o.slice(0,i).join("\0"))throw new Error(`composeLens: '${s}' composes with [${l.join(", ")}], not [${o.slice(0,i).join(", ")}] as '${e}' lists`);if(vb(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};Ti(u),n=u;}return n},Id=(e,t)=>{let r=Dt(e)?[]:qe(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 [{...We(e),id:t[0],parents:[]},...r.map(({parent:o,...n},i)=>({...n,id:t[i+1],parents:t.slice(0,i+1)}))]};var Bd=e=>e instanceof Date?e.toISOString():Array.isArray(e)&&e.some(t=>t instanceof Date)?e.map(Bd):e,T=(e,t)=>(e.params.push(Bd(t)),`$${++e.paramIndex}`);var gt=(e,t,{jsonb:r=false}={})=>{let o=()=>({sql:Rs(e,void 0,r),shape:e.includes(".")?"json-path":"unknown"});if(!t.map||!t.currentModel||!t.currentAlias)return o();let n=Ue(e,t.map,t.currentModel);if(n.kind==="past-scalar")throw qn(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 Vn(e,i);let s=t.currentAlias;for(let f of n.hops){let d=Vd(t,s,f);if(!d)return o();s=d;}let a=di(n);if(n.kind==="direct"&&n.entry.kind==="object"){let f={field:n.column,entry:n.entry,from:n.model},d=Vo(t.map,n.model,n.entry),u=Vd(t,s,f);return !d||!u?o():{sql:`${G(u)}.${G(d[0].there)}`,shape:a}}let p=n.kind==="json-path"?[n.column,...n.jsonPath]:[n.column],l=Rs(p.join("."),s,r);return {sql:a==="json"&&!r?`NULLIF(${l}, 'null'::jsonb)`:l,shape:a}},He=(e,t,r)=>gt(e,t,r).sql,Vd=(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=Ab(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},Ab=(e,t,r,o,n)=>{let i=o.type,s=C(e,i)?.dbName??i,a=Vo(e,t,o);if(!a)return null;let p=a.map(({here:l,there:f})=>`${G(n)}.${G(f)} = ${G(r)}.${G(l)}`).join(" AND ");return `LEFT JOIN ${G(s)} AS ${G(n)} ON ${p}`};var yt={type:"value",value:null},ht=e=>e.type==="value"&&(e.value===null||e.value===void 0),$b=(e,t)=>{let r=q(e);if(r){if(r.depth>1)throw new Error(Ro(e,"toSql"));let o=gt(r.path,t);if(o.shape==="relation")throw new Error(`'${e}' is a relation; a value ref reads a column`);return {type:"column",...o}}return {type:"value",value:En(e,t.context,"toSql")}},oe=(e,t)=>Po(e,{value:r=>({type:"value",value:r}),path:r=>$b(r,t),bind:(r,o)=>({type:"value",value:Kn(r,o,"toSql")})}),yr=e=>t=>{let r=oe(t,e);if(r.type==="column")throw new Error(`'${t.path}' is a row ref`);return r.value},Pe=e=>nr(e.dateConfig??{},yr(e));var Pb={lt:"<",lte:"<=",gt:">",gte:">=",equals:"="},go=(e,t)=>{let r=vt(e,t);return r?{symbol:Pb[r],negated:k.includes(e)}:void 0},qd=(e,t)=>e.type==="column"?e.sql:T(t,e.value),Je=(e,t)=>`(${t} OR ${e} IS NULL)`,qt=(e,t,r=true)=>t&&r?`${e} IS NULL`:"FALSE",Ni=(e,t,r,o,n)=>{if(ht(r))return qt(e,o);let i=`${e} ${t} ${qd(r,n)}`;return o?Je(e,i):i},Uo=(e,t,r,o,n=true)=>{if(!t||t.some(ht))return qt(e,r,n);let[i,s]=t.map(d=>qd(d,o)),a=t.some(d=>d.type==="column"),p=a?"SYMMETRIC ":"";if(!r)return `${e} BETWEEN ${p}${i} AND ${s}`;let l=`${e} NOT BETWEEN ${p}${i} AND ${s}`,f=a?`(${l} AND ${i} IS NOT NULL AND ${s} IS NOT NULL)`:l;return n?Je(e,f):f};var Wd=e=>Array.isArray(e)?e.some(Wd):typeof e=="object"&&e!==null,Ud=(e,t,r,o)=>{let n=`NULLIF(${t}, 'null'::jsonb)`,i=`jsonb_typeof(${n})`,s=`(${n} #>> '{}')`,a=c=>`${T(o,JSON.stringify(c))}::jsonb`,p=fe(e.caseInsensitive),l=c=>p?`LOWER(${c})`:c,f=k.includes(e.operator),d=c=>Je(n,`NOT (${c})`);if(se(e,r))return qt(n,f);let u=Bn(e.operator,r);if(u)throw u;let g=c=>{if(Wd(c))throw N("toSql",`A case-insensitive comparison of '${e.field}' with a list holding objects`);return a(ar(c))},y=c=>p&&typeof c=="string"?`(${i} = 'string' AND LOWER(${s}) = LOWER(${T(o,c)}))`:p&&Array.isArray(c)?`(${i} = 'array' AND LOWER(${n}::text)::jsonb = ${g(c)})`:`${n} = ${a(c)}`,m=c=>`(${i} = 'string' AND ${l(s)} LIKE ${l(T(o,c))})`,S=c=>{let x=R=>`(CASE WHEN ${i} = 'array' THEN EXISTS (SELECT 1 FROM jsonb_array_elements(${n}) AS e WHERE ${R}) ELSE FALSE END)`;return p&&typeof c=="string"?x(`jsonb_typeof(e) = 'string' AND LOWER(e #>> '{}') = LOWER(${T(o,c)})`):p&&Array.isArray(c)?x(`LOWER(e::text)::jsonb = ${g(c)}`):typeof c=="object"&&c!==null?x(`e = ${a(c)}`):`(${i} = 'array' AND ${n} @> ${a([c])})`},b=c=>typeof c=="string"?`(${m(`%${Y(c)}%`)} OR ${S(c)})`:S(c);switch(e.operator){case h.equals:return r===null?`${n} IS NULL`:y(r);case h.notEquals:return r===null?`${n} IS NOT NULL`:d(y(r));case h.in:case h.notIn:{let{values:c,hasNull:x}=lt(r),R=c.length?`(${c.map(y).join(" OR ")})`:"FALSE";return e.operator===h.in?x?`(${R} OR ${n} IS NULL)`:R:x?`(NOT ${R} AND ${n} IS NOT NULL)`:d(R)}case h.between:case h.notBetween:{let[c,x]=r,R=`(${i} = jsonb_typeof(${a(c)}) AND ${n} BETWEEN ${a(c)} AND ${a(x)})`;return e.operator===h.between?R:d(R)}case h.contains:return b(r);case h.notContains:return d(b(r));case h.startsWith:return m(`${Y(String(r))}%`);case h.endsWith:return m(`%${Y(String(r))}`);case h.notStartsWith:return d(m(`${Y(String(r))}%`));case h.notEndsWith:return d(m(`%${Y(String(r))}`));case h.matches:case h.notMatches:{let{source:c,caseInsensitive:x}=_t(r),R=`(${i} = 'string' AND ${s} ~${x?"*":""} ${T(o,Mo(c))})`;return e.operator===h.matches?R:d(R)}}let w=go(e.operator,"field")?.symbol;if(w)return `(${i} = jsonb_typeof(${a(r)}) AND ${n} ${w} ${a(r)})`;throw new Error(`Operator '${e.operator}' is not supported on a Json value in SQL`)};var Gd=e=>typeof e=="object"&&er(e)!==null,Go=({sql:e,shape:t},r)=>{if(t!=="json-path"&&t!=="text")return `to_timestamp(EXTRACT(EPOCH FROM ${e}))`;let o=T(r,Pe(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)`},Ci=e=>Object.values(e).some(Gd),Nb=(e,t,r)=>{let o=Zt(r),n=o?"int":"double precision";if(typeof e=="number"||!Gd(e)){let a=ns(e,yr(t),r);return `${T(t,a)}::${n}`}let i=oe(e,t).sql;return `(CASE WHEN ${o?`${i} >= 0 AND ${i} = trunc(${i})`:`${i} >= 0`} THEN ${i} END)::${n}`},Cb=(e,t)=>`make_interval(${Fp.flatMap(o=>{let n=Object.keys(e).filter(i=>e[i]!==void 0&&Pt[i].interval===o).map(i=>{let s=Nb(e[i],t,i),{factor:a}=Pt[i];return a===1?s:`${a} * ${s}`});return n.length?[`${o} => ${n.join(" + ")}`]:[]}).join(", ")})`,Ko=(e,t,r,o)=>{let n=Pe(o).timeZone;if(e.type==="value"&&!Ci(t)){let p=tr(t,yr(o));return e.value===null||e.value===void 0||p===null?yt:{type:"value",value:Nt(Be__default.default(e.value),p,r,n).toDate()}}let i=e.type==="column"?e.computed?e.sql:Go(e,o):`${T(o,e.value??null)}::timestamptz`,s=T(o,n);return {type:"column",computed:true,sql:`(((${i} AT TIME ZONE ${s}) ${r===1?"+":"-"} ${Cb(t,o)}) AT TIME ZONE ${s})`}};var qs=(e,t,r)=>{let o=oe(t,r);if(e.type==="value"&&o.type==="value"){let i=or(o.value);return i===null?yt:{type:"value",value:rr(e.value,i)}}let n=(i,s)=>i.type==="column"?`(${i.sql})::double precision`:`${T(r,s(i.value)??null)}::double precision`;return {type:"column",computed:true,sql:`(${n(e,i=>i)} + ${n(o,or)})`}},Kd=(e,t,r)=>{if(ht(e))return yt;let o=oe(t,r);if(o.type==="column")throw new Error(`A row path on a date offset ('${t.path}') is check-only; evaluate with check()`);let n=ro(o.value);return n===null?yt:Ko(e,...n,r)};var zd,Hd=e=>{zd=e;},Wt=(e,t)=>zd(e,t);var _i=(e,t,r)=>{let o=In(e);if(o)throw o;let n=r===void 0?gt(e.field,t):{sql:r,shape:"scalar"};if(n.shape==="relation"&&!sr(e))throw Qr(e.field);let i=r===void 0;if(n.shape==="enum"&&!At.includes(e.operator)){let c=Qd(e,t),x=re(e.field,t.map,t.currentModel),R=c!==Mi&&x&&!se(e,c)?wi(e,c,x,t.map):null;if(R){let A=`${n.sql}::text = ANY(${T(t,R.values)})`;return R.matchesNull?Je(n.sql,A):A}}let s=n.shape==="enum"&&!At.includes(e.operator)?{...n,sql:`${n.sql}::text`}:n;if((n.shape==="json"||n.shape==="json-path")&&!At.includes(e.operator)){let c=Qd(e,t);if(c===Mi)throw new Error(`The Json value '${e.field}' compares against an operand known when compiling, not one read per row.`);return Ud(e,He(e.field,t,{jsonb:true}),c,t)}let p=c=>{if(c.type==="column"&&!c.computed&&(c.shape==="json"||c.shape==="json-path"))throw N("toSql",`'${e.field}' compared with a Json value read per row`,"SQL would compare its text")};if(ye.includes(e.operator)){let c=Xd(e,t);return c?.forEach(p),Uo(s.sql,c,k.includes(e.operator),t,i)}let l=Zd(e,t);if(p(l),l.type==="column"&&ot(e.operator,"field")==="string"&&!dr(n.shape)&&n.shape!=="list")throw N("toSql",`'${e.operator}' on '${e.field}'`,"it is not text");if(l.type==="column"&&l.computed&&n.shape==="text"&&r===void 0)throw N("toSql",`'${e.field}' against a value moved by an offset`,"an offset moves a number or a date");let f=s.sql,d=go(e.operator,"field");if(d)return Ni(f,d.symbol,l,false,t);if(l.type==="value"&&se(e,l.value))return qt(f,k.includes(e.operator),i);let u=l.type==="column"&&l.computed===true,g=fe(e.caseInsensitive)&&(l.type==="column"?!u&&dr(n.shape)&&dr(l.shape):fo(n.shape,l.value)),y=c=>g?`LOWER(${c})`:c,m=c=>g?ar(c):c;if(n.shape==="list"&&l.type==="column"&&Gr.includes(e.operator)){if(re(e.field,t.map,t.currentModel)?.type!=="String"||!dr(l.shape))throw N("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 c=fe(e.caseInsensitive)&&dr(l.shape)?`EXISTS (SELECT 1 FROM unnest(${f}) AS e WHERE LOWER(e) = LOWER(${l.sql}))`:`array_position(${f}, ${l.sql}) IS NOT NULL`;return e.operator===h.contains?`(${l.sql} IS NOT NULL AND ${c})`:`(${f} IS NULL OR (${l.sql} IS NOT NULL AND NOT ${c}))`}if(n.shape==="list"&&l.type==="value"){let c=fe(e.caseInsensitive)&&fo("text",l.value);if(Gr.includes(e.operator)){let x=T(t,l.value),R=c?`EXISTS (SELECT 1 FROM unnest(${f}) AS e WHERE LOWER(e) = LOWER(${x}))`:`array_position(${f}, ${x}) IS NOT NULL`;return e.operator===h.contains?R:`NOT ${R}`}if(Kr.includes(e.operator)&&Array.isArray(l.value))return Wt(Yn(e,l.value),t);if(Mb(e.operator))throw new Error(`'${e.operator}' does not apply to the list '${e.field}'; test its members with contains.`);if(c&&$t.includes(e.operator)&&Array.isArray(l.value)){let x=T(t,ar(l.value)),R=`(${f} IS NOT NULL AND ARRAY(SELECT LOWER(e) FROM unnest(${f}) AS e) = ${x})`;return e.operator===h.equals?R:Je(f,`NOT ${R}`)}}let S=l.type==="value"?l.value:void 0,b=l.type==="column"?l.sql:void 0;if(b!==void 0&&(Kr.includes(e.operator)||ot(e.operator,"field")==="pattern"))throw N("toSql",`'${e.operator}' against an operand read per row ('${e.path}')`);let w=c=>i?Je(f,c):c;switch(e.operator){case h.equals:return u?`${f} = ${b}`:b!==void 0?`${y(f)} IS NOT DISTINCT FROM ${y(b)}`:S===null?`${f} IS NULL`:`${y(f)} = ${y(T(t,S))}`;case h.notEquals:return u?w(`${f} <> ${b}`):b!==void 0?`${y(f)} IS DISTINCT FROM ${y(b)}`:S===null?`${f} IS NOT NULL`:w(`${y(f)} <> ${y(T(t,S))}`);case h.in:{let{values:c,hasNull:x}=lt(S);if(!c.length)return x?`${f} IS NULL`:"FALSE";let R=`${y(f)} = ANY(${T(t,m(c))})`;return x?w(R):R}case h.notIn:{let{values:c,hasNull:x}=lt(S);if(!c.length)return x?`${f} IS NOT NULL`:"TRUE";let R=`${y(f)} <> ALL(${T(t,m(c))})`;return x?`(${R} AND ${f} IS NOT NULL)`:w(R)}case h.contains:return `${y(f)} LIKE ${y(T(t,`%${Y(String(S))}%`))}`;case h.notContains:return w(`${y(f)} NOT LIKE ${y(T(t,`%${Y(String(S))}%`))}`);case h.startsWith:return `${y(f)} LIKE ${y(T(t,`${Y(String(S))}%`))}`;case h.endsWith:return `${y(f)} LIKE ${y(T(t,`%${Y(String(S))}`))}`;case h.notStartsWith:return w(`${y(f)} NOT LIKE ${y(T(t,`${Y(String(S))}%`))}`);case h.notEndsWith:return w(`${y(f)} NOT LIKE ${y(T(t,`%${Y(String(S))}`))}`);case h.matches:return Jd(f,S,false,t);case h.notMatches:return w(Jd(f,S,true,t));case h.isEmpty:case h.notEmpty:return Ws(e.field,n,e.operator===h.isEmpty,t,ui(e,t.map,t.currentModel));case h.exists:return `${f} IS NOT NULL`;case h.notExists:return `${f} IS NULL`;default:throw new Error(`Unknown operator: ${e.operator}`)}},Zd=(e,t)=>{if(At.includes(e.operator))return {type:"value",value:void 0};let r=Yd(e,oe(e,t),t);return e.offset===void 0?r:qs(r,e.offset,t)},Yd=(e,t,r)=>t.type==="column"?t:{type:"value",value:mi(e,t.value,Ft(e.field,r.map,r.currentModel),"toSql",()=>Pe(r).timeZone)},Xd=(e,t)=>{let r=Yd(e,oe(e,t),t),o=r.type==="value"?r.value:void 0;if(o==null)return null;let n=ve(o,e.operator);return n.some(i=>i!=null&&!Z(i))&&to(o,e.operator),he(n).map(i=>{let s={type:"value",value:i};return e.offset===void 0?s:qs(s,e.offset,t)})},Jd=(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}=_t(t);return `${e} ${r?"!":""}~${i?"*":""} ${T(o,Mo(n))}`},Mi=Symbol("not known"),Qd=(e,t)=>{if(ye.includes(e.operator)){let o=Xd(e,t);return o?o.every(n=>n.type==="value")?o.map(n=>n.value):Mi:null}let r=Zd(e,t);return r.type==="value"?r.value:Mi},Ws=(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=He(e,o,{jsonb:true}),p=["'null'::jsonb",...n?[`'""'::jsonb`]:[],"'[]'::jsonb"].join(", ");return r?`(${a} IS NULL OR ${a} IN (${p}))`:`${a} NOT IN (${p})`}return n?r?`(${i} IS NULL OR ${i} = '')`:`(${i} IS NOT NULL AND ${i} <> '')`:r?`${i} IS NULL`:`${i} IS NOT NULL`},Mb=e=>ot(e,"field")==="string"&&!Gr.includes(e);var eu=(e,t)=>{if(ue(e))throw je("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=_b(e,t);return _i(e,t,r)},_b=(e,t)=>{let{mode:r,field:o}=e.aggregate;if(!De.includes(r))throw Tt(r);let n=r==="sum"?"SUM":"AVG",i=ce({field:e.field},t.map,t.currentModel);if(i==="relation"||re(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=He(e.field,t,{jsonb:!s}),p=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(${p}) AS elem)`}if(o){let d=`(elem->>${Es(o)})::numeric`;return `(SELECT ${`COALESCE(${n}(${d}), 0)`} FROM jsonb_array_elements(${p}) AS elem)`}return `(SELECT ${`COALESCE(${n}(elem::numeric), 0)`} FROM jsonb_array_elements_text(${p}) AS elem)`};var tu=(e,t)=>{if(ue(e))throw je("toSql");if(!e.field)throw Fn("toSql");if(ce({field:e.field},t.map,t.currentModel)==="relation"||re(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=gt(e.field,t),n=e.arrayOperator===E.empty;if(o.shape==="list")return Ws(e.field,o,n,t,false);let i=He(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 H(e.arrayOperator,"array")}};var Lb=(e,t)=>e.type==="column"&&!e.computed?{type:"column",sql:Go(e,t),computed:true}:e,ru=e=>e===void 0||e==="instant"||e==="text"||e==="json-path"||e==="unknown",ou=e=>N("toSql",`A date rule on '${e}'`,"it is not a date column"),nu=(e,t,r)=>{let o=t.some(i=>i.type==="column"),n=e.shape==="json-path"||e.shape==="text";return o||n?{lhs:Go(e,r),ends:t.map(i=>Lb(i,r))}:{lhs:e.sql,ends:t}},iu=(e,t)=>{let r=gt(e.field,t);if(!ru(r.shape))throw ou(e.field);let o=oe(e,t);if(o.type==="column"&&!ru(o.shape))throw ou(String(e.path??e.field));let n=go(e.dateOperator,"date");if(n){let{lhs:s,ends:a}=nu(r,[Db(e,t)],t);return Ni(s,n.symbol,a[0],n.negated,t)}let i=(s,a)=>{if(!s)return Uo(r.sql,null,a,t);let{lhs:p,ends:l}=nu(r,s,t);return Uo(p,l,a,t)};switch(e.dateOperator){case $.within:case $.notWithin:return i(Fb(e,t),k.includes(e.dateOperator));case $.between:case $.notBetween:return i(jb(e,t),k.includes(e.dateOperator));case $.dayIn:case $.dayNotIn:{let s=e.dateOperator===$.dayNotIn,a=oe(e,t);if(a.type==="column")throw N("toSql",`A weekday list read from the row ('${e.path}')`);let p=is(a.value);if(p===null)return qt(r.sql,s);let l=T(t,Pe(t).timeZone),f=T(t,p),d=`EXTRACT(DOW FROM (${Go(r,t)} AT TIME ZONE ${l}))`;return e.dateOperator===$.dayIn?`${d} = ANY(${f})`:Je(r.sql,`${d} <> ALL(${f})`)}default:throw H(e.dateOperator,"date")}},su=e=>({type:"value",value:Ao(Pe(e)).toDate()}),kb=(e,t,r)=>{let o=ie(e);if(o&&Ci(o[0]))return Ko(su(r),...o,r);let n=Ie(e,yr(r));return n===null?yt:{type:"value",value:Zr(n,t,Pe(r)).toDate()}},au=(e,t,r)=>e==null?yt:U(e)?kb(e,t,r):{type:"value",value:Qn(e,Pe(r).timeZone)},lu=(e,t,r)=>t.offset===void 0?e:Kd(e,t.offset,r),Db=(e,t)=>{let r=oe(e,t),o=r.type==="column"?r:au(r.value,e.dateOperator,t);return lu(o,e,t)},Fb=(e,t)=>{let r=oe(e,t);if(ht(r))return null;if(r.type==="column"||!U(r.value))throw Oe(e.dateOperator);let o=ie(r.value);if(o&&Ci(o[0])){let s=su(t),a=Ko(s,...o,t);return o[1]===-1?[a,s]:[s,a]}let n=Ie(r.value,yr(t));if(n===null)return null;let i=Yr(n,Pe(t));return [{type:"value",value:i[0].toDate()},{type:"value",value:i[1].toDate()}]},jb=(e,t)=>{let r=oe(e,t);if(ht(r))return null;let o=r.type==="value"?r.value:void 0,n=ve(o,e.dateOperator).map(p=>au(p,e.dateOperator,t));if(n.some(ht))return null;let[i,s]=n;return (i.type==="value"&&s.type==="value"?he([i.value,s.value]).map(p=>({type:"value",value:p})):n).map(p=>lu(p,e,t))};var pu=(e,t)=>e.all.length===0?"TRUE":`(${e.all.map(o=>Wt(o,t)).join(" AND ")})`,fu=(e,t)=>e.any.length===0?"FALSE":`(${e.any.map(o=>Wt(o,t)).join(" OR ")})`,du=(e,t)=>{if(jt(e,t.map,t.currentModel))return "TRUE";let r=Wt(e.if,t),o=Wt(e.then,t);if(e.else!==void 0){let n=Wt(e.else,t);return `(((${r}) IS NOT TRUE OR ${o}) AND ((${r}) IS TRUE OR ${n}))`}return `((${r}) IS NOT TRUE OR ${o})`};var zo=(e,t)=>{if(typeof e=="boolean")return e?"TRUE":"FALSE";if(Rn(e,"toSql"),"field"in e&&typeof e.field=="string"&&t.map&&t.currentModel&&fs(e.field,t.map,t.currentModel))return "TRUE";let r=Q(e);(r==="field"||r==="date")&&ci(e.field,t.map,t.currentModel);let o=e;switch(r){case "all":return pu(o,t);case "any":return fu(o,t);case "if":return du(o,t);case "array":return tu(o,t);case "aggregate":return eu(o,t);case "date":return iu(o,t);case "field":return _i(o,t);default:throw Fe()}};Hd(zo);var Us=e=>{let t=yi(e?.map,e?.mapName,"toSql"),r=!!(t&&e?.model),o=e?.alias??(r?"t0":void 0);return {params:[],paramIndex:0,context:e?.context,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}},Ib=(e,t)=>{let{condition:r,options:o}=hi(e,t,"toSql"),n=Us(o);return {sql:zo(r,n),params:n.params,joins:n.joins??[]}};var uu=(e,t)=>{let[r,...o]=t;if(o.length===0){e[r]=true;return}let n=e[r],i=n!==void 0&&n!==true?n.select:{};uu(i,o),e[r]={select:i};},Bb=e=>{let t={};for(let r of e)uu(t,r.split("."));return t},Vb=(e,t,r,o,n,i,s)=>{let a=qo(s,{map:e,mapName:t,model:r}),p=a.steps.at(-1).where,l=a.steps.filter(m=>m.operation!=="where"),f=n?.includes(".")?n:void 0,d=[...i??[],...f?[f]:[]],u={[o]:true,...n&&!f?{[n]:true}:{},...d.length?Bb(d):{}},g={model:r,...i?{}:{distinct:[o]},select:u,where:p,...l.length?{steps:a.steps}:{}},y;try{let m=Us({map:e,mapName:t,model:r,alias:"t0"}),S=zo(s,m),b=f?He(f,m):void 0,w=i?.map(Gt=>He(Gt,m)),c=m.joins??[],x=c.length?` ${c.join(" ")}`:"",R=S?.trim()?` WHERE ${S}`:"",A=G("t0");y={sql:`SELECT DISTINCT ${[`${A}.${G(o)}`,...b?[`${b} AS ${G("__label")}`]:n?[`${A}.${G(n)}`]:[],...w?w.map((Gt,yo)=>`${Gt} AS ${G(`__group_${yo}`)}`):[]].join(", ")} FROM ${G(r)} AS ${A}${x}${R}`,params:m.params};}catch(m){y={sql:null,params:[],error:m instanceof Error?m.message:String(m)};}return {prisma:g,sql:y}},cu=e=>{let{lens:t}=_(e);return Pi(e).map(({path:r,visit:o,field:n,label:i,groupBy:s,eligibility:a})=>{let p=D([...o.whereClauses,...a]),{prisma:l,sql:f}=Vb(t,o.mapName,o.model,n,i,s,p);return {path:r,mapName:o.mapName,model:o.model,field:n,...i!==void 0?{label:i}:{},...s!==void 0?{groupBy:s}:{},composedWhere:p,prisma:l,sql:f}})};var mu=(e,t)=>{let r=_(e);return fi(r,It(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=$n;exports.ArrayOperator=E;exports.DateOperator=$;exports.FieldKind=I;exports.NUMERIC_KINDS=xe;exports.Operator=h;exports.RuleTarget=Fw;exports.ValueShape=rt;exports.assertValidFieldMaps=xf;exports.assertValidNarrowing=Ti;exports.assertValidRule=ES;exports.bindLens=Df;exports.bindRule=ts;exports.check=we;exports.coerceRule=jf;exports.composeLens=jd;exports.createLens=If;exports.describeRule=zf;exports.describeRuleSources=Hf;exports.engineGlobals=Qt;exports.executePrismaPlan=Sd;exports.getAggregateOperators=Bw;exports.getArrayOperators=Iw;exports.getLensRoot=We;exports.getOperatorsForKind=jw;exports.getValueShape=ot;exports.indexBridges=uf;exports.listBindings=No;exports.listLensBindings=Lf;exports.materializeSourceQuery=Pd;exports.materializeSources=Td;exports.narrowRule=Af;exports.parseScopeRef=q;exports.projectLens=Fd;exports.projectRows=$d;exports.readScopeRef=ge;exports.stitchFieldMaps=ei;exports.storeLens=Id;exports.toLensSelect=vd;exports.toPrisma=qo;exports.toSourceQueries=cu;exports.toSql=Ib;exports.validateFieldMaps=ls;exports.validateNarrowing=Vs;exports.validateRule=ti;exports.validateRuleInLens=gi;exports.walkLensPath=mu;//# sourceMappingURL=index.cjs.map
|
|
16
16
|
//# sourceMappingURL=index.cjs.map
|