@inixiative/json-rules 3.5.1 → 3.5.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +3 -3
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +33 -1
- package/dist/index.d.ts +33 -1
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
package/dist/index.cjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
'use strict';var ft=require('dayjs'),QS=require('dayjs/plugin/isoWeek.js'),ZS=require('dayjs/plugin/quarterOfYear.js'),YS=require('dayjs/plugin/timezone.js'),XS=require('dayjs/plugin/utc.js'),sb=require('dayjs/plugin/isSameOrAfter.js'),ab=require('dayjs/plugin/isSameOrBefore.js'),fastestLevenshtein=require('fastest-levenshtein'),re2js=require('re2js');var _documentCurrentScript=typeof document!=='undefined'?document.currentScript:null;function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var ft__default=/*#__PURE__*/_interopDefault(ft);var QS__default=/*#__PURE__*/_interopDefault(QS);var ZS__default=/*#__PURE__*/_interopDefault(ZS);var YS__default=/*#__PURE__*/_interopDefault(YS);var XS__default=/*#__PURE__*/_interopDefault(XS);var sb__default=/*#__PURE__*/_interopDefault(sb);var ab__default=/*#__PURE__*/_interopDefault(ab);var ys=(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 Ec=typeof global=="object"&&global&&global.Object===Object&&global,Nn=Ec;var Pc=typeof self=="object"&&self&&self.Object===Object&&self,$c=Nn||Pc||Function("return this")(),ee=$c;var vc=ee.Symbol,ye=vc;var Ia=Object.prototype,Ac=Ia.hasOwnProperty,Nc=Ia.toString,Ko=ye?ye.toStringTag:void 0;function Tc(e){var t=Ac.call(e,Ko),r=e[Ko];try{e[Ko]=void 0;var o=!0;}catch{}var n=Nc.call(e);return o&&(t?e[Ko]=r:delete e[Ko]),n}var Va=Tc;var Mc=Object.prototype,Cc=Mc.toString;function kc(e){return Cc.call(e)}var Ba=kc;var _c="[object Null]",Lc="[object Undefined]",qa=ye?ye.toStringTag:void 0;function Fc(e){return e==null?e===void 0?Lc:_c:qa&&qa in Object(e)?Va(e):Ba(e)}var Pe=Fc;function Dc(e){return e!=null&&typeof e=="object"}var re=Dc;var jc="[object Symbol]";function Ic(e){return typeof e=="symbol"||re(e)&&Pe(e)==jc}var Ur=Ic;function Vc(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 Wa=Vc;var Bc=Array.isArray,K=Bc;var Ua=ye?ye.prototype:void 0,Ga=Ua?Ua.toString:void 0;function Ka(e){if(typeof e=="string")return e;if(K(e))return Wa(e,Ka)+"";if(Ur(e))return Ga?Ga.call(e):"";var t=e+"";return t=="0"&&1/e==-Infinity?"-0":t}var za=Ka;function Wc(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var z=Wc;function Uc(e){return e}var Gr=Uc;var Gc="[object AsyncFunction]",Kc="[object Function]",zc="[object GeneratorFunction]",Hc="[object Proxy]";function Jc(e){if(!z(e))return false;var t=Pe(e);return t==Kc||t==zc||t==Gc||t==Hc}var Kr=Jc;var Qc=ee["__core-js_shared__"],Tn=Qc;var Ha=(function(){var e=/[^.]+$/.exec(Tn&&Tn.keys&&Tn.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""})();function Zc(e){return !!Ha&&Ha in e}var Ja=Zc;var Yc=Function.prototype,Xc=Yc.toString;function em(e){if(e!=null){try{return Xc.call(e)}catch{}try{return e+""}catch{}}return ""}var Ot=em;var tm=/[\\^$.*+?()[\]{}|]/g,rm=/^\[object .+?Constructor\]$/,om=Function.prototype,nm=Object.prototype,im=om.toString,sm=nm.hasOwnProperty,am=RegExp("^"+im.call(sm).replace(tm,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function lm(e){if(!z(e)||Ja(e))return false;var t=Kr(e)?am:rm;return t.test(Ot(e))}var Qa=lm;function pm(e,t){return e?.[t]}var Za=pm;function fm(e,t){var r=Za(e,t);return Qa(r)?r:void 0}var be=fm;var dm=be(ee,"WeakMap"),Mn=dm;var Ya=Object.create,um=(function(){function e(){}return function(t){if(!z(t))return {};if(Ya)return Ya(t);e.prototype=t;var r=new e;return e.prototype=void 0,r}})(),Xa=um;function cm(e,t,r){switch(r.length){case 0:return e.call(t);case 1:return e.call(t,r[0]);case 2:return e.call(t,r[0],r[1]);case 3:return e.call(t,r[0],r[1],r[2])}return e.apply(t,r)}var el=cm;function mm(e,t){var r=-1,o=e.length;for(t||(t=Array(o));++r<o;)t[r]=e[r];return t}var Cn=mm;var gm=800,ym=16,hm=Date.now;function wm(e){var t=0,r=0;return function(){var o=hm(),n=ym-(o-r);if(r=o,n>0){if(++t>=gm)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}var tl=wm;function Sm(e){return function(){return e}}var rl=Sm;var bm=(function(){try{var e=be(Object,"defineProperty");return e({},"",{}),e}catch{}})(),zr=bm;var Rm=zr?function(e,t){return zr(e,"toString",{configurable:true,enumerable:false,value:rl(t),writable:true})}:Gr,ol=Rm;var Om=tl(ol),nl=Om;function xm(e,t){for(var r=-1,o=e==null?0:e.length;++r<o&&t(e[r],r,e)!==false;);return e}var il=xm;var Em=9007199254740991,Pm=/^(?:0|[1-9]\d*)$/;function $m(e,t){var r=typeof e;return t=t??Em,!!t&&(r=="number"||r!="symbol"&&Pm.test(e))&&e>-1&&e%1==0&&e<t}var Vt=$m;function vm(e,t,r){t=="__proto__"&&zr?zr(e,t,{configurable:true,enumerable:true,value:r,writable:true}):e[t]=r;}var Hr=vm;function Am(e,t){return e===t||e!==e&&t!==t}var Ze=Am;var Nm=Object.prototype,Tm=Nm.hasOwnProperty;function Mm(e,t,r){var o=e[t];(!(Tm.call(e,t)&&Ze(o,r))||r===void 0&&!(t in e))&&Hr(e,t,r);}var Jr=Mm;function Cm(e,t,r,o){var n=!r;r||(r={});for(var i=-1,s=t.length;++i<s;){var a=t[i],l=o?o(r[a],e[a],a,r,e):void 0;l===void 0&&(l=e[a]),n?Hr(r,a,l):Jr(r,a,l);}return r}var Ye=Cm;var sl=Math.max;function km(e,t,r){return t=sl(t===void 0?e.length-1:t,0),function(){for(var o=arguments,n=-1,i=sl(o.length-t,0),s=Array(i);++n<i;)s[n]=o[t+n];n=-1;for(var a=Array(t+1);++n<t;)a[n]=o[n];return a[t]=r(s),el(e,this,a)}}var al=km;function _m(e,t){return nl(al(e,t,Gr),e+"")}var ll=_m;var Lm=9007199254740991;function Fm(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=Lm}var Qr=Fm;function Dm(e){return e!=null&&Qr(e.length)&&!Kr(e)}var Xe=Dm;function jm(e,t,r){if(!z(r))return false;var o=typeof t;return (o=="number"?Xe(r)&&Vt(t,r.length):o=="string"&&t in r)?Ze(r[t],e):false}var kn=jm;function Im(e){return ll(function(t,r){var o=-1,n=r.length,i=n>1?r[n-1]:void 0,s=n>2?r[2]:void 0;for(i=e.length>3&&typeof i=="function"?(n--,i):void 0,s&&kn(r[0],r[1],s)&&(i=n<3?void 0:i,n=1),t=Object(t);++o<n;){var a=r[o];a&&e(t,a,o,i);}return t})}var pl=Im;var Vm=Object.prototype;function Bm(e){var t=e&&e.constructor,r=typeof t=="function"&&t.prototype||Vm;return e===r}var Zr=Bm;function qm(e,t){for(var r=-1,o=Array(e);++r<e;)o[r]=t(r);return o}var fl=qm;var Wm="[object Arguments]";function Um(e){return re(e)&&Pe(e)==Wm}var hs=Um;var dl=Object.prototype,Gm=dl.hasOwnProperty,Km=dl.propertyIsEnumerable,zm=hs((function(){return arguments})())?hs:function(e){return re(e)&&Gm.call(e,"callee")&&!Km.call(e,"callee")},wr=zm;function Hm(){return false}var ul=Hm;var gl=typeof exports=="object"&&exports&&!exports.nodeType&&exports,cl=gl&&typeof module=="object"&&module&&!module.nodeType&&module,Jm=cl&&cl.exports===gl,ml=Jm?ee.Buffer:void 0,Qm=ml?ml.isBuffer:void 0,Zm=Qm||ul,xt=Zm;var Ym="[object Arguments]",Xm="[object Array]",eg="[object Boolean]",tg="[object Date]",rg="[object Error]",og="[object Function]",ng="[object Map]",ig="[object Number]",sg="[object Object]",ag="[object RegExp]",lg="[object Set]",pg="[object String]",fg="[object WeakMap]",dg="[object ArrayBuffer]",ug="[object DataView]",cg="[object Float32Array]",mg="[object Float64Array]",gg="[object Int8Array]",yg="[object Int16Array]",hg="[object Int32Array]",wg="[object Uint8Array]",Sg="[object Uint8ClampedArray]",bg="[object Uint16Array]",Rg="[object Uint32Array]",U={};U[cg]=U[mg]=U[gg]=U[yg]=U[hg]=U[wg]=U[Sg]=U[bg]=U[Rg]=true;U[Ym]=U[Xm]=U[dg]=U[eg]=U[ug]=U[tg]=U[rg]=U[og]=U[ng]=U[ig]=U[sg]=U[ag]=U[lg]=U[pg]=U[fg]=false;function Og(e){return re(e)&&Qr(e.length)&&!!U[Pe(e)]}var yl=Og;function xg(e){return function(t){return e(t)}}var Yr=xg;var hl=typeof exports=="object"&&exports&&!exports.nodeType&&exports,zo=hl&&typeof module=="object"&&module&&!module.nodeType&&module,Eg=zo&&zo.exports===hl,ws=Eg&&Nn.process,Pg=(function(){try{var e=zo&&zo.require&&zo.require("util").types;return e||ws&&ws.binding&&ws.binding("util")}catch{}})(),Et=Pg;var wl=Et&&Et.isTypedArray,$g=wl?Yr(wl):yl,Xr=$g;var vg=Object.prototype,Ag=vg.hasOwnProperty;function Ng(e,t){var r=K(e),o=!r&&wr(e),n=!r&&!o&&xt(e),i=!r&&!o&&!n&&Xr(e),s=r||o||n||i,a=s?fl(e.length,String):[],l=a.length;for(var f in e)(t||Ag.call(e,f))&&!(s&&(f=="length"||n&&(f=="offset"||f=="parent")||i&&(f=="buffer"||f=="byteLength"||f=="byteOffset")||Vt(f,l)))&&a.push(f);return a}var _n=Ng;function Tg(e,t){return function(r){return e(t(r))}}var Ln=Tg;var Mg=Ln(Object.keys,Object),Sl=Mg;var Cg=Object.prototype,kg=Cg.hasOwnProperty;function _g(e){if(!Zr(e))return Sl(e);var t=[];for(var r in Object(e))kg.call(e,r)&&r!="constructor"&&t.push(r);return t}var bl=_g;function Lg(e){return Xe(e)?_n(e):bl(e)}var et=Lg;function Fg(e){var t=[];if(e!=null)for(var r in Object(e))t.push(r);return t}var Rl=Fg;var Dg=Object.prototype,jg=Dg.hasOwnProperty;function Ig(e){if(!z(e))return Rl(e);var t=Zr(e),r=[];for(var o in e)o=="constructor"&&(t||!jg.call(e,o))||r.push(o);return r}var Ol=Ig;function Vg(e){return Xe(e)?_n(e,true):Ol(e)}var tt=Vg;var Bg=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,qg=/^\w*$/;function Wg(e,t){if(K(e))return false;var r=typeof e;return r=="number"||r=="symbol"||r=="boolean"||e==null||Ur(e)?true:qg.test(e)||!Bg.test(e)||t!=null&&e in Object(t)}var eo=Wg;var Ug=be(Object,"create"),Pt=Ug;function Gg(){this.__data__=Pt?Pt(null):{},this.size=0;}var xl=Gg;function Kg(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var El=Kg;var zg="__lodash_hash_undefined__",Hg=Object.prototype,Jg=Hg.hasOwnProperty;function Qg(e){var t=this.__data__;if(Pt){var r=t[e];return r===zg?void 0:r}return Jg.call(t,e)?t[e]:void 0}var Pl=Qg;var Zg=Object.prototype,Yg=Zg.hasOwnProperty;function Xg(e){var t=this.__data__;return Pt?t[e]!==void 0:Yg.call(t,e)}var $l=Xg;var ey="__lodash_hash_undefined__";function ty(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=Pt&&t===void 0?ey:t,this}var vl=ty;function to(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var o=e[t];this.set(o[0],o[1]);}}to.prototype.clear=xl;to.prototype.delete=El;to.prototype.get=Pl;to.prototype.has=$l;to.prototype.set=vl;var Ss=to;function ry(){this.__data__=[],this.size=0;}var Al=ry;function oy(e,t){for(var r=e.length;r--;)if(Ze(e[r][0],t))return r;return -1}var Bt=oy;var ny=Array.prototype,iy=ny.splice;function sy(e){var t=this.__data__,r=Bt(t,e);if(r<0)return false;var o=t.length-1;return r==o?t.pop():iy.call(t,r,1),--this.size,true}var Nl=sy;function ay(e){var t=this.__data__,r=Bt(t,e);return r<0?void 0:t[r][1]}var Tl=ay;function ly(e){return Bt(this.__data__,e)>-1}var Ml=ly;function py(e,t){var r=this.__data__,o=Bt(r,e);return o<0?(++this.size,r.push([e,t])):r[o][1]=t,this}var Cl=py;function ro(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var o=e[t];this.set(o[0],o[1]);}}ro.prototype.clear=Al;ro.prototype.delete=Nl;ro.prototype.get=Tl;ro.prototype.has=Ml;ro.prototype.set=Cl;var qt=ro;var fy=be(ee,"Map"),Wt=fy;function dy(){this.size=0,this.__data__={hash:new Ss,map:new(Wt||qt),string:new Ss};}var kl=dy;function uy(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var _l=uy;function cy(e,t){var r=e.__data__;return _l(t)?r[typeof t=="string"?"string":"hash"]:r.map}var Ut=cy;function my(e){var t=Ut(this,e).delete(e);return this.size-=t?1:0,t}var Ll=my;function gy(e){return Ut(this,e).get(e)}var Fl=gy;function yy(e){return Ut(this,e).has(e)}var Dl=yy;function hy(e,t){var r=Ut(this,e),o=r.size;return r.set(e,t),this.size+=r.size==o?0:1,this}var jl=hy;function oo(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var o=e[t];this.set(o[0],o[1]);}}oo.prototype.clear=kl;oo.prototype.delete=Ll;oo.prototype.get=Fl;oo.prototype.has=Dl;oo.prototype.set=jl;var Sr=oo;var wy="Expected a function";function bs(e,t){if(typeof e!="function"||t!=null&&typeof t!="function")throw new TypeError(wy);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(bs.Cache||Sr),r}bs.Cache=Sr;var Il=bs;var Sy=500;function by(e){var t=Il(e,function(o){return r.size===Sy&&r.clear(),o}),r=t.cache;return t}var Vl=by;var Ry=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Oy=/\\(\\)?/g,xy=Vl(function(e){var t=[];return e.charCodeAt(0)===46&&t.push(""),e.replace(Ry,function(r,o,n,i){t.push(n?i.replace(Oy,"$1"):o||r);}),t}),Bl=xy;function Ey(e){return e==null?"":za(e)}var ql=Ey;function Py(e,t){return K(e)?e:eo(e,t)?[e]:Bl(ql(e))}var no=Py;function vy(e){if(typeof e=="string"||Ur(e))return e;var t=e+"";return t=="0"&&1/e==-Infinity?"-0":t}var rt=vy;function Ay(e,t){t=no(t,e);for(var r=0,o=t.length;e!=null&&r<o;)e=e[rt(t[r++])];return r&&r==o?e:void 0}var Fn=Ay;function Ny(e,t,r){var o=e==null?void 0:Fn(e,t);return o===void 0?r:o}var Wl=Ny;function Ty(e,t){for(var r=-1,o=t.length,n=e.length;++r<o;)e[n+r]=t[r];return e}var Dn=Ty;var My=Ln(Object.getPrototypeOf,Object),io=My;var Cy="[object Object]",ky=Function.prototype,_y=Object.prototype,Ul=ky.toString,Ly=_y.hasOwnProperty,Fy=Ul.call(Object);function Dy(e){if(!re(e)||Pe(e)!=Cy)return false;var t=io(e);if(t===null)return true;var r=Ly.call(t,"constructor")&&t.constructor;return typeof r=="function"&&r instanceof r&&Ul.call(r)==Fy}var $e=Dy;function jy(){this.__data__=new qt,this.size=0;}var Gl=jy;function Iy(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var Kl=Iy;function Vy(e){return this.__data__.get(e)}var zl=Vy;function By(e){return this.__data__.has(e)}var Hl=By;var qy=200;function Wy(e,t){var r=this.__data__;if(r instanceof qt){var o=r.__data__;if(!Wt||o.length<qy-1)return o.push([e,t]),this.size=++r.size,this;r=this.__data__=new Sr(o);}return r.set(e,t),this.size=r.size,this}var Jl=Wy;function so(e){var t=this.__data__=new qt(e);this.size=t.size;}so.prototype.clear=Gl;so.prototype.delete=Kl;so.prototype.get=zl;so.prototype.has=Hl;so.prototype.set=Jl;var ot=so;function Uy(e,t){return e&&Ye(t,et(t),e)}var Ql=Uy;function Gy(e,t){return e&&Ye(t,tt(t),e)}var Zl=Gy;var tp=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Yl=tp&&typeof module=="object"&&module&&!module.nodeType&&module,Ky=Yl&&Yl.exports===tp,Xl=Ky?ee.Buffer:void 0,ep=Xl?Xl.allocUnsafe:void 0;function zy(e,t){if(t)return e.slice();var r=e.length,o=ep?ep(r):new e.constructor(r);return e.copy(o),o}var jn=zy;function Hy(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 rp=Hy;function Jy(){return []}var In=Jy;var Qy=Object.prototype,Zy=Qy.propertyIsEnumerable,op=Object.getOwnPropertySymbols,Yy=op?function(e){return e==null?[]:(e=Object(e),rp(op(e),function(t){return Zy.call(e,t)}))}:In,ao=Yy;function Xy(e,t){return Ye(e,ao(e),t)}var np=Xy;var eh=Object.getOwnPropertySymbols,th=eh?function(e){for(var t=[];e;)Dn(t,ao(e)),e=io(e);return t}:In,Vn=th;function rh(e,t){return Ye(e,Vn(e),t)}var ip=rh;function oh(e,t,r){var o=t(e);return K(e)?o:Dn(o,r(e))}var Bn=oh;function nh(e){return Bn(e,et,ao)}var Ho=nh;function ih(e){return Bn(e,tt,Vn)}var sp=ih;var sh=be(ee,"DataView"),qn=sh;var ah=be(ee,"Promise"),Wn=ah;var lh=be(ee,"Set"),Un=lh;var ap="[object Map]",ph="[object Object]",lp="[object Promise]",pp="[object Set]",fp="[object WeakMap]",dp="[object DataView]",fh=Ot(qn),dh=Ot(Wt),uh=Ot(Wn),ch=Ot(Un),mh=Ot(Mn),br=Pe;(qn&&br(new qn(new ArrayBuffer(1)))!=dp||Wt&&br(new Wt)!=ap||Wn&&br(Wn.resolve())!=lp||Un&&br(new Un)!=pp||Mn&&br(new Mn)!=fp)&&(br=function(e){var t=Pe(e),r=t==ph?e.constructor:void 0,o=r?Ot(r):"";if(o)switch(o){case fh:return dp;case dh:return ap;case uh:return lp;case ch:return pp;case mh:return fp}return t});var $t=br;var gh=Object.prototype,yh=gh.hasOwnProperty;function hh(e){var t=e.length,r=new e.constructor(t);return t&&typeof e[0]=="string"&&yh.call(e,"index")&&(r.index=e.index,r.input=e.input),r}var up=hh;var wh=ee.Uint8Array,lo=wh;function Sh(e){var t=new e.constructor(e.byteLength);return new lo(t).set(new lo(e)),t}var po=Sh;function bh(e,t){var r=t?po(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.byteLength)}var cp=bh;var Rh=/\w*$/;function Oh(e){var t=new e.constructor(e.source,Rh.exec(e));return t.lastIndex=e.lastIndex,t}var mp=Oh;var gp=ye?ye.prototype:void 0,yp=gp?gp.valueOf:void 0;function xh(e){return yp?Object(yp.call(e)):{}}var hp=xh;function Eh(e,t){var r=t?po(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.length)}var Gn=Eh;var Ph="[object Boolean]",$h="[object Date]",vh="[object Map]",Ah="[object Number]",Nh="[object RegExp]",Th="[object Set]",Mh="[object String]",Ch="[object Symbol]",kh="[object ArrayBuffer]",_h="[object DataView]",Lh="[object Float32Array]",Fh="[object Float64Array]",Dh="[object Int8Array]",jh="[object Int16Array]",Ih="[object Int32Array]",Vh="[object Uint8Array]",Bh="[object Uint8ClampedArray]",qh="[object Uint16Array]",Wh="[object Uint32Array]";function Uh(e,t,r){var o=e.constructor;switch(t){case kh:return po(e);case Ph:case $h:return new o(+e);case _h:return cp(e,r);case Lh:case Fh:case Dh:case jh:case Ih:case Vh:case Bh:case qh:case Wh:return Gn(e,r);case vh:return new o;case Ah:case Mh:return new o(e);case Nh:return mp(e);case Th:return new o;case Ch:return hp(e)}}var wp=Uh;function Gh(e){return typeof e.constructor=="function"&&!Zr(e)?Xa(io(e)):{}}var Kn=Gh;var Kh="[object Map]";function zh(e){return re(e)&&$t(e)==Kh}var Sp=zh;var bp=Et&&Et.isMap,Hh=bp?Yr(bp):Sp,Rp=Hh;var Jh="[object Set]";function Qh(e){return re(e)&&$t(e)==Jh}var Op=Qh;var xp=Et&&Et.isSet,Zh=xp?Yr(xp):Op,Ep=Zh;var Yh=1,Xh=2,ew=4,Pp="[object Arguments]",tw="[object Array]",rw="[object Boolean]",ow="[object Date]",nw="[object Error]",$p="[object Function]",iw="[object GeneratorFunction]",sw="[object Map]",aw="[object Number]",vp="[object Object]",lw="[object RegExp]",pw="[object Set]",fw="[object String]",dw="[object Symbol]",uw="[object WeakMap]",cw="[object ArrayBuffer]",mw="[object DataView]",gw="[object Float32Array]",yw="[object Float64Array]",hw="[object Int8Array]",ww="[object Int16Array]",Sw="[object Int32Array]",bw="[object Uint8Array]",Rw="[object Uint8ClampedArray]",Ow="[object Uint16Array]",xw="[object Uint32Array]",B={};B[Pp]=B[tw]=B[cw]=B[mw]=B[rw]=B[ow]=B[gw]=B[yw]=B[hw]=B[ww]=B[Sw]=B[sw]=B[aw]=B[vp]=B[lw]=B[pw]=B[fw]=B[dw]=B[bw]=B[Rw]=B[Ow]=B[xw]=true;B[nw]=B[$p]=B[uw]=false;function zn(e,t,r,o,n,i){var s,a=t&Yh,l=t&Xh,f=t&ew;if(r&&(s=n?r(e,o,n,i):r(e)),s!==void 0)return s;if(!z(e))return e;var p=K(e);if(p){if(s=up(e),!a)return Cn(e,s)}else {var d=$t(e),u=d==$p||d==iw;if(xt(e))return jn(e,a);if(d==vp||d==Pp||u&&!n){if(s=l||u?{}:Kn(e),!a)return l?ip(e,Zl(s,e)):np(e,Ql(s,e))}else {if(!B[d])return n?e:{};s=wp(e,d,a);}}i||(i=new ot);var c=i.get(e);if(c)return c;i.set(e,s),Ep(e)?e.forEach(function(y){s.add(zn(y,t,r,y,e,i));}):Rp(e)&&e.forEach(function(y,S){s.set(S,zn(y,t,r,S,e,i));});var g=f?l?sp:Ho:l?tt:et,m=p?void 0:g(e);return il(m||e,function(y,S){m&&(S=y,y=e[S]),Jr(s,S,zn(y,t,r,S,e,i));}),s}var Hn=zn;var Ew=1,Pw=4;function $w(e){return Hn(e,Ew|Pw)}var Jn=$w;var vw=1,Aw=4;function Nw(e,t){return t=typeof t=="function"?t:void 0,Hn(e,vw|Aw,t)}var Rs=Nw;var Tw="__lodash_hash_undefined__";function Mw(e){return this.__data__.set(e,Tw),this}var Ap=Mw;function Cw(e){return this.__data__.has(e)}var Np=Cw;function Qn(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Sr;++t<r;)this.add(e[t]);}Qn.prototype.add=Qn.prototype.push=Ap;Qn.prototype.has=Np;var Tp=Qn;function kw(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 Zn=kw;function _w(e,t){return e.has(t)}var Mp=_w;var Lw=1,Fw=2;function Dw(e,t,r,o,n,i){var s=r&Lw,a=e.length,l=t.length;if(a!=l&&!(s&&l>a))return false;var f=i.get(e),p=i.get(t);if(f&&p)return f==t&&p==e;var d=-1,u=true,c=r&Fw?new Tp:void 0;for(i.set(e,t),i.set(t,e);++d<a;){var g=e[d],m=t[d];if(o)var y=s?o(m,g,d,t,e,i):o(g,m,d,e,t,i);if(y!==void 0){if(y)continue;u=false;break}if(c){if(!Zn(t,function(S,b){if(!Mp(c,b)&&(g===S||n(g,S,r,o,i)))return c.push(b)})){u=false;break}}else if(!(g===m||n(g,m,r,o,i))){u=false;break}}return i.delete(e),i.delete(t),u}var Yn=Dw;function jw(e){var t=-1,r=Array(e.size);return e.forEach(function(o,n){r[++t]=[n,o];}),r}var Cp=jw;function Iw(e){var t=-1,r=Array(e.size);return e.forEach(function(o){r[++t]=o;}),r}var kp=Iw;var Vw=1,Bw=2,qw="[object Boolean]",Ww="[object Date]",Uw="[object Error]",Gw="[object Map]",Kw="[object Number]",zw="[object RegExp]",Hw="[object Set]",Jw="[object String]",Qw="[object Symbol]",Zw="[object ArrayBuffer]",Yw="[object DataView]",_p=ye?ye.prototype:void 0,Os=_p?_p.valueOf:void 0;function Xw(e,t,r,o,n,i,s){switch(r){case Yw:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return false;e=e.buffer,t=t.buffer;case Zw:return !(e.byteLength!=t.byteLength||!i(new lo(e),new lo(t)));case qw:case Ww:case Kw:return Ze(+e,+t);case Uw:return e.name==t.name&&e.message==t.message;case zw:case Jw:return e==t+"";case Gw:var a=Cp;case Hw:var l=o&Vw;if(a||(a=kp),e.size!=t.size&&!l)return false;var f=s.get(e);if(f)return f==t;o|=Bw,s.set(e,t);var p=Yn(a(e),a(t),o,n,i,s);return s.delete(e),p;case Qw:if(Os)return Os.call(e)==Os.call(t)}return false}var Lp=Xw;var eS=1,tS=Object.prototype,rS=tS.hasOwnProperty;function oS(e,t,r,o,n,i){var s=r&eS,a=Ho(e),l=a.length,f=Ho(t),p=f.length;if(l!=p&&!s)return false;for(var d=l;d--;){var u=a[d];if(!(s?u in t:rS.call(t,u)))return false}var c=i.get(e),g=i.get(t);if(c&&g)return c==t&&g==e;var m=true;i.set(e,t),i.set(t,e);for(var y=s;++d<l;){u=a[d];var S=e[u],b=t[u];if(o)var R=s?o(b,S,u,t,e,i):o(S,b,u,e,t,i);if(!(R===void 0?S===b||n(S,b,r,o,i):R)){m=false;break}y||(y=u=="constructor");}if(m&&!y){var w=e.constructor,E=t.constructor;w!=E&&"constructor"in e&&"constructor"in t&&!(typeof w=="function"&&w instanceof w&&typeof E=="function"&&E instanceof E)&&(m=false);}return i.delete(e),i.delete(t),m}var Fp=oS;var nS=1,Dp="[object Arguments]",jp="[object Array]",Xn="[object Object]",iS=Object.prototype,Ip=iS.hasOwnProperty;function sS(e,t,r,o,n,i){var s=K(e),a=K(t),l=s?jp:$t(e),f=a?jp:$t(t);l=l==Dp?Xn:l,f=f==Dp?Xn:f;var p=l==Xn,d=f==Xn,u=l==f;if(u&&xt(e)){if(!xt(t))return false;s=true,p=false;}if(u&&!p)return i||(i=new ot),s||Xr(e)?Yn(e,t,r,o,n,i):Lp(e,t,l,r,o,n,i);if(!(r&nS)){var c=p&&Ip.call(e,"__wrapped__"),g=d&&Ip.call(t,"__wrapped__");if(c||g){var m=c?e.value():e,y=g?t.value():t;return i||(i=new ot),n(m,y,r,o,i)}}return u?(i||(i=new ot),Fp(e,t,r,o,n,i)):false}var Vp=sS;function Bp(e,t,r,o,n){return e===t?true:e==null||t==null||!re(e)&&!re(t)?e!==e&&t!==t:Vp(e,t,r,o,Bp,n)}var fo=Bp;var aS=1,lS=2;function pS(e,t,r,o){var n=r.length,i=n,s=!o;if(e==null)return !i;for(e=Object(e);n--;){var a=r[n];if(s&&a[2]?a[1]!==e[a[0]]:!(a[0]in e))return false}for(;++n<i;){a=r[n];var l=a[0],f=e[l],p=a[1];if(s&&a[2]){if(f===void 0&&!(l in e))return false}else {var d=new ot;if(o)var u=o(f,p,l,e,t,d);if(!(u===void 0?fo(p,f,aS|lS,o,d):u))return false}}return true}var qp=pS;function fS(e){return e===e&&!z(e)}var ei=fS;function dS(e){for(var t=et(e),r=t.length;r--;){var o=t[r],n=e[o];t[r]=[o,n,ei(n)];}return t}var Wp=dS;function uS(e,t){return function(r){return r==null?false:r[e]===t&&(t!==void 0||e in Object(r))}}var ti=uS;function cS(e){var t=Wp(e);return t.length==1&&t[0][2]?ti(t[0][0],t[0][1]):function(r){return r===e||qp(r,e,t)}}var Up=cS;function mS(e,t){return e!=null&&t in Object(e)}var Gp=mS;function gS(e,t,r){t=no(t,e);for(var o=-1,n=t.length,i=false;++o<n;){var s=rt(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&&Qr(n)&&Vt(s,n)&&(K(e)||wr(e)))}var Kp=gS;function yS(e,t){return e!=null&&Kp(e,t,Gp)}var zp=yS;var hS=1,wS=2;function SS(e,t){return eo(e)&&ei(t)?ti(rt(e),t):function(r){var o=Wl(r,e);return o===void 0&&o===t?zp(r,e):fo(t,o,hS|wS)}}var Hp=SS;function bS(e){return function(t){return t?.[e]}}var Jp=bS;function RS(e){return function(t){return Fn(t,e)}}var Qp=RS;function OS(e){return eo(e)?Jp(rt(e)):Qp(e)}var Zp=OS;function xS(e){return typeof e=="function"?e:e==null?Gr:typeof e=="object"?K(e)?Hp(e[0],e[1]):Up(e):Zp(e)}var Yp=xS;function ES(e){return function(t,r,o){for(var n=-1,i=Object(t),s=o(t),a=s.length;a--;){var l=s[e?a:++n];if(r(i[l],l,i)===false)break}return t}}var Xp=ES;var PS=Xp(),ri=PS;function $S(e,t){return e&&ri(e,t,et)}var ef=$S;function vS(e,t){return function(r,o){if(r==null)return r;if(!Xe(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 tf=vS;var AS=tf(ef),rf=AS;function NS(e,t,r){(r!==void 0&&!Ze(e[t],r)||r===void 0&&!(t in e))&&Hr(e,t,r);}var Jo=NS;function TS(e){return re(e)&&Xe(e)}var of=TS;function MS(e,t){if(!(t==="constructor"&&typeof e[t]=="function")&&t!="__proto__")return e[t]}var Qo=MS;function CS(e){return Ye(e,tt(e))}var nf=CS;function kS(e,t,r,o,n,i,s){var a=Qo(e,r),l=Qo(t,r),f=s.get(l);if(f){Jo(e,r,f);return}var p=i?i(a,l,r+"",e,t,s):void 0,d=p===void 0;if(d){var u=K(l),c=!u&&xt(l),g=!u&&!c&&Xr(l);p=l,u||c||g?K(a)?p=a:of(a)?p=Cn(a):c?(d=false,p=jn(l,true)):g?(d=false,p=Gn(l,true)):p=[]:$e(l)||wr(l)?(p=a,wr(a)?p=nf(a):(!z(a)||Kr(a))&&(p=Kn(l))):d=false;}d&&(s.set(l,p),n(p,l,o,i,s),s.delete(l)),Jo(e,r,p);}var sf=kS;function af(e,t,r,o,n){e!==t&&ri(t,function(i,s){if(n||(n=new ot),z(i))sf(e,t,s,r,af,o,n);else {var a=o?o(Qo(e,s),i,s+"",e,t,n):void 0;a===void 0&&(a=i),Jo(e,s,a);}},tt);}var lf=af;function _S(e,t){return fo(e,t)}var Rr=_S;var LS=pl(function(e,t,r){lf(e,t,r);}),xs=LS;function FS(e,t,r,o){if(!z(e))return e;t=no(t,e);for(var n=-1,i=t.length,s=i-1,a=e;a!=null&&++n<i;){var l=rt(t[n]),f=r;if(l==="__proto__"||l==="constructor"||l==="prototype")return e;if(n!=s){var p=a[l];f=o?o(p,l,a):void 0,f===void 0&&(f=z(p)?p:Vt(t[n+1])?[]:{});}Jr(a,l,f),a=a[l];}return e}var pf=FS;function DS(e,t,r){return e==null?e:pf(e,t,r)}var Es=DS;function jS(e,t){var r;return rf(e,function(o,n,i){return r=t(o,n,i),!r}),!!r}var ff=jS;function IS(e,t,r){var o=K(e)?Zn:ff;return r&&kn(e,t,r)&&(t=void 0),o(e,Yp(t))}var Ps=IS;var VS=/^(\$+)\.(.*)$/,F=e=>{let t=VS.exec(e);return t?{depth:t[1].length,path:t[2]}:null},$s=(e,t,r)=>`Scope ref '${e}' needs depth ${t} but only ${r} ${r===1?"scope is":"scopes are"} in reach`,ke=(e,t)=>{let r=F(e);return r?r.depth>t.length?{outOfBounds:$s(e,r.depth,t.length)}:{scope:t[t.length-r.depth],path:r.path}:{scope:t[t.length-1],path:e}},BS=/\[(\d+)\]|\[(["'])(.*?)\2\]|([^.[\]]+)/g,qS=e=>e===""?[""]:[...e.matchAll(BS)].map(t=>t[1]??t[3]??t[4]),WS=(e,t)=>{if(e==null)return;let r=Object(e);return Object.hasOwn(r,t)?r[t]:void 0},me=(e,t)=>qS(t).reduce(WS,e),Gt=(e,t)=>{let r=ke(e,t);if("outOfBounds"in r)throw new Error(r.outOfBounds);return me(r.scope,r.path)},df=(e,t)=>F(e)?Gt(e,t):me(t[0],e),Zo=(e,t)=>`Scope ref '${e}' is not supported by ${t}(); evaluate with check()`,oi=(e,t)=>{if(!(!("field"in e)||typeof e.field!="string")&&F(e.field))throw new Error(Zo(e.field,t))};var uf={string:{caseInsensitive:false,fuzzy:false},prismaOptions:{datasource:{provider:"postgresql"}}},uo=Jn(uf),vs=e=>Rs(e,t=>typeof t=="object"&&t!==null&&!Array.isArray(t)&&!$e(t)?t:void 0),US=e=>e!=null&&typeof e.then=="function",Or={set:(e,t)=>{Es(uo,e,vs(t));},get:e=>me(uo,e),reset:()=>{uo=Jn(uf);},with:(e,t)=>{let r=uo;uo=xs(vs(r),vs(e));try{let o=t();if(US(o))throw new Error("engineGlobals.with() callback must be synchronous (it returned a Promise).");return o}finally{uo=r;}}},GS=new Set(["postgresql","cockroachdb","mongodb"]),cf=e=>GS.has(e),pe=e=>e??Or.get("string.caseInsensitive")??false,ni=e=>{let t=e??Or.get("string.fuzzy")??false;return t?t===true?{}:t:false};var h={equals:"equals",notEquals:"notEquals",lessThan:"lessThan",lessThanEquals:"lessThanEquals",greaterThan:"greaterThan",greaterThanEquals:"greaterThanEquals",contains:"contains",notContains:"notContains",in:"in",notIn:"notIn",matches:"matches",notMatches:"notMatches",between:"between",notBetween:"notBetween",isEmpty:"isEmpty",notEmpty:"notEmpty",exists:"exists",notExists:"notExists",startsWith:"startsWith",notStartsWith:"notStartsWith",endsWith:"endsWith",notEndsWith:"notEndsWith"},$={all:"all",any:"any",none:"none",atLeast:"atLeast",atMost:"atMost",exactly:"exactly",empty:"empty",notEmpty:"notEmpty"},v={before:"before",after:"after",onOrBefore:"onOrBefore",onOrAfter:"onOrAfter",notBefore:"notBefore",notAfter:"notAfter",within:"within",notWithin:"notWithin",between:"between",notBetween:"notBetween",dayIn:"dayIn",dayNotIn:"dayNotIn"};var H={String:"String",Boolean:"Boolean",Int:"Int",BigInt:"BigInt",Float:"Float",Decimal:"Decimal",DateTime:"DateTime",Json:"Json",Bytes:"Bytes",Enum:"Enum"},Ve=["Int","Float","Decimal","BigInt"],co=["String",...Ve,"DateTime"],Kt=["String"],ii=["String","Boolean","Int","BigInt","Float","Decimal","DateTime","Enum"],si=Object.values(H),mf=si,KS={check:"check",toPrisma:"toPrisma",toSql:"toSql"},pi=e=>typeof e=="string"&&Object.hasOwn(H,e),M=["check","toPrisma","toSql"],mo=["check","toPrisma"],ai=["check","toSql"],At={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"},go={[h.equals]:{kinds:ii,targets:M,valueShape:"scalar"},[h.notEquals]:{negates:h.equals,kinds:ii,targets:M,valueShape:"scalar"},[h.lessThan]:{kinds:co,targets:M,valueShape:"ordered",comparator:"lt"},[h.lessThanEquals]:{kinds:co,targets:M,valueShape:"ordered",comparator:"lte"},[h.greaterThan]:{kinds:co,targets:M,valueShape:"ordered",comparator:"gt"},[h.greaterThanEquals]:{kinds:co,targets:M,valueShape:"ordered",comparator:"gte"},[h.in]:{kinds:ii,targets:M,valueShape:"array"},[h.notIn]:{negates:h.in,kinds:ii,targets:M,valueShape:"array"},[h.contains]:{kinds:Kt,targets:M,valueShape:"string"},[h.notContains]:{negates:h.contains,kinds:Kt,targets:M,valueShape:"string"},[h.startsWith]:{kinds:Kt,targets:M,valueShape:"string"},[h.notStartsWith]:{negates:h.startsWith,kinds:Kt,targets:M,valueShape:"string"},[h.endsWith]:{kinds:Kt,targets:M,valueShape:"string"},[h.notEndsWith]:{negates:h.endsWith,kinds:Kt,targets:M,valueShape:"string"},[h.matches]:{kinds:Kt,targets:ai,valueShape:"pattern"},[h.notMatches]:{negates:h.matches,kinds:Kt,targets:ai,valueShape:"pattern"},[h.between]:{kinds:co,targets:M,valueShape:"range"},[h.notBetween]:{negates:h.between,kinds:co,targets:M,valueShape:"range"},[h.isEmpty]:{kinds:mf,targets:M,valueShape:"none"},[h.notEmpty]:{kinds:mf,targets:M,valueShape:"none"},[h.exists]:{kinds:si,targets:M,valueShape:"none"},[h.notExists]:{kinds:si,targets:M,valueShape:"none"}},yo={[v.before]:{kinds:["DateTime"],targets:M,valueShape:"dateValue",acceptsExpr:true,comparator:"lt"},[v.after]:{kinds:["DateTime"],targets:M,valueShape:"dateValue",acceptsExpr:true,comparator:"gt"},[v.onOrBefore]:{kinds:["DateTime"],targets:M,valueShape:"dateValue",acceptsExpr:true,comparator:"lte"},[v.onOrAfter]:{kinds:["DateTime"],targets:M,valueShape:"dateValue",acceptsExpr:true,comparator:"gte"},[v.notBefore]:{negates:v.before,kinds:["DateTime"],targets:M,valueShape:"dateValue",acceptsExpr:true,comparator:"gte"},[v.notAfter]:{negates:v.after,kinds:["DateTime"],targets:M,valueShape:"dateValue",acceptsExpr:true,comparator:"lte"},[v.within]:{kinds:["DateTime"],targets:M,valueShape:"dateWindow",acceptsExpr:true},[v.notWithin]:{negates:v.within,kinds:["DateTime"],targets:M,valueShape:"dateWindow",acceptsExpr:true},[v.between]:{kinds:["DateTime"],targets:M,valueShape:"dateRange",acceptsExpr:true},[v.notBetween]:{negates:v.between,kinds:["DateTime"],targets:M,valueShape:"dateRange",acceptsExpr:true},[v.dayIn]:{kinds:["DateTime"],targets:ai,valueShape:"dayList",acceptsExpr:false},[v.dayNotIn]:{negates:v.dayIn,kinds:["DateTime"],targets:ai,valueShape:"dayList",acceptsExpr:false}},li={[$.all]:{targets:mo,valueShape:"predicate"},[$.any]:{targets:mo,valueShape:"predicate"},[$.none]:{targets:mo,valueShape:"predicate"},[$.atLeast]:{targets:mo,valueShape:"count",comparator:"gte"},[$.atMost]:{targets:mo,valueShape:"count",comparator:"lte"},[$.exactly]:{targets:mo,valueShape:"count",comparator:"equals"},[$.empty]:{targets:M,valueShape:"none"},[$.notEmpty]:{targets:M,valueShape:"none"}},gf={field:go,date:yo,array:li},vt=(e,t)=>Object.hasOwn(gf[t],e)?gf[t][e]:void 0,ho=e=>typeof e.operator=="string"?vt(e.operator,"field"):typeof e.dateOperator=="string"?vt(e.dateOperator,"date"):void 0,zt=(e,t)=>vt(e,t)?.comparator,Nt=(e,t)=>{let r=vt(e,t);if(!r)throw ie(e,t);return r.valueShape},fi=(e,t,r)=>vt(e,t)?.targets.includes(r)??false,zS=(e,t)=>{let r=Object.keys(go).filter(n=>{let i=go[n];return !(!i.kinds.includes(e)||t&&!i.targets.includes(t))}),o=Object.keys(yo).filter(n=>{let i=yo[n];return !(!i.kinds.includes(e)||t&&!i.targets.includes(t))});return {field:r,date:o}},HS=e=>Object.keys(li).filter(t=>e?li[t].targets.includes(e):true),yf=[...Object.entries(go),...Object.entries(yo)],ve=(...e)=>yf.flatMap(([t,r])=>e.includes(r.valueShape)?[t]:[]),Ht=ve("none"),wo=ve("ordered"),Yo=ve("dateWindow"),_e=ve("range","dateRange","dateWindow"),hf=ve("ordered","string","pattern","array"),nt=[h.contains,h.notContains],di=ve("scalar","ordered","range"),it=["sum","avg"],JS=()=>di,st=ve("scalar"),Jt=ve("array"),wf=ve("scalar","array"),Sf=ve("dayList"),bf=ve("dateRange"),Rf=ve("scalar","ordered","range","dateValue","dateRange"),Of=(...e)=>Object.entries(li).flatMap(([t,r])=>e.includes(r.valueShape)?[t]:[]),Qt=Of("count"),xf=Of("predicate","count"),Ef=[$.any,$.atLeast],G=[...Object.entries(go),...Object.entries(yo)].flatMap(([e,t])=>t.negates?[e]:[]),Pf=G.filter(e=>ve("string").includes(e)),So=G.filter(e=>_e.includes(e)),$f=(...e)=>yf.flatMap(([t,r])=>r.comparator&&e.includes(r.comparator)&&!G.includes(t)?[t]:[]),ui=$f("lt","lte"),vf=$f("gt","gte"),Af=["Int","BigInt"],Nf=[...Ve,"DateTime","Boolean","String"],Tf=["Int","BigInt","Float","Boolean","String"],Mf=["scalar","ordered","string"],Zt={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}},Cf=["months","days","secs"],As=e=>Object.hasOwn(Zt,e),xr=e=>As(e)&&Zt[e].calendar,ci=["year","quarter","month","week","isoWeek","day","hour","minute","second"],bo=["sunday","monday","tuesday","wednesday","thursday","friday","saturday"],kf=e=>bo.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]])),Xo=_f(go,[[h.isEmpty,h.notEmpty],[h.exists,h.notExists]]),Lf=_f(yo),mi={[h.lessThan]:h.greaterThanEquals,[h.lessThanEquals]:h.greaterThan,[h.greaterThan]:h.lessThanEquals,[h.greaterThanEquals]:h.lessThan,[v.onOrBefore]:v.after,[v.onOrAfter]:v.before};var gi=e=>new Error(`${e}: ArrayRule.field is required (fieldless arrayOps are check-only)`),ie=(e,t)=>new Error(`Unknown ${t} operator: ${String(e)}`),Ro=e=>new Error(`${e} requires a count`),Be=e=>new Error(`${e} requires a range date expression (a period or rolling window), not a single point`),qe=e=>new Error(`${e} requires a condition to check against array elements`),Oo=e=>new Error(`'${e}' is a relation: it exists or not; compare its fields with '${e}.<field>'.`),yi=e=>new Error(`'${e}' is a list of rows: compare it with an arrayOperator (any / all / none / empty / atLeast \u2026).`),hi=e=>nt.includes(e.operator)&&ni(e.fuzzy)?new Error("Fuzzy matching has no compiled form \u2014 evaluate it in memory with check()."):null,wi=(e,t)=>!wo.includes(e)&&!_e.includes(e)?null:(_e.includes(e)&&Array.isArray(t)?t:[t]).some(o=>typeof o=="boolean"||typeof o=="object"&&o!==null&&!(o instanceof Date))?new Error(`'${e}' orders numbers, strings and dates; it can't compare ${JSON.stringify(t)}`):null,Yt=e=>new Error(`aggregate.mode must be one of ${it.join(" / ")}, not '${String(e)}'`),at=()=>new Error("A condition is exactly one of: a field, date, array or aggregate rule, all, any, or if/then[/else]"),_=(e,t,r)=>new Error(`${t} has no ${e==="toSql"?"SQL":"Prisma"} form${r?` (${r})`:""}; use ${e==="toSql"?"check()":"toSql() or check()"}.`),lt=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":""}.`),Si=(e,t)=>new Error(`'${e}' reads through the to-many relation '${t.prefix}'; compare its rows with an arrayOperator rule on '${t.prefix}'.`),bi=(e,t)=>new Error(`'${e}' continues past '${t}', which is not a Json column`),J=class extends Error{name="UsageError"};ft__default.default.extend(XS__default.default);ft__default.default.extend(YS__default.default);ft__default.default.extend(ZS__default.default);ft__default.default.extend(QS__default.default);var te=e=>{if(!$e(e))return false;let t=e;return "ago"in t||"ahead"in t||"this"in t||"last"in t||"next"in t||"start"in t||"end"in t},Tt="UTC",en=e=>{if(e.now===void 0)throw new J("date expressions require `now` to be supplied to the evaluator");let t=ft__default.default(e.now).tz(e.timeZone);if(!t.isValid())throw new J(`invalid \`now\`: ${String(e.now)}`);return t},Ns=(e,t)=>Object.entries(e).reduce((r,[o,n])=>Zt[o].interval===t?r+n*Zt[o].factor:r,0),Ff="YYYY-MM-DDTHH:mm:ss.SSS",Xt=(e,t,r,o)=>{let n=Ns(t,"months"),i=Ns(t,"days"),s=Ns(t,"secs"),a=ft__default.default.utc(e.tz(o).format(Ff));return n&&(a=a.add(r*n,"month")),i&&(a=a.add(r*i,"day")),s&&(a=a.add(r*s*1e3,"millisecond")),ft__default.default.tz(a.format(Ff),o)},eb=e=>"ago"in e||"ahead"in e,Ri=(e,t)=>t===-1?{ago:e}:{ahead:e},Re=e=>eb(e)?"ago"in e?[e.ago,-1]:[e.ahead,1]:null,tn=e=>"this"in e||"last"in e||"next"in e,Ts=e=>"start"in e||"end"in e,Oi=e=>"this"in e?e.this:"last"in e?e.last:e.next,tb=e=>{let t=Oi(e);if(typeof t!="string"||!ci.includes(t))throw new Error(`Unknown period unit '${String(t)}'`);return t},rb=(e,t)=>e==="week"?t.weekStart==="sunday"?"week":"isoWeek":e,Ms=(e,t)=>{let r=en(t),o=tb(e),n=o==="isoWeek"?"week":o,i=r;"last"in e?i=r.subtract(1,n):"next"in e&&(i=r.add(1,n));let s=rb(o,t);return [i.startOf(s),i.endOf(s)]},Cs=(e,t)=>{let r=Re(e);if(r)return Xt(en(t),...r,t.timeZone);if(Ts(e)){let o="start"in e?e.start:e.end,[n,i]=Ms(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")},xo=(e,t,r)=>{if(tn(e)){let[o,n]=Ms(e,r),i=ho({dateOperator:t})?.negates??t;return ui.includes(i)?o:n}return Cs(e,r)},Eo=(e,t)=>{if(tn(e))return Ms(e,t);let r=Re(e);if(r){let o=en(t),n=Xt(o,...r,t.timeZone);return r[1]===-1?[n,o]:[o,n]}throw Be("within")};var Df=["value","bind","path"],We=e=>typeof e.path=="string"&&e.path!=="",Pr=e=>We(e)?F(e.path)??{depth:0,path:e.path}:null,rn=(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(We(e))return t.path(e.path);throw new Error("No value, path or bind specified")},xi=e=>$e(e)&&(e.value!==void 0||We(e)||typeof e.bind=="string"),ks=(e,t,r)=>{if(!r||!Object.hasOwn(r,e)){if(t===true)return null;throw new J(`Missing binding for "${e}"`)}let o=r[e];return o===void 0?null:o},Ei=(e,t,r)=>{if(t===true)return null;throw new J(`Unresolved binding '${e}' \u2014 resolve bindings (bindRule / bindLens) before compiling with ${r}().`)},Mt=(e,t,r)=>rn(e,{value:o=>o,bind:(o,n)=>ks(o,n,r),path:o=>df(o,t)??null});var jf=e=>typeof e=="object"&&e!==null,Ls=e=>"if"in e||"then"in e||"else"in e,Le=e=>"arrayOperator"in e||"aggregate"in e,If=e=>[...["all","any"].flatMap(t=>Array.isArray(e[t])?e[t].map((r,o)=>({key:t,index:o,child:r,nested:false})):[]),...Ls(e)?["if","then","else"].flatMap(t=>e[t]!==void 0?[{key:t,child:e[t],nested:false}]:[]):[],...["condition","filter"].flatMap(t=>e[t]!==void 0?[{key:t,child:e[t],nested:true}]:[])],Ae=e=>"all"in e||"any"in e||Ls(e),oe=(e,t,r)=>{if(!jf(e))return;let o=e,n=t(o,r),i=n===void 0?r:n;for(let{child:s,nested:a}of If(o))a?i!==false&&oe(s,t,i):oe(s,t,r);},Vf=(e,t,r,o)=>{let n=false;return oe(e,(i,s)=>(!n&&t(i,s)&&(n=true),n?false:r?.(i,s)),o),n},er=(e,t,r)=>{if(!jf(e))return e;let o=r,n={...e},i=t.rewrite?t.rewrite(n,o):n,s=If(i),a=s.some(f=>f.nested)&&t.below?t.below(i,o):o;for(let f of ["all","any"])Array.isArray(i[f])&&(i[f]=[...i[f]]);for(let{key:f,index:p,child:d,nested:u}of s){if(u&&a===false)continue;let c=er(d,t,u?a:o);p===void 0?i[f]=c:i[f][p]=c;}let l=t.after?t.after(i,o):i;return l===i&&ob(i,e)?e:l},ob=(e,t)=>{let r=Object.keys(e);return r.length!==Object.keys(t).length?false:r.every(o=>{let[n,i]=[e[o],t[o]];return n===i?true:Array.isArray(n)&&Array.isArray(i)&&n.length===i.length&&n.every((s,a)=>s===i[a])})},nb=(e,t)=>$e(e)?Object.fromEntries(Object.entries(e).map(([r,o])=>[r,xi(o)?t(o,xr(r)?"whole":"number"):o])):e,_s=(e,t)=>{let r=te(e)?Re(e):null;return r?Ri(nb(r[0],t),r[1]):e},Pi=(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=>_s(i,t)):_s(e.value,t);o={...o,value:n};}if(xi(e.offset)){let n=r?{...e.offset,...e.offset.value!==void 0&&{value:_s(e.offset.value,t)}}:e.offset;o={...o,offset:t(n,r?"shift":"number")};}return xi(o)&&(o=t(o,"value")),o},on=e=>{let t=[];return Pi(e,(r,o)=>(t.push({source:r,role:o}),r)),t},Fs=e=>on(e).flatMap(({source:t,role:r})=>We(t)?[{ref:t.path,role:r}]:[]),tr=e=>Fs(e).map(t=>t.ref),Po=e=>[...Array.isArray(e.orderBy)?e.orderBy.flatMap(t=>typeof t?.field=="string"?[t.field]:[]):[],...typeof e.aggregate?.field=="string"?[e.aggregate.field]:[]],fe=e=>{let t=new Set;return "all"in e&&t.add("all"),"any"in e&&t.add("any"),Ls(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},q=e=>e.length===0?true:e.length===1?e[0]:{all:[...e]},Ds=e=>typeof e=="object"&&"all"in e&&Array.isArray(e.all)?e.all.flatMap(Ds):[e],Ct=e=>e.length===0?false:e.length===1?e[0]:{any:[...e]};var ib=e=>on(e).flatMap(({source:t})=>typeof t.bind=="string"?[t]:[]),nn=(e,{required:t=false}={})=>{let r=new Set;return oe(e,o=>{for(let n of ib(o))(!t||n.bindOptional!==true)&&r.add(n.bind);}),[...r].sort()},js=(e,t)=>{let r=o=>{if(typeof o.bind!="string"||!Object.hasOwn(t,o.bind))return o;let{bind:n,bindOptional:i,...s}=o;return {...s,value:ks(n,true,t)}};return er(e,{rewrite:o=>Pi(Pi(o,r),r)})};var Bf=BigInt(Number.MAX_SAFE_INTEGER),sn=e=>{if(e>Bf||e<-Bf)throw new RangeError(`BigInt ${e} is outside the safe integer range (\xB12^53); json-rules compares BigInt as Int.`);return Number(e)},Is=e=>typeof e=="bigint"?sn(e):typeof e=="string"&&e.trim()!==""&&Number.isFinite(Number(e))?Number(e):e,$i=(e,t)=>{if(e==null)return null;let r=Is(e);if(typeof r!="number"||!Number.isFinite(r))throw new Error(`${t} reads a number (got ${String(e)})`);return r},Fe=([e,t])=>t<e?[t,e]:[e,t],Ue=(e,t)=>{if(!Array.isArray(e)||e.length!==2)throw new Error(`${t} operator requires an array of two values`);return [e[0],e[1]]},$o=(e,t)=>{let r=Ue(e,t);if(!r.every(de))throw new Error(`${t} requires two ends that order \u2014 numbers, strings or dates (got ${JSON.stringify(e)})`);return r},vi=e=>{if(!Array.isArray(e))throw new Error(`in / notIn requires a list (got ${JSON.stringify(e)})`);return e},kt=e=>{let t=vi(e),r=t.filter(o=>o!==null);return {values:r,hasNull:r.length!==t.length}},de=e=>typeof e=="string"||typeof e=="number"||e instanceof Date;var Vs=(e,t)=>typeof e=="number"&&Number.isFinite(e)&&e>=0&&(!xr(t)||Number.isInteger(e))?null:`${t} must be a non-negative${xr(t)?" whole":""} number (got ${String(e)})`,Bs=(e,t,r)=>{let o=typeof e=="number"?e:$i(t(e),e.path?`'${e.path}' (${r})`:r),n=o===null?null:Vs(o,r);if(n===null)return o;if(typeof e!="number"&&We(e))return null;throw new Error(n)},$r=(e,t)=>{let r={};for(let[o,n]of Object.entries(e)){if(n===void 0)continue;let i=Bs(n,t,o);if(i===null)return null;r[o]=i;}return r},pt=(e,t)=>{let r=Re(e);if(!r)return e;let o=$r(r[0],t);return o?Ri(o,r[1]):null};var vr=(e,t)=>{if(e==null)return null;if(Array.isArray(e)){let o=e.map(n=>vr(n,t));return o.some(n=>n===null)?null:o}let r=Is(e);if(typeof r!="number"||!Number.isFinite(r))throw new Error(`offset needs a numeric comparison value (got ${String(e)})`);return r+t},Ar=e=>$i(e,"an offset"),vo=e=>{if(e==null)return null;let t=te(e)?Re(e):null;if(!t)throw new Error(`a date offset reads { ago } or { ahead } (got ${JSON.stringify(e)})`);return t};ft__default.default.extend(XS__default.default);ft__default.default.extend(YS__default.default);ft__default.default.extend(ab__default.default);ft__default.default.extend(sb__default.default);var Uf=(e,t,r={},o)=>{let n=Gt(e.field,t),i=Nr(r,u=>Mt(u,t,o)),s=i.timeZone;if(n==null)return G.includes(e.dateOperator)?true:e.error||`${e.field} has no value`;let a=de(n)?rr(n,s):null;if(!a?.isValid())throw new Error(`${e.field} is not a valid date: ${String(n)}`);let l=u=>e.error||`${e.field} ${u}`;if(Sf.includes(e.dateOperator)){let u=qs(Mt(e,t,o));if(u===null)return e.error||`${e.field} has no comparison value`;let c=u.includes(a.tz(s).day()),g=u.map(m=>bo[m]).join(" or ");return e.dateOperator===v.dayIn?c||l(`must be on ${g}`):!c||l(`must not be on ${g}`)}let f=fb(e,t,i,s,o);if(f===null)return e.error||`${e.field} has no comparison value`;let[p,d=p]=f;switch(e.dateOperator){case v.before:return a.isBefore(p)||l(`must be before ${p.format()}`);case v.after:return a.isAfter(p)||l(`must be after ${p.format()}`);case v.onOrBefore:return a.isSameOrBefore(p)||l(`must be on or before ${p.format()}`);case v.onOrAfter:return a.isSameOrAfter(p)||l(`must be on or after ${p.format()}`);case v.within:return a.isSameOrAfter(p)&&a.isSameOrBefore(d)||l(`must be within ${p.format()} and ${d.format()}`);case v.notBefore:return a.isSameOrAfter(p)||l(`must not be before ${p.format()}`);case v.notAfter:return a.isSameOrBefore(p)||l(`must not be after ${p.format()}`);case v.notWithin:return a.isBefore(p)||a.isAfter(d)||l(`must not be within ${p.format()} and ${d.format()}`);case v.between:return a.isSameOrAfter(p)&&a.isSameOrBefore(d)||l(`must be between ${p.format()} and ${d.format()}`);case v.notBetween:return a.isBefore(p)||a.isAfter(d)||l(`must not be between ${p.format()} and ${d.format()}`);default:throw ie(e.dateOperator,"date")}},fb=(e,t,r,o,n)=>{let i=e.dateOperator,s=g=>Mt(g,t,n),a=Mt(e,t,n);if(a==null)return null;let l=e.offset===void 0?void 0:vo(s(e.offset));if(l===null)return null;let f=g=>{if(l===void 0)return g;let m=$r(l[0],s);return m&&Xt(g,m,l[1],o)};if(Yo.includes(i)){if(!te(a))throw Be(i);let g=pt(a,s);return g&&Eo(g,r)}let p=(g,m)=>{if(g==null)return null;if(te(g)){let S=pt(g,s);return S&&Cs(S,r)}let y=rr(g,o);if(!y.isValid())throw new Error(`Invalid ${m}: ${String(g)}`);return y};if(bf.includes(i)){let[g,m]=Ue(a,i),y=p(g,"start date"),S=p(m,"end date");if(!y||!S)return null;let[b,R]=Fe([y,S]),w=f(b),E=f(R);return w&&E?[w,E]:null}if(Array.isArray(a))throw new Error(`${i} operator requires a single date value`);let d=g=>{let m=pt(g,s);return m&&xo(m,i,r)},u=te(a)?d(a):p(a,"comparison date");if(!u)return null;let c=f(u);return c&&[c]},Nr=(e,t)=>{let r=e.timeZone;if(r===void 0||typeof r=="string")return {...e,timeZone:Wf(r??Tt)};if(Pr(r))throw new J(`timeZone is one per evaluation; give it as a string or a { bind }, not the row path '${r.path}'`);let o=t(r);if(o!=null&&typeof o!="string")throw new J(`timeZone reads a zone name (got ${String(o)})`);return {...e,timeZone:Wf(o??Tt)}},qf=new Set,Wf=e=>{if(qf.has(e))return e;try{new Intl.DateTimeFormat("en-US",{timeZone:e});}catch{throw new J(`invalid time zone: ${e}`)}return qf.add(e),e},db=/\d{2}:\d{2}(?::\d{2}(?:\.\d+)?)?\s*(?:[zZ]|[+-]\d{2}(?::?\d{2})?)$/,ub=e=>db.test(e.trim())||/\b(?:GMT|UTC)\b/.test(e),rr=(e,t)=>{if(typeof e=="string"&&/^-?\d+$/.test(e.trim()))return ft__default.default(Number(e));if(typeof e=="string"&&!ub(e)){let r=ft__default.default(e);return r.isValid()?ft__default.default.tz(e,t):r}return typeof e=="string"?ft__default.default(new Date(e.trim())):ft__default.default(e)},Ai=(e,t)=>{let r=de(e)?rr(e,t):ft__default.default(Number.NaN);if(!r.isValid())throw new Error(`Invalid date value: ${String(e)}`);return r.toDate()},qs=e=>{if(e==null)return null;if(!Array.isArray(e))throw new Error("a weekday operator requires an array of day names");return e.map(t=>{let r=bo.indexOf(String(t).toLowerCase());if(r===-1)throw new Error(`Unknown day name: ${String(t)}`);return r})};var mb=e=>e<=3?0:e<=6?1:2,gb=(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):mb(t)},Gf=e=>e.split(/[^a-z0-9\p{L}]+/u).filter(Boolean),yb=e=>/^\d+$/.test(e),hb=(e,t,r)=>e===t?true:Math.abs(e.length-t.length)>r?false:fastestLevenshtein.distance(e,t)<=r,Kf=(e,t,r={})=>{let o=t.trim().toLowerCase();if(!o)return true;let n=e.toLowerCase();if(n.includes(o))return true;let i=Gf(o);if(i.length===0)return false;let s=Gf(n);return s.length===0?false:i.every(a=>{let l=gb(r,a.length);return l===0||yb(a)?s.includes(a):s.some(f=>hb(a,f,l))})};var or=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}`)}},Ao={d:"0-9",w:"0-9A-Za-z_",s:"\\t\\n\\f\\r "},Hf={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"},wb=/[\\^$.|?*+()[\]{}]/,Ws=255,Jf=e=>e<=65535?`\\u${e.toString(16).padStart(4,"0")}`:`\\U${e.toString(16).padStart(8,"0")}`,Sb=e=>wb.test(e)?`\\${e}`:e,an=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(Ao,a))return s?Ao[a]:`[${Ao[a]}]`;let l=a.toLowerCase();if(a!==l&&Object.hasOwn(Ao,l))return s&&t(`a negated class \\${a} inside brackets`),`[^${Ao[l]}]`;if(a==="p"||a==="P")return t("a Unicode class");if(a==="C")return t("\\C");if(a==="x"){let f=e[o]==="{",p=f?e.indexOf("}",o):o+2,d=e.slice(f?o+1:o,p);return o=f?p+1:p,Jf(Number.parseInt(d,16))}if(a>="0"&&a<="7"){let f=a;for(;f.length<3&&e[o]>="0"&&e[o]<="7";)f+=e[o++];return Jf(Number.parseInt(f,8))}if(!s&&(a==="b"||a==="B")){let f=`[${Ao.w}]`;return a==="b"?`(?:(?<=${f})(?!${f})|(?<!${f})(?=${f}))`:`(?:(?<=${f})(?=${f})|(?<!${f})(?!${f}))`}if(!s&&(a==="z"||a==="A"))return n(),a==="z"?"\\Z":"\\A";if(a==="Q"){let f=e.indexOf("\\E",o),p=e.slice(o,f===-1?void 0:f);return o=f===-1?e.length:f+2,[...p].map(s?d=>/[\\\]^-]/.test(d)?`\\${d}`:d:Sb).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])>Ws||Number(a[2]??0)>Ws)&&t(`a repeat count past ${Ws}`),r+=a[0],o+=a[0].length;}else if(s==="["){r+="[",o++,e[o]==="^"&&(r+="^",o++),e[o]==="]"&&(r+="\\]",o++);let a=false,l=false,f=0;for(;o<e.length&&e[o]!=="]";){let p=l?null:/^\[:(\^?)([a-z]+):\]/.exec(e.slice(o)),d=!!p||/^\\[dswDSW]/.test(e.slice(o)),u=e[o]==="-"&&f>0&&e[o+1]!=="]"&&!l;p?(p[1]&&t(`a negated class [:^${p[2]}:]`),Object.hasOwn(Hf,p[2])||t(`the class [:${p[2]}:]`),r+=Hf[p[2]],o+=p[0].length):e[o]==="\\"?r+=i(true):u&&a?(r+="\\-",o++):(r+=e[o]==="["?"\\[":e[o],o++);let c=l;l=u&&!a,a=d||c,f++;}r+="]",o++;}else r+=s,o++,(s==="^"||s==="$")&&n();}return r},Qf=(e,t)=>{try{let{source:r}=or(e);return t==="toSql"&&an(r),null}catch(r){return r.message}};var Zf=e=>e==null||e===""||Array.isArray(e)&&e.length===0,Oe=(e,t)=>{let r=t==null;return r&&(e.offset!==void 0||hf.includes(e.operator))?true:_e.includes(e.operator)?r||Array.isArray(t)&&t.some(o=>o==null):false},Mr=e=>Ht.includes(e.operator)||st.includes(e.operator)&&e.value===null&&e.path===void 0&&e.bind===void 0,Ti=(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?Ct(o(h.equals)):q(o(h.notEquals))},Cr=e=>typeof e=="string"?e.toLowerCase():Array.isArray(e)?e.map(Cr):e,Yf=e=>typeof e=="bigint"?sn(e):Array.isArray(e)&&e.some(t=>typeof t=="bigint")?e.map(t=>typeof t=="bigint"?sn(t):t):e,Xf=(e,t,r)=>{if(e==null)return e;if(Ve.includes(t)){if(typeof e!="string"||e.trim()==="")return e;if(t==="BigInt"&&/^-?\d+$/.test(e.trim()))return sn(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=rr(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=Tt)=>t===void 0?e:Array.isArray(e)?e.map(o=>Xf(o,t,r)):Xf(e,t,r),ln=(e,t,r,o={},n)=>{let i=n?n.value:Gt(e.field,t)??null,s=e.coerceType??(i instanceof Date?"DateTime":void 0),a=s==="DateTime"?Nr(o,b=>Mt(b,t,r)).timeZone:Tt,l=Tr(Yf(i),s,a),f=!Ht.includes(e.operator),p=f?bb(Tr(Yf(Mt(e,t,r)??null),s,a),e,t,r):void 0;if(f&&Oe(e,p))return G.includes(e.operator)&&l==null?true:e.error||`${e.field} has no comparison value`;let d=b=>e.error||`${e.field} ${b}${f?` ${p instanceof RegExp?String(p):JSON.stringify(p)}`:""}`,u=pe(e.caseInsensitive),c=b=>u?Cr(b):b,g=c(l),m=c(p),y=ni(e.fuzzy),S=()=>y&&typeof l=="string"&&typeof p=="string"?Kf(l,p,y):Array.isArray(l)?g.some(b=>Rr(b,m)):Rb(g,m);switch(e.operator){case h.equals:return Rr(g,m)||d("must equal");case h.notEquals:return !Rr(g,m)||d("must not equal");case h.lessThan:return Ni(l,p,"lt")||d("must be less than");case h.lessThanEquals:return Ni(l,p,"lte")||d("must be less than or equal to");case h.greaterThan:return Ni(l,p,"gt")||d("must be greater than");case h.greaterThanEquals:return Ni(l,p,"gte")||d("must be greater than or equal to");case h.in:return vi(m).some(b=>Rr(b,g))||d("must be one of");case h.notIn:return !vi(m).some(b=>Rr(b,g))||d("must not be one of");case h.contains:return S()||d("must contain");case h.notContains:return !S()||d("must not contain");case h.matches:return ed(l)&&td(p)&&or(p).re.test(l)||d("must match pattern");case h.notMatches:return !ed(l)||!td(p)||!or(p).re.test(l)||d("must not match pattern");case h.between:{let b=rd(p,e.operator);if(!nd(l,b))return d("must be between");let R=No(l),[w,E]=b;return R>=w&&R<=E||d("must be between")}case h.notBetween:{let b=rd(p,e.operator);if(!nd(l,b))return true;let R=No(l),[w,E]=b;return R<w||R>E||d("must not be between")}case h.isEmpty:return Zf(l)||d("must be empty");case h.notEmpty:return !Zf(l)||d("must not be empty");case h.exists:return l!=null||d("must exist");case h.notExists:return l==null||d("must not exist");case h.startsWith:return typeof g=="string"&&typeof m=="string"&&g.startsWith(m)||d("must start with");case h.endsWith:return typeof g=="string"&&typeof m=="string"&&g.endsWith(m)||d("must end with");case h.notStartsWith:return !(typeof g=="string"&&typeof m=="string"&&g.startsWith(m))||d("must not start with");case h.notEndsWith:return !(typeof g=="string"&&typeof m=="string"&&g.endsWith(m))||d("must not end with");default:throw new Error("Unknown operator")}},bb=(e,t,r,o)=>{if(t.offset===void 0)return e;let n=Ar(Mt(t.offset,r,o));return n===null?null:vr(e,n)},No=e=>e instanceof Date?e.getTime():e,Ni=(e,t,r)=>{if(!Ob(e,t)||!de(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}},ed=e=>typeof e=="string",td=e=>typeof e=="string"||e instanceof RegExp,rd=(e,t)=>Fe($o(e,t).map(r=>No(r))),Rb=(e,t)=>typeof e=="string"&&typeof t=="string"&&e.includes(t),Ob=(e,t)=>de(e)&&de(t)&&od(e)===od(t),od=e=>e instanceof Date?"date":typeof e,nd=(e,t)=>de(e)&&typeof No(e)==typeof t[0];var Ne=e=>e.filter!==void 0||!!e.orderBy?.length||e.take!==void 0||e.skip!==void 0,xb=e=>{if(typeof e!="object"||e===null)return null;let t=e,r=fe(t);return r!=="field"&&r!=="date"||typeof t.field!="string"?null:{op:String(r==="date"?t.dateOperator:t.operator),field:t.field}},Eb=e=>{if(e.filter!==void 0||e.skip!==void 0&&e.skip!==0||e.take!==1||e.orderBy?.length!==1)return null;let{field:t,dir:r}=e.orderBy[0];if(r!=="asc"&&r!=="desc")return null;let o=null;if(e.arrayOperator===$.all?o="all":(e.arrayOperator===$.any||e.arrayOperator===$.atLeast&&e.count===1)&&(o="any"),!o)return null;let n=xb(e.condition);if(!n||n.field!==t)return null;let i=ui.includes(n.op),s=vf.includes(n.op);if(!i&&!s)return null;let a=r==="desc";if(!(o==="all"?a&&i||!a&&s:a&&s||!a&&i))return null;let{orderBy:f,take:p,skip:d,count:u,...c}=e;if(o==="any")return {...c,arrayOperator:$.any};let g={field:t,operator:h.exists};return {any:[{field:e.field,arrayOperator:$.empty},{all:[{field:e.field,arrayOperator:$.any,condition:g},{...c,arrayOperator:$.all,condition:{if:g,then:e.condition}}]}]}},Us=(e,t,r)=>{let o=e;return t.filter!==void 0&&r&&(o=o.filter(r)),t.orderBy?.length&&(o=id(o,t.orderBy)),t.skip!==void 0&&(o=o.slice(t.skip)),t.take!==void 0&&(o=o.slice(0,t.take)),o},id=(e,t)=>[...e].sort((r,o)=>{for(let{field:n,dir:i}of t){let s=Pb(me(r,n),me(o,n),i);if(s!==0)return s}return 0}),Pb=(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},To=e=>{if(!Ne(e))return e;let t=!!e.orderBy?.length||e.take!==void 0||e.skip!==void 0;if(e.filter!==void 0&&!t){let{filter:r,...o}=e;if("aggregate"in e)return {...o,condition:e.condition===void 0?r:q([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:q([r,e.condition])}}}return "aggregate"in e||e.filter!==void 0?null:Eb(e)};var $b=e=>oe(e,t=>{let r=fe(t);if(!(r==="all"||r==="any")){if(r==="array"&&!("field"in t))return false;throw new Error("check: when data is an array, every leaf must be a fieldless arrayOperator (composable with all/any)")}}),ue=(e,t,r)=>(Array.isArray(t)&&$b(e),dt(e,t,{...r,scopes:[t]})),dt=(e,t,r)=>{if(typeof e=="boolean")return e;let o=e;switch(fe(e)){case "all":return vb(o.all,t,r,o.error);case "any":return Ab(o.any,t,r,o.error);case "if":return Nb(o,t,r);case "array":return Mb(o,r);case "aggregate":return Tb(o,r);case "date":return Uf(o,r.scopes,r,r.bindings);case "field":return ln(o,r.scopes,r.bindings,r);default:throw at()}},Mi=(e,t)=>({...e,scopes:[...e.scopes,t]}),vb=(e,t,r,o)=>{let n=[];for(let i of e){let s=dt(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},Ab=(e,t,r,o)=>{let n=[];for(let i of e){let s=dt(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 ")}`)},Nb=(e,t,r)=>dt(e.if,t,r)===true?dt(e.then,t,r):e.else!==void 0?dt(e.else,t,r):true,sd=(e,t)=>{if(e==null)return [];if(!Array.isArray(e))throw new Error(`${t} must be an array`);return e},Tb=(e,t)=>{let r=sd(Gt(e.field,t.scopes),e.field),o=e.filter,n=Us(r,e,o?c=>dt(o,c,Mi(t,c))===true:void 0),{mode:i,field:s}=e.aggregate;if(!it.includes(i))throw Yt(i);let a=e.condition,f=(a?n.filter(c=>dt(a,c,Mi(t,c))===true):n).flatMap((c,g)=>{let m=s?me(c,s):c;if(m==null)return [];if(typeof m!="number"||!Number.isFinite(m)){let y=`${e.field}[${g}]${s?`.${s}`:""}`;throw new Error(`${y} must be a finite number`)}return [m]}),p=f.reduce((c,g)=>c+g,0),d=i==="sum"||f.length===0?p:p/f.length,u={...e,field:`${e.field} ${i}`};return ln(u,t.scopes,t.bindings,t,{value:d})},Mb=(e,t)=>{let r=sd(e.field?Gt(e.field,t.scopes):t.scopes[t.scopes.length-1],e.field||"(root)"),o=e.filter,n=Us(r,e,o?d=>dt(o,d,Mi(t,d))===true:void 0),i=d=>e.error||`${e.field} ${d}`,s=e.condition,a=xf.includes(e.arrayOperator);if(a&&s===void 0)throw qe(e.arrayOperator);let l=e.count??0;if(Qt.includes(e.arrayOperator)&&e.count===void 0)throw Ro(e.arrayOperator);let f=0,p=0;if(a&&s!==void 0){if(n.length>0&&!Ps(n,z))return i("contains only primitive values; use 'in' or 'contains' instead of array operators on primitive arrays");let d=n.map(u=>dt(s,u,Mi(t,u)));f=d.filter(u=>u===true).length,p=d.filter(u=>typeof u=="string").length;}switch(e.arrayOperator){case $.empty:return !n.length||i("must be empty");case $.notEmpty:return !!n.length||i("must not be empty");case $.all:return f===n.length||i(`all elements must match (${p} failed)`);case $.any:return !!f||i("at least one element must match");case $.none:return !f||i(`no elements should match (${f} matched)`);case $.atLeast:return f>=l||i(`at least ${l} elements must match (${f} matched)`);case $.atMost:return f<=l||i(`at most ${l} elements must match (${f} matched)`);case $.exactly:return f===l||i(`exactly ${l} elements must match (${f} matched)`);default:throw ie(e.arrayOperator,"array")}};var O=(e,t)=>e!==void 0&&Object.hasOwn(e,t)?e[t]:void 0,kr=(e,t,r)=>(Object.hasOwn(e,t)||(e[t]=r()),e[t]),T=(e,t)=>O(e?.models,t),he=(e,t,r)=>O(T(e,t)?.fields,r);var xe=({fieldMap:e,model:t})=>`${e}:${t}`,ad=(e,t)=>{let r=e.indexOf(":");return r===-1?{mapName:t,modelName:e}:{mapName:e.slice(0,r),modelName:e.slice(r+1)}};var ld=(e,t,r,o)=>{let n={};for(let i of e){let s=O(i,t);if(s==null)continue;let a=String(s);if(Object.hasOwn(n,a)){let l=o==="one"?`endpoint[0] must be the "one" side of a oneToMany bridge \u2014 swap endpoints if '${r}' is the "many" side`:`oneToOne bridges require unique '${t}' on both endpoints`;throw new Error(`indexBridges: duplicate '${t}' value '${a}' on '${r}' \u2014 ${l}.`)}n[a]=i;}return n},Cb=(e,t)=>{let r={};for(let o of e){let n=O(o,t);n!=null&&kr(r,String(n),()=>[]).push(o);}return r},pd=(e,t)=>{let r={};for(let o of e.bridges??[]){let[n,i]=o.endpoints,s=xe(n),a=xe(i),l=o.cardinality==="oneToMany"?"one":"oneToOne",f=(u,c)=>kr(kr(r,u,()=>({})),c,()=>({})),p=O(t,s);p&&(f(n.fieldMap,n.model)[n.on]=ld(p,n.on,s,l));let d=O(t,a);d&&(o.cardinality==="oneToMany"?f(i.fieldMap,i.model)[i.on]=Cb(d,i.on):f(i.fieldMap,i.model)[i.on]=ld(d,i.on,a,"oneToOne"));}return r};var Ci=e=>{let t={maps:structuredClone(e.maps),bridges:e.bridges?structuredClone(e.bridges):void 0};for(let r of e.bridges??[]){let[o,n]=r.endpoints,i=xe(o),s=xe(n),a=T(O(t.maps,o.fieldMap),o.model),l=T(O(t.maps,n.fieldMap),n.model);if(!a)throw new Error(`stitchFieldMaps: endpoint '${i}' not found`);if(!l)throw new Error(`stitchFieldMaps: endpoint '${s}' not found`);if(o.fieldMap===n.fieldMap&&o.model===n.model)throw new Error(`stitchFieldMaps: self-bridge '${i}' to itself is not supported`);if(!O(a.fields,o.on))throw new Error(`stitchFieldMaps: endpoint '${i}' has no field '${o.on}' for join`);if(!O(l.fields,n.on))throw new Error(`stitchFieldMaps: endpoint '${s}' has no field '${n.on}' for join`);if(O(a.fields,s))throw new Error(`stitchFieldMaps: bridge '${s}' already injected on '${i}'`);if(O(l.fields,i))throw new Error(`stitchFieldMaps: bridge '${i}' already injected on '${s}'`);let f=r.cardinality==="oneToMany";a.fields[s]={kind:"bridge",type:s,isList:f},l.fields[i]={kind:"bridge",type:i,isList:false};}return t};var Mo=(e,t,r)=>{if(e?.isList||t?.isList){if(!(e?.isList&&!t?.isList&&nt.includes(r)))return "a list column compares with no column but by membership";if(e?.kind!=="enum"&&t?.kind!=="enum")return null}let o=[e,t].filter(n=>n?.kind==="enum");return o.length===0?null:o.length===1||e?.type!==t?.type?"an enum compares only with an enum column of its own type":st.includes(r)?null:`an enum column orders by declaration on the database, not as check() compares its text ('${r}')`};var Te=e=>e.kind==="scalar"&&e.type==="Json",j=e=>e.kind==="object"||e.kind==="bridge",_r=(e,t)=>e.values??O(t,e.type);var Me=(e,t,r)=>{if(!e||!("maps"in e))return e;if(!t)throw new Error(`${r}: 'map' is a FieldMapSet \u2014 'mapName' is required to resolve which map to use.`);let o=O(e.maps,t);if(!o)throw new Error(`${r}: fieldMap set has no entry for '${t}'`);return o};var Ge=(e,t)=>e.kind==="object"?{mapName:t,modelName:e.type}:e.kind==="bridge"?ad(e.type,t):null;function*nr(e,t,r){let o=r.split("."),n=t;for(let i=0;i<o.length;i++){let s=o[i],a=he(O(e,n.mapName),n.modelName,s),l=a?Ge(a,n.mapName):null;if(yield {index:i,field:s,at:n,entry:a,next:l},!l)return;n={...l,relPath:[...n.relPath,s]};}}var se=(e,t,r)=>{let o=e.split("."),n=[],i={mapName:"",modelName:r,relPath:[]};for(let{index:s,field:a,at:l,entry:f}of nr({"":t},i,e)){let p=l.modelName;if(!f)return {kind:"fallback",hops:n};if(f.kind==="bridge")return {kind:"bridge",hops:n};let d=s===o.length-1;if(f.kind==="object"){if(!T(t,f.type))return {kind:"fallback",hops:n};if(d)return {kind:"direct",hops:n,entry:f,model:p,column:a};n.push({field:a,prefix:o.slice(0,s+1).join("."),entry:f,from:p});continue}return d?{kind:"direct",hops:n,entry:f,model:p,column:a}:Te(f)?{kind:"json-path",hops:n,entry:f,model:p,column:a,stopIndex:s+1,jsonPath:o.slice(s+1)}:{kind:"past-scalar",hops:n,column:a}}return {kind:"fallback",hops:n}},ir=(e,t,r)=>t&&r?se(e,t,r):void 0,Z=(e,t,r)=>{let o=ir(e,t,r);return o?.kind==="direct"?o.entry:void 0},fd=(e,t,r)=>se(e,t,r).hops.filter(o=>!o.entry.isList&&o.entry.isRequired===false).map(o=>o.prefix),pn=(e,t,r)=>{let o=se(e,t,r);return o.kind==="direct"&&o.entry.kind==="object"?o.entry.type:null},sr=(e,t,r)=>se(e,t,r).kind==="bridge",ut=(e,t,r)=>!!t&&!!r&&Vf(e,(o,n)=>typeof o.field=="string"&&o.field!==""&&sr(o.field,t,n),(o,n)=>(typeof o.field=="string"?pn(o.field,t,n):n)??false,r);var ki=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":dd(e.entry.type),dd=e=>e===H.Json?"json":e===H.Enum?"enum":e===H.DateTime?"instant":e===H.String?"text":"scalar",_i=(e,t,r)=>{let o=Z(e.field,t,r);return o?o.kind==="scalar"&&(o.type==="String"||o.type==="Json"):e.coerceType===void 0||e.coerceType==="String"||e.coerceType==="Json"},Li=(e,t,r)=>{if(ki(ir(e,t,r))==="relations")throw yi(e)},Lr=e=>e!=="scalar"&&e!=="instant"&&e!=="list"&&e!=="enum"&&e!=="relation"&&e!=="relations",ar=(e,t)=>Lr(e)&&ud(t),ud=e=>typeof e=="string"||Array.isArray(e)&&e.some(ud),Ce=(e,t,r)=>{let o=ki(ir(e.field,t,r));return o==="unknown"&&e.coerceType!==void 0?dd(e.coerceType):o},_t=e=>{if(!e.isList){if(e.kind==="enum")return H.Enum;if(!(e.kind!=="scalar"||e.type===H.Json))return pi(e.type)?e.type:void 0}};var cd=new WeakSet,Di=e=>(cd.add(e),e),md=e=>{if(e===null||typeof e!="object")return false;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null},gd=e=>{let t=[],r=(o,n)=>{if(o!==null&&typeof o=="object"&&cd.has(o)){t.push({path:n});return}if(Array.isArray(o))for(let[i,s]of o.entries())r(s,[...n,i]);else if(md(o))for(let[i,s]of Object.entries(o))r(s,[...n,i]);};return r(e,[]),t},kb=["__step","__field"],Fi=e=>Array.isArray(e)?e.some(Fi):md(e)?Object.entries(e).some(([t,r])=>kb.includes(t)||Fi(r)):false;var _b={[h.equals]:"equals",[h.notEquals]:"equals",[h.lessThan]:"lt",[h.lessThanEquals]:"lte",[h.greaterThan]:"gt",[h.greaterThanEquals]:"gte"},yd=(e,t,r)=>{let o=se(e,t,r);if(o.kind!=="direct"||o.hops.length>0)return `'${e}' is not a column of ${r} (a relation hop or an undeclared path)`;let{entry:n}=o;return j(n)?`'${e}' is a relation`:Te(n)?`'${e}' is a Json column`:n.isList?`'${e}' is a list column`:n},ji=(e,t,r,o,n=false)=>{let i=e.path;if(n)return {problem:"inside a counting step (a count or relation aggregate) a groupBy carries no column reference"};let s=F(i);if(s&&s.depth>1)return {problem:`'${i}' reads an enclosing scope, which a Prisma filter can't reach`};if(!s&&o)return {problem:`'${i}' reads the root row, which a Prisma relation filter can't reach`};if(!t||!r)return {problem:"comparing two columns needs the map and model"};let a=_b[e.operator];if(!a)return {problem:`'${e.operator}' takes no column reference in Prisma`};if(e.offset!==void 0)return {problem:"an offset is arithmetic, which Prisma lacks"};let l=yd(e.field,t,r);if(typeof l=="string")return {problem:l};let f=s?s.path:i,p=yd(f,t,r);if(typeof p=="string")return {problem:p};if(l.kind!==p.kind||l.type!==p.type)return {problem:`'${e.field}' (${l.type}) and '${f}' (${p.type}) are not the same type`};let d=Mo(l,p,e.operator);return d?{problem:d}:l.type==="String"&&pe(e.caseInsensitive)?{problem:"a case-insensitive column comparison compiles to ILIKE"}:{key:a,ref:Di({__field:{model:r,field:f}}),field:l,column:p,columnPath:f}},Ii=(e,t)=>new Error(`Path '${e}' compares to a column, which the Prisma rail supports only between columns of the same model and type: ${t}. Use toSql() or check().`),hd=new WeakSet,Gs=new WeakSet,Fr=(e,t,r=false)=>(hd.add(e),(r||t!==void 0&&Gs.has(t))&&Gs.add(e),e),wd=e=>e!==void 0&&hd.has(e),Sd=e=>e!==void 0&&Gs.has(e);var Ks=e=>({field:e,operator:"notExists"}),Lb=(e,t)=>{let r=t(e);if(r===null){let i=e.operator??e.dateOperator;return G.includes(i)?{field:e.field,operator:"exists"}:true}if("aggregate"in r){let i=O(Xo,r.operator);return i?{...r,operator:i}:{...r,operator:O(mi,r.operator)}}if(typeof r.dateOperator=="string"){let i=O(Lf,r.dateOperator);return i?{...r,dateOperator:i}:Ct([{...r,dateOperator:O(mi,r.dateOperator)},Ks(r.field)])}if(typeof r.arrayOperator=="string"){let i=r.count;switch(r.arrayOperator){case $.any:return {...r,arrayOperator:$.none};case $.none:return {...r,arrayOperator:$.any};case $.all:return {...r,arrayOperator:$.any,condition:De(r.condition,t)};case $.empty:return {...r,arrayOperator:$.notEmpty};case $.notEmpty:return {...r,arrayOperator:$.empty};case $.atLeast:return i<=0?false:{...r,arrayOperator:$.atMost,count:i-1};case $.atMost:return {...r,arrayOperator:$.atLeast,count:i+1};case $.exactly:return Ct([...i>0?[{...r,arrayOperator:$.atMost,count:i-1}]:[],{...r,arrayOperator:$.atLeast,count:i+1}])}}let o=O(Xo,r.operator);if(o)return {...r,operator:o};let n=typeof r.path=="string"&&r.path!==""?F(r.path)??{depth:1,path:r.path}:null;return Ct([{...r,operator:O(mi,r.operator)},Ks(r.field),...n&&n.depth===1?[Ks(n.path)]:[]])},De=(e,t=r=>r)=>{if(typeof e=="boolean")return !e;let r=e;if(Array.isArray(r.all))return Ct(r.all.map(o=>De(o,t)));if(Array.isArray(r.any))return q(r.any.map(o=>De(o,t)));if("if"in r){let o=q([r.if,De(r.then,t)]);return r.else===void 0?o:{any:[o,q([De(r.if,t),De(r.else,t)])]}}return Lb(r,t)},bd=e=>fe(e)==="field"&&e.value!==void 0&&Oe(e,e.value)?null:e;var Rd,Od=e=>{Rd=e;},ne=(e,t,r)=>Rd(e,t,r);var Fb=e=>{let t=F(e);throw t&&t.depth>1?new Error(Zo(e,"toPrisma")):new Error(`Path '${e}' compares to a column, which isn't supported on the Prisma rail; use toSql() or check().`)},ct=e=>rn(e,{value:t=>{if(Fi(t))throw new Error("toPrisma: a value holding a '__step' or '__field' key is reserved for the plan's own references");return t},path:t=>Fb(t),bind:(t,r)=>Ei(t,r,"toPrisma")}),fn=e=>ct(e),Co=e=>Nr({now:e?.now,timeZone:e?.timeZone,weekStart:e?.weekStart},fn),ko=e=>t=>{let r=typeof t.operator=="string"||typeof t.dateOperator=="string",o=t.value!==void 0||typeof t.path=="string"&&t.path!==""||typeof t.bind=="string";if(!r||"aggregate"in t||!o||typeof t.operator=="string"&&typeof t.path=="string"&&t.path!=="")return t;let n=Ce({field:String(t.field)},e?.map,e?.model);if((n==="json"||n==="json-path")&&typeof t.operator=="string"&&wo.includes(t.operator))throw _("toPrisma",`The complement of '${t.operator}' on the Json value '${t.field}'`,"it keeps values of other types");let i=ct(t),s=t.offset===void 0?void 0:ct(t.offset);if(t.offset!==void 0&&s==null)return null;let{path:a,bind:l,bindOptional:f,...p}=t,d={...p,value:i,...t.offset!==void 0&&{offset:{value:s}}};return typeof t.dateOperator=="string"?i==null||Oe({operator:t.dateOperator},i)?null:d:bd(d)};var Lt=()=>({}),Dr=Lt,lr=()=>({OR:[]}),zs=e=>Object.keys(e).length===0,xd=e=>{let t=Object.keys(e);return t.length===1&&t[0]==="OR"&&Array.isArray(e.OR)&&e.OR.length===0},mt=e=>{if(e.some(xd))return lr();let t=e.filter(r=>!zs(r));return t.length===0?Lt():t.length===1?t[0]:{AND:t}},W=e=>{if(e.some(zs))return Lt();let t=e.filter(r=>!xd(r));return t.length===0?lr():t.length===1?t[0]:{OR:t}},Ee=e=>zs(e)?e:{NOT:e},Ed=(e,t,r)=>mt(e.all.map(o=>ne(o,t,r))),Pd=(e,t,r)=>W(e.any.map(o=>ne(o,t,r))),$d=(e,t,r)=>{if(ut(e,t?.map,t?.model))return Dr();let o=ne(De(e.if,ko(t)),t,r),n=ne(e.then,t,r),i=W([o,n]);if(e.else!==void 0){let s=ne(e.if,t,r),a=ne(e.else,t,r);return mt([i,W([s,a])])}return i};var Db=(e,t,r,o)=>{let n=T(e,t);if(!n)return null;for(let i of Object.values(n.fields))if(i.kind==="object"&&i.type===r&&(i.fromFields?.length??0)>0&&(i.toFields?.length??0)>0&&(o===void 0||i.relationName===o))return i;return null},dn=(e,t,r)=>{if(r.fromFields?.length)return r.fromFields.map((n,i)=>({here:n,there:r.toFields?.[i]??"id"}));let o=Db(e,r.type,t,r.relationName);return o?.fromFields?.length?o.fromFields.map((n,i)=>({here:o.toFields?.[i]??"id",there:n})):null},Vi=(e,t,r,o)=>{if(o.relationName===void 0)return null;let n=Object.entries(T(e,o.type)?.fields??{}).filter(([i,s])=>s.kind==="object"&&s.type===t&&s.relationName===o.relationName&&!(o.type===t&&i===r));return n.length===1?{field:n[0][0],entry:n[0][1]}:null};var jr=(e,t)=>{let r=e.split("."),o=t;for(let n=r.length-1;n>=0;n--)o={[r[n]]:o};return o};var _o=(e,t,r,o)=>{let n=e.split("."),i=se(e,t,r);if(i.kind==="bridge")throw new Error(`'${e}' crosses a bridge: ${o.toLowerCase()} aren't supported across a bridge \u2014 no one database holds both sides.`);if(i.kind!=="direct"||i.entry.kind!=="object"){let l=i.hops.at(-1)?.entry.type??r;throw new Error(`Field '${n[i.hops.length]}' is not a relation in model '${l}'. ${o} require a relation field.`)}let s=i.hops.find(l=>l.entry.isList);if(s)throw new Error(`Intermediate field '${s.field}' in path '${e}' is a list relation. Only the final segment can be a list relation for ${o.toLowerCase()}.`);if(!i.entry.isList)throw new Error(`Field '${i.column}' is not a list relation in model '${i.model}'. ${o} only apply to one-to-many or many-to-many relations.`);let a=dn(t,i.model,i.entry);if(!a){let l=Object.values(T(t,i.entry.type)?.fields??{}).some(f=>f.kind==="object"&&f.type===i.model&&f.isList&&!f.fromFields?.length);throw new Error(l?`'${i.model}.${i.column}' is an implicit many-to-many relation. ${o} require an explicit join model with a FK \u2014 convert to an explicit @relation or use prisma.$queryRaw.`:`Cannot determine FK relationship between '${i.model}' and '${i.entry.type}'. Ensure the FieldMap contains both sides of the relation.`)}if(a.length>1)throw new Error(`${o} do not support composite FK relations ('${i.model}.${i.column}'). Use prisma.$queryRaw.`);return {through:i.hops.map(l=>l.field).join("."),target:i.entry.type,parentKey:a[0].here,targetKey:a[0].there}},Bi=(e,t,r,o,n)=>{let i={operation:"groupBy",model:t.target,args:{by:[t.targetKey],where:r,having:o},extract:t.targetKey},s=Di({__step:e.steps.length});e.steps.push(i);let a={[t.parentKey]:{in:s}},l=n?Ee(a):a;return t.through?jr(t.through,l):l};var fr=e=>({ok:e.length===0,errors:e}),un=(e,t)=>{if(!e.ok)throw new Error(`${t}:
|
|
1
|
+
'use strict';var ut=require('dayjs'),QS=require('dayjs/plugin/isoWeek.js'),ZS=require('dayjs/plugin/quarterOfYear.js'),YS=require('dayjs/plugin/timezone.js'),XS=require('dayjs/plugin/utc.js'),sb=require('dayjs/plugin/isSameOrAfter.js'),ab=require('dayjs/plugin/isSameOrBefore.js'),fastestLevenshtein=require('fastest-levenshtein'),re2js=require('re2js');var _documentCurrentScript=typeof document!=='undefined'?document.currentScript:null;function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var ut__default=/*#__PURE__*/_interopDefault(ut);var QS__default=/*#__PURE__*/_interopDefault(QS);var ZS__default=/*#__PURE__*/_interopDefault(ZS);var YS__default=/*#__PURE__*/_interopDefault(YS);var XS__default=/*#__PURE__*/_interopDefault(XS);var sb__default=/*#__PURE__*/_interopDefault(sb);var ab__default=/*#__PURE__*/_interopDefault(ab);var ys=(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 Ec=typeof global=="object"&&global&&global.Object===Object&&global,Nn=Ec;var Pc=typeof self=="object"&&self&&self.Object===Object&&self,$c=Nn||Pc||Function("return this")(),ee=$c;var vc=ee.Symbol,ye=vc;var Ia=Object.prototype,Ac=Ia.hasOwnProperty,Nc=Ia.toString,Ko=ye?ye.toStringTag:void 0;function Tc(e){var t=Ac.call(e,Ko),r=e[Ko];try{e[Ko]=void 0;var o=!0;}catch{}var n=Nc.call(e);return o&&(t?e[Ko]=r:delete e[Ko]),n}var Va=Tc;var Mc=Object.prototype,Cc=Mc.toString;function kc(e){return Cc.call(e)}var Ba=kc;var _c="[object Null]",Lc="[object Undefined]",qa=ye?ye.toStringTag:void 0;function Fc(e){return e==null?e===void 0?Lc:_c:qa&&qa in Object(e)?Va(e):Ba(e)}var Pe=Fc;function Dc(e){return e!=null&&typeof e=="object"}var re=Dc;var jc="[object Symbol]";function Ic(e){return typeof e=="symbol"||re(e)&&Pe(e)==jc}var Ur=Ic;function Vc(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 Wa=Vc;var Bc=Array.isArray,K=Bc;var Ua=ye?ye.prototype:void 0,Ga=Ua?Ua.toString:void 0;function Ka(e){if(typeof e=="string")return e;if(K(e))return Wa(e,Ka)+"";if(Ur(e))return Ga?Ga.call(e):"";var t=e+"";return t=="0"&&1/e==-Infinity?"-0":t}var za=Ka;function Wc(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var z=Wc;function Uc(e){return e}var Gr=Uc;var Gc="[object AsyncFunction]",Kc="[object Function]",zc="[object GeneratorFunction]",Hc="[object Proxy]";function Jc(e){if(!z(e))return false;var t=Pe(e);return t==Kc||t==zc||t==Gc||t==Hc}var Kr=Jc;var Qc=ee["__core-js_shared__"],Tn=Qc;var Ha=(function(){var e=/[^.]+$/.exec(Tn&&Tn.keys&&Tn.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""})();function Zc(e){return !!Ha&&Ha in e}var Ja=Zc;var Yc=Function.prototype,Xc=Yc.toString;function em(e){if(e!=null){try{return Xc.call(e)}catch{}try{return e+""}catch{}}return ""}var Et=em;var tm=/[\\^$.*+?()[\]{}|]/g,rm=/^\[object .+?Constructor\]$/,om=Function.prototype,nm=Object.prototype,im=om.toString,sm=nm.hasOwnProperty,am=RegExp("^"+im.call(sm).replace(tm,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function lm(e){if(!z(e)||Ja(e))return false;var t=Kr(e)?am:rm;return t.test(Et(e))}var Qa=lm;function pm(e,t){return e?.[t]}var Za=pm;function fm(e,t){var r=Za(e,t);return Qa(r)?r:void 0}var be=fm;var dm=be(ee,"WeakMap"),Mn=dm;var Ya=Object.create,um=(function(){function e(){}return function(t){if(!z(t))return {};if(Ya)return Ya(t);e.prototype=t;var r=new e;return e.prototype=void 0,r}})(),Xa=um;function cm(e,t,r){switch(r.length){case 0:return e.call(t);case 1:return e.call(t,r[0]);case 2:return e.call(t,r[0],r[1]);case 3:return e.call(t,r[0],r[1],r[2])}return e.apply(t,r)}var el=cm;function mm(e,t){var r=-1,o=e.length;for(t||(t=Array(o));++r<o;)t[r]=e[r];return t}var Cn=mm;var gm=800,ym=16,hm=Date.now;function wm(e){var t=0,r=0;return function(){var o=hm(),n=ym-(o-r);if(r=o,n>0){if(++t>=gm)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}var tl=wm;function Sm(e){return function(){return e}}var rl=Sm;var bm=(function(){try{var e=be(Object,"defineProperty");return e({},"",{}),e}catch{}})(),zr=bm;var Rm=zr?function(e,t){return zr(e,"toString",{configurable:true,enumerable:false,value:rl(t),writable:true})}:Gr,ol=Rm;var Om=tl(ol),nl=Om;function xm(e,t){for(var r=-1,o=e==null?0:e.length;++r<o&&t(e[r],r,e)!==false;);return e}var il=xm;var Em=9007199254740991,Pm=/^(?:0|[1-9]\d*)$/;function $m(e,t){var r=typeof e;return t=t??Em,!!t&&(r=="number"||r!="symbol"&&Pm.test(e))&&e>-1&&e%1==0&&e<t}var Bt=$m;function vm(e,t,r){t=="__proto__"&&zr?zr(e,t,{configurable:true,enumerable:true,value:r,writable:true}):e[t]=r;}var Hr=vm;function Am(e,t){return e===t||e!==e&&t!==t}var Xe=Am;var Nm=Object.prototype,Tm=Nm.hasOwnProperty;function Mm(e,t,r){var o=e[t];(!(Tm.call(e,t)&&Xe(o,r))||r===void 0&&!(t in e))&&Hr(e,t,r);}var Jr=Mm;function Cm(e,t,r,o){var n=!r;r||(r={});for(var i=-1,s=t.length;++i<s;){var a=t[i],l=o?o(r[a],e[a],a,r,e):void 0;l===void 0&&(l=e[a]),n?Hr(r,a,l):Jr(r,a,l);}return r}var et=Cm;var sl=Math.max;function km(e,t,r){return t=sl(t===void 0?e.length-1:t,0),function(){for(var o=arguments,n=-1,i=sl(o.length-t,0),s=Array(i);++n<i;)s[n]=o[t+n];n=-1;for(var a=Array(t+1);++n<t;)a[n]=o[n];return a[t]=r(s),el(e,this,a)}}var al=km;function _m(e,t){return nl(al(e,t,Gr),e+"")}var ll=_m;var Lm=9007199254740991;function Fm(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=Lm}var Qr=Fm;function Dm(e){return e!=null&&Qr(e.length)&&!Kr(e)}var tt=Dm;function jm(e,t,r){if(!z(r))return false;var o=typeof t;return (o=="number"?tt(r)&&Bt(t,r.length):o=="string"&&t in r)?Xe(r[t],e):false}var kn=jm;function Im(e){return ll(function(t,r){var o=-1,n=r.length,i=n>1?r[n-1]:void 0,s=n>2?r[2]:void 0;for(i=e.length>3&&typeof i=="function"?(n--,i):void 0,s&&kn(r[0],r[1],s)&&(i=n<3?void 0:i,n=1),t=Object(t);++o<n;){var a=r[o];a&&e(t,a,o,i);}return t})}var pl=Im;var Vm=Object.prototype;function Bm(e){var t=e&&e.constructor,r=typeof t=="function"&&t.prototype||Vm;return e===r}var Zr=Bm;function qm(e,t){for(var r=-1,o=Array(e);++r<e;)o[r]=t(r);return o}var fl=qm;var Wm="[object Arguments]";function Um(e){return re(e)&&Pe(e)==Wm}var hs=Um;var dl=Object.prototype,Gm=dl.hasOwnProperty,Km=dl.propertyIsEnumerable,zm=hs((function(){return arguments})())?hs:function(e){return re(e)&&Gm.call(e,"callee")&&!Km.call(e,"callee")},wr=zm;function Hm(){return false}var ul=Hm;var gl=typeof exports=="object"&&exports&&!exports.nodeType&&exports,cl=gl&&typeof module=="object"&&module&&!module.nodeType&&module,Jm=cl&&cl.exports===gl,ml=Jm?ee.Buffer:void 0,Qm=ml?ml.isBuffer:void 0,Zm=Qm||ul,Pt=Zm;var Ym="[object Arguments]",Xm="[object Array]",eg="[object Boolean]",tg="[object Date]",rg="[object Error]",og="[object Function]",ng="[object Map]",ig="[object Number]",sg="[object Object]",ag="[object RegExp]",lg="[object Set]",pg="[object String]",fg="[object WeakMap]",dg="[object ArrayBuffer]",ug="[object DataView]",cg="[object Float32Array]",mg="[object Float64Array]",gg="[object Int8Array]",yg="[object Int16Array]",hg="[object Int32Array]",wg="[object Uint8Array]",Sg="[object Uint8ClampedArray]",bg="[object Uint16Array]",Rg="[object Uint32Array]",U={};U[cg]=U[mg]=U[gg]=U[yg]=U[hg]=U[wg]=U[Sg]=U[bg]=U[Rg]=true;U[Ym]=U[Xm]=U[dg]=U[eg]=U[ug]=U[tg]=U[rg]=U[og]=U[ng]=U[ig]=U[sg]=U[ag]=U[lg]=U[pg]=U[fg]=false;function Og(e){return re(e)&&Qr(e.length)&&!!U[Pe(e)]}var yl=Og;function xg(e){return function(t){return e(t)}}var Yr=xg;var hl=typeof exports=="object"&&exports&&!exports.nodeType&&exports,zo=hl&&typeof module=="object"&&module&&!module.nodeType&&module,Eg=zo&&zo.exports===hl,ws=Eg&&Nn.process,Pg=(function(){try{var e=zo&&zo.require&&zo.require("util").types;return e||ws&&ws.binding&&ws.binding("util")}catch{}})(),$t=Pg;var wl=$t&&$t.isTypedArray,$g=wl?Yr(wl):yl,Xr=$g;var vg=Object.prototype,Ag=vg.hasOwnProperty;function Ng(e,t){var r=K(e),o=!r&&wr(e),n=!r&&!o&&Pt(e),i=!r&&!o&&!n&&Xr(e),s=r||o||n||i,a=s?fl(e.length,String):[],l=a.length;for(var f in e)(t||Ag.call(e,f))&&!(s&&(f=="length"||n&&(f=="offset"||f=="parent")||i&&(f=="buffer"||f=="byteLength"||f=="byteOffset")||Bt(f,l)))&&a.push(f);return a}var _n=Ng;function Tg(e,t){return function(r){return e(t(r))}}var Ln=Tg;var Mg=Ln(Object.keys,Object),Sl=Mg;var Cg=Object.prototype,kg=Cg.hasOwnProperty;function _g(e){if(!Zr(e))return Sl(e);var t=[];for(var r in Object(e))kg.call(e,r)&&r!="constructor"&&t.push(r);return t}var bl=_g;function Lg(e){return tt(e)?_n(e):bl(e)}var rt=Lg;function Fg(e){var t=[];if(e!=null)for(var r in Object(e))t.push(r);return t}var Rl=Fg;var Dg=Object.prototype,jg=Dg.hasOwnProperty;function Ig(e){if(!z(e))return Rl(e);var t=Zr(e),r=[];for(var o in e)o=="constructor"&&(t||!jg.call(e,o))||r.push(o);return r}var Ol=Ig;function Vg(e){return tt(e)?_n(e,true):Ol(e)}var ot=Vg;var Bg=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,qg=/^\w*$/;function Wg(e,t){if(K(e))return false;var r=typeof e;return r=="number"||r=="symbol"||r=="boolean"||e==null||Ur(e)?true:qg.test(e)||!Bg.test(e)||t!=null&&e in Object(t)}var eo=Wg;var Ug=be(Object,"create"),vt=Ug;function Gg(){this.__data__=vt?vt(null):{},this.size=0;}var xl=Gg;function Kg(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var El=Kg;var zg="__lodash_hash_undefined__",Hg=Object.prototype,Jg=Hg.hasOwnProperty;function Qg(e){var t=this.__data__;if(vt){var r=t[e];return r===zg?void 0:r}return Jg.call(t,e)?t[e]:void 0}var Pl=Qg;var Zg=Object.prototype,Yg=Zg.hasOwnProperty;function Xg(e){var t=this.__data__;return vt?t[e]!==void 0:Yg.call(t,e)}var $l=Xg;var ey="__lodash_hash_undefined__";function ty(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=vt&&t===void 0?ey:t,this}var vl=ty;function to(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var o=e[t];this.set(o[0],o[1]);}}to.prototype.clear=xl;to.prototype.delete=El;to.prototype.get=Pl;to.prototype.has=$l;to.prototype.set=vl;var Ss=to;function ry(){this.__data__=[],this.size=0;}var Al=ry;function oy(e,t){for(var r=e.length;r--;)if(Xe(e[r][0],t))return r;return -1}var qt=oy;var ny=Array.prototype,iy=ny.splice;function sy(e){var t=this.__data__,r=qt(t,e);if(r<0)return false;var o=t.length-1;return r==o?t.pop():iy.call(t,r,1),--this.size,true}var Nl=sy;function ay(e){var t=this.__data__,r=qt(t,e);return r<0?void 0:t[r][1]}var Tl=ay;function ly(e){return qt(this.__data__,e)>-1}var Ml=ly;function py(e,t){var r=this.__data__,o=qt(r,e);return o<0?(++this.size,r.push([e,t])):r[o][1]=t,this}var Cl=py;function ro(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var o=e[t];this.set(o[0],o[1]);}}ro.prototype.clear=Al;ro.prototype.delete=Nl;ro.prototype.get=Tl;ro.prototype.has=Ml;ro.prototype.set=Cl;var Wt=ro;var fy=be(ee,"Map"),Ut=fy;function dy(){this.size=0,this.__data__={hash:new Ss,map:new(Ut||Wt),string:new Ss};}var kl=dy;function uy(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var _l=uy;function cy(e,t){var r=e.__data__;return _l(t)?r[typeof t=="string"?"string":"hash"]:r.map}var Gt=cy;function my(e){var t=Gt(this,e).delete(e);return this.size-=t?1:0,t}var Ll=my;function gy(e){return Gt(this,e).get(e)}var Fl=gy;function yy(e){return Gt(this,e).has(e)}var Dl=yy;function hy(e,t){var r=Gt(this,e),o=r.size;return r.set(e,t),this.size+=r.size==o?0:1,this}var jl=hy;function oo(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var o=e[t];this.set(o[0],o[1]);}}oo.prototype.clear=kl;oo.prototype.delete=Ll;oo.prototype.get=Fl;oo.prototype.has=Dl;oo.prototype.set=jl;var Sr=oo;var wy="Expected a function";function bs(e,t){if(typeof e!="function"||t!=null&&typeof t!="function")throw new TypeError(wy);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(bs.Cache||Sr),r}bs.Cache=Sr;var Il=bs;var Sy=500;function by(e){var t=Il(e,function(o){return r.size===Sy&&r.clear(),o}),r=t.cache;return t}var Vl=by;var Ry=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Oy=/\\(\\)?/g,xy=Vl(function(e){var t=[];return e.charCodeAt(0)===46&&t.push(""),e.replace(Ry,function(r,o,n,i){t.push(n?i.replace(Oy,"$1"):o||r);}),t}),Bl=xy;function Ey(e){return e==null?"":za(e)}var ql=Ey;function Py(e,t){return K(e)?e:eo(e,t)?[e]:Bl(ql(e))}var no=Py;function vy(e){if(typeof e=="string"||Ur(e))return e;var t=e+"";return t=="0"&&1/e==-Infinity?"-0":t}var nt=vy;function Ay(e,t){t=no(t,e);for(var r=0,o=t.length;e!=null&&r<o;)e=e[nt(t[r++])];return r&&r==o?e:void 0}var Fn=Ay;function Ny(e,t,r){var o=e==null?void 0:Fn(e,t);return o===void 0?r:o}var Wl=Ny;function Ty(e,t){for(var r=-1,o=t.length,n=e.length;++r<o;)e[n+r]=t[r];return e}var Dn=Ty;var My=Ln(Object.getPrototypeOf,Object),io=My;var Cy="[object Object]",ky=Function.prototype,_y=Object.prototype,Ul=ky.toString,Ly=_y.hasOwnProperty,Fy=Ul.call(Object);function Dy(e){if(!re(e)||Pe(e)!=Cy)return false;var t=io(e);if(t===null)return true;var r=Ly.call(t,"constructor")&&t.constructor;return typeof r=="function"&&r instanceof r&&Ul.call(r)==Fy}var $e=Dy;function jy(){this.__data__=new Wt,this.size=0;}var Gl=jy;function Iy(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var Kl=Iy;function Vy(e){return this.__data__.get(e)}var zl=Vy;function By(e){return this.__data__.has(e)}var Hl=By;var qy=200;function Wy(e,t){var r=this.__data__;if(r instanceof Wt){var o=r.__data__;if(!Ut||o.length<qy-1)return o.push([e,t]),this.size=++r.size,this;r=this.__data__=new Sr(o);}return r.set(e,t),this.size=r.size,this}var Jl=Wy;function so(e){var t=this.__data__=new Wt(e);this.size=t.size;}so.prototype.clear=Gl;so.prototype.delete=Kl;so.prototype.get=zl;so.prototype.has=Hl;so.prototype.set=Jl;var it=so;function Uy(e,t){return e&&et(t,rt(t),e)}var Ql=Uy;function Gy(e,t){return e&&et(t,ot(t),e)}var Zl=Gy;var tp=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Yl=tp&&typeof module=="object"&&module&&!module.nodeType&&module,Ky=Yl&&Yl.exports===tp,Xl=Ky?ee.Buffer:void 0,ep=Xl?Xl.allocUnsafe:void 0;function zy(e,t){if(t)return e.slice();var r=e.length,o=ep?ep(r):new e.constructor(r);return e.copy(o),o}var jn=zy;function Hy(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 rp=Hy;function Jy(){return []}var In=Jy;var Qy=Object.prototype,Zy=Qy.propertyIsEnumerable,op=Object.getOwnPropertySymbols,Yy=op?function(e){return e==null?[]:(e=Object(e),rp(op(e),function(t){return Zy.call(e,t)}))}:In,ao=Yy;function Xy(e,t){return et(e,ao(e),t)}var np=Xy;var eh=Object.getOwnPropertySymbols,th=eh?function(e){for(var t=[];e;)Dn(t,ao(e)),e=io(e);return t}:In,Vn=th;function rh(e,t){return et(e,Vn(e),t)}var ip=rh;function oh(e,t,r){var o=t(e);return K(e)?o:Dn(o,r(e))}var Bn=oh;function nh(e){return Bn(e,rt,ao)}var Ho=nh;function ih(e){return Bn(e,ot,Vn)}var sp=ih;var sh=be(ee,"DataView"),qn=sh;var ah=be(ee,"Promise"),Wn=ah;var lh=be(ee,"Set"),Un=lh;var ap="[object Map]",ph="[object Object]",lp="[object Promise]",pp="[object Set]",fp="[object WeakMap]",dp="[object DataView]",fh=Et(qn),dh=Et(Ut),uh=Et(Wn),ch=Et(Un),mh=Et(Mn),br=Pe;(qn&&br(new qn(new ArrayBuffer(1)))!=dp||Ut&&br(new Ut)!=ap||Wn&&br(Wn.resolve())!=lp||Un&&br(new Un)!=pp||Mn&&br(new Mn)!=fp)&&(br=function(e){var t=Pe(e),r=t==ph?e.constructor:void 0,o=r?Et(r):"";if(o)switch(o){case fh:return dp;case dh:return ap;case uh:return lp;case ch:return pp;case mh:return fp}return t});var At=br;var gh=Object.prototype,yh=gh.hasOwnProperty;function hh(e){var t=e.length,r=new e.constructor(t);return t&&typeof e[0]=="string"&&yh.call(e,"index")&&(r.index=e.index,r.input=e.input),r}var up=hh;var wh=ee.Uint8Array,lo=wh;function Sh(e){var t=new e.constructor(e.byteLength);return new lo(t).set(new lo(e)),t}var po=Sh;function bh(e,t){var r=t?po(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.byteLength)}var cp=bh;var Rh=/\w*$/;function Oh(e){var t=new e.constructor(e.source,Rh.exec(e));return t.lastIndex=e.lastIndex,t}var mp=Oh;var gp=ye?ye.prototype:void 0,yp=gp?gp.valueOf:void 0;function xh(e){return yp?Object(yp.call(e)):{}}var hp=xh;function Eh(e,t){var r=t?po(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.length)}var Gn=Eh;var Ph="[object Boolean]",$h="[object Date]",vh="[object Map]",Ah="[object Number]",Nh="[object RegExp]",Th="[object Set]",Mh="[object String]",Ch="[object Symbol]",kh="[object ArrayBuffer]",_h="[object DataView]",Lh="[object Float32Array]",Fh="[object Float64Array]",Dh="[object Int8Array]",jh="[object Int16Array]",Ih="[object Int32Array]",Vh="[object Uint8Array]",Bh="[object Uint8ClampedArray]",qh="[object Uint16Array]",Wh="[object Uint32Array]";function Uh(e,t,r){var o=e.constructor;switch(t){case kh:return po(e);case Ph:case $h:return new o(+e);case _h:return cp(e,r);case Lh:case Fh:case Dh:case jh:case Ih:case Vh:case Bh:case qh:case Wh:return Gn(e,r);case vh:return new o;case Ah:case Mh:return new o(e);case Nh:return mp(e);case Th:return new o;case Ch:return hp(e)}}var wp=Uh;function Gh(e){return typeof e.constructor=="function"&&!Zr(e)?Xa(io(e)):{}}var Kn=Gh;var Kh="[object Map]";function zh(e){return re(e)&&At(e)==Kh}var Sp=zh;var bp=$t&&$t.isMap,Hh=bp?Yr(bp):Sp,Rp=Hh;var Jh="[object Set]";function Qh(e){return re(e)&&At(e)==Jh}var Op=Qh;var xp=$t&&$t.isSet,Zh=xp?Yr(xp):Op,Ep=Zh;var Yh=1,Xh=2,ew=4,Pp="[object Arguments]",tw="[object Array]",rw="[object Boolean]",ow="[object Date]",nw="[object Error]",$p="[object Function]",iw="[object GeneratorFunction]",sw="[object Map]",aw="[object Number]",vp="[object Object]",lw="[object RegExp]",pw="[object Set]",fw="[object String]",dw="[object Symbol]",uw="[object WeakMap]",cw="[object ArrayBuffer]",mw="[object DataView]",gw="[object Float32Array]",yw="[object Float64Array]",hw="[object Int8Array]",ww="[object Int16Array]",Sw="[object Int32Array]",bw="[object Uint8Array]",Rw="[object Uint8ClampedArray]",Ow="[object Uint16Array]",xw="[object Uint32Array]",q={};q[Pp]=q[tw]=q[cw]=q[mw]=q[rw]=q[ow]=q[gw]=q[yw]=q[hw]=q[ww]=q[Sw]=q[sw]=q[aw]=q[vp]=q[lw]=q[pw]=q[fw]=q[dw]=q[bw]=q[Rw]=q[Ow]=q[xw]=true;q[nw]=q[$p]=q[uw]=false;function zn(e,t,r,o,n,i){var s,a=t&Yh,l=t&Xh,f=t&ew;if(r&&(s=n?r(e,o,n,i):r(e)),s!==void 0)return s;if(!z(e))return e;var p=K(e);if(p){if(s=up(e),!a)return Cn(e,s)}else {var d=At(e),u=d==$p||d==iw;if(Pt(e))return jn(e,a);if(d==vp||d==Pp||u&&!n){if(s=l||u?{}:Kn(e),!a)return l?ip(e,Zl(s,e)):np(e,Ql(s,e))}else {if(!q[d])return n?e:{};s=wp(e,d,a);}}i||(i=new it);var c=i.get(e);if(c)return c;i.set(e,s),Ep(e)?e.forEach(function(y){s.add(zn(y,t,r,y,e,i));}):Rp(e)&&e.forEach(function(y,S){s.set(S,zn(y,t,r,S,e,i));});var g=f?l?sp:Ho:l?ot:rt,m=p?void 0:g(e);return il(m||e,function(y,S){m&&(S=y,y=e[S]),Jr(s,S,zn(y,t,r,S,e,i));}),s}var Hn=zn;var Ew=1,Pw=4;function $w(e){return Hn(e,Ew|Pw)}var Jn=$w;var vw=1,Aw=4;function Nw(e,t){return t=typeof t=="function"?t:void 0,Hn(e,vw|Aw,t)}var Rs=Nw;var Tw="__lodash_hash_undefined__";function Mw(e){return this.__data__.set(e,Tw),this}var Ap=Mw;function Cw(e){return this.__data__.has(e)}var Np=Cw;function Qn(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Sr;++t<r;)this.add(e[t]);}Qn.prototype.add=Qn.prototype.push=Ap;Qn.prototype.has=Np;var Tp=Qn;function kw(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 Zn=kw;function _w(e,t){return e.has(t)}var Mp=_w;var Lw=1,Fw=2;function Dw(e,t,r,o,n,i){var s=r&Lw,a=e.length,l=t.length;if(a!=l&&!(s&&l>a))return false;var f=i.get(e),p=i.get(t);if(f&&p)return f==t&&p==e;var d=-1,u=true,c=r&Fw?new Tp:void 0;for(i.set(e,t),i.set(t,e);++d<a;){var g=e[d],m=t[d];if(o)var y=s?o(m,g,d,t,e,i):o(g,m,d,e,t,i);if(y!==void 0){if(y)continue;u=false;break}if(c){if(!Zn(t,function(S,b){if(!Mp(c,b)&&(g===S||n(g,S,r,o,i)))return c.push(b)})){u=false;break}}else if(!(g===m||n(g,m,r,o,i))){u=false;break}}return i.delete(e),i.delete(t),u}var Yn=Dw;function jw(e){var t=-1,r=Array(e.size);return e.forEach(function(o,n){r[++t]=[n,o];}),r}var Cp=jw;function Iw(e){var t=-1,r=Array(e.size);return e.forEach(function(o){r[++t]=o;}),r}var kp=Iw;var Vw=1,Bw=2,qw="[object Boolean]",Ww="[object Date]",Uw="[object Error]",Gw="[object Map]",Kw="[object Number]",zw="[object RegExp]",Hw="[object Set]",Jw="[object String]",Qw="[object Symbol]",Zw="[object ArrayBuffer]",Yw="[object DataView]",_p=ye?ye.prototype:void 0,Os=_p?_p.valueOf:void 0;function Xw(e,t,r,o,n,i,s){switch(r){case Yw:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return false;e=e.buffer,t=t.buffer;case Zw:return !(e.byteLength!=t.byteLength||!i(new lo(e),new lo(t)));case qw:case Ww:case Kw:return Xe(+e,+t);case Uw:return e.name==t.name&&e.message==t.message;case zw:case Jw:return e==t+"";case Gw:var a=Cp;case Hw:var l=o&Vw;if(a||(a=kp),e.size!=t.size&&!l)return false;var f=s.get(e);if(f)return f==t;o|=Bw,s.set(e,t);var p=Yn(a(e),a(t),o,n,i,s);return s.delete(e),p;case Qw:if(Os)return Os.call(e)==Os.call(t)}return false}var Lp=Xw;var eS=1,tS=Object.prototype,rS=tS.hasOwnProperty;function oS(e,t,r,o,n,i){var s=r&eS,a=Ho(e),l=a.length,f=Ho(t),p=f.length;if(l!=p&&!s)return false;for(var d=l;d--;){var u=a[d];if(!(s?u in t:rS.call(t,u)))return false}var c=i.get(e),g=i.get(t);if(c&&g)return c==t&&g==e;var m=true;i.set(e,t),i.set(t,e);for(var y=s;++d<l;){u=a[d];var S=e[u],b=t[u];if(o)var R=s?o(b,S,u,t,e,i):o(S,b,u,e,t,i);if(!(R===void 0?S===b||n(S,b,r,o,i):R)){m=false;break}y||(y=u=="constructor");}if(m&&!y){var w=e.constructor,E=t.constructor;w!=E&&"constructor"in e&&"constructor"in t&&!(typeof w=="function"&&w instanceof w&&typeof E=="function"&&E instanceof E)&&(m=false);}return i.delete(e),i.delete(t),m}var Fp=oS;var nS=1,Dp="[object Arguments]",jp="[object Array]",Xn="[object Object]",iS=Object.prototype,Ip=iS.hasOwnProperty;function sS(e,t,r,o,n,i){var s=K(e),a=K(t),l=s?jp:At(e),f=a?jp:At(t);l=l==Dp?Xn:l,f=f==Dp?Xn:f;var p=l==Xn,d=f==Xn,u=l==f;if(u&&Pt(e)){if(!Pt(t))return false;s=true,p=false;}if(u&&!p)return i||(i=new it),s||Xr(e)?Yn(e,t,r,o,n,i):Lp(e,t,l,r,o,n,i);if(!(r&nS)){var c=p&&Ip.call(e,"__wrapped__"),g=d&&Ip.call(t,"__wrapped__");if(c||g){var m=c?e.value():e,y=g?t.value():t;return i||(i=new it),n(m,y,r,o,i)}}return u?(i||(i=new it),Fp(e,t,r,o,n,i)):false}var Vp=sS;function Bp(e,t,r,o,n){return e===t?true:e==null||t==null||!re(e)&&!re(t)?e!==e&&t!==t:Vp(e,t,r,o,Bp,n)}var fo=Bp;var aS=1,lS=2;function pS(e,t,r,o){var n=r.length,i=n,s=!o;if(e==null)return !i;for(e=Object(e);n--;){var a=r[n];if(s&&a[2]?a[1]!==e[a[0]]:!(a[0]in e))return false}for(;++n<i;){a=r[n];var l=a[0],f=e[l],p=a[1];if(s&&a[2]){if(f===void 0&&!(l in e))return false}else {var d=new it;if(o)var u=o(f,p,l,e,t,d);if(!(u===void 0?fo(p,f,aS|lS,o,d):u))return false}}return true}var qp=pS;function fS(e){return e===e&&!z(e)}var ei=fS;function dS(e){for(var t=rt(e),r=t.length;r--;){var o=t[r],n=e[o];t[r]=[o,n,ei(n)];}return t}var Wp=dS;function uS(e,t){return function(r){return r==null?false:r[e]===t&&(t!==void 0||e in Object(r))}}var ti=uS;function cS(e){var t=Wp(e);return t.length==1&&t[0][2]?ti(t[0][0],t[0][1]):function(r){return r===e||qp(r,e,t)}}var Up=cS;function mS(e,t){return e!=null&&t in Object(e)}var Gp=mS;function gS(e,t,r){t=no(t,e);for(var o=-1,n=t.length,i=false;++o<n;){var s=nt(t[o]);if(!(i=e!=null&&r(e,s)))break;e=e[s];}return i||++o!=n?i:(n=e==null?0:e.length,!!n&&Qr(n)&&Bt(s,n)&&(K(e)||wr(e)))}var Kp=gS;function yS(e,t){return e!=null&&Kp(e,t,Gp)}var zp=yS;var hS=1,wS=2;function SS(e,t){return eo(e)&&ei(t)?ti(nt(e),t):function(r){var o=Wl(r,e);return o===void 0&&o===t?zp(r,e):fo(t,o,hS|wS)}}var Hp=SS;function bS(e){return function(t){return t?.[e]}}var Jp=bS;function RS(e){return function(t){return Fn(t,e)}}var Qp=RS;function OS(e){return eo(e)?Jp(nt(e)):Qp(e)}var Zp=OS;function xS(e){return typeof e=="function"?e:e==null?Gr:typeof e=="object"?K(e)?Hp(e[0],e[1]):Up(e):Zp(e)}var Yp=xS;function ES(e){return function(t,r,o){for(var n=-1,i=Object(t),s=o(t),a=s.length;a--;){var l=s[e?a:++n];if(r(i[l],l,i)===false)break}return t}}var Xp=ES;var PS=Xp(),ri=PS;function $S(e,t){return e&&ri(e,t,rt)}var ef=$S;function vS(e,t){return function(r,o){if(r==null)return r;if(!tt(r))return e(r,o);for(var n=r.length,i=t?n:-1,s=Object(r);(t?i--:++i<n)&&o(s[i],i,s)!==false;);return r}}var tf=vS;var AS=tf(ef),rf=AS;function NS(e,t,r){(r!==void 0&&!Xe(e[t],r)||r===void 0&&!(t in e))&&Hr(e,t,r);}var Jo=NS;function TS(e){return re(e)&&tt(e)}var of=TS;function MS(e,t){if(!(t==="constructor"&&typeof e[t]=="function")&&t!="__proto__")return e[t]}var Qo=MS;function CS(e){return et(e,ot(e))}var nf=CS;function kS(e,t,r,o,n,i,s){var a=Qo(e,r),l=Qo(t,r),f=s.get(l);if(f){Jo(e,r,f);return}var p=i?i(a,l,r+"",e,t,s):void 0,d=p===void 0;if(d){var u=K(l),c=!u&&Pt(l),g=!u&&!c&&Xr(l);p=l,u||c||g?K(a)?p=a:of(a)?p=Cn(a):c?(d=false,p=jn(l,true)):g?(d=false,p=Gn(l,true)):p=[]:$e(l)||wr(l)?(p=a,wr(a)?p=nf(a):(!z(a)||Kr(a))&&(p=Kn(l))):d=false;}d&&(s.set(l,p),n(p,l,o,i,s),s.delete(l)),Jo(e,r,p);}var sf=kS;function af(e,t,r,o,n){e!==t&&ri(t,function(i,s){if(n||(n=new it),z(i))sf(e,t,s,r,af,o,n);else {var a=o?o(Qo(e,s),i,s+"",e,t,n):void 0;a===void 0&&(a=i),Jo(e,s,a);}},ot);}var lf=af;function _S(e,t){return fo(e,t)}var Rr=_S;var LS=pl(function(e,t,r){lf(e,t,r);}),xs=LS;function FS(e,t,r,o){if(!z(e))return e;t=no(t,e);for(var n=-1,i=t.length,s=i-1,a=e;a!=null&&++n<i;){var l=nt(t[n]),f=r;if(l==="__proto__"||l==="constructor"||l==="prototype")return e;if(n!=s){var p=a[l];f=o?o(p,l,a):void 0,f===void 0&&(f=z(p)?p:Bt(t[n+1])?[]:{});}Jr(a,l,f),a=a[l];}return e}var pf=FS;function DS(e,t,r){return e==null?e:pf(e,t,r)}var Es=DS;function jS(e,t){var r;return rf(e,function(o,n,i){return r=t(o,n,i),!r}),!!r}var ff=jS;function IS(e,t,r){var o=K(e)?Zn:ff;return r&&kn(e,t,r)&&(t=void 0),o(e,Yp(t))}var Ps=IS;var VS=/^(\$+)\.(.*)$/,F=e=>{let t=VS.exec(e);return t?{depth:t[1].length,path:t[2]}:null},$s=(e,t,r)=>`Scope ref '${e}' needs depth ${t} but only ${r} ${r===1?"scope is":"scopes are"} in reach`,ke=(e,t)=>{let r=F(e);return r?r.depth>t.length?{outOfBounds:$s(e,r.depth,t.length)}:{scope:t[t.length-r.depth],path:r.path}:{scope:t[t.length-1],path:e}},BS=/\[(\d+)\]|\[(["'])(.*?)\2\]|([^.[\]]+)/g,qS=e=>e===""?[""]:[...e.matchAll(BS)].map(t=>t[1]??t[3]??t[4]),WS=(e,t)=>{if(e==null)return;let r=Object(e);return Object.hasOwn(r,t)?r[t]:void 0},me=(e,t)=>qS(t).reduce(WS,e),Kt=(e,t)=>{let r=ke(e,t);if("outOfBounds"in r)throw new Error(r.outOfBounds);return me(r.scope,r.path)},df=(e,t)=>F(e)?Kt(e,t):me(t[0],e),Zo=(e,t)=>`Scope ref '${e}' is not supported by ${t}(); evaluate with check()`,oi=(e,t)=>{if(!(!("field"in e)||typeof e.field!="string")&&F(e.field))throw new Error(Zo(e.field,t))};var uf={string:{caseInsensitive:false,fuzzy:false},prismaOptions:{datasource:{provider:"postgresql"}}},uo=Jn(uf),vs=e=>Rs(e,t=>typeof t=="object"&&t!==null&&!Array.isArray(t)&&!$e(t)?t:void 0),US=e=>e!=null&&typeof e.then=="function",Or={set:(e,t)=>{Es(uo,e,vs(t));},get:e=>me(uo,e),reset:()=>{uo=Jn(uf);},with:(e,t)=>{let r=uo;uo=xs(vs(r),vs(e));try{let o=t();if(US(o))throw new Error("engineGlobals.with() callback must be synchronous (it returned a Promise).");return o}finally{uo=r;}}},GS=new Set(["postgresql","cockroachdb","mongodb"]),cf=e=>GS.has(e),pe=e=>e??Or.get("string.caseInsensitive")??false,ni=e=>{let t=e??Or.get("string.fuzzy")??false;return t?t===true?{}:t:false};var h={equals:"equals",notEquals:"notEquals",lessThan:"lessThan",lessThanEquals:"lessThanEquals",greaterThan:"greaterThan",greaterThanEquals:"greaterThanEquals",contains:"contains",notContains:"notContains",in:"in",notIn:"notIn",matches:"matches",notMatches:"notMatches",between:"between",notBetween:"notBetween",isEmpty:"isEmpty",notEmpty:"notEmpty",exists:"exists",notExists:"notExists",startsWith:"startsWith",notStartsWith:"notStartsWith",endsWith:"endsWith",notEndsWith:"notEndsWith"},$={all:"all",any:"any",none:"none",atLeast:"atLeast",atMost:"atMost",exactly:"exactly",empty:"empty",notEmpty:"notEmpty"},v={before:"before",after:"after",onOrBefore:"onOrBefore",onOrAfter:"onOrAfter",notBefore:"notBefore",notAfter:"notAfter",within:"within",notWithin:"notWithin",between:"between",notBetween:"notBetween",dayIn:"dayIn",dayNotIn:"dayNotIn"};var H={String:"String",Boolean:"Boolean",Int:"Int",BigInt:"BigInt",Float:"Float",Decimal:"Decimal",DateTime:"DateTime",Json:"Json",Bytes:"Bytes",Enum:"Enum"},Be=["Int","Float","Decimal","BigInt"],co=["String",...Be,"DateTime"],zt=["String"],ii=["String","Boolean","Int","BigInt","Float","Decimal","DateTime","Enum"],si=Object.values(H),mf=si,KS={check:"check",toPrisma:"toPrisma",toSql:"toSql"},pi=e=>typeof e=="string"&&Object.hasOwn(H,e),M=["check","toPrisma","toSql"],mo=["check","toPrisma"],ai=["check","toSql"],Tt={none:"none",scalar:"scalar",ordered:"ordered",array:"array",string:"string",pattern:"pattern",range:"range",dateValue:"dateValue",dateRange:"dateRange",dateWindow:"dateWindow",dayList:"dayList",count:"count",predicate:"predicate"},go={[h.equals]:{kinds:ii,targets:M,valueShape:"scalar"},[h.notEquals]:{negates:h.equals,kinds:ii,targets:M,valueShape:"scalar"},[h.lessThan]:{kinds:co,targets:M,valueShape:"ordered",comparator:"lt"},[h.lessThanEquals]:{kinds:co,targets:M,valueShape:"ordered",comparator:"lte"},[h.greaterThan]:{kinds:co,targets:M,valueShape:"ordered",comparator:"gt"},[h.greaterThanEquals]:{kinds:co,targets:M,valueShape:"ordered",comparator:"gte"},[h.in]:{kinds:ii,targets:M,valueShape:"array"},[h.notIn]:{negates:h.in,kinds:ii,targets:M,valueShape:"array"},[h.contains]:{kinds:zt,targets:M,valueShape:"string"},[h.notContains]:{negates:h.contains,kinds:zt,targets:M,valueShape:"string"},[h.startsWith]:{kinds:zt,targets:M,valueShape:"string"},[h.notStartsWith]:{negates:h.startsWith,kinds:zt,targets:M,valueShape:"string"},[h.endsWith]:{kinds:zt,targets:M,valueShape:"string"},[h.notEndsWith]:{negates:h.endsWith,kinds:zt,targets:M,valueShape:"string"},[h.matches]:{kinds:zt,targets:ai,valueShape:"pattern"},[h.notMatches]:{negates:h.matches,kinds:zt,targets:ai,valueShape:"pattern"},[h.between]:{kinds:co,targets:M,valueShape:"range"},[h.notBetween]:{negates:h.between,kinds:co,targets:M,valueShape:"range"},[h.isEmpty]:{kinds:mf,targets:M,valueShape:"none"},[h.notEmpty]:{kinds:mf,targets:M,valueShape:"none"},[h.exists]:{kinds:si,targets:M,valueShape:"none"},[h.notExists]:{kinds:si,targets:M,valueShape:"none"}},yo={[v.before]:{kinds:["DateTime"],targets:M,valueShape:"dateValue",acceptsExpr:true,comparator:"lt"},[v.after]:{kinds:["DateTime"],targets:M,valueShape:"dateValue",acceptsExpr:true,comparator:"gt"},[v.onOrBefore]:{kinds:["DateTime"],targets:M,valueShape:"dateValue",acceptsExpr:true,comparator:"lte"},[v.onOrAfter]:{kinds:["DateTime"],targets:M,valueShape:"dateValue",acceptsExpr:true,comparator:"gte"},[v.notBefore]:{negates:v.before,kinds:["DateTime"],targets:M,valueShape:"dateValue",acceptsExpr:true,comparator:"gte"},[v.notAfter]:{negates:v.after,kinds:["DateTime"],targets:M,valueShape:"dateValue",acceptsExpr:true,comparator:"lte"},[v.within]:{kinds:["DateTime"],targets:M,valueShape:"dateWindow",acceptsExpr:true},[v.notWithin]:{negates:v.within,kinds:["DateTime"],targets:M,valueShape:"dateWindow",acceptsExpr:true},[v.between]:{kinds:["DateTime"],targets:M,valueShape:"dateRange",acceptsExpr:true},[v.notBetween]:{negates:v.between,kinds:["DateTime"],targets:M,valueShape:"dateRange",acceptsExpr:true},[v.dayIn]:{kinds:["DateTime"],targets:ai,valueShape:"dayList",acceptsExpr:false},[v.dayNotIn]:{negates:v.dayIn,kinds:["DateTime"],targets:ai,valueShape:"dayList",acceptsExpr:false}},li={[$.all]:{targets:mo,valueShape:"predicate"},[$.any]:{targets:mo,valueShape:"predicate"},[$.none]:{targets:mo,valueShape:"predicate"},[$.atLeast]:{targets:mo,valueShape:"count",comparator:"gte"},[$.atMost]:{targets:mo,valueShape:"count",comparator:"lte"},[$.exactly]:{targets:mo,valueShape:"count",comparator:"equals"},[$.empty]:{targets:M,valueShape:"none"},[$.notEmpty]:{targets:M,valueShape:"none"}},gf={field:go,date:yo,array:li},Nt=(e,t)=>Object.hasOwn(gf[t],e)?gf[t][e]:void 0,ho=e=>typeof e.operator=="string"?Nt(e.operator,"field"):typeof e.dateOperator=="string"?Nt(e.dateOperator,"date"):void 0,Ht=(e,t)=>Nt(e,t)?.comparator,Mt=(e,t)=>{let r=Nt(e,t);if(!r)throw ie(e,t);return r.valueShape},fi=(e,t,r)=>Nt(e,t)?.targets.includes(r)??false,zS=(e,t)=>{let r=Object.keys(go).filter(n=>{let i=go[n];return !(!i.kinds.includes(e)||t&&!i.targets.includes(t))}),o=Object.keys(yo).filter(n=>{let i=yo[n];return !(!i.kinds.includes(e)||t&&!i.targets.includes(t))});return {field:r,date:o}},HS=e=>Object.keys(li).filter(t=>e?li[t].targets.includes(e):true),yf=[...Object.entries(go),...Object.entries(yo)],ve=(...e)=>yf.flatMap(([t,r])=>e.includes(r.valueShape)?[t]:[]),Jt=ve("none"),wo=ve("ordered"),Yo=ve("dateWindow"),_e=ve("range","dateRange","dateWindow"),hf=ve("ordered","string","pattern","array"),st=[h.contains,h.notContains],di=ve("scalar","ordered","range"),at=["sum","avg"],JS=()=>di,lt=ve("scalar"),Qt=ve("array"),wf=ve("scalar","array"),Sf=ve("dayList"),bf=ve("dateRange"),Rf=ve("scalar","ordered","range","dateValue","dateRange"),Of=(...e)=>Object.entries(li).flatMap(([t,r])=>e.includes(r.valueShape)?[t]:[]),Zt=Of("count"),xf=Of("predicate","count"),Ef=[$.any,$.atLeast],G=[...Object.entries(go),...Object.entries(yo)].flatMap(([e,t])=>t.negates?[e]:[]),Pf=G.filter(e=>ve("string").includes(e)),So=G.filter(e=>_e.includes(e)),$f=(...e)=>yf.flatMap(([t,r])=>r.comparator&&e.includes(r.comparator)&&!G.includes(t)?[t]:[]),ui=$f("lt","lte"),vf=$f("gt","gte"),Af=["Int","BigInt"],Nf=[...Be,"DateTime","Boolean","String"],Tf=["Int","BigInt","Float","Boolean","String"],Mf=["scalar","ordered","string"],Yt={years:{interval:"months",factor:12,calendar:true},quarters:{interval:"months",factor:3,calendar:true},months:{interval:"months",factor:1,calendar:true},weeks:{interval:"days",factor:7,calendar:true},days:{interval:"days",factor:1,calendar:true},hours:{interval:"secs",factor:3600,calendar:false},minutes:{interval:"secs",factor:60,calendar:false},seconds:{interval:"secs",factor:1,calendar:false}},Cf=["months","days","secs"],As=e=>Object.hasOwn(Yt,e),xr=e=>As(e)&&Yt[e].calendar,ci=["year","quarter","month","week","isoWeek","day","hour","minute","second"],bo=["sunday","monday","tuesday","wednesday","thursday","friday","saturday"],kf=e=>bo.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]])),Xo=_f(go,[[h.isEmpty,h.notEmpty],[h.exists,h.notExists]]),Lf=_f(yo),mi={[h.lessThan]:h.greaterThanEquals,[h.lessThanEquals]:h.greaterThan,[h.greaterThan]:h.lessThanEquals,[h.greaterThanEquals]:h.lessThan,[v.onOrBefore]:v.after,[v.onOrAfter]:v.before};var gi=e=>new Error(`${e}: ArrayRule.field is required (fieldless arrayOps are check-only)`),ie=(e,t)=>new Error(`Unknown ${t} operator: ${String(e)}`),Ro=e=>new Error(`${e} requires a count`),qe=e=>new Error(`${e} requires a range date expression (a period or rolling window), not a single point`),We=e=>new Error(`${e} requires a condition to check against array elements`),Oo=e=>new Error(`'${e}' is a relation: it exists or not; compare its fields with '${e}.<field>'.`),yi=e=>new Error(`'${e}' is a list of rows: compare it with an arrayOperator (any / all / none / empty / atLeast \u2026).`),hi=e=>st.includes(e.operator)&&ni(e.fuzzy)?new Error("Fuzzy matching has no compiled form \u2014 evaluate it in memory with check()."):null,wi=(e,t)=>!wo.includes(e)&&!_e.includes(e)?null:(_e.includes(e)&&Array.isArray(t)?t:[t]).some(o=>typeof o=="boolean"||typeof o=="object"&&o!==null&&!(o instanceof Date))?new Error(`'${e}' orders numbers, strings and dates; it can't compare ${JSON.stringify(t)}`):null,Xt=e=>new Error(`aggregate.mode must be one of ${at.join(" / ")}, not '${String(e)}'`),pt=()=>new Error("A condition is exactly one of: a field, date, array or aggregate rule, all, any, or if/then[/else]"),_=(e,t,r)=>new Error(`${t} has no ${e==="toSql"?"SQL":"Prisma"} form${r?` (${r})`:""}; use ${e==="toSql"?"check()":"toSql() or check()"}.`),ft=e=>new Error(`Windowing (filter/orderBy/take/skip) is not supported by ${e}() for this rule; evaluate with check()${e==="toPrisma"?" \u2014 toPrisma compiles a filter alone and an extremal take: 1":""}.`),Si=(e,t)=>new Error(`'${e}' reads through the to-many relation '${t.prefix}'; compare its rows with an arrayOperator rule on '${t.prefix}'.`),bi=(e,t)=>new Error(`'${e}' continues past '${t}', which is not a Json column`),J=class extends Error{name="UsageError"};ut__default.default.extend(XS__default.default);ut__default.default.extend(YS__default.default);ut__default.default.extend(ZS__default.default);ut__default.default.extend(QS__default.default);var te=e=>{if(!$e(e))return false;let t=e;return "ago"in t||"ahead"in t||"this"in t||"last"in t||"next"in t||"start"in t||"end"in t},Ct="UTC",en=e=>{if(e.now===void 0)throw new J("date expressions require `now` to be supplied to the evaluator");let t=ut__default.default(e.now).tz(e.timeZone);if(!t.isValid())throw new J(`invalid \`now\`: ${String(e.now)}`);return t},Ns=(e,t)=>Object.entries(e).reduce((r,[o,n])=>Yt[o].interval===t?r+n*Yt[o].factor:r,0),Ff="YYYY-MM-DDTHH:mm:ss.SSS",er=(e,t,r,o)=>{let n=Ns(t,"months"),i=Ns(t,"days"),s=Ns(t,"secs"),a=ut__default.default.utc(e.tz(o).format(Ff));return n&&(a=a.add(r*n,"month")),i&&(a=a.add(r*i,"day")),s&&(a=a.add(r*s*1e3,"millisecond")),ut__default.default.tz(a.format(Ff),o)},eb=e=>"ago"in e||"ahead"in e,Ri=(e,t)=>t===-1?{ago:e}:{ahead:e},Re=e=>eb(e)?"ago"in e?[e.ago,-1]:[e.ahead,1]:null,tn=e=>"this"in e||"last"in e||"next"in e,Ts=e=>"start"in e||"end"in e,Oi=e=>"this"in e?e.this:"last"in e?e.last:e.next,tb=e=>{let t=Oi(e);if(typeof t!="string"||!ci.includes(t))throw new Error(`Unknown period unit '${String(t)}'`);return t},rb=(e,t)=>e==="week"?t.weekStart==="sunday"?"week":"isoWeek":e,Ms=(e,t)=>{let r=en(t),o=tb(e),n=o==="isoWeek"?"week":o,i=r;"last"in e?i=r.subtract(1,n):"next"in e&&(i=r.add(1,n));let s=rb(o,t);return [i.startOf(s),i.endOf(s)]},Cs=(e,t)=>{let r=Re(e);if(r)return er(en(t),...r,t.timeZone);if(Ts(e)){let o="start"in e?e.start:e.end,[n,i]=Ms(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")},xo=(e,t,r)=>{if(tn(e)){let[o,n]=Ms(e,r),i=ho({dateOperator:t})?.negates??t;return ui.includes(i)?o:n}return Cs(e,r)},Eo=(e,t)=>{if(tn(e))return Ms(e,t);let r=Re(e);if(r){let o=en(t),n=er(o,...r,t.timeZone);return r[1]===-1?[n,o]:[o,n]}throw qe("within")};var Df=["value","bind","path"],Ue=e=>typeof e.path=="string"&&e.path!=="",Pr=e=>Ue(e)?F(e.path)??{depth:0,path:e.path}:null,rn=(e,t)=>{if(e.value!==void 0)return t.value(e.value);if(e.bind!==void 0)return t.bind(e.bind,e.bindOptional);if(Ue(e))return t.path(e.path);throw new Error("No value, path or bind specified")},xi=e=>$e(e)&&(e.value!==void 0||Ue(e)||typeof e.bind=="string"),ks=(e,t,r)=>{if(!r||!Object.hasOwn(r,e)){if(t===true)return null;throw new J(`Missing binding for "${e}"`)}let o=r[e];return o===void 0?null:o},Ei=(e,t,r)=>{if(t===true)return null;throw new J(`Unresolved binding '${e}' \u2014 resolve bindings (bindRule / bindLens) before compiling with ${r}().`)},kt=(e,t,r)=>rn(e,{value:o=>o,bind:(o,n)=>ks(o,n,r),path:o=>df(o,t)??null});var jf=e=>typeof e=="object"&&e!==null,Ls=e=>"if"in e||"then"in e||"else"in e,Le=e=>"arrayOperator"in e||"aggregate"in e,If=e=>[...["all","any"].flatMap(t=>Array.isArray(e[t])?e[t].map((r,o)=>({key:t,index:o,child:r,nested:false})):[]),...Ls(e)?["if","then","else"].flatMap(t=>e[t]!==void 0?[{key:t,child:e[t],nested:false}]:[]):[],...["condition","filter"].flatMap(t=>e[t]!==void 0?[{key:t,child:e[t],nested:true}]:[])],Ae=e=>"all"in e||"any"in e||Ls(e),oe=(e,t,r)=>{if(!jf(e))return;let o=e,n=t(o,r),i=n===void 0?r:n;for(let{child:s,nested:a}of If(o))a?i!==false&&oe(s,t,i):oe(s,t,r);},Vf=(e,t,r,o)=>{let n=false;return oe(e,(i,s)=>(!n&&t(i,s)&&(n=true),n?false:r?.(i,s)),o),n},tr=(e,t,r)=>{if(!jf(e))return e;let o=r,n={...e},i=t.rewrite?t.rewrite(n,o):n,s=If(i),a=s.some(f=>f.nested)&&t.below?t.below(i,o):o;for(let f of ["all","any"])Array.isArray(i[f])&&(i[f]=[...i[f]]);for(let{key:f,index:p,child:d,nested:u}of s){if(u&&a===false)continue;let c=tr(d,t,u?a:o);p===void 0?i[f]=c:i[f][p]=c;}let l=t.after?t.after(i,o):i;return l===i&&ob(i,e)?e:l},ob=(e,t)=>{let r=Object.keys(e);return r.length!==Object.keys(t).length?false:r.every(o=>{let[n,i]=[e[o],t[o]];return n===i?true:Array.isArray(n)&&Array.isArray(i)&&n.length===i.length&&n.every((s,a)=>s===i[a])})},nb=(e,t)=>$e(e)?Object.fromEntries(Object.entries(e).map(([r,o])=>[r,xi(o)?t(o,xr(r)?"whole":"number"):o])):e,_s=(e,t)=>{let r=te(e)?Re(e):null;return r?Ri(nb(r[0],t),r[1]):e},Pi=(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=>_s(i,t)):_s(e.value,t);o={...o,value:n};}if(xi(e.offset)){let n=r?{...e.offset,...e.offset.value!==void 0&&{value:_s(e.offset.value,t)}}:e.offset;o={...o,offset:t(n,r?"shift":"number")};}return xi(o)&&(o=t(o,"value")),o},on=e=>{let t=[];return Pi(e,(r,o)=>(t.push({source:r,role:o}),r)),t},Fs=e=>on(e).flatMap(({source:t,role:r})=>Ue(t)?[{ref:t.path,role:r}]:[]),rr=e=>Fs(e).map(t=>t.ref),Po=e=>[...Array.isArray(e.orderBy)?e.orderBy.flatMap(t=>typeof t?.field=="string"?[t.field]:[]):[],...typeof e.aggregate?.field=="string"?[e.aggregate.field]:[]],fe=e=>{let t=new Set;return "all"in e&&t.add("all"),"any"in e&&t.add("any"),Ls(e)&&t.add("if"),"arrayOperator"in e&&t.add("array"),"dateOperator"in e&&t.add("date"),"aggregate"in e?t.add("aggregate"):"operator"in e&&t.add("field"),t.size===1?[...t][0]:null},W=e=>e.length===0?true:e.length===1?e[0]:{all:[...e]},Ds=e=>typeof e=="object"&&"all"in e&&Array.isArray(e.all)?e.all.flatMap(Ds):[e],_t=e=>e.length===0?false:e.length===1?e[0]:{any:[...e]};var ib=e=>on(e).flatMap(({source:t})=>typeof t.bind=="string"?[t]:[]),nn=(e,{required:t=false}={})=>{let r=new Set;return oe(e,o=>{for(let n of ib(o))(!t||n.bindOptional!==true)&&r.add(n.bind);}),[...r].sort()},js=(e,t)=>{let r=o=>{if(typeof o.bind!="string"||!Object.hasOwn(t,o.bind))return o;let{bind:n,bindOptional:i,...s}=o;return {...s,value:ks(n,true,t)}};return tr(e,{rewrite:o=>Pi(Pi(o,r),r)})};var Bf=BigInt(Number.MAX_SAFE_INTEGER),sn=e=>{if(e>Bf||e<-Bf)throw new RangeError(`BigInt ${e} is outside the safe integer range (\xB12^53); json-rules compares BigInt as Int.`);return Number(e)},Is=e=>typeof e=="bigint"?sn(e):typeof e=="string"&&e.trim()!==""&&Number.isFinite(Number(e))?Number(e):e,$i=(e,t)=>{if(e==null)return null;let r=Is(e);if(typeof r!="number"||!Number.isFinite(r))throw new Error(`${t} reads a number (got ${String(e)})`);return r},Fe=([e,t])=>t<e?[t,e]:[e,t],Ge=(e,t)=>{if(!Array.isArray(e)||e.length!==2)throw new Error(`${t} operator requires an array of two values`);return [e[0],e[1]]},$o=(e,t)=>{let r=Ge(e,t);if(!r.every(de))throw new Error(`${t} requires two ends that order \u2014 numbers, strings or dates (got ${JSON.stringify(e)})`);return r},vi=e=>{if(!Array.isArray(e))throw new Error(`in / notIn requires a list (got ${JSON.stringify(e)})`);return e},Lt=e=>{let t=vi(e),r=t.filter(o=>o!==null);return {values:r,hasNull:r.length!==t.length}},de=e=>typeof e=="string"||typeof e=="number"||e instanceof Date;var Vs=(e,t)=>typeof e=="number"&&Number.isFinite(e)&&e>=0&&(!xr(t)||Number.isInteger(e))?null:`${t} must be a non-negative${xr(t)?" whole":""} number (got ${String(e)})`,Bs=(e,t,r)=>{let o=typeof e=="number"?e:$i(t(e),e.path?`'${e.path}' (${r})`:r),n=o===null?null:Vs(o,r);if(n===null)return o;if(typeof e!="number"&&Ue(e))return null;throw new Error(n)},$r=(e,t)=>{let r={};for(let[o,n]of Object.entries(e)){if(n===void 0)continue;let i=Bs(n,t,o);if(i===null)return null;r[o]=i;}return r},dt=(e,t)=>{let r=Re(e);if(!r)return e;let o=$r(r[0],t);return o?Ri(o,r[1]):null};var vr=(e,t)=>{if(e==null)return null;if(Array.isArray(e)){let o=e.map(n=>vr(n,t));return o.some(n=>n===null)?null:o}let r=Is(e);if(typeof r!="number"||!Number.isFinite(r))throw new Error(`offset needs a numeric comparison value (got ${String(e)})`);return r+t},Ar=e=>$i(e,"an offset"),vo=e=>{if(e==null)return null;let t=te(e)?Re(e):null;if(!t)throw new Error(`a date offset reads { ago } or { ahead } (got ${JSON.stringify(e)})`);return t};ut__default.default.extend(XS__default.default);ut__default.default.extend(YS__default.default);ut__default.default.extend(ab__default.default);ut__default.default.extend(sb__default.default);var Uf=(e,t,r={},o)=>{let n=Kt(e.field,t),i=Nr(r,u=>kt(u,t,o)),s=i.timeZone;if(n==null)return G.includes(e.dateOperator)?true:e.error||`${e.field} has no value`;let a=de(n)?or(n,s):null;if(!a?.isValid())throw new Error(`${e.field} is not a valid date: ${String(n)}`);let l=u=>e.error||`${e.field} ${u}`;if(Sf.includes(e.dateOperator)){let u=qs(kt(e,t,o));if(u===null)return e.error||`${e.field} has no comparison value`;let c=u.includes(a.tz(s).day()),g=u.map(m=>bo[m]).join(" or ");return e.dateOperator===v.dayIn?c||l(`must be on ${g}`):!c||l(`must not be on ${g}`)}let f=fb(e,t,i,s,o);if(f===null)return e.error||`${e.field} has no comparison value`;let[p,d=p]=f;switch(e.dateOperator){case v.before:return a.isBefore(p)||l(`must be before ${p.format()}`);case v.after:return a.isAfter(p)||l(`must be after ${p.format()}`);case v.onOrBefore:return a.isSameOrBefore(p)||l(`must be on or before ${p.format()}`);case v.onOrAfter:return a.isSameOrAfter(p)||l(`must be on or after ${p.format()}`);case v.within:return a.isSameOrAfter(p)&&a.isSameOrBefore(d)||l(`must be within ${p.format()} and ${d.format()}`);case v.notBefore:return a.isSameOrAfter(p)||l(`must not be before ${p.format()}`);case v.notAfter:return a.isSameOrBefore(p)||l(`must not be after ${p.format()}`);case v.notWithin:return a.isBefore(p)||a.isAfter(d)||l(`must not be within ${p.format()} and ${d.format()}`);case v.between:return a.isSameOrAfter(p)&&a.isSameOrBefore(d)||l(`must be between ${p.format()} and ${d.format()}`);case v.notBetween:return a.isBefore(p)||a.isAfter(d)||l(`must not be between ${p.format()} and ${d.format()}`);default:throw ie(e.dateOperator,"date")}},fb=(e,t,r,o,n)=>{let i=e.dateOperator,s=g=>kt(g,t,n),a=kt(e,t,n);if(a==null)return null;let l=e.offset===void 0?void 0:vo(s(e.offset));if(l===null)return null;let f=g=>{if(l===void 0)return g;let m=$r(l[0],s);return m&&er(g,m,l[1],o)};if(Yo.includes(i)){if(!te(a))throw qe(i);let g=dt(a,s);return g&&Eo(g,r)}let p=(g,m)=>{if(g==null)return null;if(te(g)){let S=dt(g,s);return S&&Cs(S,r)}let y=or(g,o);if(!y.isValid())throw new Error(`Invalid ${m}: ${String(g)}`);return y};if(bf.includes(i)){let[g,m]=Ge(a,i),y=p(g,"start date"),S=p(m,"end date");if(!y||!S)return null;let[b,R]=Fe([y,S]),w=f(b),E=f(R);return w&&E?[w,E]:null}if(Array.isArray(a))throw new Error(`${i} operator requires a single date value`);let d=g=>{let m=dt(g,s);return m&&xo(m,i,r)},u=te(a)?d(a):p(a,"comparison date");if(!u)return null;let c=f(u);return c&&[c]},Nr=(e,t)=>{let r=e.timeZone;if(r===void 0||typeof r=="string")return {...e,timeZone:Wf(r??Ct)};if(Pr(r))throw new J(`timeZone is one per evaluation; give it as a string or a { bind }, not the row path '${r.path}'`);let o=t(r);if(o!=null&&typeof o!="string")throw new J(`timeZone reads a zone name (got ${String(o)})`);return {...e,timeZone:Wf(o??Ct)}},qf=new Set,Wf=e=>{if(qf.has(e))return e;try{new Intl.DateTimeFormat("en-US",{timeZone:e});}catch{throw new J(`invalid time zone: ${e}`)}return qf.add(e),e},db=/\d{2}:\d{2}(?::\d{2}(?:\.\d+)?)?\s*(?:[zZ]|[+-]\d{2}(?::?\d{2})?)$/,ub=e=>db.test(e.trim())||/\b(?:GMT|UTC)\b/.test(e),or=(e,t)=>{if(typeof e=="string"&&/^-?\d+$/.test(e.trim()))return ut__default.default(Number(e));if(typeof e=="string"&&!ub(e)){let r=ut__default.default(e);return r.isValid()?ut__default.default.tz(e,t):r}return typeof e=="string"?ut__default.default(new Date(e.trim())):ut__default.default(e)},Ai=(e,t)=>{let r=de(e)?or(e,t):ut__default.default(Number.NaN);if(!r.isValid())throw new Error(`Invalid date value: ${String(e)}`);return r.toDate()},qs=e=>{if(e==null)return null;if(!Array.isArray(e))throw new Error("a weekday operator requires an array of day names");return e.map(t=>{let r=bo.indexOf(String(t).toLowerCase());if(r===-1)throw new Error(`Unknown day name: ${String(t)}`);return r})};var mb=e=>e<=3?0:e<=6?1:2,gb=(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):mb(t)},Gf=e=>e.split(/[^a-z0-9\p{L}]+/u).filter(Boolean),yb=e=>/^\d+$/.test(e),hb=(e,t,r)=>e===t?true:Math.abs(e.length-t.length)>r?false:fastestLevenshtein.distance(e,t)<=r,Kf=(e,t,r={})=>{let o=t.trim().toLowerCase();if(!o)return true;let n=e.toLowerCase();if(n.includes(o))return true;let i=Gf(o);if(i.length===0)return false;let s=Gf(n);return s.length===0?false:i.every(a=>{let l=gb(r,a.length);return l===0||yb(a)?s.includes(a):s.some(f=>hb(a,f,l))})};var nr=e=>{let t=e instanceof RegExp?e.source:e,r=e instanceof RegExp?e.flags:"";if(/[^i]/.test(r))throw new Error(`Refused pattern /${t}/${r}: only the 'i' flag is supported`);let o=r==="i";try{return {source:t,caseInsensitive:o,re:re2js.RE2JS.compile(t,o?re2js.RE2JS.CASE_INSENSITIVE:0)}}catch(n){throw new Error(`Refused pattern /${t}/: ${n.message}`)}},Ao={d:"0-9",w:"0-9A-Za-z_",s:"\\t\\n\\f\\r "},Hf={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"},wb=/[\\^$.|?*+()[\]{}]/,Ws=255,Jf=e=>e<=65535?`\\u${e.toString(16).padStart(4,"0")}`:`\\U${e.toString(16).padStart(8,"0")}`,Sb=e=>wb.test(e)?`\\${e}`:e,an=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(Ao,a))return s?Ao[a]:`[${Ao[a]}]`;let l=a.toLowerCase();if(a!==l&&Object.hasOwn(Ao,l))return s&&t(`a negated class \\${a} inside brackets`),`[^${Ao[l]}]`;if(a==="p"||a==="P")return t("a Unicode class");if(a==="C")return t("\\C");if(a==="x"){let f=e[o]==="{",p=f?e.indexOf("}",o):o+2,d=e.slice(f?o+1:o,p);return o=f?p+1:p,Jf(Number.parseInt(d,16))}if(a>="0"&&a<="7"){let f=a;for(;f.length<3&&e[o]>="0"&&e[o]<="7";)f+=e[o++];return Jf(Number.parseInt(f,8))}if(!s&&(a==="b"||a==="B")){let f=`[${Ao.w}]`;return a==="b"?`(?:(?<=${f})(?!${f})|(?<!${f})(?=${f}))`:`(?:(?<=${f})(?=${f})|(?<!${f})(?!${f}))`}if(!s&&(a==="z"||a==="A"))return n(),a==="z"?"\\Z":"\\A";if(a==="Q"){let f=e.indexOf("\\E",o),p=e.slice(o,f===-1?void 0:f);return o=f===-1?e.length:f+2,[...p].map(s?d=>/[\\\]^-]/.test(d)?`\\${d}`:d:Sb).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])>Ws||Number(a[2]??0)>Ws)&&t(`a repeat count past ${Ws}`),r+=a[0],o+=a[0].length;}else if(s==="["){r+="[",o++,e[o]==="^"&&(r+="^",o++),e[o]==="]"&&(r+="\\]",o++);let a=false,l=false,f=0;for(;o<e.length&&e[o]!=="]";){let p=l?null:/^\[:(\^?)([a-z]+):\]/.exec(e.slice(o)),d=!!p||/^\\[dswDSW]/.test(e.slice(o)),u=e[o]==="-"&&f>0&&e[o+1]!=="]"&&!l;p?(p[1]&&t(`a negated class [:^${p[2]}:]`),Object.hasOwn(Hf,p[2])||t(`the class [:${p[2]}:]`),r+=Hf[p[2]],o+=p[0].length):e[o]==="\\"?r+=i(true):u&&a?(r+="\\-",o++):(r+=e[o]==="["?"\\[":e[o],o++);let c=l;l=u&&!a,a=d||c,f++;}r+="]",o++;}else r+=s,o++,(s==="^"||s==="$")&&n();}return r},Qf=(e,t)=>{try{let{source:r}=nr(e);return t==="toSql"&&an(r),null}catch(r){return r.message}};var Zf=e=>e==null||e===""||Array.isArray(e)&&e.length===0,Oe=(e,t)=>{let r=t==null;return r&&(e.offset!==void 0||hf.includes(e.operator))?true:_e.includes(e.operator)?r||Array.isArray(t)&&t.some(o=>o==null):false},Mr=e=>Jt.includes(e.operator)||lt.includes(e.operator)&&e.value===null&&e.path===void 0&&e.bind===void 0,Ti=(e,t)=>{let r=t.filter(n=>Array.isArray(n)||n===null),o=n=>r.map(i=>({...e,operator:n,value:i}));return e.operator===h.in?_t(o(h.equals)):W(o(h.notEquals))},Cr=e=>typeof e=="string"?e.toLowerCase():Array.isArray(e)?e.map(Cr):e,Yf=e=>typeof e=="bigint"?sn(e):Array.isArray(e)&&e.some(t=>typeof t=="bigint")?e.map(t=>typeof t=="bigint"?sn(t):t):e,Xf=(e,t,r)=>{if(e==null)return e;if(Be.includes(t)){if(typeof e!="string"||e.trim()==="")return e;if(t==="BigInt"&&/^-?\d+$/.test(e.trim()))return sn(BigInt(e.trim()));let o=Number(e);return Number.isFinite(o)?o:e}switch(t){case "DateTime":{if(e instanceof Date)return e.getTime();if(typeof e=="number"||typeof e!="string")return e;let o=or(e,r);return o.isValid()?o.valueOf():e}case "Boolean":return e==="true"?true:e==="false"?false:e;case "String":return typeof e=="number"||typeof e=="boolean"||typeof e=="bigint"?String(e):e;default:return e}},Tr=(e,t,r=Ct)=>t===void 0?e:Array.isArray(e)?e.map(o=>Xf(o,t,r)):Xf(e,t,r),ln=(e,t,r,o={},n)=>{let i=n?n.value:Kt(e.field,t)??null,s=e.coerceType??(i instanceof Date?"DateTime":void 0),a=s==="DateTime"?Nr(o,b=>kt(b,t,r)).timeZone:Ct,l=Tr(Yf(i),s,a),f=!Jt.includes(e.operator),p=f?bb(Tr(Yf(kt(e,t,r)??null),s,a),e,t,r):void 0;if(f&&Oe(e,p))return G.includes(e.operator)&&l==null?true:e.error||`${e.field} has no comparison value`;let d=b=>e.error||`${e.field} ${b}${f?` ${p instanceof RegExp?String(p):JSON.stringify(p)}`:""}`,u=pe(e.caseInsensitive),c=b=>u?Cr(b):b,g=c(l),m=c(p),y=ni(e.fuzzy),S=()=>y&&typeof l=="string"&&typeof p=="string"?Kf(l,p,y):Array.isArray(l)?g.some(b=>Rr(b,m)):Rb(g,m);switch(e.operator){case h.equals:return Rr(g,m)||d("must equal");case h.notEquals:return !Rr(g,m)||d("must not equal");case h.lessThan:return Ni(l,p,"lt")||d("must be less than");case h.lessThanEquals:return Ni(l,p,"lte")||d("must be less than or equal to");case h.greaterThan:return Ni(l,p,"gt")||d("must be greater than");case h.greaterThanEquals:return Ni(l,p,"gte")||d("must be greater than or equal to");case h.in:return vi(m).some(b=>Rr(b,g))||d("must be one of");case h.notIn:return !vi(m).some(b=>Rr(b,g))||d("must not be one of");case h.contains:return S()||d("must contain");case h.notContains:return !S()||d("must not contain");case h.matches:return ed(l)&&td(p)&&nr(p).re.test(l)||d("must match pattern");case h.notMatches:return !ed(l)||!td(p)||!nr(p).re.test(l)||d("must not match pattern");case h.between:{let b=rd(p,e.operator);if(!nd(l,b))return d("must be between");let R=No(l),[w,E]=b;return R>=w&&R<=E||d("must be between")}case h.notBetween:{let b=rd(p,e.operator);if(!nd(l,b))return true;let R=No(l),[w,E]=b;return R<w||R>E||d("must not be between")}case h.isEmpty:return Zf(l)||d("must be empty");case h.notEmpty:return !Zf(l)||d("must not be empty");case h.exists:return l!=null||d("must exist");case h.notExists:return l==null||d("must not exist");case h.startsWith:return typeof g=="string"&&typeof m=="string"&&g.startsWith(m)||d("must start with");case h.endsWith:return typeof g=="string"&&typeof m=="string"&&g.endsWith(m)||d("must end with");case h.notStartsWith:return !(typeof g=="string"&&typeof m=="string"&&g.startsWith(m))||d("must not start with");case h.notEndsWith:return !(typeof g=="string"&&typeof m=="string"&&g.endsWith(m))||d("must not end with");default:throw new Error("Unknown operator")}},bb=(e,t,r,o)=>{if(t.offset===void 0)return e;let n=Ar(kt(t.offset,r,o));return n===null?null:vr(e,n)},No=e=>e instanceof Date?e.getTime():e,Ni=(e,t,r)=>{if(!Ob(e,t)||!de(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}},ed=e=>typeof e=="string",td=e=>typeof e=="string"||e instanceof RegExp,rd=(e,t)=>Fe($o(e,t).map(r=>No(r))),Rb=(e,t)=>typeof e=="string"&&typeof t=="string"&&e.includes(t),Ob=(e,t)=>de(e)&&de(t)&&od(e)===od(t),od=e=>e instanceof Date?"date":typeof e,nd=(e,t)=>de(e)&&typeof No(e)==typeof t[0];var Ne=e=>e.filter!==void 0||!!e.orderBy?.length||e.take!==void 0||e.skip!==void 0,xb=e=>{if(typeof e!="object"||e===null)return null;let t=e,r=fe(t);return r!=="field"&&r!=="date"||typeof t.field!="string"?null:{op:String(r==="date"?t.dateOperator:t.operator),field:t.field}},Eb=e=>{if(e.filter!==void 0||e.skip!==void 0&&e.skip!==0||e.take!==1||e.orderBy?.length!==1)return null;let{field:t,dir:r}=e.orderBy[0];if(r!=="asc"&&r!=="desc")return null;let o=null;if(e.arrayOperator===$.all?o="all":(e.arrayOperator===$.any||e.arrayOperator===$.atLeast&&e.count===1)&&(o="any"),!o)return null;let n=xb(e.condition);if(!n||n.field!==t)return null;let i=ui.includes(n.op),s=vf.includes(n.op);if(!i&&!s)return null;let a=r==="desc";if(!(o==="all"?a&&i||!a&&s:a&&s||!a&&i))return null;let{orderBy:f,take:p,skip:d,count:u,...c}=e;if(o==="any")return {...c,arrayOperator:$.any};let g={field:t,operator:h.exists};return {any:[{field:e.field,arrayOperator:$.empty},{all:[{field:e.field,arrayOperator:$.any,condition:g},{...c,arrayOperator:$.all,condition:{if:g,then:e.condition}}]}]}},Us=(e,t,r)=>{let o=e;return t.filter!==void 0&&r&&(o=o.filter(r)),t.orderBy?.length&&(o=id(o,t.orderBy)),t.skip!==void 0&&(o=o.slice(t.skip)),t.take!==void 0&&(o=o.slice(0,t.take)),o},id=(e,t)=>[...e].sort((r,o)=>{for(let{field:n,dir:i}of t){let s=Pb(me(r,n),me(o,n),i);if(s!==0)return s}return 0}),Pb=(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},To=e=>{if(!Ne(e))return e;let t=!!e.orderBy?.length||e.take!==void 0||e.skip!==void 0;if(e.filter!==void 0&&!t){let{filter:r,...o}=e;if("aggregate"in e)return {...o,condition:e.condition===void 0?r:W([r,e.condition])};switch(e.arrayOperator){case "all":return {...o,condition:{if:r,then:e.condition??true}};case "empty":return {...o,arrayOperator:"none",condition:r};case "notEmpty":return {...o,arrayOperator:"any",condition:r};default:return {...o,condition:e.condition===void 0?r:W([r,e.condition])}}}return "aggregate"in e||e.filter!==void 0?null:Eb(e)};var $b=e=>oe(e,t=>{let r=fe(t);if(!(r==="all"||r==="any")){if(r==="array"&&!("field"in t))return false;throw new Error("check: when data is an array, every leaf must be a fieldless arrayOperator (composable with all/any)")}}),ue=(e,t,r)=>(Array.isArray(t)&&$b(e),ct(e,t,{...r,scopes:[t]})),ct=(e,t,r)=>{if(typeof e=="boolean")return e;let o=e;switch(fe(e)){case "all":return vb(o.all,t,r,o.error);case "any":return Ab(o.any,t,r,o.error);case "if":return Nb(o,t,r);case "array":return Mb(o,r);case "aggregate":return Tb(o,r);case "date":return Uf(o,r.scopes,r,r.bindings);case "field":return ln(o,r.scopes,r.bindings,r);default:throw pt()}},Mi=(e,t)=>({...e,scopes:[...e.scopes,t]}),vb=(e,t,r,o)=>{let n=[];for(let i of e){let s=ct(i,t,r);s!==true&&(typeof s=="string"?n.push(s):n.push("false"));}return n.length?o||(n.length===1?n[0]:`All conditions must pass: ${n.join(" AND ")}`):true},Ab=(e,t,r,o)=>{let n=[];for(let i of e){let s=ct(i,t,r);if(s===true)return true;typeof s=="string"&&n.push(s);}return o||(n.length===1?n[0]:`At least one condition must pass: ${n.join(" OR ")}`)},Nb=(e,t,r)=>ct(e.if,t,r)===true?ct(e.then,t,r):e.else!==void 0?ct(e.else,t,r):true,sd=(e,t)=>{if(e==null)return [];if(!Array.isArray(e))throw new Error(`${t} must be an array`);return e},Tb=(e,t)=>{let r=sd(Kt(e.field,t.scopes),e.field),o=e.filter,n=Us(r,e,o?c=>ct(o,c,Mi(t,c))===true:void 0),{mode:i,field:s}=e.aggregate;if(!at.includes(i))throw Xt(i);let a=e.condition,f=(a?n.filter(c=>ct(a,c,Mi(t,c))===true):n).flatMap((c,g)=>{let m=s?me(c,s):c;if(m==null)return [];if(typeof m!="number"||!Number.isFinite(m)){let y=`${e.field}[${g}]${s?`.${s}`:""}`;throw new Error(`${y} must be a finite number`)}return [m]}),p=f.reduce((c,g)=>c+g,0),d=i==="sum"||f.length===0?p:p/f.length,u={...e,field:`${e.field} ${i}`};return ln(u,t.scopes,t.bindings,t,{value:d})},Mb=(e,t)=>{let r=sd(e.field?Kt(e.field,t.scopes):t.scopes[t.scopes.length-1],e.field||"(root)"),o=e.filter,n=Us(r,e,o?d=>ct(o,d,Mi(t,d))===true:void 0),i=d=>e.error||`${e.field} ${d}`,s=e.condition,a=xf.includes(e.arrayOperator);if(a&&s===void 0)throw We(e.arrayOperator);let l=e.count??0;if(Zt.includes(e.arrayOperator)&&e.count===void 0)throw Ro(e.arrayOperator);let f=0,p=0;if(a&&s!==void 0){if(n.length>0&&!Ps(n,z))return i("contains only primitive values; use 'in' or 'contains' instead of array operators on primitive arrays");let d=n.map(u=>ct(s,u,Mi(t,u)));f=d.filter(u=>u===true).length,p=d.filter(u=>typeof u=="string").length;}switch(e.arrayOperator){case $.empty:return !n.length||i("must be empty");case $.notEmpty:return !!n.length||i("must not be empty");case $.all:return f===n.length||i(`all elements must match (${p} failed)`);case $.any:return !!f||i("at least one element must match");case $.none:return !f||i(`no elements should match (${f} matched)`);case $.atLeast:return f>=l||i(`at least ${l} elements must match (${f} matched)`);case $.atMost:return f<=l||i(`at most ${l} elements must match (${f} matched)`);case $.exactly:return f===l||i(`exactly ${l} elements must match (${f} matched)`);default:throw ie(e.arrayOperator,"array")}};var O=(e,t)=>e!==void 0&&Object.hasOwn(e,t)?e[t]:void 0,kr=(e,t,r)=>(Object.hasOwn(e,t)||(e[t]=r()),e[t]),T=(e,t)=>O(e?.models,t),he=(e,t,r)=>O(T(e,t)?.fields,r);var xe=({fieldMap:e,model:t})=>`${e}:${t}`,ad=(e,t)=>{let r=e.indexOf(":");return r===-1?{mapName:t,modelName:e}:{mapName:e.slice(0,r),modelName:e.slice(r+1)}};var ld=(e,t,r,o)=>{let n={};for(let i of e){let s=O(i,t);if(s==null)continue;let a=String(s);if(Object.hasOwn(n,a)){let l=o==="one"?`endpoint[0] must be the "one" side of a oneToMany bridge \u2014 swap endpoints if '${r}' is the "many" side`:`oneToOne bridges require unique '${t}' on both endpoints`;throw new Error(`indexBridges: duplicate '${t}' value '${a}' on '${r}' \u2014 ${l}.`)}n[a]=i;}return n},Cb=(e,t)=>{let r={};for(let o of e){let n=O(o,t);n!=null&&kr(r,String(n),()=>[]).push(o);}return r},pd=(e,t)=>{let r={};for(let o of e.bridges??[]){let[n,i]=o.endpoints,s=xe(n),a=xe(i),l=o.cardinality==="oneToMany"?"one":"oneToOne",f=(u,c)=>kr(kr(r,u,()=>({})),c,()=>({})),p=O(t,s);p&&(f(n.fieldMap,n.model)[n.on]=ld(p,n.on,s,l));let d=O(t,a);d&&(o.cardinality==="oneToMany"?f(i.fieldMap,i.model)[i.on]=Cb(d,i.on):f(i.fieldMap,i.model)[i.on]=ld(d,i.on,a,"oneToOne"));}return r};var Ci=e=>{let t={maps:structuredClone(e.maps),bridges:e.bridges?structuredClone(e.bridges):void 0};for(let r of e.bridges??[]){let[o,n]=r.endpoints,i=xe(o),s=xe(n),a=T(O(t.maps,o.fieldMap),o.model),l=T(O(t.maps,n.fieldMap),n.model);if(!a)throw new Error(`stitchFieldMaps: endpoint '${i}' not found`);if(!l)throw new Error(`stitchFieldMaps: endpoint '${s}' not found`);if(o.fieldMap===n.fieldMap&&o.model===n.model)throw new Error(`stitchFieldMaps: self-bridge '${i}' to itself is not supported`);if(!O(a.fields,o.on))throw new Error(`stitchFieldMaps: endpoint '${i}' has no field '${o.on}' for join`);if(!O(l.fields,n.on))throw new Error(`stitchFieldMaps: endpoint '${s}' has no field '${n.on}' for join`);if(O(a.fields,s))throw new Error(`stitchFieldMaps: bridge '${s}' already injected on '${i}'`);if(O(l.fields,i))throw new Error(`stitchFieldMaps: bridge '${i}' already injected on '${s}'`);let f=r.cardinality==="oneToMany";a.fields[s]={kind:"bridge",type:s,isList:f},l.fields[i]={kind:"bridge",type:i,isList:false};}return t};var Mo=(e,t,r)=>{if(e?.isList||t?.isList){if(!(e?.isList&&!t?.isList&&st.includes(r)))return "a list column compares with no column but by membership";if(e?.kind!=="enum"&&t?.kind!=="enum")return null}let o=[e,t].filter(n=>n?.kind==="enum");return o.length===0?null:o.length===1||e?.type!==t?.type?"an enum compares only with an enum column of its own type":lt.includes(r)?null:`an enum column orders by declaration on the database, not as check() compares its text ('${r}')`};var Te=e=>e.kind==="scalar"&&e.type==="Json",j=e=>e.kind==="object"||e.kind==="bridge",_r=(e,t)=>e.values??O(t,e.type);var Me=(e,t,r)=>{if(!e||!("maps"in e))return e;if(!t)throw new Error(`${r}: 'map' is a FieldMapSet \u2014 'mapName' is required to resolve which map to use.`);let o=O(e.maps,t);if(!o)throw new Error(`${r}: fieldMap set has no entry for '${t}'`);return o};var Ke=(e,t)=>e.kind==="object"?{mapName:t,modelName:e.type}:e.kind==="bridge"?ad(e.type,t):null;function*ir(e,t,r){let o=r.split("."),n=t;for(let i=0;i<o.length;i++){let s=o[i],a=he(O(e,n.mapName),n.modelName,s),l=a?Ke(a,n.mapName):null;if(yield {index:i,field:s,at:n,entry:a,next:l},!l)return;n={...l,relPath:[...n.relPath,s]};}}var se=(e,t,r)=>{let o=e.split("."),n=[],i={mapName:"",modelName:r,relPath:[]};for(let{index:s,field:a,at:l,entry:f}of ir({"":t},i,e)){let p=l.modelName;if(!f)return {kind:"fallback",hops:n};if(f.kind==="bridge")return {kind:"bridge",hops:n};let d=s===o.length-1;if(f.kind==="object"){if(!T(t,f.type))return {kind:"fallback",hops:n};if(d)return {kind:"direct",hops:n,entry:f,model:p,column:a};n.push({field:a,prefix:o.slice(0,s+1).join("."),entry:f,from:p});continue}return d?{kind:"direct",hops:n,entry:f,model:p,column:a}:Te(f)?{kind:"json-path",hops:n,entry:f,model:p,column:a,stopIndex:s+1,jsonPath:o.slice(s+1)}:{kind:"past-scalar",hops:n,column:a}}return {kind:"fallback",hops:n}},sr=(e,t,r)=>t&&r?se(e,t,r):void 0,Z=(e,t,r)=>{let o=sr(e,t,r);return o?.kind==="direct"?o.entry:void 0},fd=(e,t,r)=>se(e,t,r).hops.filter(o=>!o.entry.isList&&o.entry.isRequired===false).map(o=>o.prefix),pn=(e,t,r)=>{let o=se(e,t,r);return o.kind==="direct"&&o.entry.kind==="object"?o.entry.type:null},ar=(e,t,r)=>se(e,t,r).kind==="bridge",mt=(e,t,r)=>!!t&&!!r&&Vf(e,(o,n)=>typeof o.field=="string"&&o.field!==""&&ar(o.field,t,n),(o,n)=>(typeof o.field=="string"?pn(o.field,t,n):n)??false,r);var ki=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":dd(e.entry.type),dd=e=>e===H.Json?"json":e===H.Enum?"enum":e===H.DateTime?"instant":e===H.String?"text":"scalar",_i=(e,t,r)=>{let o=Z(e.field,t,r);return o?o.kind==="scalar"&&(o.type==="String"||o.type==="Json"):e.coerceType===void 0||e.coerceType==="String"||e.coerceType==="Json"},Li=(e,t,r)=>{if(ki(sr(e,t,r))==="relations")throw yi(e)},Lr=e=>e!=="scalar"&&e!=="instant"&&e!=="list"&&e!=="enum"&&e!=="relation"&&e!=="relations",lr=(e,t)=>Lr(e)&&ud(t),ud=e=>typeof e=="string"||Array.isArray(e)&&e.some(ud),Ce=(e,t,r)=>{let o=ki(sr(e.field,t,r));return o==="unknown"&&e.coerceType!==void 0?dd(e.coerceType):o},Ft=e=>{if(!e.isList){if(e.kind==="enum")return H.Enum;if(!(e.kind!=="scalar"||e.type===H.Json))return pi(e.type)?e.type:void 0}};var cd=new WeakSet,Di=e=>(cd.add(e),e),md=e=>{if(e===null||typeof e!="object")return false;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null},gd=e=>{let t=[],r=(o,n)=>{if(o!==null&&typeof o=="object"&&cd.has(o)){t.push({path:n});return}if(Array.isArray(o))for(let[i,s]of o.entries())r(s,[...n,i]);else if(md(o))for(let[i,s]of Object.entries(o))r(s,[...n,i]);};return r(e,[]),t},kb=["__step","__field"],Fi=e=>Array.isArray(e)?e.some(Fi):md(e)?Object.entries(e).some(([t,r])=>kb.includes(t)||Fi(r)):false;var _b={[h.equals]:"equals",[h.notEquals]:"equals",[h.lessThan]:"lt",[h.lessThanEquals]:"lte",[h.greaterThan]:"gt",[h.greaterThanEquals]:"gte"},yd=(e,t,r)=>{let o=se(e,t,r);if(o.kind!=="direct"||o.hops.length>0)return `'${e}' is not a column of ${r} (a relation hop or an undeclared path)`;let{entry:n}=o;return j(n)?`'${e}' is a relation`:Te(n)?`'${e}' is a Json column`:n.isList?`'${e}' is a list column`:n},ji=(e,t,r,o,n=false)=>{let i=e.path;if(n)return {problem:"inside a counting step (a count or relation aggregate) a groupBy carries no column reference"};let s=F(i);if(s&&s.depth>1)return {problem:`'${i}' reads an enclosing scope, which a Prisma filter can't reach`};if(!s&&o)return {problem:`'${i}' reads the root row, which a Prisma relation filter can't reach`};if(!t||!r)return {problem:"comparing two columns needs the map and model"};let a=_b[e.operator];if(!a)return {problem:`'${e.operator}' takes no column reference in Prisma`};if(e.offset!==void 0)return {problem:"an offset is arithmetic, which Prisma lacks"};let l=yd(e.field,t,r);if(typeof l=="string")return {problem:l};let f=s?s.path:i,p=yd(f,t,r);if(typeof p=="string")return {problem:p};if(l.kind!==p.kind||l.type!==p.type)return {problem:`'${e.field}' (${l.type}) and '${f}' (${p.type}) are not the same type`};let d=Mo(l,p,e.operator);return d?{problem:d}:l.type==="String"&&pe(e.caseInsensitive)?{problem:"a case-insensitive column comparison compiles to ILIKE"}:{key:a,ref:Di({__field:{model:r,field:f}}),field:l,column:p,columnPath:f}},Ii=(e,t)=>new Error(`Path '${e}' compares to a column, which the Prisma rail supports only between columns of the same model and type: ${t}. Use toSql() or check().`),hd=new WeakSet,Gs=new WeakSet,Fr=(e,t,r=false)=>(hd.add(e),(r||t!==void 0&&Gs.has(t))&&Gs.add(e),e),wd=e=>e!==void 0&&hd.has(e),Sd=e=>e!==void 0&&Gs.has(e);var Ks=e=>({field:e,operator:"notExists"}),Lb=(e,t)=>{let r=t(e);if(r===null){let i=e.operator??e.dateOperator;return G.includes(i)?{field:e.field,operator:"exists"}:true}if("aggregate"in r){let i=O(Xo,r.operator);return i?{...r,operator:i}:{...r,operator:O(mi,r.operator)}}if(typeof r.dateOperator=="string"){let i=O(Lf,r.dateOperator);return i?{...r,dateOperator:i}:_t([{...r,dateOperator:O(mi,r.dateOperator)},Ks(r.field)])}if(typeof r.arrayOperator=="string"){let i=r.count;switch(r.arrayOperator){case $.any:return {...r,arrayOperator:$.none};case $.none:return {...r,arrayOperator:$.any};case $.all:return {...r,arrayOperator:$.any,condition:De(r.condition,t)};case $.empty:return {...r,arrayOperator:$.notEmpty};case $.notEmpty:return {...r,arrayOperator:$.empty};case $.atLeast:return i<=0?false:{...r,arrayOperator:$.atMost,count:i-1};case $.atMost:return {...r,arrayOperator:$.atLeast,count:i+1};case $.exactly:return _t([...i>0?[{...r,arrayOperator:$.atMost,count:i-1}]:[],{...r,arrayOperator:$.atLeast,count:i+1}])}}let o=O(Xo,r.operator);if(o)return {...r,operator:o};let n=typeof r.path=="string"&&r.path!==""?F(r.path)??{depth:1,path:r.path}:null;return _t([{...r,operator:O(mi,r.operator)},Ks(r.field),...n&&n.depth===1?[Ks(n.path)]:[]])},De=(e,t=r=>r)=>{if(typeof e=="boolean")return !e;let r=e;if(Array.isArray(r.all))return _t(r.all.map(o=>De(o,t)));if(Array.isArray(r.any))return W(r.any.map(o=>De(o,t)));if("if"in r){let o=W([r.if,De(r.then,t)]);return r.else===void 0?o:{any:[o,W([De(r.if,t),De(r.else,t)])]}}return Lb(r,t)},bd=e=>fe(e)==="field"&&e.value!==void 0&&Oe(e,e.value)?null:e;var Rd,Od=e=>{Rd=e;},ne=(e,t,r)=>Rd(e,t,r);var Fb=e=>{let t=F(e);throw t&&t.depth>1?new Error(Zo(e,"toPrisma")):new Error(`Path '${e}' compares to a column, which isn't supported on the Prisma rail; use toSql() or check().`)},gt=e=>rn(e,{value:t=>{if(Fi(t))throw new Error("toPrisma: a value holding a '__step' or '__field' key is reserved for the plan's own references");return t},path:t=>Fb(t),bind:(t,r)=>Ei(t,r,"toPrisma")}),fn=e=>gt(e),Co=e=>Nr({now:e?.now,timeZone:e?.timeZone,weekStart:e?.weekStart},fn),ko=e=>t=>{let r=typeof t.operator=="string"||typeof t.dateOperator=="string",o=t.value!==void 0||typeof t.path=="string"&&t.path!==""||typeof t.bind=="string";if(!r||"aggregate"in t||!o||typeof t.operator=="string"&&typeof t.path=="string"&&t.path!=="")return t;let n=Ce({field:String(t.field)},e?.map,e?.model);if((n==="json"||n==="json-path")&&typeof t.operator=="string"&&wo.includes(t.operator))throw _("toPrisma",`The complement of '${t.operator}' on the Json value '${t.field}'`,"it keeps values of other types");let i=gt(t),s=t.offset===void 0?void 0:gt(t.offset);if(t.offset!==void 0&&s==null)return null;let{path:a,bind:l,bindOptional:f,...p}=t,d={...p,value:i,...t.offset!==void 0&&{offset:{value:s}}};return typeof t.dateOperator=="string"?i==null||Oe({operator:t.dateOperator},i)?null:d:bd(d)};var ze=()=>({}),Dr=ze,yt=()=>({OR:[]}),zs=e=>Object.keys(e).length===0,xd=e=>{let t=Object.keys(e);return t.length===1&&t[0]==="OR"&&Array.isArray(e.OR)&&e.OR.length===0},je=e=>{if(e.some(xd))return yt();let t=e.filter(r=>!zs(r));return t.length===0?ze():t.length===1?t[0]:{AND:t}},I=e=>{if(e.some(zs))return ze();let t=e.filter(r=>!xd(r));return t.length===0?yt():t.length===1?t[0]:{OR:t}},Ee=e=>zs(e)?e:{NOT:e},Ed=(e,t,r)=>je(e.all.map(o=>ne(o,t,r))),Pd=(e,t,r)=>I(e.any.map(o=>ne(o,t,r))),$d=(e,t,r)=>{if(mt(e,t?.map,t?.model))return Dr();let o=ne(De(e.if,ko(t)),t,r),n=ne(e.then,t,r),i=I([o,n]);if(e.else!==void 0){let s=ne(e.if,t,r),a=ne(e.else,t,r);return je([i,I([s,a])])}return i};var Db=(e,t,r,o)=>{let n=T(e,t);if(!n)return null;for(let i of Object.values(n.fields))if(i.kind==="object"&&i.type===r&&(i.fromFields?.length??0)>0&&(i.toFields?.length??0)>0&&(o===void 0||i.relationName===o))return i;return null},dn=(e,t,r)=>{if(r.fromFields?.length)return r.fromFields.map((n,i)=>({here:n,there:r.toFields?.[i]??"id"}));let o=Db(e,r.type,t,r.relationName);return o?.fromFields?.length?o.fromFields.map((n,i)=>({here:o.toFields?.[i]??"id",there:n})):null},Vi=(e,t,r,o)=>{if(o.relationName===void 0)return null;let n=Object.entries(T(e,o.type)?.fields??{}).filter(([i,s])=>s.kind==="object"&&s.type===t&&s.relationName===o.relationName&&!(o.type===t&&i===r));return n.length===1?{field:n[0][0],entry:n[0][1]}:null};var jr=(e,t)=>{let r=e.split("."),o=t;for(let n=r.length-1;n>=0;n--)o={[r[n]]:o};return o};var _o=(e,t,r,o)=>{let n=e.split("."),i=se(e,t,r);if(i.kind==="bridge")throw new Error(`'${e}' crosses a bridge: ${o.toLowerCase()} aren't supported across a bridge \u2014 no one database holds both sides.`);if(i.kind!=="direct"||i.entry.kind!=="object"){let l=i.hops.at(-1)?.entry.type??r;throw new Error(`Field '${n[i.hops.length]}' is not a relation in model '${l}'. ${o} require a relation field.`)}let s=i.hops.find(l=>l.entry.isList);if(s)throw new Error(`Intermediate field '${s.field}' in path '${e}' is a list relation. Only the final segment can be a list relation for ${o.toLowerCase()}.`);if(!i.entry.isList)throw new Error(`Field '${i.column}' is not a list relation in model '${i.model}'. ${o} only apply to one-to-many or many-to-many relations.`);let a=dn(t,i.model,i.entry);if(!a){let l=Object.values(T(t,i.entry.type)?.fields??{}).some(f=>f.kind==="object"&&f.type===i.model&&f.isList&&!f.fromFields?.length);throw new Error(l?`'${i.model}.${i.column}' is an implicit many-to-many relation. ${o} require an explicit join model with a FK \u2014 convert to an explicit @relation or use prisma.$queryRaw.`:`Cannot determine FK relationship between '${i.model}' and '${i.entry.type}'. Ensure the FieldMap contains both sides of the relation.`)}if(a.length>1)throw new Error(`${o} do not support composite FK relations ('${i.model}.${i.column}'). Use prisma.$queryRaw.`);return {through:i.hops.map(l=>l.field).join("."),target:i.entry.type,parentKey:a[0].here,targetKey:a[0].there}},Bi=(e,t,r,o,n)=>{let i={operation:"groupBy",model:t.target,args:{by:[t.targetKey],where:r,having:o},extract:t.targetKey},s=Di({__step:e.steps.length});e.steps.push(i);let a={[t.parentKey]:{in:s}},l=n?Ee(a):a;return t.through?jr(t.through,l):l};var fr=e=>({ok:e.length===0,errors:e}),un=(e,t)=>{if(!e.ok)throw new Error(`${t}:
|
|
2
2
|
${e.errors.map(r=>`${r.path}: ${r.message}`).join(`
|
|
3
|
-
`)}`)},Fo=(e,t={})=>{let r={target:t.target??"check",errors:[],map:Me(t.map,t.mapName,"toPrisma"),scopeModels:[t.model],stepScopes:[false]};return Ft(e,"$",r,1),fr(r.errors)},jb=(e,t={})=>{un(Fo(e,t),"validateRule");},Ft=(e,t,r,o)=>{if(typeof e=="boolean")return;if(!pr(e)){P(r,t,"invalid_condition","Condition must be a boolean or object");return}let n=fe(e);if(!n){P(r,t,"ambiguous_condition",at().message);return}switch(n){case "all":vd(e.all,`${t}.all`,r,o);break;case "any":vd(e.any,`${t}.any`,r,o);break;case "if":Ft(e.if,`${t}.if`,r,o),Ft(e.then,`${t}.then`,r,o),"else"in e&&e.else!==void 0&&Ft(e.else,`${t}.else`,r,o);break;case "field":Ib(e,t,r,o);break;case "aggregate":qb(e,t,r,o);break;case "array":Wb(e,t,r,o);break;case "date":Ub(e,t,r,o);break}},vd=(e,t,r,o)=>{if(!Array.isArray(e)){P(r,t,"logical_array_required","Logical operator requires an array of conditions");return}e.forEach((n,i)=>{Ft(n,`${t}[${i}]`,r,o);});},Wi=(e,t,r,o)=>{typeof e.field=="string"&&Td(e.field,"field",`${t}.field`,r,o);},Td=(e,t,r,o,n,i=false)=>{let s=F(e)??(t==="path"?{depth:n}:null);if(!s)return;let a=t==="field"?"Field":"Path";s.depth>n&&P(o,r,"scope_out_of_bounds",$s(e,s.depth,n)),o.target==="toPrisma"&&!i?P(o,r,`unsupported_prisma_${t}`,t==="path"?`Path '${e}' compares to a column, which isn't supported on the Prisma rail; use toSql() or check()`:`${a} '${e}' is not supported by toPrisma()`):o.target==="toSql"&&(t==="field"||s.depth>1)&&P(o,r,`unsupported_sql_${t}`,`${a} '${e}' is not supported by toSql()`);},qi=(e,t,r,o=false)=>{e.stepScopes[t]=o||e.stepScopes[t-1]===true;let n=e.scopeModels[t-1];e.scopeModels[t]=e.map&&n&&typeof r=="string"?pn(r,e.map,n)??void 0:void 0;},Lo=(e,t,r,o,n=false)=>{let i=Df.filter(a=>e[a]!==void 0);if(i.length>1)return P(r,t,"ambiguous_value_source","Takes one of value, path or bind"),null;if(i.length===0)return P(r,t,"missing_value_source","Requires value, path or bind"),null;let[s]=i;return s!=="value"&&(typeof e[s]!="string"||e[s]==="")?(P(r,`${t}.${s}`,"invalid_value_source",`${s} is a non-empty string`),null):(e.bindOptional!==void 0&&(s!=="bind"||typeof e.bindOptional!="boolean")&&P(r,`${t}.bindOptional`,"invalid_value_source","bindOptional is a boolean beside bind"),s==="path"&&Td(e.path,"path",`${t}.path`,r,o,n),s)},Md=(e,t,r,o,n,i)=>{let{offset:s}=e;if(s===void 0)return;let a=`${o}.offset`;if(!Rf.includes(r)){P(n,a,"unsupported_offset_operator",`Operator '${r}' has no comparison point to offset`);return}if(!pr(s)){P(n,a,"invalid_offset","An offset is one of { value }, { path } or { bind }");return}let l=Lo(s,a,n,i);if(l==="path"){let d=s.path,u=Pr(s);t==="date"&&u&&u.depth<=1&&n.target==="toSql"&&P(n,`${a}.path`,"unsupported_sql_path",`A row path on a date offset ('${d}') is not supported by toSql()`);return}if(l!=="value")return;let f=s.value;if(t==="field"){(typeof f!="number"||!Number.isFinite(f))&&P(n,`${a}.value`,"invalid_offset","A field offset value is a number");return}let p=pr(f)&&Object.keys(f).length===1&&te(f)?Re(f):null;if(!p){P(n,`${a}.value`,"invalid_offset","A date offset value is { ago } or { ahead }");return}_d(p[0],`${a}.value.${Object.keys(f)[0]}`,n,i);},Cd=(e,t,r,o)=>{o.target!=="toSql"||!_e.includes(t)||Pr(e)&&P(o,`${r}.path`,"unsupported_sql_path",`A range read from the row ('${e.path}') is not supported by toSql()`);},Ib=(e,t,r,o)=>{if(typeof e.field!="string"&&P(r,`${t}.field`,"field_required","Field rule requires a string field"),Wi(e,t,r,o),typeof e.operator!="string"||!vt(e.operator,"field")){P(r,`${t}.operator`,"invalid_operator",ie(e.operator,"field").message);return}let n=e.operator;Md(e,"field",n,t,r,o),fi(n,"field",r.target)||P(r,`${t}.operator`,`unsupported_${Ui(r.target)}_operator`,`Operator '${n}' is not supported by ${r.target}()`),e.coerceType!==void 0&&!pi(e.coerceType)&&P(r,`${t}.coerceType`,"invalid_coerce_type",`coerceType must be one of: ${Object.keys(H).join(", ")}`);let i=Nt(n,"field");if(i==="none"){Gb(e,t,r);return}if(Lo(e,t,r,o,true)!==null){if(Cd(e,n,t,r),r.target==="toPrisma"&&typeof e.path=="string"){let s=ji(e,r.map,r.scopeModels[o-1],o>1,r.stepScopes[o-1]===true);"problem"in s&&P(r,`${t}.path`,"unsupported_prisma_path",Ii(e.path,s.problem).message);}if(r.target==="toSql"&&typeof e.path=="string"&&r.map){let s=r.scopeModels[o-1],a=(F(e.path)??{path:e.path}).path,l=Mo(Z(e.field,r.map,s),Z(a,r.map,s),n);l&&P(r,`${t}.path`,"unsupported_sql_path",`'${e.path}': ${l}`);}r.target==="toSql"&&typeof e.path=="string"&&["array","pattern","string"].includes(i)&&((r.map?Z(e.field,r.map,r.scopeModels[o-1]):void 0)?.isList&&nt.includes(n)||P(r,`${t}.path`,"unsupported_sql_path",`'${n}' against the column '${e.path}' has no SQL form`)),!(typeof e.path=="string"||typeof e.bind=="string")&&(Vb(e,n,t,r,o),Bb(i,e.value,n,`${t}.value`,r));}},Vb=(e,t,r,o,n)=>{if(o.target!=="toPrisma"||!o.map||typeof e.field!="string")return;let i=Z(e.field,o.map,o.scopeModels[n-1]);if(!i)return;let s=e.value,a=pe(e.caseInsensitive),l=Jt.includes(t)&&Array.isArray(s),f=p=>P(o,`${r}.value`,"unsupported_prisma_operator",_("toPrisma",p).message);i.isList&&!l&&Array.isArray(s)&&s.includes(null)?f(`A list holding null in '${e.field}'`):i.isList&&!l&&a&&ar("text",s)?f(`A case-insensitive comparison on the list '${e.field}'`):Te(i)&&a&&f(`A case-insensitive comparison on the Json column '${e.field}'`);},Bb=(e,t,r,o,n)=>{switch(e){case "scalar":case "string":e==="string"&&typeof t!="string"&&P(n,o,"invalid_string_value",`Operator '${r}' requires a string value`);return;case "ordered":de(t)||P(n,o,"invalid_ordered_value",`Operator '${r}' requires a string, number, or Date value`);return;case "array":Array.isArray(t)||P(n,o,"invalid_membership_value",`Operator '${r}' requires an array value`);return;case "pattern":{if(!(typeof t=="string"||t instanceof RegExp)){P(n,o,"invalid_pattern_value",`Operator '${r}' requires a string or RegExp value`);return}let i=Qf(t,n.target);i&&P(n,o,"unsupported_pattern",i);return}case "range":try{$o(t,r);}catch(i){P(n,o,"invalid_range_value",i.message);}return}},kd=(e,t,r,o,n)=>{let i=r.scopeModels[o-1];if(!(r.target!=="toPrisma"||!r.map||!i||typeof e.field!="string"))try{_o(e.field,r.map,i,n);}catch(s){P(r,`${t}.field`,"unsupported_prisma_relation",s.message);}},qb=(e,t,r,o)=>{if(kd(e,t,r,o,"Aggregate rules"),e.offset!==void 0&&P(r,`${t}.offset`,"unexpected_offset","Aggregate rules take no offset"),Ld(e,t,r,o),typeof e.field!="string"&&P(r,`${t}.field`,"field_required","Aggregate rule requires a string field"),Wi(e,t,r,o),!pr(e.aggregate)){P(r,`${t}.aggregate`,"invalid_aggregate","aggregate must be an object");return}let n=e.aggregate;if(it.includes(n.mode)||P(r,`${t}.aggregate.mode`,"invalid_aggregate_mode",Yt(n.mode).message),"field"in n&&n.field!==void 0&&typeof n.field!="string"&&P(r,`${t}.aggregate.field`,"invalid_aggregate_field","aggregate.field must be a string"),!di.includes(e.operator)){P(r,`${t}.operator`,"invalid_aggregate_operator",`Aggregate rules only support: ${di.join(", ")}`);return}if(r.target==="toPrisma"&&typeof e.path=="string"&&P(r,`${t}.path`,"unsupported_prisma_aggregate_path","path is not supported by toPrisma() for aggregate rules; use value instead"),"condition"in e&&e.condition!==void 0&&(r.target==="toSql"&&P(r,`${t}.condition`,"unsupported_sql_aggregate_condition","Aggregate condition filtering is not supported by toSql(); use check() or toPrisma()"),qi(r,o,e.field,true),Ft(e.condition,`${t}.condition`,r,o+1)),Lo(e,t,r,o)===null||typeof e.path=="string"||typeof e.bind=="string")return;let i=e.value;_e.includes(e.operator)?Kb(i)||P(r,`${t}.value`,"invalid_range_value",`Operator '${e.operator}' requires a two-item numeric range`):typeof i!="number"&&P(r,`${t}.value`,"invalid_aggregate_value","Aggregate rule value must be a number");},Wb=(e,t,r,o)=>{if(typeof e.field!="string"&&r.target!=="check"&&P(r,`${t}.field`,"field_required","Array rule requires a string field for this target"),Wi(e,t,r,o),Ld(e,t,r,o),typeof e.arrayOperator!="string"||!vt(e.arrayOperator,"array")){P(r,`${t}.arrayOperator`,"invalid_array_operator",ie(e.arrayOperator,"array").message);return}let n=e.arrayOperator;Qt.includes(n)&&kd(e,t,r,o,"Count operators");let i=r.target==="toPrisma"&&r.map&&typeof e.field=="string"?Z(e.field,r.map,r.scopeModels[o-1]):void 0;i&&!j(i)&&n!=="empty"&&n!=="notEmpty"&&P(r,`${t}.arrayOperator`,"unsupported_prisma_array_operator",_("toPrisma",`'${n}' over the array column '${e.field}'`).message),fi(n,"array",r.target)||P(r,`${t}.arrayOperator`,`unsupported_${Ui(r.target)}_array_operator`,`Array operator '${n}' is not supported by ${r.target}()`);let s=Nt(n,"array"),a=e.condition!==void 0,l=()=>{e.count!==void 0&&P(r,`${t}.count`,"unexpected_count",`Array operator '${n}' does not accept count`);};s==="none"?(a&&P(r,`${t}.condition`,"unexpected_condition",`Array operator '${n}' does not accept condition`),l()):s==="predicate"?(a?(qi(r,o,e.field),Ft(e.condition,`${t}.condition`,r,o+1)):P(r,`${t}.condition`,"missing_condition",qe(n).message),l()):s==="count"&&(typeof e.count!="number"?P(r,`${t}.count`,"missing_count",Ro(n).message):e.count!==void 0&&!(typeof e.count=="number"&&Number.isInteger(e.count)&&e.count>=0)&&P(r,`${t}.count`,"invalid_count","count must be a non-negative whole number"),a?(qi(r,o,e.field,true),Ft(e.condition,`${t}.condition`,r,o+1)):P(r,`${t}.condition`,"missing_condition",qe(n).message));},Ub=(e,t,r,o)=>{if(typeof e.field!="string"&&P(r,`${t}.field`,"field_required","Date rule requires a string field"),Wi(e,t,r,o),typeof e.dateOperator!="string"||!vt(e.dateOperator,"date")){P(r,`${t}.dateOperator`,"invalid_date_operator",ie(e.dateOperator,"date").message);return}let n=e.dateOperator;Md(e,"date",n,t,r,o),fi(n,"date",r.target)||P(r,`${t}.dateOperator`,`unsupported_${Ui(r.target)}_date_operator`,`Date operator '${n}' is not supported by ${r.target}()`);let i=Nt(n,"date");if(i==="dayList"){if(Lo(e,t,r,o)!=="value")return;let s=e.value;(!Array.isArray(s)||!s.every(a=>typeof a=="string"&&kf(a)))&&P(r,`${t}.value`,"invalid_day_list",`Date operator '${n}' requires an array of day names (${bo.join(", ")})`);return}if(Lo(e,t,r,o)!==null&&(Cd(e,n,t,r),!(typeof e.path=="string"||typeof e.bind=="string"))){if(te(e.value)){Nd(e.value,n,`${t}.value`,r,o);return}if(Yo.includes(n)){P(r,`${t}.value`,"invalid_date_range",Be(n).message);return}if(i==="dateRange"){if(!zb(e.value)){P(r,`${t}.value`,"invalid_date_range",`Date operator '${n}' requires a two-item date range`);return}e.value.forEach((s,a)=>{te(s)?Nd(s,n,`${t}.value[${a}]`,r,o):de(s)&&!rr(s,Tt).isValid()&&P(r,`${t}.value[${a}]`,"invalid_date_value",`Date operator '${n}' value '${String(s)}' does not parse as a date`);});return}if(!de(e.value)){P(r,`${t}.value`,"invalid_date_value",`Date operator '${n}' requires a date-like value`);return}rr(e.value,Tt).isValid()||P(r,`${t}.value`,"invalid_date_value",`Date operator '${n}' value '${String(e.value)}' does not parse as a date`);}},_d=(e,t,r,o)=>{if(!pr(e)||Object.keys(e).length===0){P(r,t,"invalid_relative_units","Relative offset requires at least one unit");return}for(let[n,i]of Object.entries(e)){if(!As(n)){P(r,`${t}.${n}`,"invalid_relative_unit",`Unknown relative unit '${n}'`);continue}let s=pr(i)?Lo(i,`${t}.${n}`,r,o):"literal";if(s===null||s==="path"||s==="bind")continue;let a=s==="value"?i.value:i,l=Vs(a,n);l&&P(r,`${t}.${n}`,"invalid_relative_magnitude",l);}},Ad=(e,t,r)=>{(typeof e!="string"||!ci.includes(e))&&P(r,t,"invalid_period_unit",`Unknown period unit '${String(e)}'`);},Nd=(e,t,r,o,n)=>{let i=Yo.includes(t),s=Re(e);if(s){_d(s[0],r,o,n);return}if(tn(e)){Ad(Oi(e),r,o);return}if(Ts(e)){if(i){P(o,r,"invalid_date_range",Be(t).message);return}let a="start"in e?e.start:e.end;if(!pr(a)||!tn(a)){P(o,r,"invalid_period_unit","start/end requires a this/last/next period");return}Ad(Oi(a),r,o);return}P(o,r,"invalid_date_expression","Unrecognized date expression");},Gb=(e,t,r)=>{"value"in e&&e.value!==void 0&&P(r,`${t}.value`,"unexpected_value","Rule does not accept value"),"path"in e&&e.path!==void 0&&P(r,`${t}.path`,"unexpected_path","Rule does not accept path"),"bind"in e&&e.bind!==void 0&&P(r,`${t}.bind`,"unexpected_bind","Rule does not accept bind");},Ui=e=>e==="toPrisma"?"prisma":e==="toSql"?"sql":"check",pr=e=>$e(e),Kb=e=>Array.isArray(e)&&e.length===2&&typeof e[0]=="number"&&typeof e[1]=="number",zb=e=>Array.isArray(e)&&e.length===2&&(de(e[0])||te(e[0]))&&(de(e[1])||te(e[1])),Ld=(e,t,r,o)=>{if(Ne(e)&&r.target!=="check"&&(r.target==="toPrisma"&&To(e)!==null||P(r,t,`unsupported_${Ui(r.target)}_window`,lt(r.target).message)),"filter"in e&&e.filter!==void 0&&(qi(r,o,e.field),Ft(e.filter,`${t}.filter`,r,o+1)),"orderBy"in e&&e.orderBy!==void 0){let i=e.orderBy;Array.isArray(i)?i.forEach((s,a)=>{(!pr(s)||typeof s.field!="string"||s.dir!=="asc"&&s.dir!=="desc")&&P(r,`${t}.orderBy[${a}]`,"invalid_order_by",'orderBy entries must be { field: string, dir: "asc" | "desc" }');}):P(r,`${t}.orderBy`,"invalid_order_by","orderBy must be an array of { field, dir }");}for(let i of ["take","skip"])if(i in e&&e[i]!==void 0){let s=e[i];(typeof s!="number"||!Number.isInteger(s)||s<0)&&P(r,`${t}.${i}`,`invalid_window_${i}`,`${i} must be a non-negative integer`);}},P=(e,t,r,o)=>{e.errors.push({path:t,code:r,message:o});};var Hb=/[.:]/,Hs=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"&&Hb.test(s)&&t.push({path:`${xe({fieldMap:r,model:n})}.${s}`,message:"contains forbidden character . or :",code:"invalid_field_name"});return fr(t)},Fd=e=>un(Hs(e),"validateFieldMaps");var Ke=e=>!Object.hasOwn(e,"parent"),gt=e=>{let t=[],r=new Set,o=e;for(;!Ke(o);){if(r.has(o))throw new Error("cycle detected in narrowing parent chain");if(Object.hasOwn(o,"model")||Object.hasOwn(o,"maps"))throw new Error("a narrowing carries a base lens key (model / maps); it has a parent instead");r.add(o),t.unshift(o),o=o.parent;}return t},ze=e=>Ke(e)?e:gt(e)[0].parent;var Js=(e,t)=>t.length?q([...t,e]):e,Jb=e=>{if(tr(e).length)return false;let t=e.field,r=typeof t=="string"?F(t):null;try{return ue(r?{...e,field:r.path}:e,{})===!0}catch{return false}},Qs=(e,t)=>{if(!t.length)return e;if(!Jb(e))return q([...t.flatMap(n=>n.clamps),e]);let[r,...o]=t;return Ct([q([...r.clamps,Qs(e,o)]),q([{field:r.prefix,operator:"notExists"},e])])},Gi=(e,t)=>er(e,{rewrite:r=>{if(Ae(r))return r;if(typeof r.field!="string"||r.field==="")throw new N(`narrowRule: cannot re-root a relation clamp of unknown shape under '${t}'`,"unsupported_clamp");let o=tr(r);if(o.length)throw new N(`narrowRule: cannot re-root a relation clamp with a path reference ('${o[0]}') under '${t}'. Author the clamp without 'path', or anchor it at the relation itself.`,"unsupported_clamp");if(F(r.field))throw new N(`narrowRule: cannot re-root a relation clamp with a scope ref field ('${r.field}') under '${t}'. Author the clamp against the model's own columns.`,"unsupported_clamp");if(Le(r)){for(let n of [r.condition,r.filter])if(n!==void 0&&Do(n).escaping!==null)throw new N(`narrowRule: cannot re-root a relation clamp on '${r.field}' under '${t}': '${Do(n).escaping}' inside it reads the row being re-rooted. Anchor such clamps at the relation's own model.`,"unsupported_clamp")}return {...r,field:`${t}.${r.field}`}},below:()=>false}),Zs=(e,t)=>t.flatMap(r=>{let o=D(e,r.map,r.model,r.relPath);if(o.whereClauses.length===0)return [];if(r.isList)throw new N(`narrowRule: cannot enforce a to-many relation clamp on '${r.prefix}' without an arrayOperator condition to anchor it (row-scoped). Traverse '${r.prefix}' via an array operator (any/all/none/...) so the clamp can be injected safely.`,"unsupported_clamp");return [{prefix:r.prefix,clamps:o.whereClauses.map(n=>Gi(n,r.prefix))}]}),Dd=(e,t)=>Zs(e,t).flatMap(r=>r.clamps),Id=(e,t,r)=>{let o=ke(e,r);if("outOfBounds"in o)throw new N(`narrowRule: ${o.outOfBounds}`,"scope_out_of_bounds");if(!o.scope)return {hops:[],end:null};let n=e.slice(0,e.length-o.path.length);return je(t.lens.maps,o.scope,o.path,n==="$."?"":n)},Qb=(e,t,r)=>{if(F(e))return Id(e,t,r).hops;let o=r.length===1?"":`${"$".repeat(r.length)}.`;return r[0]?je(t.lens.maps,r[0],e,o).hops:[]},jd=(e,t,r)=>{if(Ae(e)||typeof e.field!="string"||e.field==="")return null;let{hops:o,end:n}=Id(e.field,t,r);return {hops:o,below:n}},Ir=(e,t,r)=>er(e,{below:(o,n)=>{let i=jd(o,t,n);return i?i.below?[...n,i.below]:Le(o)?[...n,null]:false:false},after:(o,n)=>{let i=jd(o,t,n);if(!i)return o;let s=Dd(t,tr(o).flatMap(d=>Qb(d,t,n))),a=i.below;if(!a||!Le(o))return Js(Qs(o,Zs(t,i.hops)),s);let l=[...D(t,a.mapName,a.modelName,a.relPath).whereClauses,...Dd(t,Po(o).flatMap(d=>je(t.lens.maps,a,d).hops))],f=o.condition===void 0||o.arrayOperator===$.all||Ne(o),p={...o};return l.length&&f?p.filter=q([...o.filter!==void 0?[o.filter]:[],...l]):l.length&&(p.condition=q([...l,o.condition])),Js(Qs(p,Zs(t,i.hops.slice(0,-1))),s)}},[r]),jo=(e,t)=>{let r=k(t),o=D(r,r.lens.mapName,r.lens.model,[]),n=Ir(e,r,{mapName:r.lens.mapName,modelName:r.lens.model,relPath:[]});return Js(n,o.whereClauses)};var Ys=(e,t)=>{let r=Tr(e,H.DateTime,t);return typeof r=="number"&&!Number.isNaN(new Date(r).getTime())?r:void 0},Zb=(e,t,r)=>o=>{if(o==null)return o;let n=Ys(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()},Ki=(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?_t(i):void 0;if(e.coerceType!==void 0&&s!==void 0&&e.coerceType!==s)throw new Error(`coerceType '${e.coerceType}' overrides ${s} field '${e.field}', but ${o} compares the column as stored \u2014 evaluate it in memory with check(), or drop the override.`);if((s??e.coerceType)===H.DateTime){let l=Zb(e.field,o,n());return Array.isArray(t)?t.map(l):l(t)}if(e.coerceType===void 0&&s===H.String&&(Array.isArray(t)?t:[t]).some(l=>typeof l=="number"||typeof l=="boolean"))throw new Error(`'${e.field}' is String but the literal is not a string; pass a string, or stamp coerceType: 'String'.`);if(e.coerceType===void 0&&s!==void 0&&(Ve.includes(s)||s===H.Boolean)&&(Array.isArray(t)?t:[t]).some(l=>typeof l=="string"))throw new Error(`'${e.field}' is ${s} but the literal is a string; pass a ${s===H.Boolean?"boolean":"number"}, or stamp coerceType: '${s}'.`);return e.coerceType!==void 0&&Tf.includes(e.coerceType)?Tr(t,e.coerceType,e.coerceType===H.DateTime?n():void 0):t};var Vd=e=>Array.isArray(e)?e.flatMap(Vd):[e],cn=e=>e.value===void 0?null:Vd(e.value),Yb=e=>Ys(e)!==void 0,Xb=/^-?\d+(\.\d+)?$/,eR={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"&&Xb.test(e)},Boolean:{expected:"a boolean",fits:e=>typeof e=="boolean"},DateTime:{expected:"a date",fits:Yb},Json:{expected:"a value",fits:()=>true},Bytes:{expected:"a value",fits:()=>true}},tR=e=>typeof e=="string"?`'${e}'`:typeof e=="object"&&e!==null?JSON.stringify(e):String(e),Bd=(e,t)=>{let r="coerceType"in e?e.coerceType:void 0,o=r??t;if(o===void 0||o===H.Json)return [];let n="operator"in e?e.operator:e.dateOperator,i=ho(e);if(!i)return [];let a=r!==void 0&&r!==t?`field '${e.field}' coerced to ${o}`:`${o} field '${e.field}'`;if(!i.kinds.includes(o))return [{path:e.field,code:"operator_kind_mismatch",message:`operator '${n}' does not apply to ${a} (applies to: ${i.kinds.join(", ")})`}];if(e.offset!==void 0&&!("dateOperator"in e?o===H.DateTime:Ve.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(Mf.includes(i.valueShape)&&Array.isArray(e.value))return [{path:e.field,code:"invalid_value_shape",message:`operator '${n}' compares one value, but ${a} was given a list`}];let{expected:l,fits:f}=eR[o],p=u=>{try{return f(Tr(u,o))}catch{return false}},d=u=>f(u)||r!==void 0&&p(u);return (cn(e)??[]).filter(u=>u!==null&&!d(u)).map(u=>({path:e.field,code:"invalid_value",message:`value ${tR(u)} does not fit ${a} (expected ${l})`}))},qd=(e,t,r)=>{if(r.isList===true||Te(r))return null;let o=j(r)?`arrayOperator '${t}' needs a list, but '${e}' is a to-one relation \u2014 a single related record; address its fields directly (e.g. '${e}.<field>')`:`arrayOperator '${t}' needs a list, but '${e}' is a single ${_t(r)??r.type} value`;return {path:e,code:"invalid_array_operator",message:o}};var rR=(e,t,r,o)=>oe(e,(n,i)=>{let s=fe(n);if(s===null)return o.push({path:typeof n.field=="string"?n.field:"",code:"ambiguous_condition",message:at().message}),false;if(Ae(n))return;let a=n,l=S=>{let b=ke(S,i);return "outOfBounds"in b?(o.push({path:S,code:"scope_out_of_bounds",message:b.outOfBounds}),null):{scope:b.scope,field:b.path}},f=i[i.length-1],p=true,d=null;if("field"in a&&typeof a.field=="string"&&a.field!==""){let S=Bo(t,i,a.field);"issue"in S?(o.push({path:a.field,...S.issue}),p=false):{next:f,walked:d}=S;}let u=d?.entry??null,c=d?.terminalFieldName??null,g=d?.entry.kind==="enum",m=d?.entry.type??null,y=d&&d.jsonSubPath.length===0?Hi(d.terminalEffect,d.terminalFieldName):null;for(let{ref:S,role:b}of Fs(a)){let R=F(S)?l(S):{scope:yt(t),field:S};if(!R||R.scope.open)continue;let w=Io(t,R.scope,R.field);if(!w){o.push({path:S,...zi(t,R.scope,R.field,b==="value"?"path (comparison ref) does not resolve through the narrowed lens":"offset or magnitude ref does not resolve through the narrowed lens")});continue}if(j(w.entry)){o.push({path:S,code:"not_in_lens",message:"a value ref reads a column, not a relation"});continue}let E=_t(w.entry);if(b==="value"||b==="shift"||E===void 0)continue;(b==="whole"?Af.includes(E):Ve.includes(E))||o.push({path:S,code:"not_in_lens",message:`${b==="whole"?"a calendar unit reads a whole number":"an offset or magnitude reads a number"}, not ${E}`});}if(!p)return false;if("arrayOperator"in a&&typeof a.field=="string"&&u){let S=qd(a.field,a.arrayOperator,u);if(S)return o.push(S),false}if(u&&j(u)&&(s==="field"||s==="date")&&(u.isList||!Mr(a))){let S=a.field;return o.push({path:S,code:"operator_kind_mismatch",message:(u.isList?yi(S):Oo(S)).message}),false}if(!u?.isList&&(s==="field"||s==="date")&&o.push(...Bd(a,u?_t(u):void 0)),!f.open)for(let S of Po(a))S!==""&&!Io(t,f,S)&&o.push({path:S,...zi(t,f,S,"an orderBy or aggregate field does not resolve through the narrowed lens")});if(y&&"operator"in a&&c){let S=cn(a);if(S){let b=new Set(y),R=g?`enum '${m}'`:`field '${c}'`;for(let w of S)typeof w=="string"&&!b.has(w)&&o.push({path:c,code:"value_not_allowed",message:`value '${w}' is not in the allowed set for ${R} (allowed: ${[...b].join(", ")})`});}}return [...i,f]},[r]),mn=(e,t,r,o,n)=>{let i=[];return rR(e,t,{mapName:r,modelName:o,relPath:n,open:false},i),i},Vo=(e,t)=>{let r=k(t);try{let o=mn(e,r,r.lens.mapName,r.lens.model,[]);return o.length===0&&jo(e,t),fr(o)}catch(o){if(!(o instanceof N))throw o;return fr([{path:"",code:o.code,message:o.message}])}};var hn=e=>e===void 0?void 0:Array.isArray(e)?e:[e],wn=e=>typeof e=="object"&&e!==null&&!Array.isArray(e)&&("where"in e||"label"in e||"groupBy"in e||"from"in e),dr=e=>{if(wn(e))return e;if(typeof e=="object"&&e!==null&&!Array.isArray(e)&&Object.keys(e).length===0)throw oR();return {where:e}},oR=()=>new N("sources: {} is not a Condition \u2014 use `true` for an unconstrained source","invalid_source"),ta=["__offpath__"],Wd=new WeakMap,nR=(e,t)=>{if(!t)return new Map;let r=JSON.stringify([gn(t.parent),gn(e.maps),e.mapName,e.model,t.mapDefaults??null]),o=Wd.get(t);if(o?.fingerprint===r)return o.trees;let n=new Map;return Wd.set(t,{fingerprint:r,trees:n}),n},Ud=new WeakMap,iR=0,gn=e=>{let t=Ud.get(e);return t===void 0&&(t=iR++,Ud.set(e,t)),t},ce="\0",sR=e=>{let t=Object.entries(e.fields);return {relations:new Set(t.filter(([,r])=>j(r)).map(([r])=>r)),gated:t.filter(([,r])=>r.options!==void 0||r.kind==="enum"||r.values!==void 0)}},Ji=e=>e?String(gn(e)):"",k=e=>{let t=ze(e),r=Ke(e)?[]:gt(e);return {lens:t,chain:r,origin:r[0],memo:{trees:nR(t,r[0]),vetted:new Set,effects:new Map,places:new Map,models:new Map,refs:new Map,compiles:new Map}}},Qi=(e,t)=>e===null?new Set(t):new Set(t.filter(r=>e.has(r))),aR=(e,t)=>{if(t.picks&&(e.picks=Qi(e.picks,t.picks)),t.omits)for(let r of t.omits)e.omits.add(r);},zd=(e,t,r)=>{e.set(t,Qi(e.get(t)??null,r));},Hd=(e,t,r)=>{let o=e.get(t)??new Set;for(let n of r)o.add(n);e.set(t,o);},lR=(e,t,r)=>{if(r.enumPicks)for(let[o,n]of Object.entries(r.enumPicks))zd(e,o,n);if(r.enumOmits)for(let[o,n]of Object.entries(r.enumOmits))Hd(t,o,n);},Xs=(e,t,r)=>JSON.stringify([e,t,r]),pR=(e,t,r,o,n,i,s)=>{if(s&&aR(e,t),t.where!==void 0&&i&&(n(t.where),e.whereClauses.push(r(t.where))),t.sources)for(let[a,l]of Object.entries(t.sources)){let f=dr(l),p=e.sources.get(a)??[],d=e.sourceWheres.get(a)??[];f.where!==void 0&&i&&(n(f.where,true),p.push(r(f.where)),d.push(f.where)),e.sources.set(a,p),e.sourceWheres.set(a,d);let u=hn(f.groupBy);for(let[c,g,m]of [["label",f.label,e.sourceLabels.get(a)],["groupBy",u,e.sourceGroupBys.get(a)]]){if(g===void 0)continue;let y=Xs(a,c,g);m!==void 0&&Xs(a,c,m)===y||e.sourceDeclaredAt.set(y,o);}f.label!==void 0&&e.sourceLabels.set(a,f.label),u!==void 0&&e.sourceGroupBys.set(a,u),f.from==="mapDefaults"&&!e.sourcesFromMapDefaults.has(a)&&e.sourcesFromMapDefaults.set(a,o);}},N=class extends Error{constructor(r,o){super(r);this.code=o;}code;name="LensRefusal"},ra=e=>new N(`a bare path ('${e}') reads the root row, which a clamp at a relation visit or a model default doesn't stand on: use a literal, a bind, or a \`$\` scope ref`,"invalid_value_source"),fR=(e,t,r)=>mn(e,t,r.mapName,r.modelName,r.relPath),dR=e=>new N(`a later layer's clamp reads what its parent does not show: '${e.path}' ${e.message}`,e.code),oa=e=>new N(`the scope ref '${e}' climbs out of the clamp: a clamp reads its own row ('$.'), literals and binds`,"scope_out_of_bounds"),Do=e=>{let t=null,r=null;return oe(e,(o,n)=>{if(Ae(o))return;let i=tr(o);for(let s of [...typeof o.field=="string"?[o.field]:[],...i]){let a=F(s);r===null&&a&&a.depth>n&&(r=s);}for(let s of i)t===null&&!F(s)&&(t=s);return Le(o)?n+1:void 0},1),{bare:t,escaping:r}},ea=(e,t)=>{let r={mapName:e.lens.mapName,modelName:e.lens.model,relPath:[]},o=[r];if(t.relPath.length>0)for(let i of je(e.lens.maps,r,t.relPath.join(".")).hops)o.push({mapName:i.map,modelName:i.model,relPath:i.relPath});let n=o[o.length-1];return o.length===t.relPath.length+1&&n.mapName===t.mapName&&n.modelName===t.modelName?o:null},yn=(e,t)=>{let r=e;for(let o of t)r=O(r?.relations,o);return r},na=(e,t,r)=>{let o=i=>O(O(e.mapDefaults,i.mapName)?.models,i.modelName);if(!r){let i=o(t);return {defaults:i?[i]:[],path:void 0}}let n=[];for(let[i,s]of r.entries()){let a=yn(o(s),t.relPath.slice(i));a&&n.push(a);}return {defaults:n,path:yn(e.root,t.relPath)}},uR=(e,t,r,o)=>{let n=yn(t.root,r.relPath),i=[r.relPath.join(ce),Object.keys(n?.relations??{}).join(ce),(n?.omits??[]).join(ce)].join(`${ce}${ce}`),s=o.get(i);if(s)return s;let a=new Map,l={lens:e},f=ea(l,r)??[r],p=new Set(f.map(u=>`${u.mapName}:${u.modelName}`)),d=[{at:r,below:[]}];for(;d.length>0;){let{at:u,below:c}=d.shift(),g=T(O(e.maps,u.mapName),u.modelName)?.fields??{},{defaults:m,path:y}=na(t,u,ea(l,u)),S=new Set(m.flatMap(w=>Object.keys(w.relations??{}))),b=new Set([...m,...y?[y]:[]].flatMap(w=>w.omits??[])),R=[];for(let[w,E]of Object.entries(g)){if(!S.has(w)||b.has(w)||y?.relations!==void 0&&Object.hasOwn(y.relations,w))continue;let x=Ge(E,u.mapName);if(!x||!T(O(e.maps,x.mapName),x.modelName))continue;let I=`${x.mapName}:${x.modelName}`;p.has(I)||(p.add(I),R.push(w),d.push({at:{...x,relPath:[...u.relPath,w]},below:[...c,w]}));}a.set(c.join("."),R);}return o.set(i,a),a},cR=(e,t,r,o)=>{if(!o)return na(t,r,null).defaults.flatMap(f=>Object.keys(f.relations??{}));let n=r.relPath.length;for(;n>0&&yn(t.root,r.relPath.slice(0,n))===void 0;)n--;let i={...o[n],relPath:r.relPath.slice(0,n)},a=uR(e.lens,t,i,e.memo?.trees??new Map).get(r.relPath.slice(n).join("."))??[];return [...n===r.relPath.length?Object.keys(yn(t.root,r.relPath)?.relations??{}):[],...a]},ia=(e,t,r)=>{let o=t;for(let n of je(e.lens.maps,t,r).hops){let i=n.relPath[n.relPath.length-1];if(!D(e,o.mapName,o.modelName,o.relPath).relations.has(i))return n.prefix;o={mapName:n.map,modelName:n.model,relPath:n.relPath};}return null},D=(e,t,r,o)=>{let n=e.memo?Gd(e,t,r,o):null,i=n===null?void 0:e.memo?.effects.get(n);if(i){if(!e.unvetted&&i.unchecked){for(let L of i.unchecked)L();i.unchecked=null;}return i.effect}let s=[],a={picks:null,omits:new Set,enumValuesByField:new Map,whereClauses:[],sources:new Map,sourceWheres:new Map,sourceLabels:new Map,sourceGroupBys:new Map,sourceDeclaredAt:new Map,sourcesFromMapDefaults:new Map,relations:new Set,relationFields:new Set},l=O(e.lens.maps,t),f=T(l,r);if(!f)return a;let p=e.memo?.models.get(f);p||(p=sR(f),e.memo?.models.set(f,p)),a.relationFields=p.relations;let d={mapName:t,modelName:r,relPath:o},u=e.origin??e.chain[0],c=`${Ji(u)}${ce}${t}${ce}${r}${ce}${o.join(ce)}`,g=e.memo?.places.get(c);if(!g){let L=ea(e,d);g={trail:L,turnedOn:u?cR(e,u,d,L):[]},e.memo?.places.set(c,g);}let{trail:m}=g,y=new Map,S=new Map,b=new Map,R=new Map,w=L=>L,E=0,x=()=>{},I=true,ae=true,A=L=>{pR(a,L,w,E,x,I,ae),lR(y,S,L);};for(let[L,V]of e.chain.entries()){E=L;let yr={...e,clamp:false,skipClampsOf:void 0,skipHidingOf:void 0,chain:e.chain.slice(0,L)};I=V!==e.skipClampsOf,ae=V!==e.skipHidingOf,w=Se=>L===0?Se:Ir(Se,yr,{mapName:t,modelName:r,relPath:o});for(let[Se,Q]of Object.entries(O(V.mapDefaults,t)?.enums??{}))Q.picks&&zd(b,Se,Q.picks),Q.omits&&Hd(R,Se,Q.omits);let{defaults:Uo,path:hr}=na(V,d,m),le=L===0?null:yr,Qe=Se=>(Q,Go=false)=>{let Y=e.memo?.refs.get(Q);if(Y||(Y=Do(Q),e.memo?.refs.set(Q,Y)),Y.bare!==null&&!(Se&&!Go))throw ra(Y.bare);if(Y.escaping!==null)throw oa(Y.escaping);if(!le)return;let Rt=()=>{let An=typeof Q=="object"&&Q!==null?`${gn(Q)}${ce}${Gd(le,t,r,o)}`:null;if(An!==null&&le.memo?.vetted.has(An))return;let[ja]=fR(Q,le,d);if(ja)throw dR(ja);An!==null&&le.memo?.vetted.add(An);};e.unvetted?s.push(Rt):Rt();};x=Qe(false);for(let Se of Uo)A(Se);hr&&(x=Qe(o.length===0&&m!==null),A(hr));}if(u&&e.chain.includes(u))for(let L of g.turnedOn)a.relationFields.has(L)&&!a.omits.has(L)&&a.relations.add(L);for(let[L,V]of p.gated){let yr=V.kind==="enum",hr=V.options?.map(Q=>Q.value)??(yr?_r(V,l?.enums):V.values);if(!hr)continue;let le=hr;if(yr){let Q=b.get(V.type),Go=R.get(V.type);Q&&(le=le.filter(Y=>Q.has(Y))),Go&&(le=le.filter(Y=>!Go.has(Y)));}let Qe=y.get(L),Se=S.get(L);Qe&&(le=le.filter(Q=>Qe.has(Q))),Se&&(le=le.filter(Q=>!Se.has(Q))),a.enumValuesByField.set(L,le);}return n!==null&&e.memo?.effects.set(n,{effect:a,unchecked:s.length?s:null}),a},Gd=(e,t,r,o)=>{let n=Kd.get(e);if(n===void 0){n=`${Ji(e.origin)}${ce}${Ji(e.skipClampsOf)}${ce}${Ji(e.skipHidingOf)}${ce}`;for(let i of e.chain)n+=`${gn(i)},`;Kd.set(e,n);}return `${n}${ce}${t}${ce}${r}${ce}${o.join(ce)}`},Kd=new WeakMap,Vr=e=>{let t=[],r=(o,n)=>{let i=O(e.lens.maps,o.mapName);if(!T(i,o.modelName))return;let s=D(e,o.mapName,o.modelName,o.relPath);t.push({path:n,at:o,effect:s});for(let a of s.relations){let l=he(i,o.modelName,a),f=l&&Ge(l,o.mapName);f&&r({...f,relPath:[...o.relPath,a]},`${n}.${a}`);}};return r({mapName:e.lens.mapName,modelName:e.lens.model,relPath:[]},e.lens.model),t},Zi=(e,t,r,o)=>D(e,t,r,ta).sources.has(o),Yi=(e,t,r,o)=>new N(`source '${o}' at '${e}' offers mapDefaults.${t}.models.${r}.sources.${o}, which no layer declares`,"invalid_source"),ht=(e,t)=>e.omits.has(t)?false:e.relationFields.has(t)?e.relations.has(t):!(e.picks!==null&&!e.picks.has(t)),Hi=(e,t)=>e.enumValuesByField.get(t)??null,Br=(e,t,r)=>{let o=r.split("."),n=[],i=[];for(let{index:s,field:a,at:l,entry:f,next:p}of nr(e.lens.maps,t,r)){if(!f)return {resolution:{outcome:"missing",index:s,hops:n},effects:i};let d=D(e,l.mapName,l.modelName,l.relPath);if(!(e.clamp&&j(f)?!d.omits.has(a):ht(d,a)))return {resolution:{outcome:"hidden",index:s,hops:n},effects:i};let c={field:a,entry:f,mapName:l.mapName,model:l.modelName,relPath:[...l.relPath]};n.push(c),i.push(d);let g=s===o.length-1;if(g||Te(f))return {resolution:{outcome:"resolved",hops:n,terminal:c,jsonSubPath:g?[]:o.slice(s+1)},effects:i};if(!p)return {resolution:{outcome:"pastScalar",index:s,hops:n},effects:i}}return {resolution:{outcome:"missing",index:o.length,hops:n},effects:i}},qo=(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(Xs(o,n,i)),a=(p,d)=>Br(p,r,d).resolution.outcome!=="hidden",l={...e,clamp:true},f={...l,skipHidingOf:s===void 0?void 0:e.chain[s]};return (typeof i=="string"?[i]:i).every(p=>ia(e,r,p)===null&&(a(l,p)||a(f,p)))},Io=(e,t,r)=>{let{resolution:o,effects:n}=Br(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}},zi=(e,t,r,o)=>{let{resolution:n}=Br(e,t,r);if(n.outcome!=="hidden")return {code:"not_in_lens",message:o};let i=r.split("."),s=n.hops.at(-1),a=s?{mapName:s.mapName,modelName:s.model,relPath:[...s.relPath,s.field]}:t,l=s&&Ge(s.entry,s.mapName),f=l?{...l,relPath:a.relPath}:t,p=D(e,f.mapName,f.modelName,f.relPath),d=i[n.index];return !p.relationFields.has(d)||p.omits.has(d)?{code:"not_in_lens",message:o}:{code:"not_in_lens",message:`'${i.slice(0,n.index+1).join(".")}' is a relation the lens does not turn on (turn it on with \`relations\`)`}},yt=e=>({mapName:e.lens.mapName,modelName:e.lens.model,relPath:[],open:false}),Bo=(e,t,r)=>{let o=ke(r,t);if("outOfBounds"in o)return {issue:{code:"scope_out_of_bounds",message:o.outOfBounds}};if(o.scope.open)return {from:o.scope,next:o.scope,walked:null};let n=Io(e,o.scope,o.path);if(!n)return {issue:zi(e,o.scope,o.path,"path does not resolve through the narrowed lens")};let i=Te(n.entry),s=Ge(n.entry,n.mapName),a=s?{...s,relPath:[...n.relPath,n.terminalFieldName],open:i}:{...o.scope,open:i};return {from:o.scope,next:a,walked:n}},je=(e,t,r,o="")=>{let n=r.split("."),i=[],s=null;for(let{index:a,field:l,at:f,entry:p,next:d}of nr(e,t,r)){if(!p||!d)break;let u=[...f.relPath,l];i.push({map:d.mapName,model:d.modelName,relPath:u,prefix:`${o}${n.slice(0,a+1).join(".")}`,isList:p.isList===true}),a===n.length-1&&(s={...d,relPath:[...u]});}return {hops:i,end:s}};var aa="parent:",la=e=>e.startsWith(aa),Qd=e=>la(e)?e.slice(aa.length):e,sa=(e,t)=>{let r={...e};if(e.where!==void 0&&(r.where=t(e.where)),e.sources){let o={};for(let[n,i]of Object.entries(e.sources))o[n]=wn(i)?i.where!==void 0?{...i,where:t(i.where)}:i:t(i);r.sources=o;}if("relations"in e&&e.relations){let o={};for(let[n,i]of Object.entries(e.relations))o[n]=sa(i,t);r.relations=o;}return r},Zd=(e,t)=>{let r={};for(let[o,n]of Object.entries(e.mapDefaults??{})){let i={};for(let[s,a]of Object.entries(n.models??{}))i[s]=sa(a,t);r[o]=n.models?{...n,models:i}:n;}return {...e,root:e.root?sa(e.root,t):void 0,mapDefaults:e.mapDefaults?r:void 0}},pa=e=>{let t=[];return Zd(e,r=>(t.push(r),r)),t},Jd=e=>{let t=new Set;for(let r of pa(e))for(let o of nn(r))la(o)||t.add(o);return t},Yd=e=>{let t=new Set;for(let r of gt(e))for(let o of pa(r))for(let n of nn(o,{required:true}))t.add(Qd(n));return [...t].sort()},Xd=(e,t)=>{if(Ke(e))return e;let r={...t};for(let[o,n]of Object.entries(t))r[`${aa}${o}`]=n;return {...Zd(e,o=>js(o,r)),parent:Xd(e.parent,t)}},eu=(e,t)=>Xd(e,t),tu=e=>{let t=[],r=new Set;for(let n of gt(e.parent))for(let i of Jd(n))r.add(i);for(let n of Jd(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 pa(e))for(let i of nn(n))la(i)&&o.add(Qd(i));for(let n of o)r.has(n)||t.push(`bind 'parent:${n}' references an inherited binding no ancestor declares`);return t};var ou=(e,t)=>e===void 0?t:t===void 0?e:{all:[e,t]},mR=(e,t)=>{if(!e||!t)return e??t;let r={...e};for(let[o,n]of Object.entries(t)){let i=r[o];if(i===void 0){r[o]=n;continue}let s=dr(i),a=dr(n),l=ou(s.where,a.where);r[o]={...s,...a,...l===void 0?{}:{where:l}};}return r},nu=(e,t)=>{let r=ou(e?.where,t.where),o=mR(e?.sources,t.sources);return {...e,...r===void 0?{}:{where:r},...o?{sources:o}:{}}},gR=(e,t)=>{let r={...e?.models};for(let[o,n]of Object.entries(t))r[o]=nu(r[o],n);return {...e,models:r}},ru=(e,t)=>{let r={...e.mapDefaults};for(let[o,{models:n}]of Object.entries(t.mapDefaults??{}))r[o]=gR(r[o],n);return {...e,...t.root?{root:nu(e.root,t.root)}:{},...t.mapDefaults?{mapDefaults:r}:{}}},fa=(e,t)=>Ke(e)?ru({parent:e},t):Ke(e.parent)?ru(e,t):{...e,parent:fa(e.parent,t)};var iu=(e,t)=>{let r=k(t),o=(n,i)=>typeof n=="string"&&n!==""?Bo(r,i,n):null;return er(e,{rewrite:(n,i)=>{if(fe(n)!=="field"||n.coerceType)return n;let s=o(n.field,i);if(!s||"issue"in s||!s.walked||s.walked.jsonSubPath.length)return n;let{entry:a}=s.walked;return a.kind==="scalar"&&Nf.includes(a.type)?{...n,coerceType:a.type}:n},below:(n,i)=>{if(!Le(n))return false;let s=o(n.field,i),a=s&&!("issue"in s)?s.walked?.entry:void 0;return s&&!("issue"in s)&&a&&j(a)?[...i,s.next]:false}},[yt(r)])};var su=({maps:e,bridges:t,mapName:r,model:o})=>({...Ci({maps:e,bridges:t}),mapName:r,model:o});var yR=(e,t)=>oe(e,(r,o)=>{if(t.sources.add(o[o.length-1].mapName),Ae(r)||typeof r.field!="string"||r.field==="")return;let n=Bo(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])},[yt(t.policy)]),au=(e,t)=>{let o={policy:k(t),sources:new Set,bridgesCrossed:false};return yR(e,o),{sources:[...o.sources].sort(),bridgesCrossed:o.bridgesCrossed,supportedTargets:M.filter(n=>(n==="check"||!o.bridgesCrossed)&&Fo(e,{target:n,map:o.policy.lens,mapName:o.policy.lens.mapName,model:o.policy.lens.model}).ok),errors:Vo(e,t).errors}};var hR=new Set([At.scalar,At.ordered,At.array,At.dayList,At.dateValue]),wR=new Set([At.none,At.count]),SR=e=>{if(e.offset!==void 0||on(e).some(({source:r})=>r.value===void 0))return {values:[],dynamic:true};let t=ho(e);return t?wR.has(t.valueShape)?{values:[],dynamic:false}:hR.has(t.valueShape)?"value"in e?{values:cn(e)??[],dynamic:false}:{values:[],dynamic:false}:{values:[],dynamic:true}:{values:[],dynamic:true}},bR=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)}`,lu=(e,t)=>{let r=k(t),o=r.lens.model,n=new Map,i=new Map,s=(l,f)=>{if(l.length===0)return;let p=Io(r,{mapName:r.lens.mapName,modelName:o,relPath:[]},l.join("."));if(!p||p.jsonSubPath.length>0)return;let{mapName:d,modelName:u,relPath:c,terminalEffect:g,terminalFieldName:m}=p;if(!g.sources.has(m))return;let y=[o,...c].join("."),S=`${y}|${m}`,b=n.get(S);b||(b={path:y,mapName:d,model:u,field:m,values:[],dynamic:false},n.set(S,b));let R=SR(f);R.dynamic&&(b.dynamic=true);let w=i.get(S)??new Set;i.set(S,w);for(let E of R.values){let x=bR(E);w.has(x)||(w.add(x),b.values.push(E));}},a=(l,f)=>{let p=ke(l,f);if(!("outOfBounds"in p))return [...p.scope,...p.path.split(".")]};return oe(e,(l,f)=>{if(Ae(l))return;let p=typeof l.field=="string"?a(l.field,f):f.at(-1);return p?(!Le(l)&&typeof l.field=="string"&&s(p,l),[...f,p]):false},[[]]),[...n.values()]};var Xi=(e,t,r,o)=>{let n=RR(e,t,r);if(n.options===t)return o(n.condition,n.options);try{return o(n.condition,n.options)}catch(i){if(i instanceof N||i instanceof J)throw i;try{o(e,n.options);}catch{throw i}throw new N(`${r}: the lens's clamps on this rule have no ${r} form \u2014 ${i.message}`,"unsupported_target")}},RR=(e,t,r)=>{if(t?.lens===void 0)return {condition:e,options:t};let{lens:o}=t;if(t.map!==void 0||t.mapName!==void 0||t.model!==void 0)throw new J(`${r}: pass \`lens\` or \`map\` / \`mapName\` / \`model\`, not both \u2014 the lens names its own`);let n=Vo(e,o);if(!n.ok)throw new Error(`${r}: the rule leaves the lens \u2014 ${n.errors.map(s=>`${s.path}: ${s.message}`).join("; ")}`);let i=ze(o);return {condition:jo(e,o),options:{...t,lens:void 0,map:i,mapName:i.mapName,model:i.model}}};var es=(e,t,r,o)=>{if(!wf.includes(e.operator))throw new Error(`'${e.operator}' does not apply to the enum '${e.field}'; compare its values with equals / in.`);let n=pe(e.caseInsensitive),i=_r(r,o?.enums),{values:s,hasNull:a}=kt(st.includes(e.operator)?[t]:t);if(!n&&(!i||s.every(d=>typeof d=="string"&&i.includes(d))))return null;if(!i)throw new Error(`'${e.field}' is an enum: a case-insensitive comparison reads its declared values, which the map doesn't list.`);let l=d=>n?d.toLowerCase():d,f=new Set(s.filter(d=>typeof d=="string").map(d=>l(d))),p=i.filter(d=>f.has(l(d)));return G.includes(e.operator)?{values:i.filter(d=>!p.includes(d)),matchesNull:!a}:{values:p,matchesNull:a}};var X=e=>`"${e.replace(/"/g,'""')}"`;var ge=e=>e.replace(/\\/g,"\\\\").replace(/%/g,"\\%").replace(/_/g,"\\_"),da=(e,t,r=false)=>{let[o,...n]=e.split("."),i=t?`${X(t)}.${X(o)}`:X(o);if(n.length===0)return i;let s=n.map(ua),a=s.pop();return [i,...s].join("->")+(r?"->":"->>")+a},ua=e=>`'${e.replace(/'/g,"''")}'`;var OR=["@prisma/client/runtime/client","@prisma/client/runtime/library"],ts,xR=()=>{if(ts!==void 0)return ts;for(let e of ER())for(let t of OR)try{let r=e(t);if(r.AnyNull!==void 0)return ts=r.AnyNull,ts}catch{}},ER=()=>{let e=[];try{let t=globalThis.process?.getBuiltinModule?.("module")?.createRequire;t&&e.push(t((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('index.cjs', document.baseURI).href))));}catch{}return typeof ys=="function"&&e.push(ys),e},pu=()=>{let e=Or.get("prismaOptions.anyNull")??xR();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 fu=(e,t)=>{let r=Ar(ct(t));return r===null?null:vr(e,r)},du=(e,t,r)=>{if(e===null)return null;let o=vo(ct(t)),n=o&&$r(o[0],fn);return !o||!n?null:Xt(ft__default.default(e),n,o[1],Co(r).timeZone).toDate()};var ma=(e,t)=>Ce(e,t?.map,t?.model),wt=e=>e==="json"||e==="json-path",ur=e=>wt(e)?pu():null,qr=(e,t)=>t?.map&&t?.model?fd(e,t.map,t.model).map(r=>jr(r,{is:null})):[],ga=(e,t)=>{let r=ma(e,t);return [...wt(r)||r==="list"||Z(e.field,t?.map,t?.model)?.isRequired===false?[He(e.field,{equals:ur(r)},t)]:[],...qr(e.field,t)]},rs=(e,t,r,o)=>{if(r.mode&&wt(o)&&Array.isArray(t))throw _("toPrisma",`A case-insensitive comparison of a Json value with the list ${JSON.stringify(t)}`);if(!r.mode||typeof t!="string")return {[e]:t,...r};if(!wt(o))return {[e]:ge(t),...r};if(/[%_\\"\u0000-\u001f]/.test(t))throw _("toPrisma",`A case-insensitive equality on Json against '${t}'`,"Prisma matches the JSON text, where %, _, a backslash, a quote or a control character doesn't read as itself");return {[e]:t,...r}},ya=(e,t,r,o)=>{let n=t?.datasource?.provider??Or.get("prismaOptions.datasource.provider");return pe(e.caseInsensitive)&&cf(n)&&ar(r,o)?{mode:"insensitive"}:{}},uu=(e,t)=>{if(e==="list")return [{isEmpty:true}];let r=t?[{equals:""}]:[];return wt(e)?[...r,{equals:[]}]:r},cu=e=>"isEmpty"in e?{isEmpty:false}:{not:e.equals},ha=(e,t,r,o,n)=>{let i=a=>He(e,a,n),s=uu(t,o);return r?W([i({equals:ur(t)}),...qr(e,n),...s.map(a=>i(a))]):mt([...t==="list"?[]:[i({not:ur(t)})],...s.map(a=>i(cu(a)))])},$R=(e,t)=>{if(!Mr(e))throw Oo(e.field);let o=(n=>He(e.field,n,t))({is:{}});return ue({...e,field:"relation"},{relation:null})===true?Ee(o):o},vR=(e,t)=>Z(e.field,t?.map,t?.model),ca=Lt(),AR=(e,t,r)=>{if(t==="list"||wt(t)||vR(e,r)?.isRequired!==true)return null;let o=e.field.split(".").slice(0,-1).join(".");return o?He(o,{is:{}},r):ca},mu=(e,t)=>{let r=m=>He(e.field,m,t),o=ma(e,t),n=()=>ga(e,t),i=_i(e,t?.map,t?.model);if(o==="relation")return $R(e,t);let s=AR(e,o,t),a=s&&(s===ca?lr():Ee(s)),l=m=>s&&a?ue({field:"f",operator:m,value:null},{f:null})===true?a:s:null;if(s&&a&&Mr(e)){let m=uu(o,i);return e.operator===h.isEmpty?W([a,...m.map(r)]):e.operator===h.notEmpty?mt([s,...m.map(y=>r(cu(y)))]):l(e.operator)}switch(e.operator){case h.exists:case h.notExists:{if(e.operator===h.exists)return o==="list"?Ee(r({equals:null})):r({not:ur(o)});let m=n();return m.length?W(m):r({equals:ur(o)})}case h.isEmpty:case h.notEmpty:return ha(e.field,o,e.operator===h.isEmpty,i,t)}if(We(e)){let m=ji(e,t?.map,t?.model,wd(t),Sd(t));if("problem"in m)throw Ii(e.path,m.problem);let y=r({[m.key]:m.ref}),S=(E,x)=>x.isRequired===false?He(E,{equals:null},t):null,b=(E,x)=>x.isRequired===false?He(E,{not:null},t):ca,R=S(e.field,m.field),w=S(m.columnPath,m.column);return e.operator===h.equals?R&&w?W([y,mt([R,w])]):y:e.operator===h.notEquals?W([Ee(y),...R?[mt([R,b(m.columnPath,m.column)])]:[],...w?[mt([b(e.field,m.field),w])]:[]]):y}let f=gu(e,t);if(Oe(e,f))return W(G.includes(e.operator)?n():[]);if(f===null&&st.includes(e.operator)){let m=l(e.operator);if(m)return m}if(o==="list"&&Jt.includes(e.operator)&&Array.isArray(f))return ne(Ti(e,f),t);if(o==="list"&&Array.isArray(f)&&f.includes(null))throw _("toPrisma",`A list holding null in '${e.field}'`);if(o==="list"&&pe(e.caseInsensitive)&&ar("text",f))throw _("toPrisma",`A case-insensitive comparison on the list '${e.field}'`);let p=o==="enum"?Z(e.field,t?.map,t?.model):void 0,d=p?es(e,f,p,t?.map):null;if(d){let m=r({in:d.values});return d.matchesNull?W([m,...n()]):m}if(Jt.includes(e.operator)){let{values:m,hasNull:y}=kt(f),S=ya(e,t,o,m),b=wt(o)?e.operator===h.in?W(m.map(R=>r(rs("equals",R,S,o)))):mt(m.map(R=>r(rs("not",R,S,o)))):r({[e.operator]:m,...S});return e.operator===h.in?y?W([b,...n()]):b:y?mt([b,s??r({not:ur(o)})]):W([b,...n()])}let u=m=>{if(!wt(o)||m!==h.contains)return r(Sn({...e,operator:m},t));let y=r({array_contains:[NR(e,f,t,o)]});return typeof f=="string"?W([r(Sn({...e,operator:m},t)),y]):y};if(e.operator===h.contains)return u(h.contains);let c=Pf.includes(e.operator)?Xo[e.operator]:So.includes(e.operator)?h.between:void 0;if(c){if(wt(o))throw _("toPrisma",`'${e.operator}' on the Json value '${e.field}'`,"it keeps values of other types");return W([Ee(u(c)),...n()])}let g=r(Sn(e,t));return e.operator===h.equals&&f===null?W([g,...qr(e.field,t)]):e.operator===h.notEquals&&o==="list"?f===null?Ee(r({equals:null})):W([Ee(r({equals:f})),...n()]):e.operator===h.notEquals&&f!==null?W([g,...n()]):g},gu=(e,t)=>{let r=Ki(e,ct(e),ir(e.field,t?.map,t?.model),"toPrisma",()=>Co(t).timeZone);return e.offset===void 0?r:fu(r,e.offset)},Sn=(e,t)=>{let r=hi(e);if(r)throw r;let o=ma(e,t),n=()=>gu(e,t),i=f=>ya(e,t,o,f),s=f=>{let p=n();if(o==="list"){if(f!=="contains")throw new Error(`Operator '${f}' does not apply to the list '${e.field}'.`);return {has:p}}let d=wt(o)?TR[f]:f,u=typeof p=="string"?ge(p):p;return {[d]:u,...i(p)}},a=wi(e.operator,n());if(a)throw a;let l=zt(e.operator,"field");if(l&&wo.includes(e.operator))return {[l]:n()};switch(e.operator){case h.equals:{let f=n()??ur(o);return rs("equals",f,i(f),o)}case h.notEquals:{let f=n()??ur(o);return rs("not",f,i(f),o)}case h.in:case h.notIn:return {[e.operator]:n()};case h.contains:return s("contains");case h.startsWith:return s("startsWith");case h.endsWith:return s("endsWith");case h.matches:case h.notMatches:throw _("toPrisma",`'${e.operator}'`,"Prisma has no pattern filter");case h.between:case h.notBetween:{let[f,p]=Fe(Ue(n(),e.operator));return {gte:f,lte:p}}default:throw new Error(`Operator '${e.operator}' is built by buildFieldRule`)}},NR=(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(ya(e,r,o,t).mode)throw _("toPrisma",`A case-insensitive member of the Json array '${e.field}'`);return t},TR={contains:"string_contains",startsWith:"string_starts_with",endsWith:"string_ends_with"},He=(e,t,r)=>{if(!r?.map||!r?.model)return jr(e,t);let o=se(e,r.map,r.model),n=o.hops.find(s=>s.entry.isList);if(n)throw Si(e,n);let i=e.split(".");switch(o.kind){case "fallback":case "direct":return jr(e,t);case "bridge":return Dr();case "past-scalar":throw bi(e,o.column);case "json-path":{let s={path:o.jsonPath,...t},a=i.slice(0,o.stopIndex).join(".");return jr(a,s)}}};var yu=(e,t,r)=>{if(Ne(e)){let o=To(e);if(!o)throw lt("toPrisma");return ne(o,t,r)}if(!t?.map||!t?.model||!r)throw new Error("Aggregate rules require a FieldMap and model to generate a Prisma plan. Pass { map, model } options to toPrisma().");if(!it.includes(e.aggregate.mode))throw Yt(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 MR(e,t,r)},MR=(e,t,r)=>{let o=_o(e.field,t.map,t.model,"Aggregate rules");if(e.condition&&ut(e.condition,t.map,o.target))return Dr();let n=e.aggregate.field??"",i=he(t.map,o.target,n);if(!i)throw new Error(`aggregate.field '${n}' does not exist on model '${o.target}'.`);if(i.kind!=="scalar"||Te(i))throw new Error(`aggregate.field '${n}' on model '${o.target}' must be a numeric scalar, got ${i.kind==="scalar"?"Json":`'${i.kind}'`}.`);let s=ko(t)(e);if(s===null||Oe(s,s.value))return lr();let a=ln(s,[{}],void 0,{},{value:0})===true,l=a?De(s):s,f=Sn(l,t),p={[e.aggregate.mode==="sum"?"_sum":"_avg"]:f},d=So.includes(l.operator)?Ee({[n]:p}):{[n]:p},u=e.condition?ne(e.condition,Fr({...t,model:o.target},t,true),r):Lt(),c=Bi(r,o,u,d,a);return a?W([c,...qr(e.field,t)]):c};var wu=(e,t,r)=>{if(!e.field)throw new Error("toPrisma: count-based ArrayRule requires a field path");let o=_o(e.field,t.map,t.model,"Count operators");if(e.condition===void 0)throw qe(e.arrayOperator);if(e.count===void 0)throw Ro(e.arrayOperator);let n=e.count;if(e.arrayOperator===$.atLeast&&n===0)return Lt();let i=ne(e.condition,Fr({...t,model:o.target},t,true),r),s=wa(e),a=s?hu($.atLeast,e.arrayOperator===$.atMost?n+1:1,o.targetKey):hu(e.arrayOperator,n,o.targetKey);return Bi(r,o,i,a,s)},hu=(e,t,r)=>{let o=zt(e,"array");if(!o)throw new Error(`'${e}' does not count`);return {[r]:{_count:{[o]:t}}}};var Su=(e,t,r)=>{let o=CR(e,t,r);return e.field&&wa(e)&&!bu(e.field,t)?W([o,...qr(e.field,t)]):o},wa=e=>ue({...e,field:"items"},{items:[]})===true,CR=(e,t,r)=>{if(Ne(e)){let i=To(e);if(!i)throw lt("toPrisma");return ne(i,t,r)}if(e.condition!==void 0&&!Ef.includes(e.arrayOperator)&&ut(e.condition,t?.map,Ru(e,t)?.model))return Dr();if(Qt.includes(e.arrayOperator)){if(t?.map&&t?.model&&r)return wu(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 gi("toPrisma");let{field:o}=e;if(bu(o,t))return kR(e,o,Ce({field:o},t?.map,t?.model),t);let n=_R(e,t,r);return He(e.field,n,t)},bu=(e,t)=>{let r=Ce({field:e},t?.map,t?.model);return r==="list"||r==="json"||r==="json-path"},kR=(e,t,r,o)=>{switch(e.arrayOperator){case $.empty:case $.notEmpty:return ha(t,r,e.arrayOperator===$.empty,false,o);default:throw _("toPrisma",`'${e.arrayOperator}' over the ${r==="list"?"list":"Json array"} '${t}'`,r==="list"?"test a list's membership with 'contains'":void 0)}},Ru=(e,t)=>{if(!t?.map||!t?.model||!e.field)return t&&Fr({...t});let r=pn(e.field,t.map,t.model);return Fr(r?{...t,model:r}:{...t})},_R=(e,t,r)=>{let o=Ru(e,t);switch(e.arrayOperator){case $.all:if(!e.condition)throw qe(e.arrayOperator);return {none:ne(De(e.condition,ko(o)),o,r)};case $.any:if(!e.condition)throw qe(e.arrayOperator);return {some:ne(e.condition,o,r)};case $.none:if(!e.condition)throw qe(e.arrayOperator);return {none:ne(e.condition,o,r)};case $.empty:return {none:{}};case $.notEmpty:return {some:{}};default:throw ie(e.arrayOperator,"array")}};var Ou=(e,t)=>{let r=t?.map,o=Ce({field:e.field},r,t?.model);if(o==="json"||o==="json-path")throw _("toPrisma",`A date rule on the Json value '${e.field}'`,"Prisma compares Json text");let n=Z(e.field,r,t?.model);if(n&&!j(n)&&_t(n)!==H.DateTime)throw _("toPrisma",`A date rule on the ${n.type} field '${e.field}'`,`Prisma compares it as ${n.type}, not as an instant`);let i=G.includes(e.dateOperator)?ga(e,t):[],s=LR(e,t);if(s===null)return W(i);let a=He(e.field,s,t),l=So.includes(e.dateOperator)?Ee(a):a;return W([l,...i])},LR=(e,t)=>{let r=Co(t),o=fn,n=c=>e.offset===void 0?c:du(c,e.offset,t),i=c=>{if(c==null)return null;if(!te(c))return Ai(c,r.timeZone);let g=pt(c,o);return g&&xo(g,e.dateOperator,r).toDate()},s=()=>ct(e),a=()=>n(i(s())),l=()=>{let c=s();if(c==null)return null;let g=Ue(c,e.dateOperator).map(i);if(g[0]===null||g[1]===null)return null;let[m,y]=Fe(g).map(n);return m&&y?[m,y]:null},f=()=>{let c=s();if(c==null)return null;if(!te(c))throw Be(e.dateOperator);let g=pt(c,o);if(!g)return null;let[m,y]=Eo(g,r);return [m.toDate(),y.toDate()]},p=c=>{let g=a();return g===null?null:{[c]:g}},d=c=>c?{gte:c[0],lte:c[1]}:null,u=zt(e.dateOperator,"date");if(u)return p(u);switch(e.dateOperator){case v.within:case v.notWithin:return d(f());case v.between:case v.notBetween:return d(l());case v.dayIn:case v.dayNotIn:throw _("toPrisma",`'${e.dateOperator}'`);default:throw ie(e.dateOperator,"date")}};var Sa=(e,t,r)=>{if(typeof e=="boolean")return e?{}:lr();oi(e,"toPrisma");let o=fe(e);(o==="field"||o==="date")&&Li(e.field,t?.map,t?.model);let n=e;switch(o){case "all":return Ed(n,t,r);case "any":return Pd(n,t,r);case "if":return $d(n,t,r);case "array":return Su(n,t,r);case "aggregate":return yu(n,t,r);case "date":return Ou(n,t);case "field":return mu(n,t);default:throw at()}};Od(Sa);var Eu=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=Pu(t,i.model),a=xu(i.args,i.refs,n,t),l=await s[i.operation](a);n.push(l.map(f=>f[i.extract]).filter(f=>f!=null));}return xu(o.where,o.refs,n,t)},Pu=(e,t)=>{let r=t.charAt(0).toLowerCase()+t.slice(1),o=e[r];if(!o)throw new Error(`executePrismaPlan: no delegate for model '${t}'. Ensure prismaDelegate has a key '${r}'.`);return o},FR=(e,t)=>{let r=Pu(e,t.model).fields,o=r&&Object.hasOwn(r,t.field)?r[t.field]:void 0;if(o===void 0)throw new Error(`executePrismaPlan: the '${t.model}' delegate has no field reference '${t.field}' (fields.${t.field}).`);return o},DR=(e,t)=>t.reduce((r,o)=>r!==null&&typeof r=="object"&&Object.hasOwn(r,o)?r[o]:void 0,e),ba=(e,t,r)=>{if(t.length===0)return r;let[o,...n]=t,i=e,s=Array.isArray(e)?[...e]:{...i};return s[o]=ba(i[o],n,r),s},xu=(e,t,r,o)=>{let n=e;for(let{path:i}of t??[]){let s=DR(e,i);if(s&&typeof s.__step=="number"){let a=s.__step;if(a>=r.length)throw new Error(`Step ref __step: ${a} out of range (${r.length} steps executed)`);n=ba(n,i,r[a]);}else if(s&&typeof s.__field=="object"&&s.__field!==null)n=ba(n,i,FR(o,s.__field));else throw new Error(`executePrismaPlan: no reference at the recorded location ${i.join(".")}`)}return n};var jR=e=>e?.map?{...e,map:Me(e.map,e.mapName,"toPrisma")}:e,bn=(e,t)=>Xi(e,t,"toPrisma",IR),IR=(e,t)=>{let r={steps:[]},o=Sa(e,jR(t),r),n=(i,s)=>{let a=gd(s);return a.length?{...i,refs:a}:i};return {steps:[...r.steps.map(i=>n(i,i.args)),n({operation:"where",where:o},o)]}};var os=(e,t,r,o,n)=>{let i=`${r.mapName}\0${r.modelName}`;for(let a of t){if(typeof a=="boolean")continue;let l=e.memo?.compiles.get(a)??new Map;e.memo?.compiles.set(a,l);let f=l.get(i);if(f===void 0){let[p]=Fo(a,{target:"toPrisma",map:e.lens,mapName:r.mapName,model:r.modelName}).errors;f=p?p.message:null,l.set(i,f);}if(f!==null)return new N(`${o}: ${f}`,"unsupported_clamp")}if(n)return null;let s=false;for(let a of t)oe(a,l=>{("aggregate"in l||Qt.includes(l.arrayOperator))&&(s=true);});return s?new N(`${o} needs a counting step (executePrismaPlan), which a relation's where in a select can't run`,"unsupported_clamp"):null},ns=(e,t)=>{try{return t()}catch(r){throw r instanceof N||r instanceof J?r:new N(`${e}: ${r.message}`,"unsupported_clamp")}};var $u=(e,t)=>e===""?t:t===""?e:`${e}.${t}`,Ie=e=>{let t=new Set,r=n=>{n&&t.add(n);},o=(n,i)=>{let s=ke(n,i);return "outOfBounds"in s?null:$u(s.scope,s.path)};return oe(e,(n,i)=>{if(Ae(n))return;for(let l of tr(n))r(F(l)?o(l,i):l);let s=typeof n.field=="string"&&n.field!==""?o(n.field,i):null;if(r(s),!Le(n))return;let a=s??i[i.length-1];for(let l of Po(n))r($u(a,l));return [...i,a]},[""]),[...t]};var Ra=(e,t,r,o,n)=>{let i={};for(let[s,a]of Object.entries(o.fields)){if(!ht(t,s))continue;let l=t.enumValuesByField.get(s),f=n(s)?.filter(d=>l===void 0||l.includes(d.value)),p=qo(e,t,r,s,"groupBy")?t.sourceGroupBys.get(s):void 0;i[s]={...a,...l!==void 0&&{values:l},...f!==void 0&&{options:f},...p!==void 0&&{groupBy:p}};}return i},vu=(e,t,r,o,n)=>{let{mapName:i,modelName:s}=t,a=T(O(e.lens.maps,i),s),l=Ra(e,r,t,a,c=>{let g=n.get(`${o}|${c}`),m=r.enumValuesByField.get(c);return g??O(a.fields,c)?.options??m?.map(y=>({value:y,label:y}))}),f={};for(let[c,g]of r.sources)ht(r,c)&&(f[c]=g);let p={};for(let[c,g]of r.sourceLabels)ht(r,c)&&qo(e,r,t,c,"label")&&(p[c]=g);let d={};for(let[c,g]of r.sourceGroupBys)ht(r,c)&&qo(e,r,t,c,"groupBy")&&(d[c]=g);let u={};for(let c of r.sourcesFromMapDefaults.keys()){if(!Zi(e,i,s,c))throw Yi(o,i,s,c);Object.hasOwn(f,c)&&(u[c]="mapDefaults");}return {mapName:i,model:s,fields:l,whereClauses:r.whereClauses,sources:f,sourceLabels:p,sourceGroupBys:d,sourceFrom:u}},Au=e=>{let t=new Map;for(let r of e.sourceValues??[])t.set(`${r.path}|${r.field}`,r.options);return t},Nu=(e,t={})=>Rn(k(e),t),Rn=(e,t={})=>{let r=Au(t),o={};for(let{path:n,at:i,effect:s}of Vr(e))o[n]=vu(e,i,s,n,r);return o},Tu=(e,t,r={})=>Oa(k(e),t,r),Oa=(e,t,r={})=>{let o={mapName:e.lens.mapName,modelName:e.lens.model,relPath:[]};if(t!=="")for(let s of nr(e.lens.maps,o,t)){let a=D(e,s.at.mapName,s.at.modelName,s.at.relPath);if(!s.next||!a.relations.has(s.field))return null;o={...s.next,relPath:[...s.at.relPath,s.field]};}if(!T(O(e.lens.maps,o.mapName),o.modelName))return null;let n=D(e,o.mapName,o.modelName,o.relPath),i=[e.lens.model,...o.relPath].join(".");return vu(e,o,n,i,Au(r))};var is=(e,t,r,o,n)=>{let i=e.split("."),{hops:s}=je(t,{mapName:r,modelName:o,relPath:[]},e),a=s.find((d,u)=>d.isList&&u<i.length-1);if(a)return `${n} cannot traverse to-many relation '${i[s.indexOf(a)]}'`;if(s.length===i.length)return `${n} must end on a scalar column, '${i.at(-1)}' is a relation`;let l=s.at(-1)??{map:r,model:o},f=i[s.length],p=he(O(t,l.map),l.model,f);return p?j(p)?`${n} relation '${f}' has no resolvable target`:s.length===i.length-1?null:`${n} segment '${f}' is not a relation`:`${n} segment '${f}' not on model '${l.model}'`},Mu=(e,t,r,o,n,i,s,a)=>{let l=is(n,e.lens.maps,t,r,i);if(l)throw new N(`${i} '${n}': ${l}`,"invalid_source");let{hops:f}=je(e.lens.maps,{mapName:t,modelName:r,relPath:o},n),p=f.slice(0,n.split(".").length-1);for(let d of p){let u=d.relPath.join(".");if(s.has(u))continue;s.add(u);let c=D(e,d.map,d.model,d.relPath);for(let g of c.whereClauses)a.push(Gi(g,d.prefix));}},VR=(e,t,r,o,n,i)=>{let s=[],a=new Set;for(let l of n)Mu(e,t,r,o,l,"groupBy",a,s);return i?.includes(".")&&Mu(e,t,r,o,i,"label",a,s),s},On=(e,t)=>{let r=me(e,t);return r==null||typeof r=="object"?void 0:String(r)},ss=(e,t)=>{let r=[];for(let o of t){let n=On(e,o);if(n===void 0)return;r.push(n);}return r},xa=(e,t)=>JSON.stringify([e??null,t]),BR=(e,t,r,o)=>{let n=xa(o,t),i=e.get(n);i===void 0?e.set(n,{value:t,...r!==void 0?{label:r}:{},...o!==void 0?{groups:o}:{}}):r!==void 0&&(i.label===void 0||r<i.label)&&e.set(n,{...i,label:r});},as=(e,t,r,o,n)=>{let i=me(t,r),s=o==null?void 0:String(o);for(let a of Array.isArray(i)?i:[i])a==null||typeof a=="object"||BR(e,String(a),s,n);},ls=e=>[...e.values()].sort((t,r)=>{let o=(t.groups===void 0?0:1)-(r.groups===void 0?0:1);if(o!==0)return o;let n=t.groups??[],i=r.groups??[];for(let s=0;s<Math.max(n.length,i.length);s++){let a=(n[s]??"").localeCompare(i[s]??"","en",{numeric:true});if(a!==0)return a}return (t.label??t.value).localeCompare(r.label??r.value,"en",{numeric:true})||t.value.localeCompare(r.value,"en",{numeric:true})}),qR=(e,t,r,o,n)=>{let{hops:i}=se(n,t,o),s=n.split("."),a=i.at(-1)?.entry.type??o,l=s[i.length];for(let{endpoints:f}of e.bridges??[]){let[p,d]=f;for(let[u,c]of [[p,d],[d,p]])if(u.fieldMap===r&&u.model===a&&xe(c)===l)return [...s.slice(0,i.length),u.on].join(".")}throw new N(`'${n}' crosses no bridge the lens declares on ${a}`,"not_in_lens")},ps=(e,t,r,o)=>{let n=Me(e,t,"toPrisma");return [...new Set(o.map(i=>sr(i,n,r)?qR(e,n,t,r,i):i))]},WR=(e,t,r,o)=>{if(t.length===0)return [];let n={mapName:e.lens.mapName,modelName:e.lens.model,relPath:[]},{hops:i,end:s}=je(e.lens.maps,n,t.join("."));if(!s)throw new N(`source at '${t.join(".")}': its path doesn't resolve on the field maps`,"not_in_lens");let a=[n,...i.map(p=>({mapName:p.map,modelName:p.model}))],l=t.length;for(;l>0&&!r.has(t.slice(0,l).join("."));)l--;let f=l>0?r.get(t.slice(0,l).join("."))??null:null;for(let p=l;p<t.length;p++){let d=x=>{f=x,r.set(t.slice(0,p+1).join("."),x);},u=a[p],c=D(e,u.mapName,u.modelName,t.slice(0,p)).whereClauses,g=f===null?c:[...c,f];if(g.length===0&&!o){d(null);continue}let m=O(e.lens.maps,u.mapName),y=m&&he(m,u.modelName,t[p]);if(!y)throw new N(`source at '${t.join(".")}': '${t[p]}' isn't declared on ${u.modelName}`,"not_in_lens");let S=a[p+1],b=xe({fieldMap:u.mapName,model:u.modelName}),R=y.kind==="bridge"?he(O(e.lens.maps,S.mapName),S.modelName,b):void 0,w=y.kind==="bridge"?R&&{field:b,entry:R}:m?Vi(m,u.modelName,t[p],y):null;if(!w&&g.length===0){d(null);continue}if(!w)throw new N(`source at '${t.join(".")}': '${t[p]}' on ${u.modelName} declares no inverse, so the clamps above can't be carried down to it`,"unsupported_clamp");let E=q(g);try{let x={field:w.field,operator:"exists"};d(w.entry.isList?{field:w.field,arrayOperator:"any",condition:E}:g.length?q([x,Gi(E,w.field)]):x);}catch(x){throw x instanceof N?new N(`source at '${t.join(".")}': the clamps above can't be carried down to it \u2014 ${x.message}`,x.code):x}}return f===null?[]:[f]},Cu=e=>cr(k(e)),cr=(e,t=Rn(e))=>{let r=new Map,o=n=>{let i=r.get(n)??new Map;return r.set(n,i),i};return Object.entries(t).flatMap(([n,i])=>Object.keys(i.sources).map(s=>{let a=O(i.sourceLabels,s),l=O(i.sourceGroupBys,s),f=Object.hasOwn(i.sourceFrom,s),p={mapName:i.mapName,modelName:i.model,relPath:n.split(".").slice(1)},d=D(e,p.mapName,p.modelName,p.relPath),u=(d.sourceWheres.get(s)??[]).map(A=>Ir(A,e,p)),c=VR(e,p.mapName,p.modelName,p.relPath,l??[],a),g=O(i.fields,s)?.values,m=f?d.sourcesFromMapDefaults.get(s):void 0,y=m===void 0?void 0:e.chain[m],b=[...WR(y===void 0?e:{...e,skipClampsOf:y},p.relPath,o(y),y===void 0&&!f),...u,...c,...g?[{field:s,operator:"in",value:[...g]}]:[]],R=q([...i.whereClauses,...b]),w=q([...i.whereClauses,...u,...c,...g?[{field:s,operator:"in",value:[...g]}]:[]]),E=e.lens.bridges?.length?Me(e.lens,p.mapName,"toPrisma"):void 0,x=E?[...Ie(R),...a===void 0?[]:[a],...l??[]].find(A=>sr(A,E,p.modelName)):void 0,I=x!==void 0&&E?q(Ds(R).filter(A=>ut(A,E,p.modelName))):void 0,ae=os(e,[...i.whereClauses,...b],p,`source '${s}' at '${n}'`,true);if(ae)throw ae;return {path:n,visit:i,field:s,...f&&{from:"mapDefaults"},...a!==void 0&&{label:a},...l!==void 0&&{groupBy:l},where:R,rowWhere:w,...x!==void 0&&{bridged:x},...I!==void 0&&{recheck:I}}}))};var $a=(e,t)=>{for(let r of t){let o=e;for(let n of r.split("."))o=kr(o,n,()=>({}));}return e},fs=(e,t)=>{for(let[r,o]of Object.entries(t))fs(kr(e,r,()=>({})),o);return e},va=e=>e.whereClauses.flatMap(Ie),ku=(e,t)=>{let r=new Map;for(let o of t){if(o.from)continue;let n=o.path.split(".").slice(1).join("."),i=[o.field,...o.label===void 0?[]:[o.label],...o.groupBy??[],...Ie(o.rowWhere)];r.set(n,[...r.get(n)??[],...o.bridged===void 0?i:ps(e.lens,o.visit.mapName,o.visit.model,i)]);}return r},_u=(e,t)=>e.get(t.relPath.join("."))??[],UR=(e,t,r)=>$a(fs({},r??{}),va(D(e,t.mapName,t.modelName,t.relPath))),Lu=e=>({mapName:e.lens.mapName,modelName:e.lens.model,relPath:[]}),Aa=(e,t,r)=>({...r,relPath:[...e.relPath,t]}),GR=(e,t,r,o)=>{if(!r.whereClauses.length)return;let n=q(r.whereClauses),i=os(e,r.whereClauses,t,`toLensSelect: the clamp on '${t.relPath.join(".")}'`,false);if(i)throw i;if(e.inspect)return;let s=ns(`toLensSelect: the clamp on '${t.relPath.join(".")}'`,()=>bn(n,{...o,map:e.lens,mapName:t.mapName,model:t.modelName})),{where:a}=s.steps[0];return Object.keys(a).length?a:void 0},KR=(e,t,r,o)=>{let n=T(e,o.type)?.fields??{},i=a=>{let l=a===void 0?void 0:O(n,a);return l&&!j(l)?a:void 0},s=e?Vi(e,t,r,o):null;return i(o.toFields?.[0])??i(s?.entry.fromFields?.[0])??i("id")},Fu=(e,t,r,o,n,i)=>{let s=T(O(e.lens.maps,t.mapName),t.modelName)?.fields??{},a=D(e,t.mapName,t.modelName,t.relPath),l=r==="paths"?o:$a(fs({},o),[...va(a),..._u(i,t)]),f={};for(let[p,d]of Object.entries(s)){let u=r!=="paths"&&ht(a,p),c=O(l,p);if(!u&&c===void 0||d.kind==="bridge")continue;if(d.kind!=="object"){f[p]=true;continue}let g=u?"declared":"paths";if(g==="paths"&&c===void 0)continue;let m=Aa(t,p,{mapName:t.mapName,modelName:d.type}),y=Fu(e,m,g,c??{},n,i),S=d.isList&&g!=="paths"&&c===void 0?GR(e,m,D(e,m.mapName,m.modelName,m.relPath),n):void 0,b=Object.keys(y).length?void 0:KR(O(e.lens.maps,t.mapName),t.modelName,p,d),R=b===void 0?y:{[b]:true};Object.keys(R).length&&(f[p]={select:R,...S&&{where:S}});}return f},Du=(e,t={})=>Na(k(e),t),Na=(e,t={},r=cr(e))=>{let o=Fu(e,Lu(e),"declared",{},t,ku(e,r));if(!Object.values(o).some(n=>n===true)){let n=O(T(O(e.lens.maps,e.lens.mapName),e.lens.model)?.fields,"id");n&&!j(n)&&(o.id=true);}return {select:o}},Ea=(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,Pa=(e,t,r,o)=>{let n={},i=T(O(e.lens.maps,t.mapName),t.modelName);for(let[s,a]of Object.entries(o)){if(!Object.hasOwn(r,s))continue;let l=O(i?.fields,s),f=l?Ge(l,t.mapName):null;n[s]=f?Ea(r[s],p=>Pa(e,Aa(t,s,f),p,a)):r[s];}return n},ju=(e,t,r,o,n,i,s)=>{let a=D(e,t.mapName,t.modelName,t.relPath);if(!a.whereClauses.every(d=>ue(d,r,i)===true))return null;let l=T(O(e.lens.maps,t.mapName),t.modelName)?.fields??{},f=n?$a(fs({},o),[...va(a),..._u(s,t)]):{},p={};for(let[d,u]of Object.entries(l)){if(!Object.hasOwn(r,d))continue;let c=O(f,d),g=Ge(u,t.mapName);if(!g){(ht(a,d)||c!==void 0)&&(p[d]=r[d]);continue}let m=Aa(t,d,g);if(ht(a,d)){let y=!Array.isArray(r[d])||c!==void 0;p[d]=Ea(r[d],S=>ju(e,m,S,c??{},n,i,s)??(n&&y?Pa(e,m,S,UR(e,m,c)):null));}else c!==void 0&&(p[d]=Ea(r[d],y=>Pa(e,m,y,c)));}return p},Iu=(e,t,{keepClampColumns:r=false,...o}={})=>{let n=k(e),i=Lu(n),s=r?ku(n,cr(n)):new Map;return t.flatMap(a=>{let l=ju(n,i,a,{},r,o,s);return l===null?[]:[l]})};var zR="materializeSources needs fetched or keepClampColumns rows, not viewer rows",Ta=(e,t,r)=>new J(`${e}: a row at '${t}' ${r}${r.includes(":")?" \u2014 rows across a bridge hold the far side inline under its bridge field":""}`),xn=(e,t,r,o,n,i=zR)=>{for(let s of n){let a=[r];for(let{index:l,field:f,entry:p,next:d}of nr(e.lens.maps,t,s)){if(!p)break;let u=s.split(".").slice(0,l+1).join("."),c=[];for(let g of a){if(g===null||typeof g!="object")continue;if(!Object.hasOwn(g,f))throw Ta(i,o,`lacks '${u}', which a read needs`);let m=g[f];if(d&&m==null&&p.fromFields?.some(y=>{let S=g[y];return S!=null}))throw Ta(i,o,`'${u}' is null while its key is set \u2014 a projection hid the row`);if(!(!d||m===null||m===void 0)){if(Array.isArray(m)!==(p.isList===true))throw Ta(i,o,`'${u}' holds ${Array.isArray(m)?"a list where it names one row":"one row where it names a list"}`);c.push(...Array.isArray(m)?m:[m]);}}if(!d)break;a=c;}}},Ma=(e,t)=>{let r={mapName:e.lens.mapName,modelName:e.lens.model,relPath:[]};return [r,...je(e.lens.maps,r,t.split(".").slice(1).join(".")).hops.map(o=>({mapName:o.map,modelName:o.model,relPath:o.relPath}))]},HR=(e,t,r,o)=>{let n=r.split(".").slice(1),i=Ma(e,r),s=(l,f)=>{let p=i[l],d=D(e,p.mapName,p.modelName,p.relPath).whereClauses,u=q(d),c=d.flatMap(Ie),g=[e.lens.model,...n.slice(0,l)].join(".");return f.filter(m=>(xn(e,p,m,g,c),ue(u,m,o)===true))},a=s(0,t);for(let[l,f]of n.entries()){let p=[],d=[e.lens.model,...n.slice(0,l)].join(".");for(let u of a){xn(e,i[l],u,d,[f]);let c=me(u,f);Array.isArray(c)?p.push(...c):c!=null&&p.push(c);}a=s(l+1,p);}return {rows:a,visit:i[i.length-1]}},Vu=(e,t,r)=>{let o=k(e);return cr(o).map(({path:n,visit:i,field:s,from:a,label:l,groupBy:f,rowWhere:p})=>{if(a)throw new J(`materializeSources: '${n}.${s}' offers its model's own source, which a fetched collection can't hold \u2014 query it with toSourceQueries and materializeSourceQuery.`);let d=[s,...Ie(p),...l===void 0?[]:[l],...f??[]],u=new Map,c=HR(o,t,n,r);for(let g of c.rows)xn(o,c.visit,g,n,d),ue(p,g,r)===true&&as(u,g,s,l===void 0?void 0:On(g,l),f===void 0?void 0:ss(g,f));return {path:n,mapName:i.mapName,model:i.model,field:s,options:ls(u)}})};var Bu=(e,t,r={})=>{let{rowShape:o="prisma",lens:n,...i}=r,s=o==="sql",{recheck:a}=e,l=c=>false,f=c=>true;if(a!==void 0){if(n===void 0)throw new J(`materializeSourceQuery: '${e.path}.${e.field}' reads across a bridge \u2014 its rows are candidates; pass { lens } with rows holding the far side`);let c=k(n),g=Ma(c,e.path).at(-1);if(!g||g.mapName!==e.mapName||g.modelName!==e.model)throw new J(`materializeSourceQuery: the lens doesn't reach ${e.mapName}:${e.model} at '${e.path}' \u2014 pass the lens the query was compiled from`);let m=Me(c.lens,e.mapName,"toPrisma");l=b=>m!==void 0&&sr(b,m,e.model);let y=[...Ie(a),...e.label!==void 0&&l(e.label)?[e.label]:[],...(e.groupBy??[]).filter(l)],S="materializeSourceQuery needs candidate rows holding the far side of each bridge the source reads";f=b=>(xn(c,g,b,e.path,y,S),ue(a,b,i)===true);}let p=c=>e.label===void 0?void 0:s&&e.label.includes(".")&&!l(e.label)?c.__label:On(c,e.label),d=e.groupBy?.map((c,g)=>s&&!l(c)?`__group_${g}`:c),u=new Map;for(let c of t)f(c)&&as(u,c,e.field,p(c),d===void 0?void 0:ss(c,d));return {path:e.path,mapName:e.mapName,model:e.model,field:e.field,options:ls(u)}};var JR=(e,t)=>`${e}::${t}`,QR=(e,t,r)=>{let o=e.get(t);if(!o){e.set(t,r.values?{...r,values:[...r.values]}:r);return}let n=o;if(r.values&&o.values){let i=new Set([...o.values,...r.values]);n={...n,values:[...i]};}else !r.values&&o.values&&(n={...n,values:void 0});r.groupBy!==void 0&&n.groupBy===void 0&&(n={...n,groupBy:r.groupBy}),n!==o&&e.set(t,n);},qu=(e,t={})=>Ca(k(e),t),Ca=(e,t={})=>{let{lens:r}=e,o=new Map;for(let l of t.sourceValues??[]){let f=`${l.mapName}::${l.model}::${l.field}`,p=o.get(f)??new Map;for(let d of l.options)p.set(xa(d.groups,d.value),d);o.set(f,p);}let n=new Map;for(let{at:l,effect:f}of Vr(e)){let{mapName:p,modelName:d}=l,u=T(O(r.maps,p),d);if(!u)continue;let c=JR(p,d),g=n.get(c);g||(g={mapName:p,modelName:d,fields:new Map},n.set(c,g));let m=Ra(e,f,l,u,y=>{let S=o.get(`${p}::${d}::${y}`);return S&&[...S.values()]});for(let[y,S]of Object.entries(m)){let b=S.groupBy,R=g.fields.get(y)?.groupBy;if(b!==void 0&&R!==void 0&&JSON.stringify(R)!==JSON.stringify(b))throw new N(`projectLens: '${d}.${y}' is grouped by different axes on different paths ([${R}] vs [${b}]) \u2014 one surface field cannot carry two partition namespaces`,"invalid_source");QR(g.fields,y,S);}}let i={};for(let{mapName:l,modelName:f,fields:p}of n.values()){let d=O(i,l);d||(d={models:{}},i[l]=d);let u={},c=new Map;for(let[g,m]of p)if(u[g]=m.options===void 0&&m.values?{...m,options:m.values.map(y=>({value:y,label:y}))}:m,m.kind==="enum"&&m.values){let y=c.get(m.type)??new Set;for(let S of m.values)y.add(S);c.set(m.type,y);}d.models[f]={...T(O(r.maps,l),f),fields:u};for(let[g,m]of c)d.enums??={},d.enums[g]=[...m];}let s=r.bridges?.filter(l=>{let[f,p]=l.endpoints,d=he(O(i,f.fieldMap),f.model,xe(p)),u=he(O(i,p.fieldMap),p.model,xe(f));return d!==void 0||u!==void 0}),a={maps:i};return s&&s.length>0&&(a.bridges=s),{...a,mapName:r.mapName,model:r.model}};var Wu=(e,t,r,o,n)=>{if(e===void 0)return;let i=Do(e),s=o==="root.where"?null:i.bare;if(s!==null){n.push({path:o,code:"invalid_value_source",message:ra(s).message});return}let{escaping:a}=i;if(a!==null){n.push({path:o,code:"scope_out_of_bounds",message:oa(a).message});return}let l=new Set,f={...t,clamp:t.chain.length===0};for(let{mapName:p,modelName:d,relPath:u}of r)for(let c of mn(e,f,p,d,u)){let g=`'${c.path}' ${c.message}`;l.has(g)||(l.add(g),n.push({path:o,code:c.code,message:g}));}},ZR=(e,t,r,o,n,i)=>{let s={...r,chain:[...r.chain,t]},a=new Set;for(let l of o){let f=D(s,l.mapName,l.modelName,l.relPath);for(let[p,d]of Object.entries(e.sources??{})){let u=dr(d);for(let c of ["label","groupBy"]){if(u[c]===void 0||a.has(`${p}|${c}`))continue;let g=c==="label"?u.label:hn(u.groupBy),m=c==="label"?f.sourceLabels.get(p):f.sourceGroupBys.get(p);if(JSON.stringify(g)!==JSON.stringify(m))continue;let S=(typeof m=="string"?[m]:m??[]).map(b=>ia(s,l,b)).find(b=>b!==null);if(S){a.add(`${p}|${c}`),i.push({path:`${n}.sources.${p}`,code:"invalid_source",message:`${c} '${String(u[c])}' crosses '${S}', a relation the lens does not show there (not turned on, or omitted)`});continue}qo(s,f,l,p,c)||(a.add(`${p}|${c}`),i.push({path:`${n}.sources.${p}`,code:"invalid_source",message:`${c} '${String(u[c])}' reads a column hidden by another layer`}));}}}},YR=(e,t,r,o)=>{for(let n of r){if(!t&&n.picks&&!n.picks.includes(e))return "not in ancestor's picks";if(n.omits?.includes(e))return "was omitted by ancestor"}return !t&&o?.picks&&!o.picks.includes(e)?"not visible from defaults.picks":o?.omits?.includes(e)?"already excluded by defaults":null},XR=(e,t,r,o,n,i,s,a,l,f,p,d,u=false)=>{let c=e.omits?.some(m=>{let y=O(i,m);return y===void 0||!j(y)});e.picks&&c&&f.push({path:`${l}`,code:"conflicting_selection",message:"cannot specify both picks and omits of a column"});for(let m of ["picks","omits"])for(let y of e[m]??[]){let S=O(i,y);if(!S){f.push({path:`${l}.${m}`,code:"not_in_lens",message:`field '${y}' not on model`});continue}let b=j(S);if(b&&m==="picks"){f.push({path:`${l}.picks`,code:"wrong_kind",message:`'${y}' is a relation: picks names columns; turn a relation on with \`relations\``});continue}let R=YR(y,b,t,r);R&&f.push({path:`${l}.${m}`,code:"not_visible",message:`'${y}' ${R}`});}let g=(m,y,S)=>{let b=O(i,y);if(!b){f.push({path:`${l}.${m}`,code:"not_in_lens",message:`field '${y}' not on model`});return}if(b.kind!=="enum"){f.push({path:`${l}.${m}`,code:"wrong_kind",message:`field '${y}' is not an enum field`});return}let R=_r(b,a);for(let w of S)R&&!R.includes(w)&&f.push({path:`${l}.${m}.${y}`,code:"value_not_allowed",message:`'${w}' is not a known value of enum '${b.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);Wu(e.where,p,d,`${l}.where`,f);for(let[m,y]of Object.entries(e.sources??{})){let S=O(i,m);if(!S){f.push({path:`${l}.sources`,code:"not_in_lens",message:`field '${m}' not on model`});continue}if(j(S)){f.push({path:`${l}.sources.${m}`,code:"wrong_kind",message:`'${m}' is a relation: a source offers a column's values`});continue}let b;try{b=dr(y);}catch(x){if(!(x instanceof N))throw x;f.push({path:`${l}.sources.${m}`,code:x.code,message:x.message});continue}let R=b.from;if(R!==void 0){let x=R!=="mapDefaults"?`from takes 'mapDefaults', not '${String(R)}'`:u?"a mapDefaults source is what a path source's from: 'mapDefaults' points at; it can't point itself":b.label!==void 0||b.groupBy!==void 0?"a from: 'mapDefaults' source takes the model source's label and groupBy":null;x&&f.push({path:`${l}.sources.${m}`,code:"invalid_source",message:x});}let w=b.label?.includes(".")?b.label:void 0;if(b.label!==void 0)if(w){let x=is(w,o,n,s,"label");x&&f.push({path:`${l}.sources.${m}`,code:"invalid_source",message:`${x}`});}else {let x=O(i,b.label);x?j(x)&&f.push({path:`${l}.sources.${m}`,code:"wrong_kind",message:`label '${b.label}' is a relation, not a column`}):f.push({path:`${l}.sources.${m}`,code:"not_in_lens",message:`label column '${b.label}' not on model`});}let E=hn(b.groupBy);if(E!==void 0||w!==void 0){let x=/^__(group(_\d+)?|label)$/;(x.test(m)||b.label!==void 0&&x.test(b.label))&&f.push({path:`${l}.sources.${m}`,code:"invalid_source",message:"'__group*' / '__label' names are reserved on grouped or path-labeled sources (sql column aliases)"});}if(E!==void 0){for(let I of E){let ae=is(I,o,n,s,"groupBy");ae&&f.push({path:`${l}.sources.${m}`,code:"invalid_source",message:`${ae}`});}let x=JSON.stringify(E);for(let I of t){let ae=O(I.sources,m);if(ae===void 0)continue;let A=hn(dr(ae).groupBy);A!==void 0&&JSON.stringify(A)!==x&&f.push({path:`${l}.sources.${m}`,code:"not_visible",message:`groupBy [${E}] conflicts with an ancestor layer's groupBy [${A}]`});}}Wu(b.where,p,d,`${l}.sources.${m}`,f);}},eO=(e,t,r,o,n)=>{for(let[i,s]of Object.entries(t)){let a=O(r,i);if(!a){n.push({path:`mapDefaults.${e}.enums.${i}`,code:"not_in_lens",message:"enum not in registry"});continue}let l=null,f=new Set;for(let d of o){let u=d[i];if(u&&(u.picks&&(l=Qi(l,u.picks)),u.omits))for(let c of u.omits)f.add(c);}let p=d=>!(f.has(d)||l&&!l.has(d));for(let d of s.picks??[])a.includes(d)?p(d)||n.push({path:`mapDefaults.${e}.enums.${i}.picks`,code:"not_visible",message:`'${d}' not visible from ancestors`}):n.push({path:`mapDefaults.${e}.enums.${i}.picks`,code:"value_not_allowed",message:`'${d}' not a known value`});for(let d of s.omits??[])a.includes(d)?p(d)||n.push({path:`mapDefaults.${e}.enums.${i}.omits`,code:"not_visible",message:`'${d}' already excluded by ancestors`}):n.push({path:`mapDefaults.${e}.enums.${i}.omits`,code:"value_not_allowed",message:`'${d}' not a known value`});}},tO=(e,t,r,o,n,i,s)=>{let a=D(t,r.mapName,r.modelName,r.relPath);for(let l of ["enumPicks","enumOmits"])for(let[f,p]of Object.entries(e[l]??{})){let d=O(o,f);if(d?.kind!=="enum")continue;let u=_r(d,n)??[],c=Hi(a,f)??u;for(let g of p)u.includes(g)&&!c.includes(g)&&s.push({path:`${i}.${l}.${f}`,code:"not_visible",message:`'${g}' is not visible (not allowed by the inherited enum narrowing)`});}},Uu=(e,t,r,o)=>e.map(n=>({mapName:o,modelName:r,relPath:[...n.relPath,t]})),ka=(e,t,r,o,n,i,s,a,l,f,p)=>{let d=O(n,i),u=T(d,s);if(!u)return;let c=o.length===0,g={...f,chain:[...f.chain,r],unvetted:true},m=p.isDefault?void 0:O(O(r.mapDefaults,i)?.models,s),S=[...o.map(w=>O(O(w.mapDefaults,i)?.models,s)).filter(w=>w!==void 0),...t],b={mapName:i,modelName:s,relPath:ta};XR(e,S,m,n,i,u.fields,s,d?.enums,a,l,f,c?p.isDefault?[b,...p.parent]:p.parent:p.composed,p.isDefault),tO(e,p.isDefault?f:{...f,chain:[...f.chain,{parent:r.parent,mapDefaults:r.mapDefaults}],unvetted:true},p.isDefault?b:p.parent[0]??b,u.fields,d?.enums,a,l),ZR(e,r,f,p.composed,a,l);let R={...f,chain:[...f.chain,r]};if(!p.isDefault)for(let[w,E]of Object.entries(e.sources??{}))!wn(E)||E.from!=="mapDefaults"||Zi(R,i,s,w)||l.push({path:`${a}.sources.${w}`,code:"invalid_source",message:Yi([ze(r).model,...p.parent[0]?.relPath??[]].join("."),i,s,w).message});for(let[w,E]of Object.entries(e.relations??{})){let x=O(u.fields,w);if(!x){l.push({path:`${a}.relations`,code:"not_in_lens",message:`'${w}' not on model`});continue}if(!j(x)){l.push({path:`${a}.relations`,code:"wrong_kind",message:`'${w}' is not a relation (kind=${x.kind})`});continue}let I=V=>D(f,V.mapName,V.modelName,V.relPath).relations.has(w),ae=V=>D(g,V.mapName,V.modelName,V.relPath).relations.has(w);if(!c&&!(p.isDefault?p.parent.some(I):p.parent.every(I))){l.push({path:`${a}.relations`,code:"not_visible",message:`'${w}' is not shown by the parent${p.isDefault?` wherever ${s} is visited`:""}: only the first narrowing over the base lens turns a relation on`});continue}let A=Ge(x,i);if(!A)continue;if(!T(O(n,A.mapName),A.modelName)){l.push({path:`${a}.relations.${w}`,code:"not_in_lens",message:"target model not found in lens"});continue}let L=t.map(V=>O(V.relations,w)).filter(V=>V!==void 0);ka(E,L,r,o,n,A.mapName,A.modelName,`${a}.relations.${w}`,l,f,{parent:Uu(p.isDefault?p.parent.filter(I):p.parent,w,A.modelName,A.mapName),composed:Uu(p.composed.filter(ae),w,A.modelName,A.mapName),isDefault:p.isDefault});}},_a=e=>{let t=[];try{rO(e,t);}catch(r){if(!(r instanceof N))throw r;t.some(o=>o.code===r.code)||t.push({path:"",code:r.code,message:r.message});}return fr(t)},rO=(e,t)=>{let r=ze(e),o=gt(e.parent),n=k(e.parent),i=Vr(n),s=[],a=u=>{try{u();}catch(c){if(!(c instanceof N))throw c;s.push(c);}},l=null,f=()=>(l??=Vr({...n,chain:[...n.chain,e],unvetted:true}),l);for(let[u,c]of Object.entries(e.mapDefaults??{})){let g=O(r.maps,u);if(!g){t.push({path:`mapDefaults.${u}`,code:"not_in_lens",message:"not in lens"});continue}let m=o.map(y=>O(y.mapDefaults,u)?.enums).filter(y=>y!==void 0);for(let[y,S]of Object.entries(c.models??{})){if(!T(g,y)){t.push({path:`mapDefaults.${u}.models.${y}`,code:"not_in_lens",message:"not in fieldMap"});continue}let R=o.map(x=>O(O(x.mapDefaults,u)?.models,y)).filter(x=>x!==void 0),w=x=>x.map(({at:I})=>I).filter(I=>I.mapName===u&&I.modelName===y),E=[];a(()=>{E=w(f());}),a(()=>ka(S,R,e,o,r.maps,u,y,`mapDefaults.${u}.models.${y}`,t,n,{parent:w(i),composed:E,isDefault:!0}));}c.enums&&eO(u,c.enums,g.enums,m,t);}if(e.root){let u=r.mapName,c=r.model,g=O(r.maps,u);if(!g)t.push({path:"root",code:"not_in_lens",message:`lens map '${u}' not in lens`});else if(!T(g,c))t.push({path:"root",code:"not_in_lens",message:`lens model '${c}' not in fieldMap`});else {let m=o.map(S=>S.root).filter(S=>S!==void 0),y={mapName:u,modelName:c,relPath:[]};a(()=>ka(e.root,m,e,o,r.maps,u,c,"root",t,n,{parent:[y],composed:[y],isDefault:!1}));}}for(let u of tu(e))t.push({path:"bindings",code:"invalid_binding",message:u});let p={...n,chain:[...n.chain,e],inspect:true},d;a(()=>{d=cr(p,Rn(p));}),a(()=>Ca(p)),a(()=>Na(p,{},d)),a(()=>{let u=new Map;for(let{at:c}of f()){u.set(c.relPath.join("."),c),a(()=>Oa(p,c.relPath.join(".")));let g=c.relPath.at(-1),m=u.get(c.relPath.slice(0,-1).join("."));if(g===void 0||!m)continue;let S=he(O(r.maps,m.mapName),m.modelName,g)?.isList?{field:g,arrayOperator:"any",condition:!0}:{field:g,operator:"exists"};a(()=>Ir(S,p,m));}});for(let u of s)t.some(c=>u.message.includes(c.message))||t.push({path:"",code:u.code,message:u.message});},ds=e=>un(_a(e),"validateNarrowing");function Gu(e,{by:t="path",...r}={}){return t==="model"?qu(e,r):Nu(e,r)}var Ku=(e,t,r,o={})=>{let n=k(e),{resolution:i}=Br(n,yt(n),r);if(i.outcome!=="resolved")return {ok:false,reason:i.outcome};let{hops:s,terminal:a,jsonSubPath:l}=i;if(j(a.entry))return {ok:false,reason:"relation"};if(s.some(d=>d!==a&&d.entry.isList))return {ok:false,reason:"list"};let f=(d,u)=>u!==null&&typeof u=="object"&&D(n,d.mapName,d.model,d.relPath).whereClauses.every(c=>ue(c,u,o)===true),p=f(s[0],t)?t:null;for(let[d,u]of s.entries()){if(p===null||typeof p!="object")return {ok:true,value:null};let c=O(p,u.field);if(u===a)return {ok:true,value:l.length?me(c,l.join(".")):c};p=f(s[d+1],c)?c:null;}return {ok:true,value:null}};var oO=e=>"maps"in e,zu=(e,t)=>{let r=i=>{let s=O(t,i);if(!s)throw new Error(`composeLens: no stored lens '${i}'`);return s},o=[...r(e).parents,e];if(new Set(o).size!==o.length)throw new Error(`composeLens: '${e}' lists a layer twice in its parents`);let n=null;for(let[i,s]of o.entries()){let a=r(s);if(Object.hasOwn(a,"parent"))throw new Error(`composeLens: '${s}' carries a parent; a layer composes only through \`parents\``);let{id:l,parents:f,...p}=a;if(f.join("\0")!==o.slice(0,i).join("\0"))throw new Error(`composeLens: '${s}' composes with [${f.join(", ")}], not [${o.slice(0,i).join(", ")}] as '${e}' lists`);if(oO(a)!==(i===0))throw new Error(i===0?`composeLens: '${s}' is not a base lens, so it can't head '${e}''s parents`:`composeLens: '${s}' is a base lens, so it can only head a chain`);if(n===null){n=p;continue}let u={parent:n,...p};ds(u),n=u;}return n},Hu=(e,t)=>{let r=Ke(e)?[]:gt(e);if(t.length!==r.length+1)throw new Error(`storeLens: the lens has ${r.length+1} layers, base included, but ${t.length} ids`);return [{...ze(e),id:t[0],parents:[]},...r.map(({parent:o,...n},i)=>({...n,id:t[i+1],parents:t.slice(0,i+1)}))]};var Ju=e=>e instanceof Date?e.toISOString():Array.isArray(e)&&e.some(t=>t instanceof Date)?e.map(Ju):e,C=(e,t)=>(e.params.push(Ju(t)),`$${++e.paramIndex}`);var Dt=(e,t,{jsonb:r=false}={})=>{let o=()=>({sql:da(e,void 0,r),shape:e.includes(".")?"json-path":"unknown"});if(!t.map||!t.currentModel||!t.currentAlias)return o();let n=se(e,t.map,t.currentModel);if(n.kind==="past-scalar")throw bi(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 Si(e,i);let s=t.currentAlias;for(let p of n.hops){let d=Qu(t,s,p);if(!d)return o();s=d;}let a=ki(n);if(n.kind==="direct"&&n.entry.kind==="object"){let p={field:n.column,entry:n.entry,from:n.model},d=dn(t.map,n.model,n.entry),u=Qu(t,s,p);return !d||!u?o():{sql:`${X(u)}.${X(d[0].there)}`,shape:a}}let l=n.kind==="json-path"?[n.column,...n.jsonPath]:[n.column],f=da(l.join("."),s,r);return {sql:a==="json"&&!r?`NULLIF(${f}, 'null'::jsonb)`:f,shape:a}},St=(e,t,r)=>Dt(e,t,r).sql,Qu=(e,t,r)=>{let o=`${t}.${r.field}`,n=e.joinRegistry?.get(o);if(n)return n;if(!e.joinCounter||!e.map)return null;let i=`t${e.joinCounter.n+1}`,s=nO(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},nO=(e,t,r,o,n)=>{let i=o.type,s=T(e,i)?.dbName??i,a=dn(e,t,o);if(!a)return null;let l=a.map(({here:f,there:p})=>`${X(n)}.${X(p)} = ${X(r)}.${X(f)}`).join(" AND ");return `LEFT JOIN ${X(s)} AS ${X(n)} ON ${l}`};var jt={type:"value",value:null},It=e=>e.type==="value"&&(e.value===null||e.value===void 0),iO=(e,t)=>{let r=F(e)??{depth:1,path:e};if(r.depth>1)throw new Error(Zo(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}},we=(e,t)=>rn(e,{value:r=>({type:"value",value:r}),path:r=>iO(r,t),bind:(r,o)=>({type:"value",value:Ei(r,o,"toSql")})}),Wr=e=>t=>{let r=we(t,e);if(r.type==="column")throw new Error(`'${t.path}' is a row ref`);return r.value},Je=e=>Nr(e.dateConfig??{},Wr(e));var sO={lt:"<",lte:"<=",gt:">",gte:">=",equals:"="},Wo=(e,t)=>{let r=zt(e,t);return r?{symbol:sO[r],negated:G.includes(e)}:void 0},Zu=(e,t)=>e.type==="column"?e.sql:C(t,e.value),bt=(e,t)=>`(${t} OR ${e} IS NULL)`,mr=(e,t,r=true)=>t&&r?`${e} IS NULL`:"FALSE",us=(e,t,r,o,n)=>{if(It(r))return mr(e,o);let i=`${e} ${t} ${Zu(r,n)}`;return o?bt(e,i):i},En=(e,t,r,o,n=true)=>{if(!t||t.some(It))return mr(e,r,n);let[i,s]=t.map(d=>Zu(d,o)),a=t.some(d=>d.type==="column"),l=a?"SYMMETRIC ":"";if(!r)return `${e} BETWEEN ${l}${i} AND ${s}`;let f=`${e} NOT BETWEEN ${l}${i} AND ${s}`,p=a?`(${f} AND ${i} IS NOT NULL AND ${s} IS NOT NULL)`:f;return n?bt(e,p):p};var Yu=e=>Array.isArray(e)?e.some(Yu):typeof e=="object"&&e!==null,Xu=(e,t,r,o)=>{let n=`NULLIF(${t}, 'null'::jsonb)`,i=`jsonb_typeof(${n})`,s=`(${n} #>> '{}')`,a=R=>`${C(o,JSON.stringify(R))}::jsonb`,l=pe(e.caseInsensitive),f=R=>l?`LOWER(${R})`:R,p=G.includes(e.operator),d=R=>bt(n,`NOT (${R})`);if(Oe(e,r))return mr(n,p);let u=wi(e.operator,r);if(u)throw u;let c=R=>{if(Yu(R))throw _("toSql",`A case-insensitive comparison of '${e.field}' with a list holding objects`);return a(Cr(R))},g=R=>l&&typeof R=="string"?`(${i} = 'string' AND LOWER(${s}) = LOWER(${C(o,R)}))`:l&&Array.isArray(R)?`(${i} = 'array' AND LOWER(${n}::text)::jsonb = ${c(R)})`:`${n} = ${a(R)}`,m=R=>`(${i} = 'string' AND ${f(s)} LIKE ${f(C(o,R))})`,y=R=>{let w=E=>`(CASE WHEN ${i} = 'array' THEN EXISTS (SELECT 1 FROM jsonb_array_elements(${n}) AS e WHERE ${E}) ELSE FALSE END)`;return l&&typeof R=="string"?w(`jsonb_typeof(e) = 'string' AND LOWER(e #>> '{}') = LOWER(${C(o,R)})`):l&&Array.isArray(R)?w(`LOWER(e::text)::jsonb = ${c(R)}`):typeof R=="object"&&R!==null?w(`e = ${a(R)}`):`(${i} = 'array' AND ${n} @> ${a([R])})`},S=R=>typeof R=="string"?`(${m(`%${ge(R)}%`)} OR ${y(R)})`:y(R);switch(e.operator){case h.equals:return r===null?`${n} IS NULL`:g(r);case h.notEquals:return r===null?`${n} IS NOT NULL`:d(g(r));case h.in:case h.notIn:{let{values:R,hasNull:w}=kt(r),E=R.length?`(${R.map(g).join(" OR ")})`:"FALSE";return e.operator===h.in?w?`(${E} OR ${n} IS NULL)`:E:w?`(NOT ${E} AND ${n} IS NOT NULL)`:d(E)}case h.between:case h.notBetween:{let[R,w]=r,E=`(${i} = jsonb_typeof(${a(R)}) AND ${n} BETWEEN ${a(R)} AND ${a(w)})`;return e.operator===h.between?E:d(E)}case h.contains:return S(r);case h.notContains:return d(S(r));case h.startsWith:return m(`${ge(String(r))}%`);case h.endsWith:return m(`%${ge(String(r))}`);case h.notStartsWith:return d(m(`${ge(String(r))}%`));case h.notEndsWith:return d(m(`%${ge(String(r))}`));case h.matches:case h.notMatches:{let{source:R,caseInsensitive:w}=or(r),E=`(${i} = 'string' AND ${s} ~${w?"*":""} ${C(o,an(R))})`;return e.operator===h.matches?E:d(E)}}let b=Wo(e.operator,"field")?.symbol;if(b)return `(${i} = jsonb_typeof(${a(r)}) AND ${n} ${b} ${a(r)})`;throw new Error(`Operator '${e.operator}' is not supported on a Json value in SQL`)};var ec=e=>typeof e=="object"&&Pr(e)!==null,Pn=({sql:e,shape:t},r)=>{if(t!=="json-path"&&t!=="text")return `to_timestamp(EXTRACT(EPOCH FROM ${e}))`;let o=C(r,Je(r).timeZone);return `(CASE WHEN btrim(${e}) ~ '^-?[0-9]+(\\.[0-9]+)?$' THEN to_timestamp(btrim(${e})::numeric / 1000) WHEN ${e} ~* '[0-9]{2}:[0-9]{2}(:[0-9]{2}(\\.[0-9]+)?)?\\s*(z|[+-][0-9]{2}(:?[0-9]{2})?)\\s*$' OR ${e} ~* '\\m(gmt|utc)\\M' THEN (${e})::timestamptz ELSE (${e})::timestamp AT TIME ZONE ${o} END)`},cs=e=>Object.values(e).some(ec),lO=(e,t,r)=>{let o=xr(r),n=o?"int":"double precision";if(typeof e=="number"||!ec(e)){let a=Bs(e,Wr(t),r);return `${C(t,a)}::${n}`}let i=we(e,t).sql;return `(CASE WHEN ${o?`${i} >= 0 AND ${i} = trunc(${i})`:`${i} >= 0`} THEN ${i} END)::${n}`},pO=(e,t)=>`make_interval(${Cf.flatMap(o=>{let n=Object.keys(e).filter(i=>e[i]!==void 0&&Zt[i].interval===o).map(i=>{let s=lO(e[i],t,i),{factor:a}=Zt[i];return a===1?s:`${a} * ${s}`});return n.length?[`${o} => ${n.join(" + ")}`]:[]}).join(", ")})`,$n=(e,t,r,o)=>{let n=Je(o).timeZone;if(e.type==="value"&&!cs(t)){let l=$r(t,Wr(o));return e.value===null||e.value===void 0||l===null?jt:{type:"value",value:Xt(ft__default.default(e.value),l,r,n).toDate()}}let i=e.type==="column"?e.computed?e.sql:Pn(e,o):`${C(o,e.value??null)}::timestamptz`,s=C(o,n);return {type:"column",computed:true,sql:`(((${i} AT TIME ZONE ${s}) ${r===1?"+":"-"} ${pO(t,o)}) AT TIME ZONE ${s})`}};var La=(e,t,r)=>{let o=we(t,r);if(e.type==="value"&&o.type==="value"){let i=Ar(o.value);return i===null?jt:{type:"value",value:vr(e.value,i)}}let n=(i,s)=>i.type==="column"?`(${i.sql})::double precision`:`${C(r,s(i.value)??null)}::double precision`;return {type:"column",computed:true,sql:`(${n(e,i=>i)} + ${n(o,Ar)})`}},tc=(e,t,r)=>{if(It(e))return jt;let o=we(t,r);if(o.type==="column")throw new Error(`A row path on a date offset ('${t.path}') is check-only; evaluate with check()`);let n=vo(o.value);return n===null?jt:$n(e,...n,r)};var rc,oc=e=>{rc=e;},gr=(e,t)=>rc(e,t);var gs=(e,t,r)=>{let o=hi(e);if(o)throw o;let n=r===void 0?Dt(e.field,t):{sql:r,shape:"scalar"};if(n.shape==="relation"&&!Mr(e))throw Oo(e.field);let i=r===void 0,s=We(e)&&t.map&&t.currentModel?(F(e.path)??{path:e.path}).path:null;if(s!==null){let w=Mo(Z(e.field,t.map,t.currentModel),Z(s,t.map,t.currentModel),e.operator);if(w)throw _("toSql",`Comparing '${e.field}' with the column '${e.path}'`,w)}if(n.shape==="enum"&&!Ht.includes(e.operator)){let w=ic(e,t),E=Z(e.field,t.map,t.currentModel),x=w!==ms&&E&&!Oe(e,w)?es(e,w,E,t.map):null;if(x){let I=`${n.sql}::text = ANY(${C(t,x.values)})`;return x.matchesNull?bt(n.sql,I):I}}let a=n.shape==="enum"&&!Ht.includes(e.operator)&&s===null?{...n,sql:`${n.sql}::text`}:n;if((n.shape==="json"||n.shape==="json-path")&&!Ht.includes(e.operator)){let w=ic(e,t);if(w===ms)throw new Error(`The Json value '${e.field}' compares against an operand known when compiling, not one read per row.`);return Xu(e,St(e.field,t,{jsonb:true}),w,t)}let f=w=>{if(w.type==="column"&&!w.computed&&(w.shape==="json"||w.shape==="json-path"))throw _("toSql",`'${e.field}' compared with a Json value read per row`,"SQL would compare its text")};if(_e.includes(e.operator)){let w=lc(e,t);return w?.forEach(f),En(a.sql,w,G.includes(e.operator),t,i)}let p=sc(e,t);if(f(p),p.type==="column"&&Nt(e.operator,"field")==="string"&&!Lr(n.shape)&&n.shape!=="list")throw _("toSql",`'${e.operator}' on '${e.field}'`,"it is not text");if(p.type==="column"&&p.computed&&n.shape==="text"&&r===void 0)throw _("toSql",`'${e.field}' against a value moved by an offset`,"an offset moves a number or a date");let d=a.sql,u=Wo(e.operator,"field");if(u)return us(d,u.symbol,p,false,t);if(p.type==="value"&&Oe(e,p.value))return mr(d,G.includes(e.operator),i);let c=p.type==="column"&&p.computed===true,g=pe(e.caseInsensitive)&&(p.type==="column"?!c&&Lr(n.shape)&&Lr(p.shape):ar(n.shape,p.value)),m=w=>g?`LOWER(${w})`:w,y=w=>g?Cr(w):w;if(n.shape==="list"&&p.type==="column"&&nt.includes(e.operator)){if(Z(e.field,t.map,t.currentModel)?.type!=="String"||!Lr(p.shape))throw _("toSql",`'${e.operator}' on the list '${e.field}' with a member read per row ('${e.path}')`,"Postgres matches a member of the list's own type only");let w=pe(e.caseInsensitive)&&Lr(p.shape)?`EXISTS (SELECT 1 FROM unnest(${d}) AS e WHERE LOWER(e) = LOWER(${p.sql}))`:`array_position(${d}, ${p.sql}) IS NOT NULL`;return e.operator===h.contains?`(${p.sql} IS NOT NULL AND ${w})`:`(${d} IS NULL OR (${p.sql} IS NOT NULL AND NOT ${w}))`}if(n.shape==="list"&&p.type==="value"){let w=pe(e.caseInsensitive)&&ar("text",p.value);if(nt.includes(e.operator)){let E=C(t,p.value),x=w?`EXISTS (SELECT 1 FROM unnest(${d}) AS e WHERE LOWER(e) = LOWER(${E}))`:`array_position(${d}, ${E}) IS NOT NULL`;return e.operator===h.contains?x:`NOT ${x}`}if(Jt.includes(e.operator)&&Array.isArray(p.value))return gr(Ti(e,p.value),t);if(fO(e.operator))throw new Error(`'${e.operator}' does not apply to the list '${e.field}'; test its members with contains.`);if(w&&st.includes(e.operator)&&Array.isArray(p.value)){let E=C(t,Cr(p.value)),x=`(${d} IS NOT NULL AND ARRAY(SELECT LOWER(e) FROM unnest(${d}) AS e) = ${E})`;return e.operator===h.equals?x:bt(d,`NOT ${x}`)}}let S=p.type==="value"?p.value:void 0,b=p.type==="column"?p.sql:void 0;if(b!==void 0&&(Jt.includes(e.operator)||["pattern","string"].includes(Nt(e.operator,"field"))))throw _("toSql",`'${e.operator}' against an operand read per row ('${e.path}')`);let R=w=>i?bt(d,w):w;switch(e.operator){case h.equals:return c?`${d} = ${b}`:b!==void 0?`${m(d)} IS NOT DISTINCT FROM ${m(b)}`:S===null?`${d} IS NULL`:`${m(d)} = ${m(C(t,S))}`;case h.notEquals:return c?R(`${d} <> ${b}`):b!==void 0?`${m(d)} IS DISTINCT FROM ${m(b)}`:S===null?`${d} IS NOT NULL`:R(`${m(d)} <> ${m(C(t,S))}`);case h.in:{let{values:w,hasNull:E}=kt(S);if(!w.length)return E?`${d} IS NULL`:"FALSE";let x=`${m(d)} = ANY(${C(t,y(w))})`;return E?R(x):x}case h.notIn:{let{values:w,hasNull:E}=kt(S);if(!w.length)return E?`${d} IS NOT NULL`:"TRUE";let x=`${m(d)} <> ALL(${C(t,y(w))})`;return E?`(${x} AND ${d} IS NOT NULL)`:R(x)}case h.contains:return `${m(d)} LIKE ${m(C(t,`%${ge(String(S))}%`))}`;case h.notContains:return R(`${m(d)} NOT LIKE ${m(C(t,`%${ge(String(S))}%`))}`);case h.startsWith:return `${m(d)} LIKE ${m(C(t,`${ge(String(S))}%`))}`;case h.endsWith:return `${m(d)} LIKE ${m(C(t,`%${ge(String(S))}`))}`;case h.notStartsWith:return R(`${m(d)} NOT LIKE ${m(C(t,`${ge(String(S))}%`))}`);case h.notEndsWith:return R(`${m(d)} NOT LIKE ${m(C(t,`%${ge(String(S))}`))}`);case h.matches:return nc(d,S,false,t);case h.notMatches:return R(nc(d,S,true,t));case h.isEmpty:case h.notEmpty:return Fa(e.field,n,e.operator===h.isEmpty,t,_i(e,t.map,t.currentModel));case h.exists:return `${d} IS NOT NULL`;case h.notExists:return `${d} IS NULL`;default:throw new Error(`Unknown operator: ${e.operator}`)}},sc=(e,t)=>{if(Ht.includes(e.operator))return {type:"value",value:void 0};let r=ac(e,we(e,t),t);return e.offset===void 0?r:La(r,e.offset,t)},ac=(e,t,r)=>t.type==="column"?t:{type:"value",value:Ki(e,t.value,ir(e.field,r.map,r.currentModel),"toSql",()=>Je(r).timeZone)},lc=(e,t)=>{let r=ac(e,we(e,t),t),o=r.type==="value"?r.value:void 0;if(o==null)return null;let n=Ue(o,e.operator);return n.some(i=>i!=null&&!de(i))&&$o(o,e.operator),Fe(n).map(i=>{let s={type:"value",value:i};return e.offset===void 0?s:La(s,e.offset,t)})},nc=(e,t,r,o)=>{if(typeof t!="string"&&!(t instanceof RegExp))throw new Error("matches requires a string or RegExp pattern");let{source:n,caseInsensitive:i}=or(t);return `${e} ${r?"!":""}~${i?"*":""} ${C(o,an(n))}`},ms=Symbol("not known"),ic=(e,t)=>{if(_e.includes(e.operator)){let o=lc(e,t);return o?o.every(n=>n.type==="value")?o.map(n=>n.value):ms:null}let r=sc(e,t);return r.type==="value"?r.value:ms},Fa=(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=St(e,o,{jsonb:true}),l=["'null'::jsonb",...n?[`'""'::jsonb`]:[],"'[]'::jsonb"].join(", ");return r?`(${a} IS NULL OR ${a} IN (${l}))`:`${a} NOT IN (${l})`}return n?r?`(${i} IS NULL OR ${i} = '')`:`(${i} IS NOT NULL AND ${i} <> '')`:r?`${i} IS NULL`:`${i} IS NOT NULL`},fO=e=>Nt(e,"field")==="string"&&!nt.includes(e);var pc=(e,t)=>{if(Ne(e))throw lt("toSql");if(e.condition)throw new Error("Aggregate condition filtering is not yet supported by toSql(). Use check() for in-memory evaluation or toPrisma() for database queries.");let r=dO(e,t);return gs(e,t,r)},dO=(e,t)=>{let{mode:r,field:o}=e.aggregate;if(!it.includes(r))throw Yt(r);let n=r==="sum"?"SUM":"AVG",i=Ce({field:e.field},t.map,t.currentModel);if(i==="relation"||Z(e.field,t.map,t.currentModel)?.kind==="object")throw new Error(`Field '${e.field}' is a relation \u2014 toSql() cannot aggregate relation lists. Use toPrisma() instead.`);if(o?.includes("."))throw new Error(`aggregate.field '${o}' contains a nested path \u2014 toSql() only supports flat field names. Use check() for nested paths.`);let s=i==="list",a=St(e.field,t,{jsonb:!s}),l=s?a:`(CASE WHEN jsonb_typeof(${a}) = 'array' THEN ${a} END)`;if(s){if(o)throw new Error("aggregate.field is not supported for native array types. Use a JSONB column for object arrays.");return `(SELECT ${`COALESCE(${n}(elem), 0)`} FROM unnest(${l}) AS elem)`}if(o){let d=`(elem->>${ua(o)})::numeric`;return `(SELECT ${`COALESCE(${n}(${d}), 0)`} FROM jsonb_array_elements(${l}) AS elem)`}return `(SELECT ${`COALESCE(${n}(elem::numeric), 0)`} FROM jsonb_array_elements_text(${l}) AS elem)`};var fc=(e,t)=>{if(Ne(e))throw lt("toSql");if(!e.field)throw gi("toSql");if(Ce({field:e.field},t.map,t.currentModel)==="relation"||Z(e.field,t.map,t.currentModel)?.kind==="object")throw new Error(`Field '${e.field}' is a relation \u2014 relation arrays are not supported in SQL; use toPrisma().`);switch(e.arrayOperator){case $.empty:case $.notEmpty:{let o=Dt(e.field,t),n=e.arrayOperator===$.empty;if(o.shape==="list")return Fa(e.field,o,n,t,false);let i=St(e.field,t,{jsonb:true});return `(CASE WHEN jsonb_typeof(${i}) = 'array' THEN jsonb_array_length(${i}) ${n?"=":">"} 0 ELSE ${n?"TRUE":"FALSE"} END)`}case $.all:case $.any:case $.none:case $.atLeast:case $.atMost:case $.exactly:throw new Error(`Array operator '${e.arrayOperator}' with conditions is not supported in SQL. Use application-level filtering for complex array operations.`);default:throw ie(e.arrayOperator,"array")}};var uO=(e,t)=>e.type==="column"&&!e.computed?{type:"column",sql:Pn(e,t),computed:true}:e,dc=e=>e===void 0||e==="instant"||e==="text"||e==="json-path"||e==="unknown",uc=e=>_("toSql",`A date rule on '${e}'`,"it is not a date column"),cc=(e,t,r)=>{let o=t.some(i=>i.type==="column"),n=e.shape==="json-path"||e.shape==="text";return o||n?{lhs:Pn(e,r),ends:t.map(i=>uO(i,r))}:{lhs:e.sql,ends:t}},mc=(e,t)=>{let r=Dt(e.field,t);if(!dc(r.shape))throw uc(e.field);let o=we(e,t);if(o.type==="column"&&!dc(o.shape))throw uc(String(e.path??e.field));let n=Wo(e.dateOperator,"date");if(n){let{lhs:s,ends:a}=cc(r,[mO(e,t)],t);return us(s,n.symbol,a[0],n.negated,t)}let i=(s,a)=>{if(!s)return En(r.sql,null,a,t);let{lhs:l,ends:f}=cc(r,s,t);return En(l,f,a,t)};switch(e.dateOperator){case v.within:case v.notWithin:return i(gO(e,t),G.includes(e.dateOperator));case v.between:case v.notBetween:return i(yO(e,t),G.includes(e.dateOperator));case v.dayIn:case v.dayNotIn:{let s=e.dateOperator===v.dayNotIn,a=we(e,t);if(a.type==="column")throw _("toSql",`A weekday list read from the row ('${e.path}')`);let l=qs(a.value);if(l===null)return mr(r.sql,s);let f=C(t,Je(t).timeZone),p=C(t,l),d=`EXTRACT(DOW FROM (${Pn(r,t)} AT TIME ZONE ${f}))`;return e.dateOperator===v.dayIn?`${d} = ANY(${p})`:bt(r.sql,`${d} <> ALL(${p})`)}default:throw ie(e.dateOperator,"date")}},gc=e=>({type:"value",value:en(Je(e)).toDate()}),cO=(e,t,r)=>{let o=Re(e);if(o&&cs(o[0]))return $n(gc(r),...o,r);let n=pt(e,Wr(r));return n===null?jt:{type:"value",value:xo(n,t,Je(r)).toDate()}},yc=(e,t,r)=>e==null?jt:te(e)?cO(e,t,r):{type:"value",value:Ai(e,Je(r).timeZone)},hc=(e,t,r)=>t.offset===void 0?e:tc(e,t.offset,r),mO=(e,t)=>{let r=we(e,t),o=r.type==="column"?r:yc(r.value,e.dateOperator,t);return hc(o,e,t)},gO=(e,t)=>{let r=we(e,t);if(It(r))return null;if(r.type==="column"||!te(r.value))throw Be(e.dateOperator);let o=Re(r.value);if(o&&cs(o[0])){let s=gc(t),a=$n(s,...o,t);return o[1]===-1?[a,s]:[s,a]}let n=pt(r.value,Wr(t));if(n===null)return null;let i=Eo(n,Je(t));return [{type:"value",value:i[0].toDate()},{type:"value",value:i[1].toDate()}]},yO=(e,t)=>{let r=we(e,t);if(It(r))return null;let o=r.type==="value"?r.value:void 0,n=Ue(o,e.dateOperator).map(l=>yc(l,e.dateOperator,t));if(n.some(It))return null;let[i,s]=n;return (i.type==="value"&&s.type==="value"?Fe([i.value,s.value]).map(l=>({type:"value",value:l})):n).map(l=>hc(l,e,t))};var wc=(e,t)=>e.all.length===0?"TRUE":`(${e.all.map(o=>gr(o,t)).join(" AND ")})`,Sc=(e,t)=>e.any.length===0?"FALSE":`(${e.any.map(o=>gr(o,t)).join(" OR ")})`,bc=(e,t)=>{if(ut(e,t.map,t.currentModel))return "TRUE";let r=gr(e.if,t),o=gr(e.then,t);if(e.else!==void 0){let n=gr(e.else,t);return `(((${r}) IS NOT TRUE OR ${o}) AND ((${r}) IS TRUE OR ${n}))`}return `((${r}) IS NOT TRUE OR ${o})`};var vn=(e,t)=>{if(typeof e=="boolean")return e?"TRUE":"FALSE";if(oi(e,"toSql"),"field"in e&&typeof e.field=="string"&&t.map&&t.currentModel&&sr(e.field,t.map,t.currentModel))return "TRUE";let r=fe(e);(r==="field"||r==="date")&&Li(e.field,t.map,t.currentModel);let o=e;switch(r){case "all":return wc(o,t);case "any":return Sc(o,t);case "if":return bc(o,t);case "array":return fc(o,t);case "aggregate":return pc(o,t);case "date":return mc(o,t);case "field":return gs(o,t);default:throw at()}};oc(vn);var Da=e=>{let t=Me(e?.map,e?.mapName,"toSql"),r=!!(t&&e?.model),o=e?.alias??(r?"t0":void 0);return {params:[],paramIndex:0,dateConfig:{now:e?.now,timeZone:e?.timeZone,weekStart:e?.weekStart},map:t,currentModel:e?.model,currentAlias:o,joinCounter:r?{n:0}:void 0,joins:r?[]:void 0,joinRegistry:r?new Map:void 0}},hO=(e,t)=>Xi(e,t,"toSql",wO),wO=(e,t)=>{let r=Da(t);return {sql:vn(e,r),params:r.params,joins:r.joins??[]}};var Rc=(e,t)=>{let[r,...o]=t,n=e[r];if(o.length===0){n===void 0&&(e[r]=true);return}let i=n!==void 0&&n!==true?n.select:{};Rc(i,o),e[r]={select:i};},SO=(e,t,r,o,n,i,s,a,l,f)=>{let p=ns(`source '${n}' at '${t}'`,()=>bn(a,{...l,map:e,mapName:r,model:o})),d=p.steps.at(-1),u=d.where,c=p.steps.length>1||(d.refs?.length??0)>0,g=Me(e,r,"toPrisma"),m=A=>f!==void 0&&se(A,g,o).kind==="bridge",y=i!==void 0&&!m(i)?i:void 0,S=(s??[]).map(A=>m(A)?void 0:A),b=A=>{let L=se(A,g,o);return L.kind==="json-path"?A.split(".").slice(0,L.stopIndex).join("."):A},R=f===void 0?[]:ps(e,r,o,[...Ie(f),...i!==void 0&&y===void 0?[i]:[],...(s??[]).filter(m)].map(b)).filter(A=>A!==n),w=y?.includes(".")?y:void 0,E=[...S.filter(A=>A!==void 0),...w?[w]:[],...R],x={[n]:true,...y&&!w?{[y]:true}:{}};for(let A of E)Rc(x,A.split("."));let I={model:o,...s||w||f!==void 0?{}:{distinct:y?[n,y]:[n]},select:x,where:u,...c?{steps:p.steps}:{}},ae;try{for(let Y of R){let Rt=se(Y,g,o);if(!(Rt.kind==="direct"&&!Rt.hops.length&&Rt.entry.kind!=="object"))throw new Error(Rt.kind==="direct"?`the re-check reads '${Y}' through a relation, which flat SQL rows can't hold \u2014 run the Prisma query`:`the re-check reads '${Y}', which is not a column of ${o} \u2014 run the Prisma query`)}let A=Da({...l,map:e,mapName:r,model:o,alias:"t0"}),L=vn(a,A),V=w?St(w,A):void 0,yr=S.map((Y,Rt)=>Y===void 0?void 0:`${St(Y,A)} AS ${X(`__group_${Rt}`)}`),Uo=A.joins??[],hr=Uo.length?` ${Uo.join(" ")}`:"",le=L?.trim()?` WHERE ${L}`:"",Qe=X("t0"),Se=[`${Qe}.${X(n)}`,...V?[`${V} AS ${X("__label")}`]:y?[`${Qe}.${X(y)}`]:[],...yr.filter(Y=>Y!==void 0),...R.map(Y=>`${Qe}.${X(Y)}`)].join(", "),Q=T(O(e.maps,r),o)?.dbName??o;ae={sql:`SELECT DISTINCT ${Se} FROM ${X(Q)} AS ${Qe}${hr}${le}`,params:A.params};}catch(A){ae={sql:null,params:[],error:A instanceof Error?A.message:String(A)};}return {prisma:I,sql:ae}},Oc=(e,t={})=>{let{lens:r}=k(e);return Cu(e).map(({path:o,visit:n,field:i,label:s,groupBy:a,where:l,recheck:f})=>{let p=l,{prisma:d,sql:u}=SO(r,o,n.mapName,n.model,i,s,a,p,t,f);return {path:o,mapName:n.mapName,model:n.model,field:i,...s!==void 0?{label:s}:{},...a!==void 0?{groupBy:a}:{},composedWhere:p,prisma:d,sql:u,...f!==void 0?{recheck:f}:{}}})};var xc=(e,t)=>{let r=k(e);return Br(r,yt(r),t).resolution};/*! Bundled license information:
|
|
3
|
+
`)}`)},Fo=(e,t={})=>{let r={target:t.target??"check",errors:[],map:Me(t.map,t.mapName,"toPrisma"),scopeModels:[t.model],stepScopes:[false]};return Dt(e,"$",r,1),fr(r.errors)},jb=(e,t={})=>{un(Fo(e,t),"validateRule");},Dt=(e,t,r,o)=>{if(typeof e=="boolean")return;if(!pr(e)){P(r,t,"invalid_condition","Condition must be a boolean or object");return}let n=fe(e);if(!n){P(r,t,"ambiguous_condition",pt().message);return}switch(n){case "all":vd(e.all,`${t}.all`,r,o);break;case "any":vd(e.any,`${t}.any`,r,o);break;case "if":Dt(e.if,`${t}.if`,r,o),Dt(e.then,`${t}.then`,r,o),"else"in e&&e.else!==void 0&&Dt(e.else,`${t}.else`,r,o);break;case "field":Ib(e,t,r,o);break;case "aggregate":qb(e,t,r,o);break;case "array":Wb(e,t,r,o);break;case "date":Ub(e,t,r,o);break}},vd=(e,t,r,o)=>{if(!Array.isArray(e)){P(r,t,"logical_array_required","Logical operator requires an array of conditions");return}e.forEach((n,i)=>{Dt(n,`${t}[${i}]`,r,o);});},Wi=(e,t,r,o)=>{typeof e.field=="string"&&Td(e.field,"field",`${t}.field`,r,o);},Td=(e,t,r,o,n,i=false)=>{let s=F(e)??(t==="path"?{depth:n}:null);if(!s)return;let a=t==="field"?"Field":"Path";s.depth>n&&P(o,r,"scope_out_of_bounds",$s(e,s.depth,n)),o.target==="toPrisma"&&!i?P(o,r,`unsupported_prisma_${t}`,t==="path"?`Path '${e}' compares to a column, which isn't supported on the Prisma rail; use toSql() or check()`:`${a} '${e}' is not supported by toPrisma()`):o.target==="toSql"&&(t==="field"||s.depth>1)&&P(o,r,`unsupported_sql_${t}`,`${a} '${e}' is not supported by toSql()`);},qi=(e,t,r,o=false)=>{e.stepScopes[t]=o||e.stepScopes[t-1]===true;let n=e.scopeModels[t-1];e.scopeModels[t]=e.map&&n&&typeof r=="string"?pn(r,e.map,n)??void 0:void 0;},Lo=(e,t,r,o,n=false)=>{let i=Df.filter(a=>e[a]!==void 0);if(i.length>1)return P(r,t,"ambiguous_value_source","Takes one of value, path or bind"),null;if(i.length===0)return P(r,t,"missing_value_source","Requires value, path or bind"),null;let[s]=i;return s!=="value"&&(typeof e[s]!="string"||e[s]==="")?(P(r,`${t}.${s}`,"invalid_value_source",`${s} is a non-empty string`),null):(e.bindOptional!==void 0&&(s!=="bind"||typeof e.bindOptional!="boolean")&&P(r,`${t}.bindOptional`,"invalid_value_source","bindOptional is a boolean beside bind"),s==="path"&&Td(e.path,"path",`${t}.path`,r,o,n),s)},Md=(e,t,r,o,n,i)=>{let{offset:s}=e;if(s===void 0)return;let a=`${o}.offset`;if(!Rf.includes(r)){P(n,a,"unsupported_offset_operator",`Operator '${r}' has no comparison point to offset`);return}if(!pr(s)){P(n,a,"invalid_offset","An offset is one of { value }, { path } or { bind }");return}let l=Lo(s,a,n,i);if(l==="path"){let d=s.path,u=Pr(s);t==="date"&&u&&u.depth<=1&&n.target==="toSql"&&P(n,`${a}.path`,"unsupported_sql_path",`A row path on a date offset ('${d}') is not supported by toSql()`);return}if(l!=="value")return;let f=s.value;if(t==="field"){(typeof f!="number"||!Number.isFinite(f))&&P(n,`${a}.value`,"invalid_offset","A field offset value is a number");return}let p=pr(f)&&Object.keys(f).length===1&&te(f)?Re(f):null;if(!p){P(n,`${a}.value`,"invalid_offset","A date offset value is { ago } or { ahead }");return}_d(p[0],`${a}.value.${Object.keys(f)[0]}`,n,i);},Cd=(e,t,r,o)=>{o.target!=="toSql"||!_e.includes(t)||Pr(e)&&P(o,`${r}.path`,"unsupported_sql_path",`A range read from the row ('${e.path}') is not supported by toSql()`);},Ib=(e,t,r,o)=>{if(typeof e.field!="string"&&P(r,`${t}.field`,"field_required","Field rule requires a string field"),Wi(e,t,r,o),typeof e.operator!="string"||!Nt(e.operator,"field")){P(r,`${t}.operator`,"invalid_operator",ie(e.operator,"field").message);return}let n=e.operator;Md(e,"field",n,t,r,o),fi(n,"field",r.target)||P(r,`${t}.operator`,`unsupported_${Ui(r.target)}_operator`,`Operator '${n}' is not supported by ${r.target}()`),e.coerceType!==void 0&&!pi(e.coerceType)&&P(r,`${t}.coerceType`,"invalid_coerce_type",`coerceType must be one of: ${Object.keys(H).join(", ")}`);let i=Mt(n,"field");if(i==="none"){Gb(e,t,r);return}if(Lo(e,t,r,o,true)!==null){if(Cd(e,n,t,r),r.target==="toPrisma"&&typeof e.path=="string"){let s=ji(e,r.map,r.scopeModels[o-1],o>1,r.stepScopes[o-1]===true);"problem"in s&&P(r,`${t}.path`,"unsupported_prisma_path",Ii(e.path,s.problem).message);}if(r.target==="toSql"&&typeof e.path=="string"&&r.map){let s=r.scopeModels[o-1],a=(F(e.path)??{path:e.path}).path,l=Mo(Z(e.field,r.map,s),Z(a,r.map,s),n);l&&P(r,`${t}.path`,"unsupported_sql_path",`'${e.path}': ${l}`);}r.target==="toSql"&&typeof e.path=="string"&&["array","pattern","string"].includes(i)&&((r.map?Z(e.field,r.map,r.scopeModels[o-1]):void 0)?.isList&&st.includes(n)||P(r,`${t}.path`,"unsupported_sql_path",`'${n}' against the column '${e.path}' has no SQL form`)),!(typeof e.path=="string"||typeof e.bind=="string")&&(Vb(e,n,t,r,o),Bb(i,e.value,n,`${t}.value`,r));}},Vb=(e,t,r,o,n)=>{if(o.target!=="toPrisma"||!o.map||typeof e.field!="string")return;let i=Z(e.field,o.map,o.scopeModels[n-1]);if(!i)return;let s=e.value,a=pe(e.caseInsensitive),l=Qt.includes(t)&&Array.isArray(s),f=p=>P(o,`${r}.value`,"unsupported_prisma_operator",_("toPrisma",p).message);i.isList&&!l&&Array.isArray(s)&&s.includes(null)?f(`A list holding null in '${e.field}'`):i.isList&&!l&&a&&lr("text",s)?f(`A case-insensitive comparison on the list '${e.field}'`):Te(i)&&a&&f(`A case-insensitive comparison on the Json column '${e.field}'`);},Bb=(e,t,r,o,n)=>{switch(e){case "scalar":case "string":e==="string"&&typeof t!="string"&&P(n,o,"invalid_string_value",`Operator '${r}' requires a string value`);return;case "ordered":de(t)||P(n,o,"invalid_ordered_value",`Operator '${r}' requires a string, number, or Date value`);return;case "array":Array.isArray(t)||P(n,o,"invalid_membership_value",`Operator '${r}' requires an array value`);return;case "pattern":{if(!(typeof t=="string"||t instanceof RegExp)){P(n,o,"invalid_pattern_value",`Operator '${r}' requires a string or RegExp value`);return}let i=Qf(t,n.target);i&&P(n,o,"unsupported_pattern",i);return}case "range":try{$o(t,r);}catch(i){P(n,o,"invalid_range_value",i.message);}return}},kd=(e,t,r,o,n)=>{let i=r.scopeModels[o-1];if(!(r.target!=="toPrisma"||!r.map||!i||typeof e.field!="string"))try{_o(e.field,r.map,i,n);}catch(s){P(r,`${t}.field`,"unsupported_prisma_relation",s.message);}},qb=(e,t,r,o)=>{if(kd(e,t,r,o,"Aggregate rules"),e.offset!==void 0&&P(r,`${t}.offset`,"unexpected_offset","Aggregate rules take no offset"),Ld(e,t,r,o),typeof e.field!="string"&&P(r,`${t}.field`,"field_required","Aggregate rule requires a string field"),Wi(e,t,r,o),!pr(e.aggregate)){P(r,`${t}.aggregate`,"invalid_aggregate","aggregate must be an object");return}let n=e.aggregate;if(at.includes(n.mode)||P(r,`${t}.aggregate.mode`,"invalid_aggregate_mode",Xt(n.mode).message),"field"in n&&n.field!==void 0&&typeof n.field!="string"&&P(r,`${t}.aggregate.field`,"invalid_aggregate_field","aggregate.field must be a string"),!di.includes(e.operator)){P(r,`${t}.operator`,"invalid_aggregate_operator",`Aggregate rules only support: ${di.join(", ")}`);return}if(r.target==="toPrisma"&&typeof e.path=="string"&&P(r,`${t}.path`,"unsupported_prisma_aggregate_path","path is not supported by toPrisma() for aggregate rules; use value instead"),"condition"in e&&e.condition!==void 0&&(r.target==="toSql"&&P(r,`${t}.condition`,"unsupported_sql_aggregate_condition","Aggregate condition filtering is not supported by toSql(); use check() or toPrisma()"),qi(r,o,e.field,true),Dt(e.condition,`${t}.condition`,r,o+1)),Lo(e,t,r,o)===null||typeof e.path=="string"||typeof e.bind=="string")return;let i=e.value;_e.includes(e.operator)?Kb(i)||P(r,`${t}.value`,"invalid_range_value",`Operator '${e.operator}' requires a two-item numeric range`):typeof i!="number"&&P(r,`${t}.value`,"invalid_aggregate_value","Aggregate rule value must be a number");},Wb=(e,t,r,o)=>{if(typeof e.field!="string"&&r.target!=="check"&&P(r,`${t}.field`,"field_required","Array rule requires a string field for this target"),Wi(e,t,r,o),Ld(e,t,r,o),typeof e.arrayOperator!="string"||!Nt(e.arrayOperator,"array")){P(r,`${t}.arrayOperator`,"invalid_array_operator",ie(e.arrayOperator,"array").message);return}let n=e.arrayOperator;Zt.includes(n)&&kd(e,t,r,o,"Count operators");let i=r.target==="toPrisma"&&r.map&&typeof e.field=="string"?Z(e.field,r.map,r.scopeModels[o-1]):void 0;i&&!j(i)&&n!=="empty"&&n!=="notEmpty"&&P(r,`${t}.arrayOperator`,"unsupported_prisma_array_operator",_("toPrisma",`'${n}' over the array column '${e.field}'`).message),fi(n,"array",r.target)||P(r,`${t}.arrayOperator`,`unsupported_${Ui(r.target)}_array_operator`,`Array operator '${n}' is not supported by ${r.target}()`);let s=Mt(n,"array"),a=e.condition!==void 0,l=()=>{e.count!==void 0&&P(r,`${t}.count`,"unexpected_count",`Array operator '${n}' does not accept count`);};s==="none"?(a&&P(r,`${t}.condition`,"unexpected_condition",`Array operator '${n}' does not accept condition`),l()):s==="predicate"?(a?(qi(r,o,e.field),Dt(e.condition,`${t}.condition`,r,o+1)):P(r,`${t}.condition`,"missing_condition",We(n).message),l()):s==="count"&&(typeof e.count!="number"?P(r,`${t}.count`,"missing_count",Ro(n).message):e.count!==void 0&&!(typeof e.count=="number"&&Number.isInteger(e.count)&&e.count>=0)&&P(r,`${t}.count`,"invalid_count","count must be a non-negative whole number"),a?(qi(r,o,e.field,true),Dt(e.condition,`${t}.condition`,r,o+1)):P(r,`${t}.condition`,"missing_condition",We(n).message));},Ub=(e,t,r,o)=>{if(typeof e.field!="string"&&P(r,`${t}.field`,"field_required","Date rule requires a string field"),Wi(e,t,r,o),typeof e.dateOperator!="string"||!Nt(e.dateOperator,"date")){P(r,`${t}.dateOperator`,"invalid_date_operator",ie(e.dateOperator,"date").message);return}let n=e.dateOperator;Md(e,"date",n,t,r,o),fi(n,"date",r.target)||P(r,`${t}.dateOperator`,`unsupported_${Ui(r.target)}_date_operator`,`Date operator '${n}' is not supported by ${r.target}()`);let i=Mt(n,"date");if(i==="dayList"){if(Lo(e,t,r,o)!=="value")return;let s=e.value;(!Array.isArray(s)||!s.every(a=>typeof a=="string"&&kf(a)))&&P(r,`${t}.value`,"invalid_day_list",`Date operator '${n}' requires an array of day names (${bo.join(", ")})`);return}if(Lo(e,t,r,o)!==null&&(Cd(e,n,t,r),!(typeof e.path=="string"||typeof e.bind=="string"))){if(te(e.value)){Nd(e.value,n,`${t}.value`,r,o);return}if(Yo.includes(n)){P(r,`${t}.value`,"invalid_date_range",qe(n).message);return}if(i==="dateRange"){if(!zb(e.value)){P(r,`${t}.value`,"invalid_date_range",`Date operator '${n}' requires a two-item date range`);return}e.value.forEach((s,a)=>{te(s)?Nd(s,n,`${t}.value[${a}]`,r,o):de(s)&&!or(s,Ct).isValid()&&P(r,`${t}.value[${a}]`,"invalid_date_value",`Date operator '${n}' value '${String(s)}' does not parse as a date`);});return}if(!de(e.value)){P(r,`${t}.value`,"invalid_date_value",`Date operator '${n}' requires a date-like value`);return}or(e.value,Ct).isValid()||P(r,`${t}.value`,"invalid_date_value",`Date operator '${n}' value '${String(e.value)}' does not parse as a date`);}},_d=(e,t,r,o)=>{if(!pr(e)||Object.keys(e).length===0){P(r,t,"invalid_relative_units","Relative offset requires at least one unit");return}for(let[n,i]of Object.entries(e)){if(!As(n)){P(r,`${t}.${n}`,"invalid_relative_unit",`Unknown relative unit '${n}'`);continue}let s=pr(i)?Lo(i,`${t}.${n}`,r,o):"literal";if(s===null||s==="path"||s==="bind")continue;let a=s==="value"?i.value:i,l=Vs(a,n);l&&P(r,`${t}.${n}`,"invalid_relative_magnitude",l);}},Ad=(e,t,r)=>{(typeof e!="string"||!ci.includes(e))&&P(r,t,"invalid_period_unit",`Unknown period unit '${String(e)}'`);},Nd=(e,t,r,o,n)=>{let i=Yo.includes(t),s=Re(e);if(s){_d(s[0],r,o,n);return}if(tn(e)){Ad(Oi(e),r,o);return}if(Ts(e)){if(i){P(o,r,"invalid_date_range",qe(t).message);return}let a="start"in e?e.start:e.end;if(!pr(a)||!tn(a)){P(o,r,"invalid_period_unit","start/end requires a this/last/next period");return}Ad(Oi(a),r,o);return}P(o,r,"invalid_date_expression","Unrecognized date expression");},Gb=(e,t,r)=>{"value"in e&&e.value!==void 0&&P(r,`${t}.value`,"unexpected_value","Rule does not accept value"),"path"in e&&e.path!==void 0&&P(r,`${t}.path`,"unexpected_path","Rule does not accept path"),"bind"in e&&e.bind!==void 0&&P(r,`${t}.bind`,"unexpected_bind","Rule does not accept bind");},Ui=e=>e==="toPrisma"?"prisma":e==="toSql"?"sql":"check",pr=e=>$e(e),Kb=e=>Array.isArray(e)&&e.length===2&&typeof e[0]=="number"&&typeof e[1]=="number",zb=e=>Array.isArray(e)&&e.length===2&&(de(e[0])||te(e[0]))&&(de(e[1])||te(e[1])),Ld=(e,t,r,o)=>{if(Ne(e)&&r.target!=="check"&&(r.target==="toPrisma"&&To(e)!==null||P(r,t,`unsupported_${Ui(r.target)}_window`,ft(r.target).message)),"filter"in e&&e.filter!==void 0&&(qi(r,o,e.field),Dt(e.filter,`${t}.filter`,r,o+1)),"orderBy"in e&&e.orderBy!==void 0){let i=e.orderBy;Array.isArray(i)?i.forEach((s,a)=>{(!pr(s)||typeof s.field!="string"||s.dir!=="asc"&&s.dir!=="desc")&&P(r,`${t}.orderBy[${a}]`,"invalid_order_by",'orderBy entries must be { field: string, dir: "asc" | "desc" }');}):P(r,`${t}.orderBy`,"invalid_order_by","orderBy must be an array of { field, dir }");}for(let i of ["take","skip"])if(i in e&&e[i]!==void 0){let s=e[i];(typeof s!="number"||!Number.isInteger(s)||s<0)&&P(r,`${t}.${i}`,`invalid_window_${i}`,`${i} must be a non-negative integer`);}},P=(e,t,r,o)=>{e.errors.push({path:t,code:r,message:o});};var Hb=/[.:]/,Hs=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"&&Hb.test(s)&&t.push({path:`${xe({fieldMap:r,model:n})}.${s}`,message:"contains forbidden character . or :",code:"invalid_field_name"});return fr(t)},Fd=e=>un(Hs(e),"validateFieldMaps");var He=e=>!Object.hasOwn(e,"parent"),ht=e=>{let t=[],r=new Set,o=e;for(;!He(o);){if(r.has(o))throw new Error("cycle detected in narrowing parent chain");if(Object.hasOwn(o,"model")||Object.hasOwn(o,"maps"))throw new Error("a narrowing carries a base lens key (model / maps); it has a parent instead");r.add(o),t.unshift(o),o=o.parent;}return t},Je=e=>He(e)?e:ht(e)[0].parent;var Js=(e,t)=>t.length?W([...t,e]):e,Jb=e=>{if(rr(e).length)return false;let t=e.field,r=typeof t=="string"?F(t):null;try{return ue(r?{...e,field:r.path}:e,{})===!0}catch{return false}},Qs=(e,t)=>{if(!t.length)return e;if(!Jb(e))return W([...t.flatMap(n=>n.clamps),e]);let[r,...o]=t;return _t([W([...r.clamps,Qs(e,o)]),W([{field:r.prefix,operator:"notExists"},e])])},Gi=(e,t)=>tr(e,{rewrite:r=>{if(Ae(r))return r;if(typeof r.field!="string"||r.field==="")throw new N(`narrowRule: cannot re-root a relation clamp of unknown shape under '${t}'`,"unsupported_clamp");let o=rr(r);if(o.length)throw new N(`narrowRule: cannot re-root a relation clamp with a path reference ('${o[0]}') under '${t}'. Author the clamp without 'path', or anchor it at the relation itself.`,"unsupported_clamp");if(F(r.field))throw new N(`narrowRule: cannot re-root a relation clamp with a scope ref field ('${r.field}') under '${t}'. Author the clamp against the model's own columns.`,"unsupported_clamp");if(Le(r)){for(let n of [r.condition,r.filter])if(n!==void 0&&Do(n).escaping!==null)throw new N(`narrowRule: cannot re-root a relation clamp on '${r.field}' under '${t}': '${Do(n).escaping}' inside it reads the row being re-rooted. Anchor such clamps at the relation's own model.`,"unsupported_clamp")}return {...r,field:`${t}.${r.field}`}},below:()=>false}),Zs=(e,t)=>t.flatMap(r=>{let o=D(e,r.map,r.model,r.relPath);if(o.whereClauses.length===0)return [];if(r.isList)throw new N(`narrowRule: cannot enforce a to-many relation clamp on '${r.prefix}' without an arrayOperator condition to anchor it (row-scoped). Traverse '${r.prefix}' via an array operator (any/all/none/...) so the clamp can be injected safely.`,"unsupported_clamp");return [{prefix:r.prefix,clamps:o.whereClauses.map(n=>Gi(n,r.prefix))}]}),Dd=(e,t)=>Zs(e,t).flatMap(r=>r.clamps),Id=(e,t,r)=>{let o=ke(e,r);if("outOfBounds"in o)throw new N(`narrowRule: ${o.outOfBounds}`,"scope_out_of_bounds");if(!o.scope)return {hops:[],end:null};let n=e.slice(0,e.length-o.path.length);return Ie(t.lens.maps,o.scope,o.path,n==="$."?"":n)},Qb=(e,t,r)=>{if(F(e))return Id(e,t,r).hops;let o=r.length===1?"":`${"$".repeat(r.length)}.`;return r[0]?Ie(t.lens.maps,r[0],e,o).hops:[]},jd=(e,t,r)=>{if(Ae(e)||typeof e.field!="string"||e.field==="")return null;let{hops:o,end:n}=Id(e.field,t,r);return {hops:o,below:n}},Ir=(e,t,r)=>tr(e,{below:(o,n)=>{let i=jd(o,t,n);return i?i.below?[...n,i.below]:Le(o)?[...n,null]:false:false},after:(o,n)=>{let i=jd(o,t,n);if(!i)return o;let s=Dd(t,rr(o).flatMap(d=>Qb(d,t,n))),a=i.below;if(!a||!Le(o))return Js(Qs(o,Zs(t,i.hops)),s);let l=[...D(t,a.mapName,a.modelName,a.relPath).whereClauses,...Dd(t,Po(o).flatMap(d=>Ie(t.lens.maps,a,d).hops))],f=o.condition===void 0||o.arrayOperator===$.all||Ne(o),p={...o};return l.length&&f?p.filter=W([...o.filter!==void 0?[o.filter]:[],...l]):l.length&&(p.condition=W([...l,o.condition])),Js(Qs(p,Zs(t,i.hops.slice(0,-1))),s)}},[r]),jo=(e,t)=>{let r=k(t),o=D(r,r.lens.mapName,r.lens.model,[]),n=Ir(e,r,{mapName:r.lens.mapName,modelName:r.lens.model,relPath:[]});return Js(n,o.whereClauses)};var Ys=(e,t)=>{let r=Tr(e,H.DateTime,t);return typeof r=="number"&&!Number.isNaN(new Date(r).getTime())?r:void 0},Zb=(e,t,r)=>o=>{if(o==null)return o;let n=Ys(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()},Ki=(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?Ft(i):void 0;if(e.coerceType!==void 0&&s!==void 0&&e.coerceType!==s)throw new Error(`coerceType '${e.coerceType}' overrides ${s} field '${e.field}', but ${o} compares the column as stored \u2014 evaluate it in memory with check(), or drop the override.`);if((s??e.coerceType)===H.DateTime){let l=Zb(e.field,o,n());return Array.isArray(t)?t.map(l):l(t)}if(e.coerceType===void 0&&s===H.String&&(Array.isArray(t)?t:[t]).some(l=>typeof l=="number"||typeof l=="boolean"))throw new Error(`'${e.field}' is String but the literal is not a string; pass a string, or stamp coerceType: 'String'.`);if(e.coerceType===void 0&&s!==void 0&&(Be.includes(s)||s===H.Boolean)&&(Array.isArray(t)?t:[t]).some(l=>typeof l=="string"))throw new Error(`'${e.field}' is ${s} but the literal is a string; pass a ${s===H.Boolean?"boolean":"number"}, or stamp coerceType: '${s}'.`);return e.coerceType!==void 0&&Tf.includes(e.coerceType)?Tr(t,e.coerceType,e.coerceType===H.DateTime?n():void 0):t};var Vd=e=>Array.isArray(e)?e.flatMap(Vd):[e],cn=e=>e.value===void 0?null:Vd(e.value),Yb=e=>Ys(e)!==void 0,Xb=/^-?\d+(\.\d+)?$/,eR={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"&&Xb.test(e)},Boolean:{expected:"a boolean",fits:e=>typeof e=="boolean"},DateTime:{expected:"a date",fits:Yb},Json:{expected:"a value",fits:()=>true},Bytes:{expected:"a value",fits:()=>true}},tR=e=>typeof e=="string"?`'${e}'`:typeof e=="object"&&e!==null?JSON.stringify(e):String(e),Bd=(e,t)=>{let r="coerceType"in e?e.coerceType:void 0,o=r??t;if(o===void 0||o===H.Json)return [];let n="operator"in e?e.operator:e.dateOperator,i=ho(e);if(!i)return [];let a=r!==void 0&&r!==t?`field '${e.field}' coerced to ${o}`:`${o} field '${e.field}'`;if(!i.kinds.includes(o))return [{path:e.field,code:"operator_kind_mismatch",message:`operator '${n}' does not apply to ${a} (applies to: ${i.kinds.join(", ")})`}];if(e.offset!==void 0&&!("dateOperator"in e?o===H.DateTime:Be.includes(o)))return [{path:e.field,code:"invalid_offset",message:`an offset does not apply to ${a}`}];if("dateOperator"in e||i.valueShape==="none"||i.valueShape==="pattern")return [];if(Mf.includes(i.valueShape)&&Array.isArray(e.value))return [{path:e.field,code:"invalid_value_shape",message:`operator '${n}' compares one value, but ${a} was given a list`}];let{expected:l,fits:f}=eR[o],p=u=>{try{return f(Tr(u,o))}catch{return false}},d=u=>f(u)||r!==void 0&&p(u);return (cn(e)??[]).filter(u=>u!==null&&!d(u)).map(u=>({path:e.field,code:"invalid_value",message:`value ${tR(u)} does not fit ${a} (expected ${l})`}))},qd=(e,t,r)=>{if(r.isList===true||Te(r))return null;let o=j(r)?`arrayOperator '${t}' needs a list, but '${e}' is a to-one relation \u2014 a single related record; address its fields directly (e.g. '${e}.<field>')`:`arrayOperator '${t}' needs a list, but '${e}' is a single ${Ft(r)??r.type} value`;return {path:e,code:"invalid_array_operator",message:o}};var rR=(e,t,r,o)=>oe(e,(n,i)=>{let s=fe(n);if(s===null)return o.push({path:typeof n.field=="string"?n.field:"",code:"ambiguous_condition",message:pt().message}),false;if(Ae(n))return;let a=n,l=S=>{let b=ke(S,i);return "outOfBounds"in b?(o.push({path:S,code:"scope_out_of_bounds",message:b.outOfBounds}),null):{scope:b.scope,field:b.path}},f=i[i.length-1],p=true,d=null;if("field"in a&&typeof a.field=="string"&&a.field!==""){let S=Bo(t,i,a.field);"issue"in S?(o.push({path:a.field,...S.issue}),p=false):{next:f,walked:d}=S;}let u=d?.entry??null,c=d?.terminalFieldName??null,g=d?.entry.kind==="enum",m=d?.entry.type??null,y=d&&d.jsonSubPath.length===0?Hi(d.terminalEffect,d.terminalFieldName):null;for(let{ref:S,role:b}of Fs(a)){let R=F(S)?l(S):{scope:wt(t),field:S};if(!R||R.scope.open)continue;let w=Io(t,R.scope,R.field);if(!w){o.push({path:S,...zi(t,R.scope,R.field,b==="value"?"path (comparison ref) does not resolve through the narrowed lens":"offset or magnitude ref does not resolve through the narrowed lens")});continue}if(j(w.entry)){o.push({path:S,code:"not_in_lens",message:"a value ref reads a column, not a relation"});continue}let E=Ft(w.entry);if(b==="value"||b==="shift"||E===void 0)continue;(b==="whole"?Af.includes(E):Be.includes(E))||o.push({path:S,code:"not_in_lens",message:`${b==="whole"?"a calendar unit reads a whole number":"an offset or magnitude reads a number"}, not ${E}`});}if(!p)return false;if("arrayOperator"in a&&typeof a.field=="string"&&u){let S=qd(a.field,a.arrayOperator,u);if(S)return o.push(S),false}if(u&&j(u)&&(s==="field"||s==="date")&&(u.isList||!Mr(a))){let S=a.field;return o.push({path:S,code:"operator_kind_mismatch",message:(u.isList?yi(S):Oo(S)).message}),false}if(!u?.isList&&(s==="field"||s==="date")&&o.push(...Bd(a,u?Ft(u):void 0)),!f.open)for(let S of Po(a))S!==""&&!Io(t,f,S)&&o.push({path:S,...zi(t,f,S,"an orderBy or aggregate field does not resolve through the narrowed lens")});if(y&&"operator"in a&&c){let S=cn(a);if(S){let b=new Set(y),R=g?`enum '${m}'`:`field '${c}'`;for(let w of S)typeof w=="string"&&!b.has(w)&&o.push({path:c,code:"value_not_allowed",message:`value '${w}' is not in the allowed set for ${R} (allowed: ${[...b].join(", ")})`});}}return [...i,f]},[r]),mn=(e,t,r,o,n)=>{let i=[];return rR(e,t,{mapName:r,modelName:o,relPath:n,open:false},i),i},Vo=(e,t)=>{let r=k(t);try{let o=mn(e,r,r.lens.mapName,r.lens.model,[]);return o.length===0&&jo(e,t),fr(o)}catch(o){if(!(o instanceof N))throw o;return fr([{path:"",code:o.code,message:o.message}])}};var hn=e=>e===void 0?void 0:Array.isArray(e)?e:[e],wn=e=>typeof e=="object"&&e!==null&&!Array.isArray(e)&&("where"in e||"label"in e||"groupBy"in e||"from"in e),dr=e=>{if(wn(e))return e;if(typeof e=="object"&&e!==null&&!Array.isArray(e)&&Object.keys(e).length===0)throw oR();return {where:e}},oR=()=>new N("sources: {} is not a Condition \u2014 use `true` for an unconstrained source","invalid_source"),ta=["__offpath__"],Wd=new WeakMap,nR=(e,t)=>{if(!t)return new Map;let r=JSON.stringify([gn(t.parent),gn(e.maps),e.mapName,e.model,t.mapDefaults??null]),o=Wd.get(t);if(o?.fingerprint===r)return o.trees;let n=new Map;return Wd.set(t,{fingerprint:r,trees:n}),n},Ud=new WeakMap,iR=0,gn=e=>{let t=Ud.get(e);return t===void 0&&(t=iR++,Ud.set(e,t)),t},ce="\0",sR=e=>{let t=Object.entries(e.fields);return {relations:new Set(t.filter(([,r])=>j(r)).map(([r])=>r)),gated:t.filter(([,r])=>r.options!==void 0||r.kind==="enum"||r.values!==void 0)}},Ji=e=>e?String(gn(e)):"",k=e=>{let t=Je(e),r=He(e)?[]:ht(e);return {lens:t,chain:r,origin:r[0],memo:{trees:nR(t,r[0]),vetted:new Set,effects:new Map,places:new Map,models:new Map,refs:new Map,compiles:new Map}}},Qi=(e,t)=>e===null?new Set(t):new Set(t.filter(r=>e.has(r))),aR=(e,t)=>{if(t.picks&&(e.picks=Qi(e.picks,t.picks)),t.omits)for(let r of t.omits)e.omits.add(r);},zd=(e,t,r)=>{e.set(t,Qi(e.get(t)??null,r));},Hd=(e,t,r)=>{let o=e.get(t)??new Set;for(let n of r)o.add(n);e.set(t,o);},lR=(e,t,r)=>{if(r.enumPicks)for(let[o,n]of Object.entries(r.enumPicks))zd(e,o,n);if(r.enumOmits)for(let[o,n]of Object.entries(r.enumOmits))Hd(t,o,n);},Xs=(e,t,r)=>JSON.stringify([e,t,r]),pR=(e,t,r,o,n,i,s)=>{if(s&&aR(e,t),t.where!==void 0&&i&&(n(t.where),e.whereClauses.push(r(t.where))),t.sources)for(let[a,l]of Object.entries(t.sources)){let f=dr(l),p=e.sources.get(a)??[],d=e.sourceWheres.get(a)??[];f.where!==void 0&&i&&(n(f.where,true),p.push(r(f.where)),d.push(f.where)),e.sources.set(a,p),e.sourceWheres.set(a,d);let u=hn(f.groupBy);for(let[c,g,m]of [["label",f.label,e.sourceLabels.get(a)],["groupBy",u,e.sourceGroupBys.get(a)]]){if(g===void 0)continue;let y=Xs(a,c,g);m!==void 0&&Xs(a,c,m)===y||e.sourceDeclaredAt.set(y,o);}f.label!==void 0&&e.sourceLabels.set(a,f.label),u!==void 0&&e.sourceGroupBys.set(a,u),f.from==="mapDefaults"&&!e.sourcesFromMapDefaults.has(a)&&e.sourcesFromMapDefaults.set(a,o);}},N=class extends Error{constructor(r,o){super(r);this.code=o;}code;name="LensRefusal"},ra=e=>new N(`a bare path ('${e}') reads the root row, which a clamp at a relation visit or a model default doesn't stand on: use a literal, a bind, or a \`$\` scope ref`,"invalid_value_source"),fR=(e,t,r)=>mn(e,t,r.mapName,r.modelName,r.relPath),dR=e=>new N(`a later layer's clamp reads what its parent does not show: '${e.path}' ${e.message}`,e.code),oa=e=>new N(`the scope ref '${e}' climbs out of the clamp: a clamp reads its own row ('$.'), literals and binds`,"scope_out_of_bounds"),Do=e=>{let t=null,r=null;return oe(e,(o,n)=>{if(Ae(o))return;let i=rr(o);for(let s of [...typeof o.field=="string"?[o.field]:[],...i]){let a=F(s);r===null&&a&&a.depth>n&&(r=s);}for(let s of i)t===null&&!F(s)&&(t=s);return Le(o)?n+1:void 0},1),{bare:t,escaping:r}},ea=(e,t)=>{let r={mapName:e.lens.mapName,modelName:e.lens.model,relPath:[]},o=[r];if(t.relPath.length>0)for(let i of Ie(e.lens.maps,r,t.relPath.join(".")).hops)o.push({mapName:i.map,modelName:i.model,relPath:i.relPath});let n=o[o.length-1];return o.length===t.relPath.length+1&&n.mapName===t.mapName&&n.modelName===t.modelName?o:null},yn=(e,t)=>{let r=e;for(let o of t)r=O(r?.relations,o);return r},na=(e,t,r)=>{let o=i=>O(O(e.mapDefaults,i.mapName)?.models,i.modelName);if(!r){let i=o(t);return {defaults:i?[i]:[],path:void 0}}let n=[];for(let[i,s]of r.entries()){let a=yn(o(s),t.relPath.slice(i));a&&n.push(a);}return {defaults:n,path:yn(e.root,t.relPath)}},uR=(e,t,r,o)=>{let n=yn(t.root,r.relPath),i=[r.relPath.join(ce),Object.keys(n?.relations??{}).join(ce),(n?.omits??[]).join(ce)].join(`${ce}${ce}`),s=o.get(i);if(s)return s;let a=new Map,l={lens:e},f=ea(l,r)??[r],p=new Set(f.map(u=>`${u.mapName}:${u.modelName}`)),d=[{at:r,below:[]}];for(;d.length>0;){let{at:u,below:c}=d.shift(),g=T(O(e.maps,u.mapName),u.modelName)?.fields??{},{defaults:m,path:y}=na(t,u,ea(l,u)),S=new Set(m.flatMap(w=>Object.keys(w.relations??{}))),b=new Set([...m,...y?[y]:[]].flatMap(w=>w.omits??[])),R=[];for(let[w,E]of Object.entries(g)){if(!S.has(w)||b.has(w)||y?.relations!==void 0&&Object.hasOwn(y.relations,w))continue;let x=Ke(E,u.mapName);if(!x||!T(O(e.maps,x.mapName),x.modelName))continue;let V=`${x.mapName}:${x.modelName}`;p.has(V)||(p.add(V),R.push(w),d.push({at:{...x,relPath:[...u.relPath,w]},below:[...c,w]}));}a.set(c.join("."),R);}return o.set(i,a),a},cR=(e,t,r,o)=>{if(!o)return na(t,r,null).defaults.flatMap(f=>Object.keys(f.relations??{}));let n=r.relPath.length;for(;n>0&&yn(t.root,r.relPath.slice(0,n))===void 0;)n--;let i={...o[n],relPath:r.relPath.slice(0,n)},a=uR(e.lens,t,i,e.memo?.trees??new Map).get(r.relPath.slice(n).join("."))??[];return [...n===r.relPath.length?Object.keys(yn(t.root,r.relPath)?.relations??{}):[],...a]},ia=(e,t,r)=>{let o=t;for(let n of Ie(e.lens.maps,t,r).hops){let i=n.relPath[n.relPath.length-1];if(!D(e,o.mapName,o.modelName,o.relPath).relations.has(i))return n.prefix;o={mapName:n.map,modelName:n.model,relPath:n.relPath};}return null},D=(e,t,r,o)=>{let n=e.memo?Gd(e,t,r,o):null,i=n===null?void 0:e.memo?.effects.get(n);if(i){if(!e.unvetted&&i.unchecked){for(let L of i.unchecked)L();i.unchecked=null;}return i.effect}let s=[],a={picks:null,omits:new Set,enumValuesByField:new Map,whereClauses:[],sources:new Map,sourceWheres:new Map,sourceLabels:new Map,sourceGroupBys:new Map,sourceDeclaredAt:new Map,sourcesFromMapDefaults:new Map,relations:new Set,relationFields:new Set},l=O(e.lens.maps,t),f=T(l,r);if(!f)return a;let p=e.memo?.models.get(f);p||(p=sR(f),e.memo?.models.set(f,p)),a.relationFields=p.relations;let d={mapName:t,modelName:r,relPath:o},u=e.origin??e.chain[0],c=`${Ji(u)}${ce}${t}${ce}${r}${ce}${o.join(ce)}`,g=e.memo?.places.get(c);if(!g){let L=ea(e,d);g={trail:L,turnedOn:u?cR(e,u,d,L):[]},e.memo?.places.set(c,g);}let{trail:m}=g,y=new Map,S=new Map,b=new Map,R=new Map,w=L=>L,E=0,x=()=>{},V=true,ae=true,A=L=>{pR(a,L,w,E,x,V,ae),lR(y,S,L);};for(let[L,B]of e.chain.entries()){E=L;let yr={...e,clamp:false,skipClampsOf:void 0,skipHidingOf:void 0,chain:e.chain.slice(0,L)};V=B!==e.skipClampsOf,ae=B!==e.skipHidingOf,w=Se=>L===0?Se:Ir(Se,yr,{mapName:t,modelName:r,relPath:o});for(let[Se,Q]of Object.entries(O(B.mapDefaults,t)?.enums??{}))Q.picks&&zd(b,Se,Q.picks),Q.omits&&Hd(R,Se,Q.omits);let{defaults:Uo,path:hr}=na(B,d,m),le=L===0?null:yr,Ye=Se=>(Q,Go=false)=>{let Y=e.memo?.refs.get(Q);if(Y||(Y=Do(Q),e.memo?.refs.set(Q,Y)),Y.bare!==null&&!(Se&&!Go))throw ra(Y.bare);if(Y.escaping!==null)throw oa(Y.escaping);if(!le)return;let xt=()=>{let An=typeof Q=="object"&&Q!==null?`${gn(Q)}${ce}${Gd(le,t,r,o)}`:null;if(An!==null&&le.memo?.vetted.has(An))return;let[ja]=fR(Q,le,d);if(ja)throw dR(ja);An!==null&&le.memo?.vetted.add(An);};e.unvetted?s.push(xt):xt();};x=Ye(false);for(let Se of Uo)A(Se);hr&&(x=Ye(o.length===0&&m!==null),A(hr));}if(u&&e.chain.includes(u))for(let L of g.turnedOn)a.relationFields.has(L)&&!a.omits.has(L)&&a.relations.add(L);for(let[L,B]of p.gated){let yr=B.kind==="enum",hr=B.options?.map(Q=>Q.value)??(yr?_r(B,l?.enums):B.values);if(!hr)continue;let le=hr;if(yr){let Q=b.get(B.type),Go=R.get(B.type);Q&&(le=le.filter(Y=>Q.has(Y))),Go&&(le=le.filter(Y=>!Go.has(Y)));}let Ye=y.get(L),Se=S.get(L);Ye&&(le=le.filter(Q=>Ye.has(Q))),Se&&(le=le.filter(Q=>!Se.has(Q))),a.enumValuesByField.set(L,le);}return n!==null&&e.memo?.effects.set(n,{effect:a,unchecked:s.length?s:null}),a},Gd=(e,t,r,o)=>{let n=Kd.get(e);if(n===void 0){n=`${Ji(e.origin)}${ce}${Ji(e.skipClampsOf)}${ce}${Ji(e.skipHidingOf)}${ce}`;for(let i of e.chain)n+=`${gn(i)},`;Kd.set(e,n);}return `${n}${ce}${t}${ce}${r}${ce}${o.join(ce)}`},Kd=new WeakMap,Vr=e=>{let t=[],r=(o,n)=>{let i=O(e.lens.maps,o.mapName);if(!T(i,o.modelName))return;let s=D(e,o.mapName,o.modelName,o.relPath);t.push({path:n,at:o,effect:s});for(let a of s.relations){let l=he(i,o.modelName,a),f=l&&Ke(l,o.mapName);f&&r({...f,relPath:[...o.relPath,a]},`${n}.${a}`);}};return r({mapName:e.lens.mapName,modelName:e.lens.model,relPath:[]},e.lens.model),t},Zi=(e,t,r,o)=>D(e,t,r,ta).sources.has(o),Yi=(e,t,r,o)=>new N(`source '${o}' at '${e}' offers mapDefaults.${t}.models.${r}.sources.${o}, which no layer declares`,"invalid_source"),St=(e,t)=>e.omits.has(t)?false:e.relationFields.has(t)?e.relations.has(t):!(e.picks!==null&&!e.picks.has(t)),Hi=(e,t)=>e.enumValuesByField.get(t)??null,Br=(e,t,r)=>{let o=r.split("."),n=[],i=[];for(let{index:s,field:a,at:l,entry:f,next:p}of ir(e.lens.maps,t,r)){if(!f)return {resolution:{outcome:"missing",index:s,hops:n},effects:i};let d=D(e,l.mapName,l.modelName,l.relPath);if(!(e.clamp&&j(f)?!d.omits.has(a):St(d,a)))return {resolution:{outcome:"hidden",index:s,hops:n},effects:i};let c={field:a,entry:f,mapName:l.mapName,model:l.modelName,relPath:[...l.relPath]};n.push(c),i.push(d);let g=s===o.length-1;if(g||Te(f))return {resolution:{outcome:"resolved",hops:n,terminal:c,jsonSubPath:g?[]:o.slice(s+1)},effects:i};if(!p)return {resolution:{outcome:"pastScalar",index:s,hops:n},effects:i}}return {resolution:{outcome:"missing",index:o.length,hops:n},effects:i}},qo=(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(Xs(o,n,i)),a=(p,d)=>Br(p,r,d).resolution.outcome!=="hidden",l={...e,clamp:true},f={...l,skipHidingOf:s===void 0?void 0:e.chain[s]};return (typeof i=="string"?[i]:i).every(p=>ia(e,r,p)===null&&(a(l,p)||a(f,p)))},Io=(e,t,r)=>{let{resolution:o,effects:n}=Br(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}},zi=(e,t,r,o)=>{let{resolution:n}=Br(e,t,r);if(n.outcome!=="hidden")return {code:"not_in_lens",message:o};let i=r.split("."),s=n.hops.at(-1),a=s?{mapName:s.mapName,modelName:s.model,relPath:[...s.relPath,s.field]}:t,l=s&&Ke(s.entry,s.mapName),f=l?{...l,relPath:a.relPath}:t,p=D(e,f.mapName,f.modelName,f.relPath),d=i[n.index];return !p.relationFields.has(d)||p.omits.has(d)?{code:"not_in_lens",message:o}:{code:"not_in_lens",message:`'${i.slice(0,n.index+1).join(".")}' is a relation the lens does not turn on (turn it on with \`relations\`)`}},wt=e=>({mapName:e.lens.mapName,modelName:e.lens.model,relPath:[],open:false}),Bo=(e,t,r)=>{let o=ke(r,t);if("outOfBounds"in o)return {issue:{code:"scope_out_of_bounds",message:o.outOfBounds}};if(o.scope.open)return {from:o.scope,next:o.scope,walked:null};let n=Io(e,o.scope,o.path);if(!n)return {issue:zi(e,o.scope,o.path,"path does not resolve through the narrowed lens")};let i=Te(n.entry),s=Ke(n.entry,n.mapName),a=s?{...s,relPath:[...n.relPath,n.terminalFieldName],open:i}:{...o.scope,open:i};return {from:o.scope,next:a,walked:n}},Ie=(e,t,r,o="")=>{let n=r.split("."),i=[],s=null;for(let{index:a,field:l,at:f,entry:p,next:d}of ir(e,t,r)){if(!p||!d)break;let u=[...f.relPath,l];i.push({map:d.mapName,model:d.modelName,relPath:u,prefix:`${o}${n.slice(0,a+1).join(".")}`,isList:p.isList===true}),a===n.length-1&&(s={...d,relPath:[...u]});}return {hops:i,end:s}};var aa="parent:",la=e=>e.startsWith(aa),Qd=e=>la(e)?e.slice(aa.length):e,sa=(e,t)=>{let r={...e};if(e.where!==void 0&&(r.where=t(e.where)),e.sources){let o={};for(let[n,i]of Object.entries(e.sources))o[n]=wn(i)?i.where!==void 0?{...i,where:t(i.where)}:i:t(i);r.sources=o;}if("relations"in e&&e.relations){let o={};for(let[n,i]of Object.entries(e.relations))o[n]=sa(i,t);r.relations=o;}return r},Zd=(e,t)=>{let r={};for(let[o,n]of Object.entries(e.mapDefaults??{})){let i={};for(let[s,a]of Object.entries(n.models??{}))i[s]=sa(a,t);r[o]=n.models?{...n,models:i}:n;}return {...e,root:e.root?sa(e.root,t):void 0,mapDefaults:e.mapDefaults?r:void 0}},pa=e=>{let t=[];return Zd(e,r=>(t.push(r),r)),t},Jd=e=>{let t=new Set;for(let r of pa(e))for(let o of nn(r))la(o)||t.add(o);return t},Yd=e=>{let t=new Set;for(let r of ht(e))for(let o of pa(r))for(let n of nn(o,{required:true}))t.add(Qd(n));return [...t].sort()},Xd=(e,t)=>{if(He(e))return e;let r={...t};for(let[o,n]of Object.entries(t))r[`${aa}${o}`]=n;return {...Zd(e,o=>js(o,r)),parent:Xd(e.parent,t)}},eu=(e,t)=>Xd(e,t),tu=e=>{let t=[],r=new Set;for(let n of ht(e.parent))for(let i of Jd(n))r.add(i);for(let n of Jd(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 pa(e))for(let i of nn(n))la(i)&&o.add(Qd(i));for(let n of o)r.has(n)||t.push(`bind 'parent:${n}' references an inherited binding no ancestor declares`);return t};var ou=(e,t)=>e===void 0?t:t===void 0?e:{all:[e,t]},mR=(e,t)=>{if(!e||!t)return e??t;let r={...e};for(let[o,n]of Object.entries(t)){let i=r[o];if(i===void 0){r[o]=n;continue}let s=dr(i),a=dr(n),l=ou(s.where,a.where);r[o]={...s,...a,...l===void 0?{}:{where:l}};}return r},nu=(e,t)=>{let r=ou(e?.where,t.where),o=mR(e?.sources,t.sources);return {...e,...r===void 0?{}:{where:r},...o?{sources:o}:{}}},gR=(e,t)=>{let r={...e?.models};for(let[o,n]of Object.entries(t))r[o]=nu(r[o],n);return {...e,models:r}},ru=(e,t)=>{let r={...e.mapDefaults};for(let[o,{models:n}]of Object.entries(t.mapDefaults??{}))r[o]=gR(r[o],n);return {...e,...t.root?{root:nu(e.root,t.root)}:{},...t.mapDefaults?{mapDefaults:r}:{}}},fa=(e,t)=>He(e)?ru({parent:e},t):He(e.parent)?ru(e,t):{...e,parent:fa(e.parent,t)};var iu=(e,t)=>{let r=k(t),o=(n,i)=>typeof n=="string"&&n!==""?Bo(r,i,n):null;return tr(e,{rewrite:(n,i)=>{if(fe(n)!=="field"||n.coerceType)return n;let s=o(n.field,i);if(!s||"issue"in s||!s.walked||s.walked.jsonSubPath.length)return n;let{entry:a}=s.walked;return a.kind==="scalar"&&Nf.includes(a.type)?{...n,coerceType:a.type}:n},below:(n,i)=>{if(!Le(n))return false;let s=o(n.field,i),a=s&&!("issue"in s)?s.walked?.entry:void 0;return s&&!("issue"in s)&&a&&j(a)?[...i,s.next]:false}},[wt(r)])};var su=({maps:e,bridges:t,mapName:r,model:o})=>({...Ci({maps:e,bridges:t}),mapName:r,model:o});var yR=(e,t)=>oe(e,(r,o)=>{if(t.sources.add(o[o.length-1].mapName),Ae(r)||typeof r.field!="string"||r.field==="")return;let n=Bo(t.policy,o,r.field);return "issue"in n?false:(n.walked&&(t.sources.add(n.walked.mapName),(n.walked.entry.kind==="bridge"||n.walked.mapName!==n.from.mapName)&&(t.bridgesCrossed=true)),[...o,n.next])},[wt(t.policy)]),au=(e,t)=>{let o={policy:k(t),sources:new Set,bridgesCrossed:false};return yR(e,o),{sources:[...o.sources].sort(),bridgesCrossed:o.bridgesCrossed,supportedTargets:M.filter(n=>(n==="check"||!o.bridgesCrossed)&&Fo(e,{target:n,map:o.policy.lens,mapName:o.policy.lens.mapName,model:o.policy.lens.model}).ok),errors:Vo(e,t).errors}};var hR=new Set([Tt.scalar,Tt.ordered,Tt.array,Tt.dayList,Tt.dateValue]),wR=new Set([Tt.none,Tt.count]),SR=e=>{if(e.offset!==void 0||on(e).some(({source:r})=>r.value===void 0))return {values:[],dynamic:true};let t=ho(e);return t?wR.has(t.valueShape)?{values:[],dynamic:false}:hR.has(t.valueShape)?"value"in e?{values:cn(e)??[],dynamic:false}:{values:[],dynamic:false}:{values:[],dynamic:true}:{values:[],dynamic:true}},bR=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)}`,lu=(e,t)=>{let r=k(t),o=r.lens.model,n=new Map,i=new Map,s=(l,f)=>{if(l.length===0)return;let p=Io(r,{mapName:r.lens.mapName,modelName:o,relPath:[]},l.join("."));if(!p||p.jsonSubPath.length>0)return;let{mapName:d,modelName:u,relPath:c,terminalEffect:g,terminalFieldName:m}=p;if(!g.sources.has(m))return;let y=[o,...c].join("."),S=`${y}|${m}`,b=n.get(S);b||(b={path:y,mapName:d,model:u,field:m,values:[],dynamic:false},n.set(S,b));let R=SR(f);R.dynamic&&(b.dynamic=true);let w=i.get(S)??new Set;i.set(S,w);for(let E of R.values){let x=bR(E);w.has(x)||(w.add(x),b.values.push(E));}},a=(l,f)=>{let p=ke(l,f);if(!("outOfBounds"in p))return [...p.scope,...p.path.split(".")]};return oe(e,(l,f)=>{if(Ae(l))return;let p=typeof l.field=="string"?a(l.field,f):f.at(-1);return p?(!Le(l)&&typeof l.field=="string"&&s(p,l),[...f,p]):false},[[]]),[...n.values()]};var Xi=(e,t,r,o)=>{let n=RR(e,t,r);if(n.options===t)return o(n.condition,n.options);try{return o(n.condition,n.options)}catch(i){if(i instanceof N||i instanceof J)throw i;try{o(e,n.options);}catch{throw i}throw new N(`${r}: the lens's clamps on this rule have no ${r} form \u2014 ${i.message}`,"unsupported_target")}},RR=(e,t,r)=>{if(t?.lens===void 0)return {condition:e,options:t};let{lens:o}=t;if(t.map!==void 0||t.mapName!==void 0||t.model!==void 0)throw new J(`${r}: pass \`lens\` or \`map\` / \`mapName\` / \`model\`, not both \u2014 the lens names its own`);let n=Vo(e,o);if(!n.ok)throw new Error(`${r}: the rule leaves the lens \u2014 ${n.errors.map(s=>`${s.path}: ${s.message}`).join("; ")}`);let i=Je(o);return {condition:jo(e,o),options:{...t,lens:void 0,map:i,mapName:i.mapName,model:i.model}}};var es=(e,t,r,o)=>{if(!wf.includes(e.operator))throw new Error(`'${e.operator}' does not apply to the enum '${e.field}'; compare its values with equals / in.`);let n=pe(e.caseInsensitive),i=_r(r,o?.enums),{values:s,hasNull:a}=Lt(lt.includes(e.operator)?[t]:t);if(!n&&(!i||s.every(d=>typeof d=="string"&&i.includes(d))))return null;if(!i)throw new Error(`'${e.field}' is an enum: a case-insensitive comparison reads its declared values, which the map doesn't list.`);let l=d=>n?d.toLowerCase():d,f=new Set(s.filter(d=>typeof d=="string").map(d=>l(d))),p=i.filter(d=>f.has(l(d)));return G.includes(e.operator)?{values:i.filter(d=>!p.includes(d)),matchesNull:!a}:{values:p,matchesNull:a}};var X=e=>`"${e.replace(/"/g,'""')}"`;var ge=e=>e.replace(/\\/g,"\\\\").replace(/%/g,"\\%").replace(/_/g,"\\_"),da=(e,t,r=false)=>{let[o,...n]=e.split("."),i=t?`${X(t)}.${X(o)}`:X(o);if(n.length===0)return i;let s=n.map(ua),a=s.pop();return [i,...s].join("->")+(r?"->":"->>")+a},ua=e=>`'${e.replace(/'/g,"''")}'`;var OR=["@prisma/client/runtime/client","@prisma/client/runtime/library"],ts,xR=()=>{if(ts!==void 0)return ts;for(let e of ER())for(let t of OR)try{let r=e(t);if(r.AnyNull!==void 0)return ts=r.AnyNull,ts}catch{}},ER=()=>{let e=[];try{let t=globalThis.process?.getBuiltinModule?.("module")?.createRequire;t&&e.push(t((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('index.cjs', document.baseURI).href))));}catch{}return typeof ys=="function"&&e.push(ys),e},pu=()=>{let e=Or.get("prismaOptions.anyNull")??xR();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 fu=(e,t)=>{let r=Ar(gt(t));return r===null?null:vr(e,r)},du=(e,t,r)=>{if(e===null)return null;let o=vo(gt(t)),n=o&&$r(o[0],fn);return !o||!n?null:er(ut__default.default(e),n,o[1],Co(r).timeZone).toDate()};var ma=(e,t)=>Ce(e,t?.map,t?.model),bt=e=>e==="json"||e==="json-path",ur=e=>bt(e)?pu():null,qr=(e,t)=>t?.map&&t?.model?fd(e,t.map,t.model).map(r=>jr(r,{is:null})):[],ga=(e,t)=>{let r=ma(e,t);return [...bt(r)||r==="list"||Z(e.field,t?.map,t?.model)?.isRequired===false?[Qe(e.field,{equals:ur(r)},t)]:[],...qr(e.field,t)]},rs=(e,t,r,o)=>{if(r.mode&&bt(o)&&Array.isArray(t))throw _("toPrisma",`A case-insensitive comparison of a Json value with the list ${JSON.stringify(t)}`);if(!r.mode||typeof t!="string")return {[e]:t,...r};if(!bt(o))return {[e]:ge(t),...r};if(/[%_\\"\u0000-\u001f]/.test(t))throw _("toPrisma",`A case-insensitive equality on Json against '${t}'`,"Prisma matches the JSON text, where %, _, a backslash, a quote or a control character doesn't read as itself");return {[e]:t,...r}},ya=(e,t,r,o)=>{let n=t?.datasource?.provider??Or.get("prismaOptions.datasource.provider");return pe(e.caseInsensitive)&&cf(n)&&lr(r,o)?{mode:"insensitive"}:{}},uu=(e,t)=>{if(e==="list")return [{isEmpty:true}];let r=t?[{equals:""}]:[];return bt(e)?[...r,{equals:[]}]:r},cu=e=>"isEmpty"in e?{isEmpty:false}:{not:e.equals},ha=(e,t,r,o,n)=>{let i=a=>Qe(e,a,n),s=uu(t,o);return r?I([i({equals:ur(t)}),...qr(e,n),...s.map(a=>i(a))]):je([...t==="list"?[]:[i({not:ur(t)})],...s.map(a=>i(cu(a)))])},$R=(e,t)=>{if(!Mr(e))throw Oo(e.field);let o=(n=>Qe(e.field,n,t))({is:{}});return ue({...e,field:"relation"},{relation:null})===true?Ee(o):o},vR=(e,t)=>Z(e.field,t?.map,t?.model),ca=ze(),AR=(e,t,r)=>{if(t==="list"||bt(t)||vR(e,r)?.isRequired!==true)return null;let o=e.field.split(".").slice(0,-1).join(".");return o?Qe(o,{is:{}},r):ca},mu=(e,t)=>{let r=m=>Qe(e.field,m,t),o=ma(e,t),n=()=>ga(e,t),i=_i(e,t?.map,t?.model);if(o==="relation")return $R(e,t);let s=AR(e,o,t),a=s&&(s===ca?yt():Ee(s)),l=m=>s&&a?ue({field:"f",operator:m,value:null},{f:null})===true?a:s:null;if(s&&a&&Mr(e)){let m=uu(o,i);return e.operator===h.isEmpty?I([a,...m.map(r)]):e.operator===h.notEmpty?je([s,...m.map(y=>r(cu(y)))]):l(e.operator)}switch(e.operator){case h.exists:case h.notExists:{if(e.operator===h.exists)return o==="list"?Ee(r({equals:null})):r({not:ur(o)});let m=n();return m.length?I(m):r({equals:ur(o)})}case h.isEmpty:case h.notEmpty:return ha(e.field,o,e.operator===h.isEmpty,i,t)}if(Ue(e)){let m=ji(e,t?.map,t?.model,wd(t),Sd(t));if("problem"in m)throw Ii(e.path,m.problem);let y=r({[m.key]:m.ref}),S=(E,x)=>x.isRequired===false?Qe(E,{equals:null},t):null,b=(E,x)=>x.isRequired===false?Qe(E,{not:null},t):ca,R=S(e.field,m.field),w=S(m.columnPath,m.column);return e.operator===h.equals?R&&w?I([y,je([R,w])]):y:e.operator===h.notEquals?I([Ee(y),...R?[je([R,b(m.columnPath,m.column)])]:[],...w?[je([b(e.field,m.field),w])]:[]]):y}let f=gu(e,t);if(Oe(e,f))return I(G.includes(e.operator)?n():[]);if(f===null&<.includes(e.operator)){let m=l(e.operator);if(m)return m}if(o==="list"&&Qt.includes(e.operator)&&Array.isArray(f))return ne(Ti(e,f),t);if(o==="list"&&Array.isArray(f)&&f.includes(null))throw _("toPrisma",`A list holding null in '${e.field}'`);if(o==="list"&&pe(e.caseInsensitive)&&lr("text",f))throw _("toPrisma",`A case-insensitive comparison on the list '${e.field}'`);let p=o==="enum"?Z(e.field,t?.map,t?.model):void 0,d=p?es(e,f,p,t?.map):null;if(d){let m=r({in:d.values});return d.matchesNull?I([m,...n()]):m}if(Qt.includes(e.operator)){let{values:m,hasNull:y}=Lt(f),S=ya(e,t,o,m),b=bt(o)?e.operator===h.in?I(m.map(R=>r(rs("equals",R,S,o)))):je(m.map(R=>r(rs("not",R,S,o)))):r({[e.operator]:m,...S});return e.operator===h.in?y?I([b,...n()]):b:y?je([b,s??r({not:ur(o)})]):I([b,...n()])}let u=m=>{if(!bt(o)||m!==h.contains)return r(Sn({...e,operator:m},t));let y=r({array_contains:[NR(e,f,t,o)]});return typeof f=="string"?I([r(Sn({...e,operator:m},t)),y]):y};if(e.operator===h.contains)return u(h.contains);let c=Pf.includes(e.operator)?Xo[e.operator]:So.includes(e.operator)?h.between:void 0;if(c){if(bt(o))throw _("toPrisma",`'${e.operator}' on the Json value '${e.field}'`,"it keeps values of other types");return I([Ee(u(c)),...n()])}let g=r(Sn(e,t));return e.operator===h.equals&&f===null?I([g,...qr(e.field,t)]):e.operator===h.notEquals&&o==="list"?f===null?Ee(r({equals:null})):I([Ee(r({equals:f})),...n()]):e.operator===h.notEquals&&f!==null?I([g,...n()]):g},gu=(e,t)=>{let r=Ki(e,gt(e),sr(e.field,t?.map,t?.model),"toPrisma",()=>Co(t).timeZone);return e.offset===void 0?r:fu(r,e.offset)},Sn=(e,t)=>{let r=hi(e);if(r)throw r;let o=ma(e,t),n=()=>gu(e,t),i=f=>ya(e,t,o,f),s=f=>{let p=n();if(o==="list"){if(f!=="contains")throw new Error(`Operator '${f}' does not apply to the list '${e.field}'.`);return {has:p}}let d=bt(o)?TR[f]:f,u=typeof p=="string"?ge(p):p;return {[d]:u,...i(p)}},a=wi(e.operator,n());if(a)throw a;let l=Ht(e.operator,"field");if(l&&wo.includes(e.operator))return {[l]:n()};switch(e.operator){case h.equals:{let f=n()??ur(o);return rs("equals",f,i(f),o)}case h.notEquals:{let f=n()??ur(o);return rs("not",f,i(f),o)}case h.in:case h.notIn:return {[e.operator]:n()};case h.contains:return s("contains");case h.startsWith:return s("startsWith");case h.endsWith:return s("endsWith");case h.matches:case h.notMatches:throw _("toPrisma",`'${e.operator}'`,"Prisma has no pattern filter");case h.between:case h.notBetween:{let[f,p]=Fe(Ge(n(),e.operator));return {gte:f,lte:p}}default:throw new Error(`Operator '${e.operator}' is built by buildFieldRule`)}},NR=(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(ya(e,r,o,t).mode)throw _("toPrisma",`A case-insensitive member of the Json array '${e.field}'`);return t},TR={contains:"string_contains",startsWith:"string_starts_with",endsWith:"string_ends_with"},Qe=(e,t,r)=>{if(!r?.map||!r?.model)return jr(e,t);let o=se(e,r.map,r.model),n=o.hops.find(s=>s.entry.isList);if(n)throw Si(e,n);let i=e.split(".");switch(o.kind){case "fallback":case "direct":return jr(e,t);case "bridge":return Dr();case "past-scalar":throw bi(e,o.column);case "json-path":{let s={path:o.jsonPath,...t},a=i.slice(0,o.stopIndex).join(".");return jr(a,s)}}};var yu=(e,t,r)=>{if(Ne(e)){let o=To(e);if(!o)throw ft("toPrisma");return ne(o,t,r)}if(!t?.map||!t?.model||!r)throw new Error("Aggregate rules require a FieldMap and model to generate a Prisma plan. Pass { map, model } options to toPrisma().");if(!at.includes(e.aggregate.mode))throw Xt(e.aggregate.mode);if(!e.aggregate.field)throw new Error("Prisma aggregate rules require aggregate.field to specify the numeric field on the related model.");return MR(e,t,r)},MR=(e,t,r)=>{let o=_o(e.field,t.map,t.model,"Aggregate rules");if(e.condition&&mt(e.condition,t.map,o.target))return Dr();let n=e.aggregate.field??"",i=he(t.map,o.target,n);if(!i)throw new Error(`aggregate.field '${n}' does not exist on model '${o.target}'.`);if(i.kind!=="scalar"||Te(i))throw new Error(`aggregate.field '${n}' on model '${o.target}' must be a numeric scalar, got ${i.kind==="scalar"?"Json":`'${i.kind}'`}.`);let s=ko(t)(e);if(s===null||Oe(s,s.value))return yt();let a=ln(s,[{}],void 0,{},{value:0})===true,l=a?De(s):s,f=Sn(l,t),p={[e.aggregate.mode==="sum"?"_sum":"_avg"]:f},d=So.includes(l.operator)?Ee({[n]:p}):{[n]:p},u=e.condition?ne(e.condition,Fr({...t,model:o.target},t,true),r):ze(),c=Bi(r,o,u,d,a);return a?I([c,...qr(e.field,t)]):c};var wu=(e,t,r)=>{if(!e.field)throw new Error("toPrisma: count-based ArrayRule requires a field path");let o=_o(e.field,t.map,t.model,"Count operators");if(e.condition===void 0)throw We(e.arrayOperator);if(e.count===void 0)throw Ro(e.arrayOperator);let n=e.count;if(e.arrayOperator===$.atLeast&&n===0)return ze();let i=ne(e.condition,Fr({...t,model:o.target},t,true),r),s=wa(e),a=s?hu($.atLeast,e.arrayOperator===$.atMost?n+1:1,o.targetKey):hu(e.arrayOperator,n,o.targetKey);return Bi(r,o,i,a,s)},hu=(e,t,r)=>{let o=Ht(e,"array");if(!o)throw new Error(`'${e}' does not count`);return {[r]:{_count:{[o]:t}}}};var Su=(e,t,r)=>{let o=CR(e,t,r);return e.field&&wa(e)&&!bu(e.field,t)?I([o,...qr(e.field,t)]):o},wa=e=>ue({...e,field:"items"},{items:[]})===true,CR=(e,t,r)=>{if(Ne(e)){let i=To(e);if(!i)throw ft("toPrisma");return ne(i,t,r)}if(e.condition!==void 0&&!Ef.includes(e.arrayOperator)&&mt(e.condition,t?.map,Ru(e,t)?.model))return Dr();if(Zt.includes(e.arrayOperator)){if(t?.map&&t?.model&&r)return wu(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 gi("toPrisma");let{field:o}=e;if(bu(o,t))return kR(e,o,Ce({field:o},t?.map,t?.model),t);let n=_R(e,t,r);return Qe(e.field,n,t)},bu=(e,t)=>{let r=Ce({field:e},t?.map,t?.model);return r==="list"||r==="json"||r==="json-path"},kR=(e,t,r,o)=>{switch(e.arrayOperator){case $.empty:case $.notEmpty:return ha(t,r,e.arrayOperator===$.empty,false,o);default:throw _("toPrisma",`'${e.arrayOperator}' over the ${r==="list"?"list":"Json array"} '${t}'`,r==="list"?"test a list's membership with 'contains'":void 0)}},Ru=(e,t)=>{if(!t?.map||!t?.model||!e.field)return t&&Fr({...t});let r=pn(e.field,t.map,t.model);return Fr(r?{...t,model:r}:{...t})},_R=(e,t,r)=>{let o=Ru(e,t);switch(e.arrayOperator){case $.all:if(!e.condition)throw We(e.arrayOperator);return {none:ne(De(e.condition,ko(o)),o,r)};case $.any:if(!e.condition)throw We(e.arrayOperator);return {some:ne(e.condition,o,r)};case $.none:if(!e.condition)throw We(e.arrayOperator);return {none:ne(e.condition,o,r)};case $.empty:return {none:{}};case $.notEmpty:return {some:{}};default:throw ie(e.arrayOperator,"array")}};var Ou=(e,t)=>{let r=t?.map,o=Ce({field:e.field},r,t?.model);if(o==="json"||o==="json-path")throw _("toPrisma",`A date rule on the Json value '${e.field}'`,"Prisma compares Json text");let n=Z(e.field,r,t?.model);if(n&&!j(n)&&Ft(n)!==H.DateTime)throw _("toPrisma",`A date rule on the ${n.type} field '${e.field}'`,`Prisma compares it as ${n.type}, not as an instant`);let i=G.includes(e.dateOperator)?ga(e,t):[],s=LR(e,t);if(s===null)return I(i);let a=Qe(e.field,s,t),l=So.includes(e.dateOperator)?Ee(a):a;return I([l,...i])},LR=(e,t)=>{let r=Co(t),o=fn,n=c=>e.offset===void 0?c:du(c,e.offset,t),i=c=>{if(c==null)return null;if(!te(c))return Ai(c,r.timeZone);let g=dt(c,o);return g&&xo(g,e.dateOperator,r).toDate()},s=()=>gt(e),a=()=>n(i(s())),l=()=>{let c=s();if(c==null)return null;let g=Ge(c,e.dateOperator).map(i);if(g[0]===null||g[1]===null)return null;let[m,y]=Fe(g).map(n);return m&&y?[m,y]:null},f=()=>{let c=s();if(c==null)return null;if(!te(c))throw qe(e.dateOperator);let g=dt(c,o);if(!g)return null;let[m,y]=Eo(g,r);return [m.toDate(),y.toDate()]},p=c=>{let g=a();return g===null?null:{[c]:g}},d=c=>c?{gte:c[0],lte:c[1]}:null,u=Ht(e.dateOperator,"date");if(u)return p(u);switch(e.dateOperator){case v.within:case v.notWithin:return d(f());case v.between:case v.notBetween:return d(l());case v.dayIn:case v.dayNotIn:throw _("toPrisma",`'${e.dateOperator}'`);default:throw ie(e.dateOperator,"date")}};var Sa=(e,t,r)=>{if(typeof e=="boolean")return e?{}:yt();oi(e,"toPrisma");let o=fe(e);(o==="field"||o==="date")&&Li(e.field,t?.map,t?.model);let n=e;switch(o){case "all":return Ed(n,t,r);case "any":return Pd(n,t,r);case "if":return $d(n,t,r);case "array":return Su(n,t,r);case "aggregate":return yu(n,t,r);case "date":return Ou(n,t);case "field":return mu(n,t);default:throw pt()}};Od(Sa);var Eu=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=Pu(t,i.model),a=xu(i.args,i.refs,n,t),l=await s[i.operation](a);n.push(l.map(f=>f[i.extract]).filter(f=>f!=null));}return xu(o.where,o.refs,n,t)},Pu=(e,t)=>{let r=t.charAt(0).toLowerCase()+t.slice(1),o=e[r];if(!o)throw new Error(`executePrismaPlan: no delegate for model '${t}'. Ensure prismaDelegate has a key '${r}'.`);return o},FR=(e,t)=>{let r=Pu(e,t.model).fields,o=r&&Object.hasOwn(r,t.field)?r[t.field]:void 0;if(o===void 0)throw new Error(`executePrismaPlan: the '${t.model}' delegate has no field reference '${t.field}' (fields.${t.field}).`);return o},DR=(e,t)=>t.reduce((r,o)=>r!==null&&typeof r=="object"&&Object.hasOwn(r,o)?r[o]:void 0,e),ba=(e,t,r)=>{if(t.length===0)return r;let[o,...n]=t,i=e,s=Array.isArray(e)?[...e]:{...i};return s[o]=ba(i[o],n,r),s},xu=(e,t,r,o)=>{let n=e;for(let{path:i}of t??[]){let s=DR(e,i);if(s&&typeof s.__step=="number"){let a=s.__step;if(a>=r.length)throw new Error(`Step ref __step: ${a} out of range (${r.length} steps executed)`);n=ba(n,i,r[a]);}else if(s&&typeof s.__field=="object"&&s.__field!==null)n=ba(n,i,FR(o,s.__field));else throw new Error(`executePrismaPlan: no reference at the recorded location ${i.join(".")}`)}return n};var jR=e=>e?.map?{...e,map:Me(e.map,e.mapName,"toPrisma")}:e,bn=(e,t)=>Xi(e,t,"toPrisma",IR),IR=(e,t)=>{let r={steps:[]},o=Sa(e,jR(t),r),n=(i,s)=>{let a=gd(s);return a.length?{...i,refs:a}:i};return {steps:[...r.steps.map(i=>n(i,i.args)),n({operation:"where",where:o},o)]}};var os=(e,t,r,o,n)=>{let i=`${r.mapName}\0${r.modelName}`;for(let a of t){if(typeof a=="boolean")continue;let l=e.memo?.compiles.get(a)??new Map;e.memo?.compiles.set(a,l);let f=l.get(i);if(f===void 0){let[p]=Fo(a,{target:"toPrisma",map:e.lens,mapName:r.mapName,model:r.modelName}).errors;f=p?p.message:null,l.set(i,f);}if(f!==null)return new N(`${o}: ${f}`,"unsupported_clamp")}if(n)return null;let s=false;for(let a of t)oe(a,l=>{("aggregate"in l||Zt.includes(l.arrayOperator))&&(s=true);});return s?new N(`${o} needs a counting step (executePrismaPlan), which a relation's where in a select can't run`,"unsupported_clamp"):null},ns=(e,t)=>{try{return t()}catch(r){throw r instanceof N||r instanceof J?r:new N(`${e}: ${r.message}`,"unsupported_clamp")}};var $u=(e,t)=>e===""?t:t===""?e:`${e}.${t}`,Ve=e=>{let t=new Set,r=n=>{n&&t.add(n);},o=(n,i)=>{let s=ke(n,i);return "outOfBounds"in s?null:$u(s.scope,s.path)};return oe(e,(n,i)=>{if(Ae(n))return;for(let l of rr(n))r(F(l)?o(l,i):l);let s=typeof n.field=="string"&&n.field!==""?o(n.field,i):null;if(r(s),!Le(n))return;let a=s??i[i.length-1];for(let l of Po(n))r($u(a,l));return [...i,a]},[""]),[...t]};var Ra=(e,t,r,o,n)=>{let i={};for(let[s,a]of Object.entries(o.fields)){if(!St(t,s))continue;let l=t.enumValuesByField.get(s),f=n(s)?.filter(d=>l===void 0||l.includes(d.value)),p=qo(e,t,r,s,"groupBy")?t.sourceGroupBys.get(s):void 0;i[s]={...a,...l!==void 0&&{values:l},...f!==void 0&&{options:f},...p!==void 0&&{groupBy:p}};}return i},vu=(e,t,r,o,n)=>{let{mapName:i,modelName:s}=t,a=T(O(e.lens.maps,i),s),l=Ra(e,r,t,a,c=>{let g=n.get(`${o}|${c}`),m=r.enumValuesByField.get(c);return g??O(a.fields,c)?.options??m?.map(y=>({value:y,label:y}))}),f={};for(let[c,g]of r.sources)St(r,c)&&(f[c]=g);let p={};for(let[c,g]of r.sourceLabels)St(r,c)&&qo(e,r,t,c,"label")&&(p[c]=g);let d={};for(let[c,g]of r.sourceGroupBys)St(r,c)&&qo(e,r,t,c,"groupBy")&&(d[c]=g);let u={};for(let c of r.sourcesFromMapDefaults.keys()){if(!Zi(e,i,s,c))throw Yi(o,i,s,c);Object.hasOwn(f,c)&&(u[c]="mapDefaults");}return {mapName:i,model:s,fields:l,whereClauses:r.whereClauses,sources:f,sourceLabels:p,sourceGroupBys:d,sourceFrom:u}},Au=e=>{let t=new Map;for(let r of e.sourceValues??[])t.set(`${r.path}|${r.field}`,r.options);return t},Nu=(e,t={})=>Rn(k(e),t),Rn=(e,t={})=>{let r=Au(t),o={};for(let{path:n,at:i,effect:s}of Vr(e))o[n]=vu(e,i,s,n,r);return o},Tu=(e,t,r={})=>Oa(k(e),t,r),Oa=(e,t,r={})=>{let o={mapName:e.lens.mapName,modelName:e.lens.model,relPath:[]};if(t!=="")for(let s of ir(e.lens.maps,o,t)){let a=D(e,s.at.mapName,s.at.modelName,s.at.relPath);if(!s.next||!a.relations.has(s.field))return null;o={...s.next,relPath:[...s.at.relPath,s.field]};}if(!T(O(e.lens.maps,o.mapName),o.modelName))return null;let n=D(e,o.mapName,o.modelName,o.relPath),i=[e.lens.model,...o.relPath].join(".");return vu(e,o,n,i,Au(r))};var is=(e,t,r,o,n)=>{let i=e.split("."),{hops:s}=Ie(t,{mapName:r,modelName:o,relPath:[]},e),a=s.find((d,u)=>d.isList&&u<i.length-1);if(a)return `${n} cannot traverse to-many relation '${i[s.indexOf(a)]}'`;if(s.length===i.length)return `${n} must end on a scalar column, '${i.at(-1)}' is a relation`;let l=s.at(-1)??{map:r,model:o},f=i[s.length],p=he(O(t,l.map),l.model,f);return p?j(p)?`${n} relation '${f}' has no resolvable target`:s.length===i.length-1?null:`${n} segment '${f}' is not a relation`:`${n} segment '${f}' not on model '${l.model}'`},Mu=(e,t,r,o,n,i,s,a)=>{let l=is(n,e.lens.maps,t,r,i);if(l)throw new N(`${i} '${n}': ${l}`,"invalid_source");let{hops:f}=Ie(e.lens.maps,{mapName:t,modelName:r,relPath:o},n),p=f.slice(0,n.split(".").length-1);for(let d of p){let u=d.relPath.join(".");if(s.has(u))continue;s.add(u);let c=D(e,d.map,d.model,d.relPath);for(let g of c.whereClauses)a.push(Gi(g,d.prefix));}},VR=(e,t,r,o,n,i)=>{let s=[],a=new Set;for(let l of n)Mu(e,t,r,o,l,"groupBy",a,s);return i?.includes(".")&&Mu(e,t,r,o,i,"label",a,s),s},On=(e,t)=>{let r=me(e,t);return r==null||typeof r=="object"?void 0:String(r)},ss=(e,t)=>{let r=[];for(let o of t){let n=On(e,o);if(n===void 0)return;r.push(n);}return r},xa=(e,t)=>JSON.stringify([e??null,t]),BR=(e,t,r,o)=>{let n=xa(o,t),i=e.get(n);i===void 0?e.set(n,{value:t,...r!==void 0?{label:r}:{},...o!==void 0?{groups:o}:{}}):r!==void 0&&(i.label===void 0||r<i.label)&&e.set(n,{...i,label:r});},as=(e,t,r,o,n)=>{let i=me(t,r),s=o==null?void 0:String(o);for(let a of Array.isArray(i)?i:[i])a==null||typeof a=="object"||BR(e,String(a),s,n);},ls=e=>[...e.values()].sort((t,r)=>{let o=(t.groups===void 0?0:1)-(r.groups===void 0?0:1);if(o!==0)return o;let n=t.groups??[],i=r.groups??[];for(let s=0;s<Math.max(n.length,i.length);s++){let a=(n[s]??"").localeCompare(i[s]??"","en",{numeric:true});if(a!==0)return a}return (t.label??t.value).localeCompare(r.label??r.value,"en",{numeric:true})||t.value.localeCompare(r.value,"en",{numeric:true})}),qR=(e,t,r,o,n)=>{let{hops:i}=se(n,t,o),s=n.split("."),a=i.at(-1)?.entry.type??o,l=s[i.length];for(let{endpoints:f}of e.bridges??[]){let[p,d]=f;for(let[u,c]of [[p,d],[d,p]])if(u.fieldMap===r&&u.model===a&&xe(c)===l)return [...s.slice(0,i.length),u.on].join(".")}throw new N(`'${n}' crosses no bridge the lens declares on ${a}`,"not_in_lens")},ps=(e,t,r,o)=>{let n=Me(e,t,"toPrisma");return [...new Set(o.map(i=>ar(i,n,r)?qR(e,n,t,r,i):i))]},WR=(e,t,r,o)=>{if(t.length===0)return [];let n={mapName:e.lens.mapName,modelName:e.lens.model,relPath:[]},{hops:i,end:s}=Ie(e.lens.maps,n,t.join("."));if(!s)throw new N(`source at '${t.join(".")}': its path doesn't resolve on the field maps`,"not_in_lens");let a=[n,...i.map(p=>({mapName:p.map,modelName:p.model}))],l=t.length;for(;l>0&&!r.has(t.slice(0,l).join("."));)l--;let f=l>0?r.get(t.slice(0,l).join("."))??null:null;for(let p=l;p<t.length;p++){let d=x=>{f=x,r.set(t.slice(0,p+1).join("."),x);},u=a[p],c=D(e,u.mapName,u.modelName,t.slice(0,p)).whereClauses,g=f===null?c:[...c,f];if(g.length===0&&!o){d(null);continue}let m=O(e.lens.maps,u.mapName),y=m&&he(m,u.modelName,t[p]);if(!y)throw new N(`source at '${t.join(".")}': '${t[p]}' isn't declared on ${u.modelName}`,"not_in_lens");let S=a[p+1],b=xe({fieldMap:u.mapName,model:u.modelName}),R=y.kind==="bridge"?he(O(e.lens.maps,S.mapName),S.modelName,b):void 0,w=y.kind==="bridge"?R&&{field:b,entry:R}:m?Vi(m,u.modelName,t[p],y):null;if(!w&&g.length===0){d(null);continue}if(!w)throw new N(`source at '${t.join(".")}': '${t[p]}' on ${u.modelName} declares no inverse, so the clamps above can't be carried down to it`,"unsupported_clamp");let E=W(g);try{let x={field:w.field,operator:"exists"};d(w.entry.isList?{field:w.field,arrayOperator:"any",condition:E}:g.length?W([x,Gi(E,w.field)]):x);}catch(x){throw x instanceof N?new N(`source at '${t.join(".")}': the clamps above can't be carried down to it \u2014 ${x.message}`,x.code):x}}return f===null?[]:[f]},Cu=e=>cr(k(e)),cr=(e,t=Rn(e))=>{let r=new Map,o=n=>{let i=r.get(n)??new Map;return r.set(n,i),i};return Object.entries(t).flatMap(([n,i])=>Object.keys(i.sources).map(s=>{let a=O(i.sourceLabels,s),l=O(i.sourceGroupBys,s),f=Object.hasOwn(i.sourceFrom,s),p={mapName:i.mapName,modelName:i.model,relPath:n.split(".").slice(1)},d=D(e,p.mapName,p.modelName,p.relPath),u=(d.sourceWheres.get(s)??[]).map(A=>Ir(A,e,p)),c=VR(e,p.mapName,p.modelName,p.relPath,l??[],a),g=O(i.fields,s)?.values,m=f?d.sourcesFromMapDefaults.get(s):void 0,y=m===void 0?void 0:e.chain[m],b=[...WR(y===void 0?e:{...e,skipClampsOf:y},p.relPath,o(y),y===void 0&&!f),...u,...c,...g?[{field:s,operator:"in",value:[...g]}]:[]],R=W([...i.whereClauses,...b]),w=W([...i.whereClauses,...u,...c,...g?[{field:s,operator:"in",value:[...g]}]:[]]),E=e.lens.bridges?.length?Me(e.lens,p.mapName,"toPrisma"):void 0,x=E?[...Ve(R),...a===void 0?[]:[a],...l??[]].find(A=>ar(A,E,p.modelName)):void 0,V=x!==void 0&&E?W(Ds(R).filter(A=>mt(A,E,p.modelName))):void 0,ae=os(e,[...i.whereClauses,...b],p,`source '${s}' at '${n}'`,true);if(ae)throw ae;return {path:n,visit:i,field:s,...f&&{from:"mapDefaults"},...a!==void 0&&{label:a},...l!==void 0&&{groupBy:l},where:R,rowWhere:w,...x!==void 0&&{bridged:x},...V!==void 0&&{recheck:V}}}))};var $a=(e,t)=>{for(let r of t){let o=e;for(let n of r.split("."))o=kr(o,n,()=>({}));}return e},fs=(e,t)=>{for(let[r,o]of Object.entries(t))fs(kr(e,r,()=>({})),o);return e},va=e=>e.whereClauses.flatMap(Ve),ku=(e,t)=>{let r=new Map;for(let o of t){if(o.from)continue;let n=o.path.split(".").slice(1).join("."),i=[o.field,...o.label===void 0?[]:[o.label],...o.groupBy??[],...Ve(o.rowWhere)];r.set(n,[...r.get(n)??[],...o.bridged===void 0?i:ps(e.lens,o.visit.mapName,o.visit.model,i)]);}return r},_u=(e,t)=>e.get(t.relPath.join("."))??[],UR=(e,t,r)=>$a(fs({},r??{}),va(D(e,t.mapName,t.modelName,t.relPath))),Lu=e=>({mapName:e.lens.mapName,modelName:e.lens.model,relPath:[]}),Aa=(e,t,r)=>({...r,relPath:[...e.relPath,t]}),GR=(e,t,r,o)=>{if(!r.whereClauses.length)return;let n=W(r.whereClauses),i=os(e,r.whereClauses,t,`toLensSelect: the clamp on '${t.relPath.join(".")}'`,false);if(i)throw i;if(e.inspect)return;let s=ns(`toLensSelect: the clamp on '${t.relPath.join(".")}'`,()=>bn(n,{...o,map:e.lens,mapName:t.mapName,model:t.modelName})),{where:a}=s.steps[0];return Object.keys(a).length?a:void 0},KR=(e,t,r,o)=>{let n=T(e,o.type)?.fields??{},i=a=>{let l=a===void 0?void 0:O(n,a);return l&&!j(l)?a:void 0},s=e?Vi(e,t,r,o):null;return i(o.toFields?.[0])??i(s?.entry.fromFields?.[0])??i("id")},Fu=(e,t,r,o,n,i)=>{let s=T(O(e.lens.maps,t.mapName),t.modelName)?.fields??{},a=D(e,t.mapName,t.modelName,t.relPath),l=r==="paths"?o:$a(fs({},o),[...va(a),..._u(i,t)]),f={};for(let[p,d]of Object.entries(s)){let u=r!=="paths"&&St(a,p),c=O(l,p);if(!u&&c===void 0||d.kind==="bridge")continue;if(d.kind!=="object"){f[p]=true;continue}let g=u?"declared":"paths";if(g==="paths"&&c===void 0)continue;let m=Aa(t,p,{mapName:t.mapName,modelName:d.type}),y=Fu(e,m,g,c??{},n,i),S=d.isList&&g!=="paths"&&c===void 0?GR(e,m,D(e,m.mapName,m.modelName,m.relPath),n):void 0,b=Object.keys(y).length?void 0:KR(O(e.lens.maps,t.mapName),t.modelName,p,d),R=b===void 0?y:{[b]:true};Object.keys(R).length&&(f[p]={select:R,...S&&{where:S}});}return f},Du=(e,t={})=>Na(k(e),t),Na=(e,t={},r=cr(e))=>{let o=Fu(e,Lu(e),"declared",{},t,ku(e,r));if(!Object.values(o).some(n=>n===true)){let n=O(T(O(e.lens.maps,e.lens.mapName),e.lens.model)?.fields,"id");n&&!j(n)&&(o.id=true);}return {select:o}},Ea=(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,Pa=(e,t,r,o)=>{let n={},i=T(O(e.lens.maps,t.mapName),t.modelName);for(let[s,a]of Object.entries(o)){if(!Object.hasOwn(r,s))continue;let l=O(i?.fields,s),f=l?Ke(l,t.mapName):null;n[s]=f?Ea(r[s],p=>Pa(e,Aa(t,s,f),p,a)):r[s];}return n},ju=(e,t,r,o,n,i,s)=>{let a=D(e,t.mapName,t.modelName,t.relPath);if(!a.whereClauses.every(d=>ue(d,r,i)===true))return null;let l=T(O(e.lens.maps,t.mapName),t.modelName)?.fields??{},f=n?$a(fs({},o),[...va(a),..._u(s,t)]):{},p={};for(let[d,u]of Object.entries(l)){if(!Object.hasOwn(r,d))continue;let c=O(f,d),g=Ke(u,t.mapName);if(!g){(St(a,d)||c!==void 0)&&(p[d]=r[d]);continue}let m=Aa(t,d,g);if(St(a,d)){let y=!Array.isArray(r[d])||c!==void 0;p[d]=Ea(r[d],S=>ju(e,m,S,c??{},n,i,s)??(n&&y?Pa(e,m,S,UR(e,m,c)):null));}else c!==void 0&&(p[d]=Ea(r[d],y=>Pa(e,m,y,c)));}return p},Iu=(e,t,{keepClampColumns:r=false,...o}={})=>{let n=k(e),i=Lu(n),s=r?ku(n,cr(n)):new Map;return t.flatMap(a=>{let l=ju(n,i,a,{},r,o,s);return l===null?[]:[l]})};var zR="materializeSources needs fetched or keepClampColumns rows, not viewer rows",Ta=(e,t,r)=>new J(`${e}: a row at '${t}' ${r}${r.includes(":")?" \u2014 rows across a bridge hold the far side inline under its bridge field":""}`),xn=(e,t,r,o,n,i=zR)=>{for(let s of n){let a=[r];for(let{index:l,field:f,entry:p,next:d}of ir(e.lens.maps,t,s)){if(!p)break;let u=s.split(".").slice(0,l+1).join("."),c=[];for(let g of a){if(g===null||typeof g!="object")continue;if(!Object.hasOwn(g,f))throw Ta(i,o,`lacks '${u}', which a read needs`);let m=g[f];if(d&&m==null&&p.fromFields?.some(y=>{let S=g[y];return S!=null}))throw Ta(i,o,`'${u}' is null while its key is set \u2014 a projection hid the row`);if(!(!d||m===null||m===void 0)){if(Array.isArray(m)!==(p.isList===true))throw Ta(i,o,`'${u}' holds ${Array.isArray(m)?"a list where it names one row":"one row where it names a list"}`);c.push(...Array.isArray(m)?m:[m]);}}if(!d)break;a=c;}}},Ma=(e,t)=>{let r={mapName:e.lens.mapName,modelName:e.lens.model,relPath:[]};return [r,...Ie(e.lens.maps,r,t.split(".").slice(1).join(".")).hops.map(o=>({mapName:o.map,modelName:o.model,relPath:o.relPath}))]},HR=(e,t,r,o)=>{let n=r.split(".").slice(1),i=Ma(e,r),s=(l,f)=>{let p=i[l],d=D(e,p.mapName,p.modelName,p.relPath).whereClauses,u=W(d),c=d.flatMap(Ve),g=[e.lens.model,...n.slice(0,l)].join(".");return f.filter(m=>(xn(e,p,m,g,c),ue(u,m,o)===true))},a=s(0,t);for(let[l,f]of n.entries()){let p=[],d=[e.lens.model,...n.slice(0,l)].join(".");for(let u of a){xn(e,i[l],u,d,[f]);let c=me(u,f);Array.isArray(c)?p.push(...c):c!=null&&p.push(c);}a=s(l+1,p);}return {rows:a,visit:i[i.length-1]}},Vu=(e,t,r)=>{let o=k(e);return cr(o).map(({path:n,visit:i,field:s,from:a,label:l,groupBy:f,rowWhere:p})=>{if(a)throw new J(`materializeSources: '${n}.${s}' offers its model's own source, which a fetched collection can't hold \u2014 query it with toSourceQueries and materializeSourceQuery.`);let d=[s,...Ve(p),...l===void 0?[]:[l],...f??[]],u=new Map,c=HR(o,t,n,r);for(let g of c.rows)xn(o,c.visit,g,n,d),ue(p,g,r)===true&&as(u,g,s,l===void 0?void 0:On(g,l),f===void 0?void 0:ss(g,f));return {path:n,mapName:i.mapName,model:i.model,field:s,options:ls(u)}})};var Bu=(e,t,r={})=>{let{rowShape:o="prisma",lens:n,...i}=r,s=o==="sql",{recheck:a}=e,l=c=>false,f=c=>true;if(a!==void 0){if(n===void 0)throw new J(`materializeSourceQuery: '${e.path}.${e.field}' reads across a bridge \u2014 its rows are candidates; pass { lens } with rows holding the far side`);let c=k(n),g=Ma(c,e.path).at(-1);if(!g||g.mapName!==e.mapName||g.modelName!==e.model)throw new J(`materializeSourceQuery: the lens doesn't reach ${e.mapName}:${e.model} at '${e.path}' \u2014 pass the lens the query was compiled from`);let m=Me(c.lens,e.mapName,"toPrisma");l=b=>m!==void 0&&ar(b,m,e.model);let y=[...Ve(a),...e.label!==void 0&&l(e.label)?[e.label]:[],...(e.groupBy??[]).filter(l)],S="materializeSourceQuery needs candidate rows holding the far side of each bridge the source reads";f=b=>(xn(c,g,b,e.path,y,S),ue(a,b,i)===true);}let p=c=>e.label===void 0?void 0:s&&e.label.includes(".")&&!l(e.label)?c.__label:On(c,e.label),d=e.groupBy?.map((c,g)=>s&&!l(c)?`__group_${g}`:c),u=new Map;for(let c of t)f(c)&&as(u,c,e.field,p(c),d===void 0?void 0:ss(c,d));return {path:e.path,mapName:e.mapName,model:e.model,field:e.field,options:ls(u)}};var JR=(e,t)=>`${e}::${t}`,QR=(e,t,r)=>{let o=e.get(t);if(!o){e.set(t,r.values?{...r,values:[...r.values]}:r);return}let n=o;if(r.values&&o.values){let i=new Set([...o.values,...r.values]);n={...n,values:[...i]};}else !r.values&&o.values&&(n={...n,values:void 0});r.groupBy!==void 0&&n.groupBy===void 0&&(n={...n,groupBy:r.groupBy}),n!==o&&e.set(t,n);},qu=(e,t={})=>Ca(k(e),t),Ca=(e,t={})=>{let{lens:r}=e,o=new Map;for(let l of t.sourceValues??[]){let f=`${l.mapName}::${l.model}::${l.field}`,p=o.get(f)??new Map;for(let d of l.options)p.set(xa(d.groups,d.value),d);o.set(f,p);}let n=new Map;for(let{at:l,effect:f}of Vr(e)){let{mapName:p,modelName:d}=l,u=T(O(r.maps,p),d);if(!u)continue;let c=JR(p,d),g=n.get(c);g||(g={mapName:p,modelName:d,fields:new Map},n.set(c,g));let m=Ra(e,f,l,u,y=>{let S=o.get(`${p}::${d}::${y}`);return S&&[...S.values()]});for(let[y,S]of Object.entries(m)){let b=S.groupBy,R=g.fields.get(y)?.groupBy;if(b!==void 0&&R!==void 0&&JSON.stringify(R)!==JSON.stringify(b))throw new N(`projectLens: '${d}.${y}' is grouped by different axes on different paths ([${R}] vs [${b}]) \u2014 one surface field cannot carry two partition namespaces`,"invalid_source");QR(g.fields,y,S);}}let i={};for(let{mapName:l,modelName:f,fields:p}of n.values()){let d=O(i,l);d||(d={models:{}},i[l]=d);let u={},c=new Map;for(let[g,m]of p)if(u[g]=m.options===void 0&&m.values?{...m,options:m.values.map(y=>({value:y,label:y}))}:m,m.kind==="enum"&&m.values){let y=c.get(m.type)??new Set;for(let S of m.values)y.add(S);c.set(m.type,y);}d.models[f]={...T(O(r.maps,l),f),fields:u};for(let[g,m]of c)d.enums??={},d.enums[g]=[...m];}let s=r.bridges?.filter(l=>{let[f,p]=l.endpoints,d=he(O(i,f.fieldMap),f.model,xe(p)),u=he(O(i,p.fieldMap),p.model,xe(f));return d!==void 0||u!==void 0}),a={maps:i};return s&&s.length>0&&(a.bridges=s),{...a,mapName:r.mapName,model:r.model}};var Wu=(e,t,r,o,n)=>{if(e===void 0)return;let i=Do(e),s=o==="root.where"?null:i.bare;if(s!==null){n.push({path:o,code:"invalid_value_source",message:ra(s).message});return}let{escaping:a}=i;if(a!==null){n.push({path:o,code:"scope_out_of_bounds",message:oa(a).message});return}let l=new Set,f={...t,clamp:t.chain.length===0};for(let{mapName:p,modelName:d,relPath:u}of r)for(let c of mn(e,f,p,d,u)){let g=`'${c.path}' ${c.message}`;l.has(g)||(l.add(g),n.push({path:o,code:c.code,message:g}));}},ZR=(e,t,r,o,n,i)=>{let s={...r,chain:[...r.chain,t]},a=new Set;for(let l of o){let f=D(s,l.mapName,l.modelName,l.relPath);for(let[p,d]of Object.entries(e.sources??{})){let u=dr(d);for(let c of ["label","groupBy"]){if(u[c]===void 0||a.has(`${p}|${c}`))continue;let g=c==="label"?u.label:hn(u.groupBy),m=c==="label"?f.sourceLabels.get(p):f.sourceGroupBys.get(p);if(JSON.stringify(g)!==JSON.stringify(m))continue;let S=(typeof m=="string"?[m]:m??[]).map(b=>ia(s,l,b)).find(b=>b!==null);if(S){a.add(`${p}|${c}`),i.push({path:`${n}.sources.${p}`,code:"invalid_source",message:`${c} '${String(u[c])}' crosses '${S}', a relation the lens does not show there (not turned on, or omitted)`});continue}qo(s,f,l,p,c)||(a.add(`${p}|${c}`),i.push({path:`${n}.sources.${p}`,code:"invalid_source",message:`${c} '${String(u[c])}' reads a column hidden by another layer`}));}}}},YR=(e,t,r,o)=>{for(let n of r){if(!t&&n.picks&&!n.picks.includes(e))return "not in ancestor's picks";if(n.omits?.includes(e))return "was omitted by ancestor"}return !t&&o?.picks&&!o.picks.includes(e)?"not visible from defaults.picks":o?.omits?.includes(e)?"already excluded by defaults":null},XR=(e,t,r,o,n,i,s,a,l,f,p,d,u=false)=>{let c=e.omits?.some(m=>{let y=O(i,m);return y===void 0||!j(y)});e.picks&&c&&f.push({path:`${l}`,code:"conflicting_selection",message:"cannot specify both picks and omits of a column"});for(let m of ["picks","omits"])for(let y of e[m]??[]){let S=O(i,y);if(!S){f.push({path:`${l}.${m}`,code:"not_in_lens",message:`field '${y}' not on model`});continue}let b=j(S);if(b&&m==="picks"){f.push({path:`${l}.picks`,code:"wrong_kind",message:`'${y}' is a relation: picks names columns; turn a relation on with \`relations\``});continue}let R=YR(y,b,t,r);R&&f.push({path:`${l}.${m}`,code:"not_visible",message:`'${y}' ${R}`});}let g=(m,y,S)=>{let b=O(i,y);if(!b){f.push({path:`${l}.${m}`,code:"not_in_lens",message:`field '${y}' not on model`});return}if(b.kind!=="enum"){f.push({path:`${l}.${m}`,code:"wrong_kind",message:`field '${y}' is not an enum field`});return}let R=_r(b,a);for(let w of S)R&&!R.includes(w)&&f.push({path:`${l}.${m}.${y}`,code:"value_not_allowed",message:`'${w}' is not a known value of enum '${b.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);Wu(e.where,p,d,`${l}.where`,f);for(let[m,y]of Object.entries(e.sources??{})){let S=O(i,m);if(!S){f.push({path:`${l}.sources`,code:"not_in_lens",message:`field '${m}' not on model`});continue}if(j(S)){f.push({path:`${l}.sources.${m}`,code:"wrong_kind",message:`'${m}' is a relation: a source offers a column's values`});continue}let b;try{b=dr(y);}catch(x){if(!(x instanceof N))throw x;f.push({path:`${l}.sources.${m}`,code:x.code,message:x.message});continue}let R=b.from;if(R!==void 0){let x=R!=="mapDefaults"?`from takes 'mapDefaults', not '${String(R)}'`:u?"a mapDefaults source is what a path source's from: 'mapDefaults' points at; it can't point itself":b.label!==void 0||b.groupBy!==void 0?"a from: 'mapDefaults' source takes the model source's label and groupBy":null;x&&f.push({path:`${l}.sources.${m}`,code:"invalid_source",message:x});}let w=b.label?.includes(".")?b.label:void 0;if(b.label!==void 0)if(w){let x=is(w,o,n,s,"label");x&&f.push({path:`${l}.sources.${m}`,code:"invalid_source",message:`${x}`});}else {let x=O(i,b.label);x?j(x)&&f.push({path:`${l}.sources.${m}`,code:"wrong_kind",message:`label '${b.label}' is a relation, not a column`}):f.push({path:`${l}.sources.${m}`,code:"not_in_lens",message:`label column '${b.label}' not on model`});}let E=hn(b.groupBy);if(E!==void 0||w!==void 0){let x=/^__(group(_\d+)?|label)$/;(x.test(m)||b.label!==void 0&&x.test(b.label))&&f.push({path:`${l}.sources.${m}`,code:"invalid_source",message:"'__group*' / '__label' names are reserved on grouped or path-labeled sources (sql column aliases)"});}if(E!==void 0){for(let V of E){let ae=is(V,o,n,s,"groupBy");ae&&f.push({path:`${l}.sources.${m}`,code:"invalid_source",message:`${ae}`});}let x=JSON.stringify(E);for(let V of t){let ae=O(V.sources,m);if(ae===void 0)continue;let A=hn(dr(ae).groupBy);A!==void 0&&JSON.stringify(A)!==x&&f.push({path:`${l}.sources.${m}`,code:"not_visible",message:`groupBy [${E}] conflicts with an ancestor layer's groupBy [${A}]`});}}Wu(b.where,p,d,`${l}.sources.${m}`,f);}},eO=(e,t,r,o,n)=>{for(let[i,s]of Object.entries(t)){let a=O(r,i);if(!a){n.push({path:`mapDefaults.${e}.enums.${i}`,code:"not_in_lens",message:"enum not in registry"});continue}let l=null,f=new Set;for(let d of o){let u=d[i];if(u&&(u.picks&&(l=Qi(l,u.picks)),u.omits))for(let c of u.omits)f.add(c);}let p=d=>!(f.has(d)||l&&!l.has(d));for(let d of s.picks??[])a.includes(d)?p(d)||n.push({path:`mapDefaults.${e}.enums.${i}.picks`,code:"not_visible",message:`'${d}' not visible from ancestors`}):n.push({path:`mapDefaults.${e}.enums.${i}.picks`,code:"value_not_allowed",message:`'${d}' not a known value`});for(let d of s.omits??[])a.includes(d)?p(d)||n.push({path:`mapDefaults.${e}.enums.${i}.omits`,code:"not_visible",message:`'${d}' already excluded by ancestors`}):n.push({path:`mapDefaults.${e}.enums.${i}.omits`,code:"value_not_allowed",message:`'${d}' not a known value`});}},tO=(e,t,r,o,n,i,s)=>{let a=D(t,r.mapName,r.modelName,r.relPath);for(let l of ["enumPicks","enumOmits"])for(let[f,p]of Object.entries(e[l]??{})){let d=O(o,f);if(d?.kind!=="enum")continue;let u=_r(d,n)??[],c=Hi(a,f)??u;for(let g of p)u.includes(g)&&!c.includes(g)&&s.push({path:`${i}.${l}.${f}`,code:"not_visible",message:`'${g}' is not visible (not allowed by the inherited enum narrowing)`});}},Uu=(e,t,r,o)=>e.map(n=>({mapName:o,modelName:r,relPath:[...n.relPath,t]})),ka=(e,t,r,o,n,i,s,a,l,f,p)=>{let d=O(n,i),u=T(d,s);if(!u)return;let c=o.length===0,g={...f,chain:[...f.chain,r],unvetted:true},m=p.isDefault?void 0:O(O(r.mapDefaults,i)?.models,s),S=[...o.map(w=>O(O(w.mapDefaults,i)?.models,s)).filter(w=>w!==void 0),...t],b={mapName:i,modelName:s,relPath:ta};XR(e,S,m,n,i,u.fields,s,d?.enums,a,l,f,c?p.isDefault?[b,...p.parent]:p.parent:p.composed,p.isDefault),tO(e,p.isDefault?f:{...f,chain:[...f.chain,{parent:r.parent,mapDefaults:r.mapDefaults}],unvetted:true},p.isDefault?b:p.parent[0]??b,u.fields,d?.enums,a,l),ZR(e,r,f,p.composed,a,l);let R={...f,chain:[...f.chain,r]};if(!p.isDefault)for(let[w,E]of Object.entries(e.sources??{}))!wn(E)||E.from!=="mapDefaults"||Zi(R,i,s,w)||l.push({path:`${a}.sources.${w}`,code:"invalid_source",message:Yi([Je(r).model,...p.parent[0]?.relPath??[]].join("."),i,s,w).message});for(let[w,E]of Object.entries(e.relations??{})){let x=O(u.fields,w);if(!x){l.push({path:`${a}.relations`,code:"not_in_lens",message:`'${w}' not on model`});continue}if(!j(x)){l.push({path:`${a}.relations`,code:"wrong_kind",message:`'${w}' is not a relation (kind=${x.kind})`});continue}let V=B=>D(f,B.mapName,B.modelName,B.relPath).relations.has(w),ae=B=>D(g,B.mapName,B.modelName,B.relPath).relations.has(w);if(!c&&!(p.isDefault?p.parent.some(V):p.parent.every(V))){l.push({path:`${a}.relations`,code:"not_visible",message:`'${w}' is not shown by the parent${p.isDefault?` wherever ${s} is visited`:""}: only the first narrowing over the base lens turns a relation on`});continue}let A=Ke(x,i);if(!A)continue;if(!T(O(n,A.mapName),A.modelName)){l.push({path:`${a}.relations.${w}`,code:"not_in_lens",message:"target model not found in lens"});continue}let L=t.map(B=>O(B.relations,w)).filter(B=>B!==void 0);ka(E,L,r,o,n,A.mapName,A.modelName,`${a}.relations.${w}`,l,f,{parent:Uu(p.isDefault?p.parent.filter(V):p.parent,w,A.modelName,A.mapName),composed:Uu(p.composed.filter(ae),w,A.modelName,A.mapName),isDefault:p.isDefault});}},_a=e=>{let t=[];try{rO(e,t);}catch(r){if(!(r instanceof N))throw r;t.some(o=>o.code===r.code)||t.push({path:"",code:r.code,message:r.message});}return fr(t)},rO=(e,t)=>{let r=Je(e),o=ht(e.parent),n=k(e.parent),i=Vr(n),s=[],a=u=>{try{u();}catch(c){if(!(c instanceof N))throw c;s.push(c);}},l=null,f=()=>(l??=Vr({...n,chain:[...n.chain,e],unvetted:true}),l);for(let[u,c]of Object.entries(e.mapDefaults??{})){let g=O(r.maps,u);if(!g){t.push({path:`mapDefaults.${u}`,code:"not_in_lens",message:"not in lens"});continue}let m=o.map(y=>O(y.mapDefaults,u)?.enums).filter(y=>y!==void 0);for(let[y,S]of Object.entries(c.models??{})){if(!T(g,y)){t.push({path:`mapDefaults.${u}.models.${y}`,code:"not_in_lens",message:"not in fieldMap"});continue}let R=o.map(x=>O(O(x.mapDefaults,u)?.models,y)).filter(x=>x!==void 0),w=x=>x.map(({at:V})=>V).filter(V=>V.mapName===u&&V.modelName===y),E=[];a(()=>{E=w(f());}),a(()=>ka(S,R,e,o,r.maps,u,y,`mapDefaults.${u}.models.${y}`,t,n,{parent:w(i),composed:E,isDefault:!0}));}c.enums&&eO(u,c.enums,g.enums,m,t);}if(e.root){let u=r.mapName,c=r.model,g=O(r.maps,u);if(!g)t.push({path:"root",code:"not_in_lens",message:`lens map '${u}' not in lens`});else if(!T(g,c))t.push({path:"root",code:"not_in_lens",message:`lens model '${c}' not in fieldMap`});else {let m=o.map(S=>S.root).filter(S=>S!==void 0),y={mapName:u,modelName:c,relPath:[]};a(()=>ka(e.root,m,e,o,r.maps,u,c,"root",t,n,{parent:[y],composed:[y],isDefault:!1}));}}for(let u of tu(e))t.push({path:"bindings",code:"invalid_binding",message:u});let p={...n,chain:[...n.chain,e],inspect:true},d;a(()=>{d=cr(p,Rn(p));}),a(()=>Ca(p)),a(()=>Na(p,{},d)),a(()=>{let u=new Map;for(let{at:c}of f()){u.set(c.relPath.join("."),c),a(()=>Oa(p,c.relPath.join(".")));let g=c.relPath.at(-1),m=u.get(c.relPath.slice(0,-1).join("."));if(g===void 0||!m)continue;let S=he(O(r.maps,m.mapName),m.modelName,g)?.isList?{field:g,arrayOperator:"any",condition:!0}:{field:g,operator:"exists"};a(()=>Ir(S,p,m));}});for(let u of s)t.some(c=>u.message.includes(c.message))||t.push({path:"",code:u.code,message:u.message});},ds=e=>un(_a(e),"validateNarrowing");function Gu(e,{by:t="path",...r}={}){return t==="model"?qu(e,r):Nu(e,r)}var Ku=(e,t,r,o={})=>{let n=k(e),{resolution:i}=Br(n,wt(n),r);if(i.outcome!=="resolved")return {ok:false,reason:i.outcome};let{hops:s,terminal:a,jsonSubPath:l}=i;if(j(a.entry))return {ok:false,reason:"relation"};if(s.some(d=>d!==a&&d.entry.isList))return {ok:false,reason:"list"};let f=(d,u)=>u!==null&&typeof u=="object"&&D(n,d.mapName,d.model,d.relPath).whereClauses.every(c=>ue(c,u,o)===true),p=f(s[0],t)?t:null;for(let[d,u]of s.entries()){if(p===null||typeof p!="object")return {ok:true,value:null};let c=O(p,u.field);if(u===a)return {ok:true,value:l.length?me(c,l.join(".")):c};p=f(s[d+1],c)?c:null;}return {ok:true,value:null}};var oO=e=>"maps"in e,zu=(e,t)=>{let r=i=>{let s=O(t,i);if(!s)throw new Error(`composeLens: no stored lens '${i}'`);return s},o=[...r(e).parents,e];if(new Set(o).size!==o.length)throw new Error(`composeLens: '${e}' lists a layer twice in its parents`);let n=null;for(let[i,s]of o.entries()){let a=r(s);if(Object.hasOwn(a,"parent"))throw new Error(`composeLens: '${s}' carries a parent; a layer composes only through \`parents\``);let{id:l,parents:f,...p}=a;if(f.join("\0")!==o.slice(0,i).join("\0"))throw new Error(`composeLens: '${s}' composes with [${f.join(", ")}], not [${o.slice(0,i).join(", ")}] as '${e}' lists`);if(oO(a)!==(i===0))throw new Error(i===0?`composeLens: '${s}' is not a base lens, so it can't head '${e}''s parents`:`composeLens: '${s}' is a base lens, so it can only head a chain`);if(n===null){n=p;continue}let u={parent:n,...p};ds(u),n=u;}return n},Hu=(e,t)=>{let r=He(e)?[]:ht(e);if(t.length!==r.length+1)throw new Error(`storeLens: the lens has ${r.length+1} layers, base included, but ${t.length} ids`);return [{...Je(e),id:t[0],parents:[]},...r.map(({parent:o,...n},i)=>({...n,id:t[i+1],parents:t.slice(0,i+1)}))]};var Ju=e=>e instanceof Date?e.toISOString():Array.isArray(e)&&e.some(t=>t instanceof Date)?e.map(Ju):e,C=(e,t)=>(e.params.push(Ju(t)),`$${++e.paramIndex}`);var jt=(e,t,{jsonb:r=false}={})=>{let o=()=>({sql:da(e,void 0,r),shape:e.includes(".")?"json-path":"unknown"});if(!t.map||!t.currentModel||!t.currentAlias)return o();let n=se(e,t.map,t.currentModel);if(n.kind==="past-scalar")throw bi(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 Si(e,i);let s=t.currentAlias;for(let p of n.hops){let d=Qu(t,s,p);if(!d)return o();s=d;}let a=ki(n);if(n.kind==="direct"&&n.entry.kind==="object"){let p={field:n.column,entry:n.entry,from:n.model},d=dn(t.map,n.model,n.entry),u=Qu(t,s,p);return !d||!u?o():{sql:`${X(u)}.${X(d[0].there)}`,shape:a}}let l=n.kind==="json-path"?[n.column,...n.jsonPath]:[n.column],f=da(l.join("."),s,r);return {sql:a==="json"&&!r?`NULLIF(${f}, 'null'::jsonb)`:f,shape:a}},Rt=(e,t,r)=>jt(e,t,r).sql,Qu=(e,t,r)=>{let o=`${t}.${r.field}`,n=e.joinRegistry?.get(o);if(n)return n;if(!e.joinCounter||!e.map)return null;let i=`t${e.joinCounter.n+1}`,s=nO(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},nO=(e,t,r,o,n)=>{let i=o.type,s=T(e,i)?.dbName??i,a=dn(e,t,o);if(!a)return null;let l=a.map(({here:f,there:p})=>`${X(n)}.${X(p)} = ${X(r)}.${X(f)}`).join(" AND ");return `LEFT JOIN ${X(s)} AS ${X(n)} ON ${l}`};var It={type:"value",value:null},Vt=e=>e.type==="value"&&(e.value===null||e.value===void 0),iO=(e,t)=>{let r=F(e)??{depth:1,path:e};if(r.depth>1)throw new Error(Zo(e,"toSql"));let o=jt(r.path,t);if(o.shape==="relation")throw new Error(`'${e}' is a relation; a value ref reads a column`);return {type:"column",...o}},we=(e,t)=>rn(e,{value:r=>({type:"value",value:r}),path:r=>iO(r,t),bind:(r,o)=>({type:"value",value:Ei(r,o,"toSql")})}),Wr=e=>t=>{let r=we(t,e);if(r.type==="column")throw new Error(`'${t.path}' is a row ref`);return r.value},Ze=e=>Nr(e.dateConfig??{},Wr(e));var sO={lt:"<",lte:"<=",gt:">",gte:">=",equals:"="},Wo=(e,t)=>{let r=Ht(e,t);return r?{symbol:sO[r],negated:G.includes(e)}:void 0},Zu=(e,t)=>e.type==="column"?e.sql:C(t,e.value),Ot=(e,t)=>`(${t} OR ${e} IS NULL)`,mr=(e,t,r=true)=>t&&r?`${e} IS NULL`:"FALSE",us=(e,t,r,o,n)=>{if(Vt(r))return mr(e,o);let i=`${e} ${t} ${Zu(r,n)}`;return o?Ot(e,i):i},En=(e,t,r,o,n=true)=>{if(!t||t.some(Vt))return mr(e,r,n);let[i,s]=t.map(d=>Zu(d,o)),a=t.some(d=>d.type==="column"),l=a?"SYMMETRIC ":"";if(!r)return `${e} BETWEEN ${l}${i} AND ${s}`;let f=`${e} NOT BETWEEN ${l}${i} AND ${s}`,p=a?`(${f} AND ${i} IS NOT NULL AND ${s} IS NOT NULL)`:f;return n?Ot(e,p):p};var Yu=e=>Array.isArray(e)?e.some(Yu):typeof e=="object"&&e!==null,Xu=(e,t,r,o)=>{let n=`NULLIF(${t}, 'null'::jsonb)`,i=`jsonb_typeof(${n})`,s=`(${n} #>> '{}')`,a=R=>`${C(o,JSON.stringify(R))}::jsonb`,l=pe(e.caseInsensitive),f=R=>l?`LOWER(${R})`:R,p=G.includes(e.operator),d=R=>Ot(n,`NOT (${R})`);if(Oe(e,r))return mr(n,p);let u=wi(e.operator,r);if(u)throw u;let c=R=>{if(Yu(R))throw _("toSql",`A case-insensitive comparison of '${e.field}' with a list holding objects`);return a(Cr(R))},g=R=>l&&typeof R=="string"?`(${i} = 'string' AND LOWER(${s}) = LOWER(${C(o,R)}))`:l&&Array.isArray(R)?`(${i} = 'array' AND LOWER(${n}::text)::jsonb = ${c(R)})`:`${n} = ${a(R)}`,m=R=>`(${i} = 'string' AND ${f(s)} LIKE ${f(C(o,R))})`,y=R=>{let w=E=>`(CASE WHEN ${i} = 'array' THEN EXISTS (SELECT 1 FROM jsonb_array_elements(${n}) AS e WHERE ${E}) ELSE FALSE END)`;return l&&typeof R=="string"?w(`jsonb_typeof(e) = 'string' AND LOWER(e #>> '{}') = LOWER(${C(o,R)})`):l&&Array.isArray(R)?w(`LOWER(e::text)::jsonb = ${c(R)}`):typeof R=="object"&&R!==null?w(`e = ${a(R)}`):`(${i} = 'array' AND ${n} @> ${a([R])})`},S=R=>typeof R=="string"?`(${m(`%${ge(R)}%`)} OR ${y(R)})`:y(R);switch(e.operator){case h.equals:return r===null?`${n} IS NULL`:g(r);case h.notEquals:return r===null?`${n} IS NOT NULL`:d(g(r));case h.in:case h.notIn:{let{values:R,hasNull:w}=Lt(r),E=R.length?`(${R.map(g).join(" OR ")})`:"FALSE";return e.operator===h.in?w?`(${E} OR ${n} IS NULL)`:E:w?`(NOT ${E} AND ${n} IS NOT NULL)`:d(E)}case h.between:case h.notBetween:{let[R,w]=r,E=`(${i} = jsonb_typeof(${a(R)}) AND ${n} BETWEEN ${a(R)} AND ${a(w)})`;return e.operator===h.between?E:d(E)}case h.contains:return S(r);case h.notContains:return d(S(r));case h.startsWith:return m(`${ge(String(r))}%`);case h.endsWith:return m(`%${ge(String(r))}`);case h.notStartsWith:return d(m(`${ge(String(r))}%`));case h.notEndsWith:return d(m(`%${ge(String(r))}`));case h.matches:case h.notMatches:{let{source:R,caseInsensitive:w}=nr(r),E=`(${i} = 'string' AND ${s} ~${w?"*":""} ${C(o,an(R))})`;return e.operator===h.matches?E:d(E)}}let b=Wo(e.operator,"field")?.symbol;if(b)return `(${i} = jsonb_typeof(${a(r)}) AND ${n} ${b} ${a(r)})`;throw new Error(`Operator '${e.operator}' is not supported on a Json value in SQL`)};var ec=e=>typeof e=="object"&&Pr(e)!==null,Pn=({sql:e,shape:t},r)=>{if(t!=="json-path"&&t!=="text")return `to_timestamp(EXTRACT(EPOCH FROM ${e}))`;let o=C(r,Ze(r).timeZone);return `(CASE WHEN btrim(${e}) ~ '^-?[0-9]+(\\.[0-9]+)?$' THEN to_timestamp(btrim(${e})::numeric / 1000) WHEN ${e} ~* '[0-9]{2}:[0-9]{2}(:[0-9]{2}(\\.[0-9]+)?)?\\s*(z|[+-][0-9]{2}(:?[0-9]{2})?)\\s*$' OR ${e} ~* '\\m(gmt|utc)\\M' THEN (${e})::timestamptz ELSE (${e})::timestamp AT TIME ZONE ${o} END)`},cs=e=>Object.values(e).some(ec),lO=(e,t,r)=>{let o=xr(r),n=o?"int":"double precision";if(typeof e=="number"||!ec(e)){let a=Bs(e,Wr(t),r);return `${C(t,a)}::${n}`}let i=we(e,t).sql;return `(CASE WHEN ${o?`${i} >= 0 AND ${i} = trunc(${i})`:`${i} >= 0`} THEN ${i} END)::${n}`},pO=(e,t)=>`make_interval(${Cf.flatMap(o=>{let n=Object.keys(e).filter(i=>e[i]!==void 0&&Yt[i].interval===o).map(i=>{let s=lO(e[i],t,i),{factor:a}=Yt[i];return a===1?s:`${a} * ${s}`});return n.length?[`${o} => ${n.join(" + ")}`]:[]}).join(", ")})`,$n=(e,t,r,o)=>{let n=Ze(o).timeZone;if(e.type==="value"&&!cs(t)){let l=$r(t,Wr(o));return e.value===null||e.value===void 0||l===null?It:{type:"value",value:er(ut__default.default(e.value),l,r,n).toDate()}}let i=e.type==="column"?e.computed?e.sql:Pn(e,o):`${C(o,e.value??null)}::timestamptz`,s=C(o,n);return {type:"column",computed:true,sql:`(((${i} AT TIME ZONE ${s}) ${r===1?"+":"-"} ${pO(t,o)}) AT TIME ZONE ${s})`}};var La=(e,t,r)=>{let o=we(t,r);if(e.type==="value"&&o.type==="value"){let i=Ar(o.value);return i===null?It:{type:"value",value:vr(e.value,i)}}let n=(i,s)=>i.type==="column"?`(${i.sql})::double precision`:`${C(r,s(i.value)??null)}::double precision`;return {type:"column",computed:true,sql:`(${n(e,i=>i)} + ${n(o,Ar)})`}},tc=(e,t,r)=>{if(Vt(e))return It;let o=we(t,r);if(o.type==="column")throw new Error(`A row path on a date offset ('${t.path}') is check-only; evaluate with check()`);let n=vo(o.value);return n===null?It:$n(e,...n,r)};var rc,oc=e=>{rc=e;},gr=(e,t)=>rc(e,t);var gs=(e,t,r)=>{let o=hi(e);if(o)throw o;let n=r===void 0?jt(e.field,t):{sql:r,shape:"scalar"};if(n.shape==="relation"&&!Mr(e))throw Oo(e.field);let i=r===void 0,s=Ue(e)&&t.map&&t.currentModel?(F(e.path)??{path:e.path}).path:null;if(s!==null){let w=Mo(Z(e.field,t.map,t.currentModel),Z(s,t.map,t.currentModel),e.operator);if(w)throw _("toSql",`Comparing '${e.field}' with the column '${e.path}'`,w)}if(n.shape==="enum"&&!Jt.includes(e.operator)){let w=ic(e,t),E=Z(e.field,t.map,t.currentModel),x=w!==ms&&E&&!Oe(e,w)?es(e,w,E,t.map):null;if(x){let V=`${n.sql}::text = ANY(${C(t,x.values)})`;return x.matchesNull?Ot(n.sql,V):V}}let a=n.shape==="enum"&&!Jt.includes(e.operator)&&s===null?{...n,sql:`${n.sql}::text`}:n;if((n.shape==="json"||n.shape==="json-path")&&!Jt.includes(e.operator)){let w=ic(e,t);if(w===ms)throw new Error(`The Json value '${e.field}' compares against an operand known when compiling, not one read per row.`);return Xu(e,Rt(e.field,t,{jsonb:true}),w,t)}let f=w=>{if(w.type==="column"&&!w.computed&&(w.shape==="json"||w.shape==="json-path"))throw _("toSql",`'${e.field}' compared with a Json value read per row`,"SQL would compare its text")};if(_e.includes(e.operator)){let w=lc(e,t);return w?.forEach(f),En(a.sql,w,G.includes(e.operator),t,i)}let p=sc(e,t);if(f(p),p.type==="column"&&Mt(e.operator,"field")==="string"&&!Lr(n.shape)&&n.shape!=="list")throw _("toSql",`'${e.operator}' on '${e.field}'`,"it is not text");if(p.type==="column"&&p.computed&&n.shape==="text"&&r===void 0)throw _("toSql",`'${e.field}' against a value moved by an offset`,"an offset moves a number or a date");let d=a.sql,u=Wo(e.operator,"field");if(u)return us(d,u.symbol,p,false,t);if(p.type==="value"&&Oe(e,p.value))return mr(d,G.includes(e.operator),i);let c=p.type==="column"&&p.computed===true,g=pe(e.caseInsensitive)&&(p.type==="column"?!c&&Lr(n.shape)&&Lr(p.shape):lr(n.shape,p.value)),m=w=>g?`LOWER(${w})`:w,y=w=>g?Cr(w):w;if(n.shape==="list"&&p.type==="column"&&st.includes(e.operator)){if(Z(e.field,t.map,t.currentModel)?.type!=="String"||!Lr(p.shape))throw _("toSql",`'${e.operator}' on the list '${e.field}' with a member read per row ('${e.path}')`,"Postgres matches a member of the list's own type only");let w=pe(e.caseInsensitive)&&Lr(p.shape)?`EXISTS (SELECT 1 FROM unnest(${d}) AS e WHERE LOWER(e) = LOWER(${p.sql}))`:`array_position(${d}, ${p.sql}) IS NOT NULL`;return e.operator===h.contains?`(${p.sql} IS NOT NULL AND ${w})`:`(${d} IS NULL OR (${p.sql} IS NOT NULL AND NOT ${w}))`}if(n.shape==="list"&&p.type==="value"){let w=pe(e.caseInsensitive)&&lr("text",p.value);if(st.includes(e.operator)){let E=C(t,p.value),x=w?`EXISTS (SELECT 1 FROM unnest(${d}) AS e WHERE LOWER(e) = LOWER(${E}))`:`array_position(${d}, ${E}) IS NOT NULL`;return e.operator===h.contains?x:`NOT ${x}`}if(Qt.includes(e.operator)&&Array.isArray(p.value))return gr(Ti(e,p.value),t);if(fO(e.operator))throw new Error(`'${e.operator}' does not apply to the list '${e.field}'; test its members with contains.`);if(w&<.includes(e.operator)&&Array.isArray(p.value)){let E=C(t,Cr(p.value)),x=`(${d} IS NOT NULL AND ARRAY(SELECT LOWER(e) FROM unnest(${d}) AS e) = ${E})`;return e.operator===h.equals?x:Ot(d,`NOT ${x}`)}}let S=p.type==="value"?p.value:void 0,b=p.type==="column"?p.sql:void 0;if(b!==void 0&&(Qt.includes(e.operator)||["pattern","string"].includes(Mt(e.operator,"field"))))throw _("toSql",`'${e.operator}' against an operand read per row ('${e.path}')`);let R=w=>i?Ot(d,w):w;switch(e.operator){case h.equals:return c?`${d} = ${b}`:b!==void 0?`${m(d)} IS NOT DISTINCT FROM ${m(b)}`:S===null?`${d} IS NULL`:`${m(d)} = ${m(C(t,S))}`;case h.notEquals:return c?R(`${d} <> ${b}`):b!==void 0?`${m(d)} IS DISTINCT FROM ${m(b)}`:S===null?`${d} IS NOT NULL`:R(`${m(d)} <> ${m(C(t,S))}`);case h.in:{let{values:w,hasNull:E}=Lt(S);if(!w.length)return E?`${d} IS NULL`:"FALSE";let x=`${m(d)} = ANY(${C(t,y(w))})`;return E?R(x):x}case h.notIn:{let{values:w,hasNull:E}=Lt(S);if(!w.length)return E?`${d} IS NOT NULL`:"TRUE";let x=`${m(d)} <> ALL(${C(t,y(w))})`;return E?`(${x} AND ${d} IS NOT NULL)`:R(x)}case h.contains:return `${m(d)} LIKE ${m(C(t,`%${ge(String(S))}%`))}`;case h.notContains:return R(`${m(d)} NOT LIKE ${m(C(t,`%${ge(String(S))}%`))}`);case h.startsWith:return `${m(d)} LIKE ${m(C(t,`${ge(String(S))}%`))}`;case h.endsWith:return `${m(d)} LIKE ${m(C(t,`%${ge(String(S))}`))}`;case h.notStartsWith:return R(`${m(d)} NOT LIKE ${m(C(t,`${ge(String(S))}%`))}`);case h.notEndsWith:return R(`${m(d)} NOT LIKE ${m(C(t,`%${ge(String(S))}`))}`);case h.matches:return nc(d,S,false,t);case h.notMatches:return R(nc(d,S,true,t));case h.isEmpty:case h.notEmpty:return Fa(e.field,n,e.operator===h.isEmpty,t,_i(e,t.map,t.currentModel));case h.exists:return `${d} IS NOT NULL`;case h.notExists:return `${d} IS NULL`;default:throw new Error(`Unknown operator: ${e.operator}`)}},sc=(e,t)=>{if(Jt.includes(e.operator))return {type:"value",value:void 0};let r=ac(e,we(e,t),t);return e.offset===void 0?r:La(r,e.offset,t)},ac=(e,t,r)=>t.type==="column"?t:{type:"value",value:Ki(e,t.value,sr(e.field,r.map,r.currentModel),"toSql",()=>Ze(r).timeZone)},lc=(e,t)=>{let r=ac(e,we(e,t),t),o=r.type==="value"?r.value:void 0;if(o==null)return null;let n=Ge(o,e.operator);return n.some(i=>i!=null&&!de(i))&&$o(o,e.operator),Fe(n).map(i=>{let s={type:"value",value:i};return e.offset===void 0?s:La(s,e.offset,t)})},nc=(e,t,r,o)=>{if(typeof t!="string"&&!(t instanceof RegExp))throw new Error("matches requires a string or RegExp pattern");let{source:n,caseInsensitive:i}=nr(t);return `${e} ${r?"!":""}~${i?"*":""} ${C(o,an(n))}`},ms=Symbol("not known"),ic=(e,t)=>{if(_e.includes(e.operator)){let o=lc(e,t);return o?o.every(n=>n.type==="value")?o.map(n=>n.value):ms:null}let r=sc(e,t);return r.type==="value"?r.value:ms},Fa=(e,t,r,o,n)=>{let{sql:i,shape:s}=t;if(s==="list")return r?`(${i} IS NULL OR cardinality(${i}) = 0)`:`cardinality(${i}) > 0`;if(s==="json"||s==="json-path"){let a=Rt(e,o,{jsonb:true}),l=["'null'::jsonb",...n?[`'""'::jsonb`]:[],"'[]'::jsonb"].join(", ");return r?`(${a} IS NULL OR ${a} IN (${l}))`:`${a} NOT IN (${l})`}return n?r?`(${i} IS NULL OR ${i} = '')`:`(${i} IS NOT NULL AND ${i} <> '')`:r?`${i} IS NULL`:`${i} IS NOT NULL`},fO=e=>Mt(e,"field")==="string"&&!st.includes(e);var pc=(e,t)=>{if(Ne(e))throw ft("toSql");if(e.condition)throw new Error("Aggregate condition filtering is not yet supported by toSql(). Use check() for in-memory evaluation or toPrisma() for database queries.");let r=dO(e,t);return gs(e,t,r)},dO=(e,t)=>{let{mode:r,field:o}=e.aggregate;if(!at.includes(r))throw Xt(r);let n=r==="sum"?"SUM":"AVG",i=Ce({field:e.field},t.map,t.currentModel);if(i==="relation"||Z(e.field,t.map,t.currentModel)?.kind==="object")throw new Error(`Field '${e.field}' is a relation \u2014 toSql() cannot aggregate relation lists. Use toPrisma() instead.`);if(o?.includes("."))throw new Error(`aggregate.field '${o}' contains a nested path \u2014 toSql() only supports flat field names. Use check() for nested paths.`);let s=i==="list",a=Rt(e.field,t,{jsonb:!s}),l=s?a:`(CASE WHEN jsonb_typeof(${a}) = 'array' THEN ${a} END)`;if(s){if(o)throw new Error("aggregate.field is not supported for native array types. Use a JSONB column for object arrays.");return `(SELECT ${`COALESCE(${n}(elem), 0)`} FROM unnest(${l}) AS elem)`}if(o){let d=`(elem->>${ua(o)})::numeric`;return `(SELECT ${`COALESCE(${n}(${d}), 0)`} FROM jsonb_array_elements(${l}) AS elem)`}return `(SELECT ${`COALESCE(${n}(elem::numeric), 0)`} FROM jsonb_array_elements_text(${l}) AS elem)`};var fc=(e,t)=>{if(Ne(e))throw ft("toSql");if(!e.field)throw gi("toSql");if(Ce({field:e.field},t.map,t.currentModel)==="relation"||Z(e.field,t.map,t.currentModel)?.kind==="object")throw new Error(`Field '${e.field}' is a relation \u2014 relation arrays are not supported in SQL; use toPrisma().`);switch(e.arrayOperator){case $.empty:case $.notEmpty:{let o=jt(e.field,t),n=e.arrayOperator===$.empty;if(o.shape==="list")return Fa(e.field,o,n,t,false);let i=Rt(e.field,t,{jsonb:true});return `(CASE WHEN jsonb_typeof(${i}) = 'array' THEN jsonb_array_length(${i}) ${n?"=":">"} 0 ELSE ${n?"TRUE":"FALSE"} END)`}case $.all:case $.any:case $.none:case $.atLeast:case $.atMost:case $.exactly:throw new Error(`Array operator '${e.arrayOperator}' with conditions is not supported in SQL. Use application-level filtering for complex array operations.`);default:throw ie(e.arrayOperator,"array")}};var uO=(e,t)=>e.type==="column"&&!e.computed?{type:"column",sql:Pn(e,t),computed:true}:e,dc=e=>e===void 0||e==="instant"||e==="text"||e==="json-path"||e==="unknown",uc=e=>_("toSql",`A date rule on '${e}'`,"it is not a date column"),cc=(e,t,r)=>{let o=t.some(i=>i.type==="column"),n=e.shape==="json-path"||e.shape==="text";return o||n?{lhs:Pn(e,r),ends:t.map(i=>uO(i,r))}:{lhs:e.sql,ends:t}},mc=(e,t)=>{let r=jt(e.field,t);if(!dc(r.shape))throw uc(e.field);let o=we(e,t);if(o.type==="column"&&!dc(o.shape))throw uc(String(e.path??e.field));let n=Wo(e.dateOperator,"date");if(n){let{lhs:s,ends:a}=cc(r,[mO(e,t)],t);return us(s,n.symbol,a[0],n.negated,t)}let i=(s,a)=>{if(!s)return En(r.sql,null,a,t);let{lhs:l,ends:f}=cc(r,s,t);return En(l,f,a,t)};switch(e.dateOperator){case v.within:case v.notWithin:return i(gO(e,t),G.includes(e.dateOperator));case v.between:case v.notBetween:return i(yO(e,t),G.includes(e.dateOperator));case v.dayIn:case v.dayNotIn:{let s=e.dateOperator===v.dayNotIn,a=we(e,t);if(a.type==="column")throw _("toSql",`A weekday list read from the row ('${e.path}')`);let l=qs(a.value);if(l===null)return mr(r.sql,s);let f=C(t,Ze(t).timeZone),p=C(t,l),d=`EXTRACT(DOW FROM (${Pn(r,t)} AT TIME ZONE ${f}))`;return e.dateOperator===v.dayIn?`${d} = ANY(${p})`:Ot(r.sql,`${d} <> ALL(${p})`)}default:throw ie(e.dateOperator,"date")}},gc=e=>({type:"value",value:en(Ze(e)).toDate()}),cO=(e,t,r)=>{let o=Re(e);if(o&&cs(o[0]))return $n(gc(r),...o,r);let n=dt(e,Wr(r));return n===null?It:{type:"value",value:xo(n,t,Ze(r)).toDate()}},yc=(e,t,r)=>e==null?It:te(e)?cO(e,t,r):{type:"value",value:Ai(e,Ze(r).timeZone)},hc=(e,t,r)=>t.offset===void 0?e:tc(e,t.offset,r),mO=(e,t)=>{let r=we(e,t),o=r.type==="column"?r:yc(r.value,e.dateOperator,t);return hc(o,e,t)},gO=(e,t)=>{let r=we(e,t);if(Vt(r))return null;if(r.type==="column"||!te(r.value))throw qe(e.dateOperator);let o=Re(r.value);if(o&&cs(o[0])){let s=gc(t),a=$n(s,...o,t);return o[1]===-1?[a,s]:[s,a]}let n=dt(r.value,Wr(t));if(n===null)return null;let i=Eo(n,Ze(t));return [{type:"value",value:i[0].toDate()},{type:"value",value:i[1].toDate()}]},yO=(e,t)=>{let r=we(e,t);if(Vt(r))return null;let o=r.type==="value"?r.value:void 0,n=Ge(o,e.dateOperator).map(l=>yc(l,e.dateOperator,t));if(n.some(Vt))return null;let[i,s]=n;return (i.type==="value"&&s.type==="value"?Fe([i.value,s.value]).map(l=>({type:"value",value:l})):n).map(l=>hc(l,e,t))};var wc=(e,t)=>e.all.length===0?"TRUE":`(${e.all.map(o=>gr(o,t)).join(" AND ")})`,Sc=(e,t)=>e.any.length===0?"FALSE":`(${e.any.map(o=>gr(o,t)).join(" OR ")})`,bc=(e,t)=>{if(mt(e,t.map,t.currentModel))return "TRUE";let r=gr(e.if,t),o=gr(e.then,t);if(e.else!==void 0){let n=gr(e.else,t);return `(((${r}) IS NOT TRUE OR ${o}) AND ((${r}) IS TRUE OR ${n}))`}return `((${r}) IS NOT TRUE OR ${o})`};var vn=(e,t)=>{if(typeof e=="boolean")return e?"TRUE":"FALSE";if(oi(e,"toSql"),"field"in e&&typeof e.field=="string"&&t.map&&t.currentModel&&ar(e.field,t.map,t.currentModel))return "TRUE";let r=fe(e);(r==="field"||r==="date")&&Li(e.field,t.map,t.currentModel);let o=e;switch(r){case "all":return wc(o,t);case "any":return Sc(o,t);case "if":return bc(o,t);case "array":return fc(o,t);case "aggregate":return pc(o,t);case "date":return mc(o,t);case "field":return gs(o,t);default:throw pt()}};oc(vn);var Da=e=>{let t=Me(e?.map,e?.mapName,"toSql"),r=!!(t&&e?.model),o=e?.alias??(r?"t0":void 0);return {params:[],paramIndex:0,dateConfig:{now:e?.now,timeZone:e?.timeZone,weekStart:e?.weekStart},map:t,currentModel:e?.model,currentAlias:o,joinCounter:r?{n:0}:void 0,joins:r?[]:void 0,joinRegistry:r?new Map:void 0}},hO=(e,t)=>Xi(e,t,"toSql",wO),wO=(e,t)=>{let r=Da(t);return {sql:vn(e,r),params:r.params,joins:r.joins??[]}};var Rc=(e,t)=>{let[r,...o]=t,n=e[r];if(o.length===0){n===void 0&&(e[r]=true);return}let i=n!==void 0&&n!==true?n.select:{};Rc(i,o),e[r]={select:i};},SO=(e,t,r,o,n,i,s,a,l,f)=>{let p=ns(`source '${n}' at '${t}'`,()=>bn(a,{...l,map:e,mapName:r,model:o})),d=p.steps.at(-1),u=d.where,c=p.steps.length>1||(d.refs?.length??0)>0,g=Me(e,r,"toPrisma"),m=A=>f!==void 0&&se(A,g,o).kind==="bridge",y=i!==void 0&&!m(i)?i:void 0,S=(s??[]).map(A=>m(A)?void 0:A),b=A=>{let L=se(A,g,o);return L.kind==="json-path"?A.split(".").slice(0,L.stopIndex).join("."):A},R=f===void 0?[]:ps(e,r,o,[...Ve(f),...i!==void 0&&y===void 0?[i]:[],...(s??[]).filter(m)].map(b)).filter(A=>A!==n),w=y?.includes(".")?y:void 0,E=[...S.filter(A=>A!==void 0),...w?[w]:[],...R],x={[n]:true,...y&&!w?{[y]:true}:{}};for(let A of E)Rc(x,A.split("."));let V={model:o,...s||w||f!==void 0?{}:{distinct:y?[n,y]:[n]},select:x,where:u,...c?{steps:p.steps}:{}},ae;try{for(let Y of R){let xt=se(Y,g,o);if(!(xt.kind==="direct"&&!xt.hops.length&&xt.entry.kind!=="object"))throw new Error(xt.kind==="direct"?`the re-check reads '${Y}' through a relation, which flat SQL rows can't hold \u2014 run the Prisma query`:`the re-check reads '${Y}', which is not a column of ${o} \u2014 run the Prisma query`)}let A=Da({...l,map:e,mapName:r,model:o,alias:"t0"}),L=vn(a,A),B=w?Rt(w,A):void 0,yr=S.map((Y,xt)=>Y===void 0?void 0:`${Rt(Y,A)} AS ${X(`__group_${xt}`)}`),Uo=A.joins??[],hr=Uo.length?` ${Uo.join(" ")}`:"",le=L?.trim()?` WHERE ${L}`:"",Ye=X("t0"),Se=[`${Ye}.${X(n)}`,...B?[`${B} AS ${X("__label")}`]:y?[`${Ye}.${X(y)}`]:[],...yr.filter(Y=>Y!==void 0),...R.map(Y=>`${Ye}.${X(Y)}`)].join(", "),Q=T(O(e.maps,r),o)?.dbName??o;ae={sql:`SELECT DISTINCT ${Se} FROM ${X(Q)} AS ${Ye}${hr}${le}`,params:A.params};}catch(A){ae={sql:null,params:[],error:A instanceof Error?A.message:String(A)};}return {prisma:V,sql:ae}},Oc=(e,t={})=>{let{lens:r}=k(e);return Cu(e).map(({path:o,visit:n,field:i,label:s,groupBy:a,where:l,recheck:f})=>{let p=l,{prisma:d,sql:u}=SO(r,o,n.mapName,n.model,i,s,a,p,t,f);return {path:o,mapName:n.mapName,model:n.model,field:i,...s!==void 0?{label:s}:{},...a!==void 0?{groupBy:a}:{},composedWhere:p,prisma:d,sql:u,...f!==void 0?{recheck:f}:{}}})};var xc=(e,t)=>{let r=k(e);return Br(r,wt(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=si;exports.ArrayOperator=$;exports.DateOperator=v;exports.FieldKind=H;exports.LensRefusal=N;exports.NUMERIC_KINDS=
|
|
15
|
+
*/exports.ALL_KINDS=si;exports.ArrayOperator=$;exports.DateOperator=v;exports.FieldKind=H;exports.LensRefusal=N;exports.NUMERIC_KINDS=Be;exports.Operator=h;exports.RuleTarget=KS;exports.UsageError=J;exports.ValueShape=Tt;exports.andWhere=je;exports.assertValidFieldMaps=Fd;exports.assertValidNarrowing=ds;exports.assertValidRule=jb;exports.bindLens=eu;exports.bindRule=js;exports.check=ue;exports.clampLens=fa;exports.coerceRule=iu;exports.composeLens=zu;exports.createLens=su;exports.describeRule=au;exports.describeRuleSources=lu;exports.engineGlobals=Or;exports.executePrismaPlan=Eu;exports.getAggregateOperators=JS;exports.getArrayOperators=HS;exports.getLensRoot=Je;exports.getOperatorsForKind=zS;exports.getValueShape=Mt;exports.indexBridges=pd;exports.lensVisit=Tu;exports.listBindings=nn;exports.listLensBindings=Yd;exports.matchAll=ze;exports.matchNothing=yt;exports.materializeSourceQuery=Bu;exports.materializeSources=Vu;exports.narrowRule=jo;exports.orWhere=I;exports.orderRecords=id;exports.parseScopeRef=F;exports.projectLens=Gu;exports.projectRows=Iu;exports.readLensValue=Ku;exports.readScopeRef=ke;exports.stitchFieldMaps=Ci;exports.storeLens=Hu;exports.toLensSelect=Du;exports.toPrisma=bn;exports.toSourceQueries=Oc;exports.toSql=hO;exports.validateFieldMaps=Hs;exports.validateNarrowing=_a;exports.validateRule=Fo;exports.validateRuleInLens=Vo;exports.walkLensPath=xc;//# sourceMappingURL=index.cjs.map
|
|
16
16
|
//# sourceMappingURL=index.cjs.map
|