veloce-ts 0.4.15 → 0.4.16

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.
@@ -13,6 +13,6 @@ MERCHANTABLITY OR NON-INFRINGEMENT.
13
13
 
14
14
  See the Apache Version 2.0 License for specific language governing permissions
15
15
  and limitations under the License.
16
- ***************************************************************************** */var bQ;(function($){(function(q){var Q=typeof globalThis==="object"?globalThis:typeof global==="object"?global:typeof self==="object"?self:typeof this==="object"?this:Y(),J=W($);if(typeof Q.Reflect<"u")J=W(Q.Reflect,J);if(q(J,Q),typeof Q.Reflect>"u")Q.Reflect=$;function W(G,V){return function(D,z){if(Object.defineProperty(G,D,{configurable:!0,writable:!0,value:z}),V)V(D,z)}}function X(){try{return Function("return this;")()}catch(G){}}function H(){try{return(0,eval)("(function() { return this; })()")}catch(G){}}function Y(){return X()||H()}})(function(q,Q){var J=Object.prototype.hasOwnProperty,W=typeof Symbol==="function",X=W&&typeof Symbol.toPrimitive<"u"?Symbol.toPrimitive:"@@toPrimitive",H=W&&typeof Symbol.iterator<"u"?Symbol.iterator:"@@iterator",Y=typeof Object.create==="function",G={__proto__:[]}instanceof Array,V=!Y&&!G,D={create:Y?function(){return q6(Object.create(null))}:G?function(){return q6({__proto__:null})}:function(){return q6({})},has:V?function(w,F){return J.call(w,F)}:function(w,F){return F in w},get:V?function(w,F){return J.call(w,F)?w[F]:void 0}:function(w,F){return w[F]}},z=Object.getPrototypeOf(Function),Z=typeof Map==="function"&&typeof Map.prototype.entries==="function"?Map:N2(),C=typeof Set==="function"&&typeof Set.prototype.entries==="function"?Set:R2(),y=typeof WeakMap==="function"?WeakMap:E2(),p=W?Symbol.for("@reflect-metadata:registry"):void 0,o$=z2(),a0=L2(o$);function Q0(w,F,_,j){if(!f(_)){if(!O4(w))throw TypeError();if(!i(F))throw TypeError();if(!i(j)&&!f(j)&&!s$(j))throw TypeError();if(s$(j))j=void 0;return _=R$(_),w2(w,F,_,j)}else{if(!O4(w))throw TypeError();if(!M4(F))throw TypeError();return G2(w,F)}}q("decorate",Q0);function A1(w,F){function _(j,I){if(!i(j))throw TypeError();if(!f(I)&&!D2(I))throw TypeError();R4(w,F,j,I)}return _}q("metadata",A1);function $2(w,F,_,j){if(!i(_))throw TypeError();if(!f(j))j=R$(j);return R4(w,F,_,j)}q("defineMetadata",$2);function q2(w,F,_){if(!i(F))throw TypeError();if(!f(_))_=R$(_);return L4(w,F,_)}q("hasMetadata",q2);function Q2(w,F,_){if(!i(F))throw TypeError();if(!f(_))_=R$(_);return t0(w,F,_)}q("hasOwnMetadata",Q2);function J2(w,F,_){if(!i(F))throw TypeError();if(!f(_))_=R$(_);return j4(w,F,_)}q("getMetadata",J2);function W2(w,F,_){if(!i(F))throw TypeError();if(!f(_))_=R$(_);return N4(w,F,_)}q("getOwnMetadata",W2);function X2(w,F){if(!i(w))throw TypeError();if(!f(F))F=R$(F);return E4(w,F)}q("getMetadataKeys",X2);function H2(w,F){if(!i(w))throw TypeError();if(!f(F))F=R$(F);return S4(w,F)}q("getOwnMetadataKeys",H2);function Y2(w,F,_){if(!i(F))throw TypeError();if(!f(_))_=R$(_);if(!i(F))throw TypeError();if(!f(_))_=R$(_);var j=C1(F,_,!1);if(f(j))return!1;return j.OrdinaryDeleteMetadata(w,F,_)}q("deleteMetadata",Y2);function G2(w,F){for(var _=w.length-1;_>=0;--_){var j=w[_],I=j(F);if(!f(I)&&!s$(I)){if(!M4(I))throw TypeError();F=I}}return F}function w2(w,F,_,j){for(var I=w.length-1;I>=0;--I){var o=w[I],a=o(F,_,j);if(!f(a)&&!s$(a)){if(!i(a))throw TypeError();j=a}}return j}function L4(w,F,_){var j=t0(w,F,_);if(j)return!0;var I=$6(F);if(!s$(I))return L4(w,I,_);return!1}function t0(w,F,_){var j=C1(F,_,!1);if(f(j))return!1;return C4(j.OrdinaryHasOwnMetadata(w,F,_))}function j4(w,F,_){var j=t0(w,F,_);if(j)return N4(w,F,_);var I=$6(F);if(!s$(I))return j4(w,I,_);return}function N4(w,F,_){var j=C1(F,_,!1);if(f(j))return;return j.OrdinaryGetOwnMetadata(w,F,_)}function R4(w,F,_,j){var I=C1(_,j,!0);I.OrdinaryDefineOwnMetadata(w,F,_,j)}function E4(w,F){var _=S4(w,F),j=$6(w);if(j===null)return _;var I=E4(j,F);if(I.length<=0)return _;if(_.length<=0)return I;var o=new C,a=[];for(var v=0,E=_;v<E.length;v++){var O=E[v],M=o.has(O);if(!M)o.add(O),a.push(O)}for(var k=0,m=I;k<m.length;k++){var O=m[k],M=o.has(O);if(!M)o.add(O),a.push(O)}return a}function S4(w,F){var _=C1(w,F,!1);if(!_)return[];return _.OrdinaryOwnMetadataKeys(w,F)}function A4(w){if(w===null)return 1;switch(typeof w){case"undefined":return 0;case"boolean":return 2;case"string":return 3;case"symbol":return 4;case"number":return 5;case"object":return w===null?1:6;default:return 6}}function f(w){return w===void 0}function s$(w){return w===null}function B2(w){return typeof w==="symbol"}function i(w){return typeof w==="object"?w!==null:typeof w==="function"}function V2(w,F){switch(A4(w)){case 0:return w;case 1:return w;case 2:return w;case 3:return w;case 4:return w;case 5:return w}var _=F===3?"string":F===5?"number":"default",j=K4(w,X);if(j!==void 0){var I=j.call(w,_);if(i(I))throw TypeError();return I}return F2(w,_==="default"?"number":_)}function F2(w,F){if(F==="string"){var _=w.toString;if(r$(_)){var j=_.call(w);if(!i(j))return j}var I=w.valueOf;if(r$(I)){var j=I.call(w);if(!i(j))return j}}else{var I=w.valueOf;if(r$(I)){var j=I.call(w);if(!i(j))return j}var o=w.toString;if(r$(o)){var j=o.call(w);if(!i(j))return j}}throw TypeError()}function C4(w){return!!w}function _2(w){return""+w}function R$(w){var F=V2(w,3);if(B2(F))return F;return _2(F)}function O4(w){return Array.isArray?Array.isArray(w):w instanceof Object?w instanceof Array:Object.prototype.toString.call(w)==="[object Array]"}function r$(w){return typeof w==="function"}function M4(w){return typeof w==="function"}function D2(w){switch(A4(w)){case 3:return!0;case 4:return!0;default:return!1}}function e0(w,F){return w===F||w!==w&&F!==F}function K4(w,F){var _=w[F];if(_===void 0||_===null)return;if(!r$(_))throw TypeError();return _}function k4(w){var F=K4(w,H);if(!r$(F))throw TypeError();var _=F.call(w);if(!i(_))throw TypeError();return _}function I4(w){return w.value}function b4(w){var F=w.next();return F.done?!1:F}function P4(w){var F=w.return;if(F)F.call(w)}function $6(w){var F=Object.getPrototypeOf(w);if(typeof w!=="function"||w===z)return F;if(F!==z)return F;var _=w.prototype,j=_&&Object.getPrototypeOf(_);if(j==null||j===Object.prototype)return F;var I=j.constructor;if(typeof I!=="function")return F;if(I===w)return F;return I}function U2(){var w;if(!f(p)&&typeof Q.Reflect<"u"&&!(p in Q.Reflect)&&typeof Q.Reflect.defineMetadata==="function")w=j2(Q.Reflect);var F,_,j,I=new y,o={registerProvider:a,getProvider:E,setProvider:M};return o;function a(k){if(!Object.isExtensible(o))throw Error("Cannot add provider to a frozen registry.");switch(!0){case w===k:break;case f(F):F=k;break;case F===k:break;case f(_):_=k;break;case _===k:break;default:if(j===void 0)j=new C;j.add(k);break}}function v(k,m){if(!f(F)){if(F.isProviderFor(k,m))return F;if(!f(_)){if(_.isProviderFor(k,m))return F;if(!f(j)){var u=k4(j);while(!0){var s=b4(u);if(!s)return;var V$=I4(s);if(V$.isProviderFor(k,m))return P4(u),V$}}}}if(!f(w)&&w.isProviderFor(k,m))return w;return}function E(k,m){var u=I.get(k),s;if(!f(u))s=u.get(m);if(!f(s))return s;if(s=v(k,m),!f(s)){if(f(u))u=new Z,I.set(k,u);u.set(m,s)}return s}function O(k){if(f(k))throw TypeError();return F===k||_===k||!f(j)&&j.has(k)}function M(k,m,u){if(!O(u))throw Error("Metadata provider not registered.");var s=E(k,m);if(s!==u){if(!f(s))return!1;var V$=I.get(k);if(f(V$))V$=new Z,I.set(k,V$);V$.set(m,u)}return!0}}function z2(){var w;if(!f(p)&&i(Q.Reflect)&&Object.isExtensible(Q.Reflect))w=Q.Reflect[p];if(f(w))w=U2();if(!f(p)&&i(Q.Reflect)&&Object.isExtensible(Q.Reflect))Object.defineProperty(Q.Reflect,p,{enumerable:!1,configurable:!1,writable:!1,value:w});return w}function L2(w){var F=new y,_={isProviderFor:function(O,M){var k=F.get(O);if(f(k))return!1;return k.has(M)},OrdinaryDefineOwnMetadata:a,OrdinaryHasOwnMetadata:I,OrdinaryGetOwnMetadata:o,OrdinaryOwnMetadataKeys:v,OrdinaryDeleteMetadata:E};return o$.registerProvider(_),_;function j(O,M,k){var m=F.get(O),u=!1;if(f(m)){if(!k)return;m=new Z,F.set(O,m),u=!0}var s=m.get(M);if(f(s)){if(!k)return;if(s=new Z,m.set(M,s),!w.setProvider(O,M,_)){if(m.delete(M),u)F.delete(O);throw Error("Wrong provider for target.")}}return s}function I(O,M,k){var m=j(M,k,!1);if(f(m))return!1;return C4(m.has(O))}function o(O,M,k){var m=j(M,k,!1);if(f(m))return;return m.get(O)}function a(O,M,k,m){var u=j(k,m,!0);u.set(O,M)}function v(O,M){var k=[],m=j(O,M,!1);if(f(m))return k;var u=m.keys(),s=k4(u),V$=0;while(!0){var Z4=b4(s);if(!Z4)return k.length=V$,k;var S2=I4(Z4);try{k[V$]=S2}catch(A2){try{P4(s)}finally{throw A2}}V$++}}function E(O,M,k){var m=j(M,k,!1);if(f(m))return!1;if(!m.delete(O))return!1;if(m.size===0){var u=F.get(M);if(!f(u)){if(u.delete(k),u.size===0)F.delete(u)}}return!0}}function j2(w){var{defineMetadata:F,hasOwnMetadata:_,getOwnMetadata:j,getOwnMetadataKeys:I,deleteMetadata:o}=w,a=new y,v={isProviderFor:function(E,O){var M=a.get(E);if(!f(M)&&M.has(O))return!0;if(I(E,O).length){if(f(M))M=new C,a.set(E,M);return M.add(O),!0}return!1},OrdinaryDefineOwnMetadata:F,OrdinaryHasOwnMetadata:_,OrdinaryGetOwnMetadata:j,OrdinaryOwnMetadataKeys:I,OrdinaryDeleteMetadata:o};return v}function C1(w,F,_){var j=o$.getProvider(w,F);if(!f(j))return j;if(_){if(o$.setProvider(w,F,a0))return a0;throw Error("Illegal state.")}return}function N2(){var w={},F=[],_=function(){function v(E,O,M){this._index=0,this._keys=E,this._values=O,this._selector=M}return v.prototype["@@iterator"]=function(){return this},v.prototype[H]=function(){return this},v.prototype.next=function(){var E=this._index;if(E>=0&&E<this._keys.length){var O=this._selector(this._keys[E],this._values[E]);if(E+1>=this._keys.length)this._index=-1,this._keys=F,this._values=F;else this._index++;return{value:O,done:!1}}return{value:void 0,done:!0}},v.prototype.throw=function(E){if(this._index>=0)this._index=-1,this._keys=F,this._values=F;throw E},v.prototype.return=function(E){if(this._index>=0)this._index=-1,this._keys=F,this._values=F;return{value:E,done:!0}},v}(),j=function(){function v(){this._keys=[],this._values=[],this._cacheKey=w,this._cacheIndex=-2}return Object.defineProperty(v.prototype,"size",{get:function(){return this._keys.length},enumerable:!0,configurable:!0}),v.prototype.has=function(E){return this._find(E,!1)>=0},v.prototype.get=function(E){var O=this._find(E,!1);return O>=0?this._values[O]:void 0},v.prototype.set=function(E,O){var M=this._find(E,!0);return this._values[M]=O,this},v.prototype.delete=function(E){var O=this._find(E,!1);if(O>=0){var M=this._keys.length;for(var k=O+1;k<M;k++)this._keys[k-1]=this._keys[k],this._values[k-1]=this._values[k];if(this._keys.length--,this._values.length--,e0(E,this._cacheKey))this._cacheKey=w,this._cacheIndex=-2;return!0}return!1},v.prototype.clear=function(){this._keys.length=0,this._values.length=0,this._cacheKey=w,this._cacheIndex=-2},v.prototype.keys=function(){return new _(this._keys,this._values,I)},v.prototype.values=function(){return new _(this._keys,this._values,o)},v.prototype.entries=function(){return new _(this._keys,this._values,a)},v.prototype["@@iterator"]=function(){return this.entries()},v.prototype[H]=function(){return this.entries()},v.prototype._find=function(E,O){if(!e0(this._cacheKey,E)){this._cacheIndex=-1;for(var M=0;M<this._keys.length;M++)if(e0(this._keys[M],E)){this._cacheIndex=M;break}}if(this._cacheIndex<0&&O)this._cacheIndex=this._keys.length,this._keys.push(E),this._values.push(void 0);return this._cacheIndex},v}();return j;function I(v,E){return v}function o(v,E){return E}function a(v,E){return[v,E]}}function R2(){var w=function(){function F(){this._map=new Z}return Object.defineProperty(F.prototype,"size",{get:function(){return this._map.size},enumerable:!0,configurable:!0}),F.prototype.has=function(_){return this._map.has(_)},F.prototype.add=function(_){return this._map.set(_,_),this},F.prototype.delete=function(_){return this._map.delete(_)},F.prototype.clear=function(){this._map.clear()},F.prototype.keys=function(){return this._map.keys()},F.prototype.values=function(){return this._map.keys()},F.prototype.entries=function(){return this._map.entries()},F.prototype["@@iterator"]=function(){return this.keys()},F.prototype[H]=function(){return this.keys()},F}();return w}function E2(){var w=16,F=D.create(),_=j();return function(){function E(){this._key=j()}return E.prototype.has=function(O){var M=I(O,!1);return M!==void 0?D.has(M,this._key):!1},E.prototype.get=function(O){var M=I(O,!1);return M!==void 0?D.get(M,this._key):void 0},E.prototype.set=function(O,M){var k=I(O,!0);return k[this._key]=M,this},E.prototype.delete=function(O){var M=I(O,!1);return M!==void 0?delete M[this._key]:!1},E.prototype.clear=function(){this._key=j()},E}();function j(){var E;do E="@@WeakMap@@"+v();while(D.has(F,E));return F[E]=!0,E}function I(E,O){if(!J.call(E,_)){if(!O)return;Object.defineProperty(E,_,{value:D.create()})}return E[_]}function o(E,O){for(var M=0;M<O;++M)E[M]=Math.random()*255|0;return E}function a(E){if(typeof Uint8Array==="function"){var O=new Uint8Array(E);if(typeof crypto<"u")crypto.getRandomValues(O);else if(typeof msCrypto<"u")msCrypto.getRandomValues(O);else o(O,E);return O}return o(Array(E),E)}function v(){var E=a(w);E[6]=E[6]&79|64,E[8]=E[8]&191|128;var O="";for(var M=0;M<w;++M){var k=E[M];if(M===4||M===6||M===8)O+="-";if(k<16)O+="0";O+=k.toString(16).toLowerCase()}return O}}function q6(w){return w.__=void 0,delete w.__,w}})})(bQ||(bQ={}))});var iY=($)=>{let q=$.split("/");if(q[0]==="")q.shift();return q},RV=($)=>{let{groups:q,path:Q}=oY($),J=iY(Q);return sY(J,q)},oY=($)=>{let q=[];return $=$.replace(/\{[^}]+\}/g,(Q,J)=>{let W=`@${J}`;return q.push([W,Q]),W}),{groups:q,path:$}},sY=($,q)=>{for(let Q=q.length-1;Q>=0;Q--){let[J]=q[Q];for(let W=$.length-1;W>=0;W--)if($[W].includes(J)){$[W]=$[W].replace(J,q[Q][1]);break}}return $},i0,EV=($,q)=>{if($==="*")return"*";let Q=$.match(/^\:([^\{\}]+)(?:\{(.+)\})?$/);if(Q){let J=`${$}#${q}`;if(!i0[J])if(Q[2])i0[J]=q&&q[0]!==":"&&q[0]!=="*"?[J,Q[1],new RegExp(`^${Q[2]}(?=/${q})`)]:[$,Q[1],new RegExp(`^${Q[2]}$`)];else i0[J]=[$,Q[1],!0];return i0[J]}return null},o0=($,q)=>{try{return q($)}catch{return $.replace(/(?:%[0-9A-Fa-f]{2})+/g,(Q)=>{try{return q(Q)}catch{return Q}})}},rY=($)=>o0($,decodeURI),aY=($)=>{let q=$.url,Q=q.indexOf("/",q.indexOf(":")+4),J=Q;for(;J<q.length;J++){let W=q.charCodeAt(J);if(W===37){let X=q.indexOf("?",J),H=q.indexOf("#",J),Y=X===-1?H===-1?void 0:H:H===-1?X:Math.min(X,H),G=q.slice(Q,Y);return rY(G.includes("%25")?G.replace(/%25/g,"%2525"):G)}else if(W===63||W===35)break}return q.slice(Q,J)},SV=($)=>{let q=aY($);return q.length>1&&q.at(-1)==="/"?q.slice(0,-1):q},tY=($,q,...Q)=>{if(Q.length)q=tY(q,...Q);return`${$?.[0]==="/"?"":"/"}${$}${q==="/"?"":`${$?.at(-1)==="/"?"":"/"}${q?.[0]==="/"?q.slice(1):q}`}`},AV=($)=>{if($.charCodeAt($.length-1)!==63||!$.includes(":"))return null;let q=$.split("/"),Q=[],J="";return q.forEach((W)=>{if(W!==""&&!/\:/.test(W))J+="/"+W;else if(/\:/.test(W))if(/\?/.test(W)){if(Q.length===0&&J==="")Q.push("/");else Q.push(J);let X=W.replace("?","");J+="/"+X,Q.push(J)}else J+="/"+W}),Q.filter((W,X,H)=>H.indexOf(W)===X)},_4=($)=>{if(!/[%+]/.test($))return $;if($.indexOf("+")!==-1)$=$.replace(/\+/g," ");return $.indexOf("%")!==-1?o0($,D4):$},oQ=($,q,Q)=>{let J;if(!Q&&q&&!/[%+]/.test(q)){let H=$.indexOf("?",8);if(H===-1)return;if(!$.startsWith(q,H+1))H=$.indexOf(`&${q}`,H+1);while(H!==-1){let Y=$.charCodeAt(H+q.length+1);if(Y===61){let G=H+q.length+2,V=$.indexOf("&",G);return _4($.slice(G,V===-1?void 0:V))}else if(Y==38||isNaN(Y))return"";H=$.indexOf(`&${q}`,H+1)}if(J=/[%+]/.test($),!J)return}let W={};J??=/[%+]/.test($);let X=$.indexOf("?",8);while(X!==-1){let H=$.indexOf("&",X+1),Y=$.indexOf("=",X);if(Y>H&&H!==-1)Y=-1;let G=$.slice(X+1,Y===-1?H===-1?void 0:H:Y);if(J)G=_4(G);if(X=H,G==="")continue;let V;if(Y===-1)V="";else if(V=$.slice(Y+1,H===-1?void 0:H),J)V=_4(V);if(Q){if(!(W[G]&&Array.isArray(W[G])))W[G]=[];W[G].push(V)}else W[G]??=V}return q?W[q]:W},CV,OV=($,q)=>{return oQ($,q,!0)},D4;var sQ=J0(()=>{i0={},CV=oQ,D4=decodeURIComponent});var _G={};Q6(_G,{setSessionData:()=>VG,removeSessionData:()=>FG,isSessionAuthenticated:()=>wG,isOAuthAuthenticated:()=>NY,isAuthenticated:()=>BY,getUserRoles:()=>B4,getUserResourcePermissions:()=>lY,getUserPermissions:()=>cQ,getToken:()=>X4,getSessionUserId:()=>BG,getSessionManager:()=>$0,getSessionData:()=>GG,getRBACManager:()=>uQ,getPermissionManager:()=>F4,getOAuthUser:()=>LY,getOAuthToken:()=>jY,getOAuthProvider:()=>RY,getCurrentUser:()=>$$,getCurrentSession:()=>N$,getCSRFProtection:()=>YG,getAuthError:()=>VY,createSessionMiddleware:()=>z4,createRBACMiddleware:()=>w4,createPermissionMiddleware:()=>V4,createDefaultRBAC:()=>Y4,createAuthMiddleware:()=>W4,checkUserRole:()=>kY,checkUserPermission:()=>IY,checkResourceAccess:()=>pQ,canUserAccess:()=>uY,UpdateSessionSchema:()=>pY,TokenRevokedException:()=>n6,TokenPayloadSchema:()=>cH,TokenExpiredException:()=>n1,Token:()=>wY,TeamOnly:()=>vY,TeamMembershipPolicy:()=>d0,SuperAdminOnly:()=>MY,SessionPlugin:()=>eQ,SessionManager:()=>t1,SessionGuard:()=>q0,SessionDataSchema:()=>cY,SessionData:()=>WG,SessionConfigSchema:()=>dY,Session:()=>QG,Roles:()=>yQ,RoleSchema:()=>EY,RoleAssignmentSchema:()=>SY,ResourcePermissionSchema:()=>bY,ResourcePermissionCheckSchema:()=>PY,RequireRole:()=>G4,RequirePermission:()=>CY,RequireCSRF:()=>HG,RefreshRequestSchema:()=>nH,RedisSessionStore:()=>p0,RBACPlugin:()=>dQ,RBACManager:()=>R1,RBACGuard:()=>s1,PublicResourcePolicy:()=>n0,PublicRead:()=>gY,Permissions:()=>lQ,PermissionSchema:()=>nQ,PermissionPlugin:()=>iQ,PermissionMatcher:()=>E1,PermissionManager:()=>r1,PermissionGuard:()=>a1,PermissionCheckSchema:()=>AY,PKCEUtils:()=>l0,OwnershipPolicy:()=>c0,OwnerOnly:()=>hY,OAuthUserSchema:()=>_Y,OAuthUser:()=>UY,OAuthTokensSchema:()=>FY,OAuthToken:()=>zY,OAuthStateManager:()=>u0,OAuthPlugin:()=>mQ,OAuthCallbackSchema:()=>H4,OAuth:()=>DY,MinimumRole:()=>KY,MicrosoftOAuthProvider:()=>gQ,MemorySessionStore:()=>S1,LoginRequestSchema:()=>dH,JWTProvider:()=>m0,InvalidTokenException:()=>i$,InMemoryUserProvider:()=>IQ,GoogleOAuthProvider:()=>hQ,GitHubOAuthProvider:()=>vQ,FilteredResource:()=>mY,FilteredAttributes:()=>yY,CurrentUser:()=>GY,CurrentSession:()=>JG,CreateSessionSchema:()=>nY,CanWrite:()=>fY,CanUpdate:()=>xY,CanRead:()=>ZY,CanDelete:()=>TY,CanAccess:()=>g$,CSRFToken:()=>XG,CSRFProtection:()=>e1,BaseOAuthProvider:()=>o1,AuthorizationException:()=>r,AuthenticationException:()=>e,AuthService:()=>p1,AuthPlugin:()=>TQ,Auth:()=>YY,AdminOnly:()=>OY});module.exports=I2(_G);var h$=v4(DQ(),1);var B={};Q6(B,{void:()=>zH,util:()=>g,unknown:()=>DH,union:()=>RH,undefined:()=>VH,tuple:()=>AH,transformer:()=>fH,symbol:()=>BH,string:()=>AQ,strictObject:()=>NH,setErrorMap:()=>TX,set:()=>MH,record:()=>CH,quotelessJson:()=>fX,promise:()=>ZH,preprocess:()=>hH,pipeline:()=>vH,ostring:()=>gH,optional:()=>xH,onumber:()=>mH,oboolean:()=>yH,objectUtil:()=>l6,object:()=>jH,number:()=>CQ,nullable:()=>TH,null:()=>FH,never:()=>UH,nativeEnum:()=>PH,nan:()=>YH,map:()=>OH,makeIssue:()=>g1,literal:()=>IH,lazy:()=>kH,late:()=>XH,isValid:()=>P$,isDirty:()=>h0,isAsync:()=>H1,isAborted:()=>T0,intersection:()=>SH,instanceof:()=>HH,getParsedType:()=>A$,getErrorMap:()=>X1,function:()=>KH,enum:()=>bH,effect:()=>fH,discriminatedUnion:()=>EH,defaultErrorMap:()=>M$,datetimeRegex:()=>RQ,date:()=>wH,custom:()=>SQ,coerce:()=>lH,boolean:()=>OQ,bigint:()=>GH,array:()=>LH,any:()=>_H,addIssueToContext:()=>R,ZodVoid:()=>y1,ZodUnknown:()=>Z$,ZodUnion:()=>F1,ZodUndefined:()=>B1,ZodType:()=>h,ZodTuple:()=>O$,ZodTransformer:()=>j$,ZodSymbol:()=>m1,ZodString:()=>D$,ZodSet:()=>n$,ZodSchema:()=>h,ZodRecord:()=>l1,ZodReadonly:()=>N1,ZodPromise:()=>p$,ZodPipeline:()=>d1,ZodParsedType:()=>L,ZodOptional:()=>z$,ZodObject:()=>n,ZodNumber:()=>f$,ZodNullable:()=>k$,ZodNull:()=>V1,ZodNever:()=>C$,ZodNativeEnum:()=>z1,ZodNaN:()=>c1,ZodMap:()=>u1,ZodLiteral:()=>U1,ZodLazy:()=>D1,ZodIssueCode:()=>U,ZodIntersection:()=>_1,ZodFunction:()=>G1,ZodFirstPartyTypeKind:()=>P,ZodError:()=>H$,ZodEnum:()=>T$,ZodEffects:()=>j$,ZodDiscriminatedUnion:()=>v0,ZodDefault:()=>L1,ZodDate:()=>c$,ZodCatch:()=>j1,ZodBranded:()=>g0,ZodBoolean:()=>w1,ZodBigInt:()=>x$,ZodArray:()=>U$,ZodAny:()=>d$,Schema:()=>h,ParseStatus:()=>t,OK:()=>J$,NEVER:()=>uH,INVALID:()=>b,EMPTY_PATH:()=>hX,DIRTY:()=>u$,BRAND:()=>WH});var g;(function($){$.assertEqual=(W)=>{};function q(W){}$.assertIs=q;function Q(W){throw Error()}$.assertNever=Q,$.arrayToEnum=(W)=>{let X={};for(let H of W)X[H]=H;return X},$.getValidEnumValues=(W)=>{let X=$.objectKeys(W).filter((Y)=>typeof W[W[Y]]!=="number"),H={};for(let Y of X)H[Y]=W[Y];return $.objectValues(H)},$.objectValues=(W)=>{return $.objectKeys(W).map(function(X){return W[X]})},$.objectKeys=typeof Object.keys==="function"?(W)=>Object.keys(W):(W)=>{let X=[];for(let H in W)if(Object.prototype.hasOwnProperty.call(W,H))X.push(H);return X},$.find=(W,X)=>{for(let H of W)if(X(H))return H;return},$.isInteger=typeof Number.isInteger==="function"?(W)=>Number.isInteger(W):(W)=>typeof W==="number"&&Number.isFinite(W)&&Math.floor(W)===W;function J(W,X=" | "){return W.map((H)=>typeof H==="string"?`'${H}'`:H).join(X)}$.joinValues=J,$.jsonStringifyReplacer=(W,X)=>{if(typeof X==="bigint")return X.toString();return X}})(g||(g={}));var l6;(function($){$.mergeShapes=(q,Q)=>{return{...q,...Q}}})(l6||(l6={}));var L=g.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),A$=($)=>{switch(typeof $){case"undefined":return L.undefined;case"string":return L.string;case"number":return Number.isNaN($)?L.nan:L.number;case"boolean":return L.boolean;case"function":return L.function;case"bigint":return L.bigint;case"symbol":return L.symbol;case"object":if(Array.isArray($))return L.array;if($===null)return L.null;if($.then&&typeof $.then==="function"&&$.catch&&typeof $.catch==="function")return L.promise;if(typeof Map<"u"&&$ instanceof Map)return L.map;if(typeof Set<"u"&&$ instanceof Set)return L.set;if(typeof Date<"u"&&$ instanceof Date)return L.date;return L.object;default:return L.unknown}};var U=g.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),fX=($)=>{return JSON.stringify($,null,2).replace(/"([^"]+)":/g,"$1:")};class H$ extends Error{get errors(){return this.issues}constructor($){super();this.issues=[],this.addIssue=(Q)=>{this.issues=[...this.issues,Q]},this.addIssues=(Q=[])=>{this.issues=[...this.issues,...Q]};let q=new.target.prototype;if(Object.setPrototypeOf)Object.setPrototypeOf(this,q);else this.__proto__=q;this.name="ZodError",this.issues=$}format($){let q=$||function(W){return W.message},Q={_errors:[]},J=(W)=>{for(let X of W.issues)if(X.code==="invalid_union")X.unionErrors.map(J);else if(X.code==="invalid_return_type")J(X.returnTypeError);else if(X.code==="invalid_arguments")J(X.argumentsError);else if(X.path.length===0)Q._errors.push(q(X));else{let H=Q,Y=0;while(Y<X.path.length){let G=X.path[Y];if(Y!==X.path.length-1)H[G]=H[G]||{_errors:[]};else H[G]=H[G]||{_errors:[]},H[G]._errors.push(q(X));H=H[G],Y++}}};return J(this),Q}static assert($){if(!($ instanceof H$))throw Error(`Not a ZodError: ${$}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,g.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten($=(q)=>q.message){let q={},Q=[];for(let J of this.issues)if(J.path.length>0){let W=J.path[0];q[W]=q[W]||[],q[W].push($(J))}else Q.push($(J));return{formErrors:Q,fieldErrors:q}}get formErrors(){return this.flatten()}}H$.create=($)=>{return new H$($)};var xX=($,q)=>{let Q;switch($.code){case U.invalid_type:if($.received===L.undefined)Q="Required";else Q=`Expected ${$.expected}, received ${$.received}`;break;case U.invalid_literal:Q=`Invalid literal value, expected ${JSON.stringify($.expected,g.jsonStringifyReplacer)}`;break;case U.unrecognized_keys:Q=`Unrecognized key(s) in object: ${g.joinValues($.keys,", ")}`;break;case U.invalid_union:Q="Invalid input";break;case U.invalid_union_discriminator:Q=`Invalid discriminator value. Expected ${g.joinValues($.options)}`;break;case U.invalid_enum_value:Q=`Invalid enum value. Expected ${g.joinValues($.options)}, received '${$.received}'`;break;case U.invalid_arguments:Q="Invalid function arguments";break;case U.invalid_return_type:Q="Invalid function return type";break;case U.invalid_date:Q="Invalid date";break;case U.invalid_string:if(typeof $.validation==="object")if("includes"in $.validation){if(Q=`Invalid input: must include "${$.validation.includes}"`,typeof $.validation.position==="number")Q=`${Q} at one or more positions greater than or equal to ${$.validation.position}`}else if("startsWith"in $.validation)Q=`Invalid input: must start with "${$.validation.startsWith}"`;else if("endsWith"in $.validation)Q=`Invalid input: must end with "${$.validation.endsWith}"`;else g.assertNever($.validation);else if($.validation!=="regex")Q=`Invalid ${$.validation}`;else Q="Invalid";break;case U.too_small:if($.type==="array")Q=`Array must contain ${$.exact?"exactly":$.inclusive?"at least":"more than"} ${$.minimum} element(s)`;else if($.type==="string")Q=`String must contain ${$.exact?"exactly":$.inclusive?"at least":"over"} ${$.minimum} character(s)`;else if($.type==="number")Q=`Number must be ${$.exact?"exactly equal to ":$.inclusive?"greater than or equal to ":"greater than "}${$.minimum}`;else if($.type==="bigint")Q=`Number must be ${$.exact?"exactly equal to ":$.inclusive?"greater than or equal to ":"greater than "}${$.minimum}`;else if($.type==="date")Q=`Date must be ${$.exact?"exactly equal to ":$.inclusive?"greater than or equal to ":"greater than "}${new Date(Number($.minimum))}`;else Q="Invalid input";break;case U.too_big:if($.type==="array")Q=`Array must contain ${$.exact?"exactly":$.inclusive?"at most":"less than"} ${$.maximum} element(s)`;else if($.type==="string")Q=`String must contain ${$.exact?"exactly":$.inclusive?"at most":"under"} ${$.maximum} character(s)`;else if($.type==="number")Q=`Number must be ${$.exact?"exactly":$.inclusive?"less than or equal to":"less than"} ${$.maximum}`;else if($.type==="bigint")Q=`BigInt must be ${$.exact?"exactly":$.inclusive?"less than or equal to":"less than"} ${$.maximum}`;else if($.type==="date")Q=`Date must be ${$.exact?"exactly":$.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number($.maximum))}`;else Q="Invalid input";break;case U.custom:Q="Invalid input";break;case U.invalid_intersection_types:Q="Intersection results could not be merged";break;case U.not_multiple_of:Q=`Number must be a multiple of ${$.multipleOf}`;break;case U.not_finite:Q="Number must be finite";break;default:Q=q.defaultError,g.assertNever($)}return{message:Q}},M$=xX;var UQ=M$;function TX($){UQ=$}function X1(){return UQ}var g1=($)=>{let{data:q,path:Q,errorMaps:J,issueData:W}=$,X=[...Q,...W.path||[]],H={...W,path:X};if(W.message!==void 0)return{...W,path:X,message:W.message};let Y="",G=J.filter((V)=>!!V).slice().reverse();for(let V of G)Y=V(H,{data:q,defaultError:Y}).message;return{...W,path:X,message:Y}},hX=[];function R($,q){let Q=X1(),J=g1({issueData:q,data:$.data,path:$.path,errorMaps:[$.common.contextualErrorMap,$.schemaErrorMap,Q,Q===M$?void 0:M$].filter((W)=>!!W)});$.common.issues.push(J)}class t{constructor(){this.value="valid"}dirty(){if(this.value==="valid")this.value="dirty"}abort(){if(this.value!=="aborted")this.value="aborted"}static mergeArray($,q){let Q=[];for(let J of q){if(J.status==="aborted")return b;if(J.status==="dirty")$.dirty();Q.push(J.value)}return{status:$.value,value:Q}}static async mergeObjectAsync($,q){let Q=[];for(let J of q){let W=await J.key,X=await J.value;Q.push({key:W,value:X})}return t.mergeObjectSync($,Q)}static mergeObjectSync($,q){let Q={};for(let J of q){let{key:W,value:X}=J;if(W.status==="aborted")return b;if(X.status==="aborted")return b;if(W.status==="dirty")$.dirty();if(X.status==="dirty")$.dirty();if(W.value!=="__proto__"&&(typeof X.value<"u"||J.alwaysSet))Q[W.value]=X.value}return{status:$.value,value:Q}}}var b=Object.freeze({status:"aborted"}),u$=($)=>({status:"dirty",value:$}),J$=($)=>({status:"valid",value:$}),T0=($)=>$.status==="aborted",h0=($)=>$.status==="dirty",P$=($)=>$.status==="valid",H1=($)=>typeof Promise<"u"&&$ instanceof Promise;var K;(function($){$.errToObj=(q)=>typeof q==="string"?{message:q}:q||{},$.toString=(q)=>typeof q==="string"?q:q?.message})(K||(K={}));class L${constructor($,q,Q,J){this._cachedPath=[],this.parent=$,this.data=q,this._path=Q,this._key=J}get path(){if(!this._cachedPath.length)if(Array.isArray(this._key))this._cachedPath.push(...this._path,...this._key);else this._cachedPath.push(...this._path,this._key);return this._cachedPath}}var zQ=($,q)=>{if(P$(q))return{success:!0,data:q.value};else{if(!$.common.issues.length)throw Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let Q=new H$($.common.issues);return this._error=Q,this._error}}}};function T($){if(!$)return{};let{errorMap:q,invalid_type_error:Q,required_error:J,description:W}=$;if(q&&(Q||J))throw Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);if(q)return{errorMap:q,description:W};return{errorMap:(H,Y)=>{let{message:G}=$;if(H.code==="invalid_enum_value")return{message:G??Y.defaultError};if(typeof Y.data>"u")return{message:G??J??Y.defaultError};if(H.code!=="invalid_type")return{message:Y.defaultError};return{message:G??Q??Y.defaultError}},description:W}}class h{get description(){return this._def.description}_getType($){return A$($.data)}_getOrReturnCtx($,q){return q||{common:$.parent.common,data:$.data,parsedType:A$($.data),schemaErrorMap:this._def.errorMap,path:$.path,parent:$.parent}}_processInputParams($){return{status:new t,ctx:{common:$.parent.common,data:$.data,parsedType:A$($.data),schemaErrorMap:this._def.errorMap,path:$.path,parent:$.parent}}}_parseSync($){let q=this._parse($);if(H1(q))throw Error("Synchronous parse encountered promise.");return q}_parseAsync($){let q=this._parse($);return Promise.resolve(q)}parse($,q){let Q=this.safeParse($,q);if(Q.success)return Q.data;throw Q.error}safeParse($,q){let Q={common:{issues:[],async:q?.async??!1,contextualErrorMap:q?.errorMap},path:q?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:$,parsedType:A$($)},J=this._parseSync({data:$,path:Q.path,parent:Q});return zQ(Q,J)}"~validate"($){let q={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:$,parsedType:A$($)};if(!this["~standard"].async)try{let Q=this._parseSync({data:$,path:[],parent:q});return P$(Q)?{value:Q.value}:{issues:q.common.issues}}catch(Q){if(Q?.message?.toLowerCase()?.includes("encountered"))this["~standard"].async=!0;q.common={issues:[],async:!0}}return this._parseAsync({data:$,path:[],parent:q}).then((Q)=>P$(Q)?{value:Q.value}:{issues:q.common.issues})}async parseAsync($,q){let Q=await this.safeParseAsync($,q);if(Q.success)return Q.data;throw Q.error}async safeParseAsync($,q){let Q={common:{issues:[],contextualErrorMap:q?.errorMap,async:!0},path:q?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:$,parsedType:A$($)},J=this._parse({data:$,path:Q.path,parent:Q}),W=await(H1(J)?J:Promise.resolve(J));return zQ(Q,W)}refine($,q){let Q=(J)=>{if(typeof q==="string"||typeof q>"u")return{message:q};else if(typeof q==="function")return q(J);else return q};return this._refinement((J,W)=>{let X=$(J),H=()=>W.addIssue({code:U.custom,...Q(J)});if(typeof Promise<"u"&&X instanceof Promise)return X.then((Y)=>{if(!Y)return H(),!1;else return!0});if(!X)return H(),!1;else return!0})}refinement($,q){return this._refinement((Q,J)=>{if(!$(Q))return J.addIssue(typeof q==="function"?q(Q,J):q),!1;else return!0})}_refinement($){return new j$({schema:this,typeName:P.ZodEffects,effect:{type:"refinement",refinement:$}})}superRefine($){return this._refinement($)}constructor($){this.spa=this.safeParseAsync,this._def=$,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:(q)=>this["~validate"](q)}}optional(){return z$.create(this,this._def)}nullable(){return k$.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return U$.create(this)}promise(){return p$.create(this,this._def)}or($){return F1.create([this,$],this._def)}and($){return _1.create(this,$,this._def)}transform($){return new j$({...T(this._def),schema:this,typeName:P.ZodEffects,effect:{type:"transform",transform:$}})}default($){let q=typeof $==="function"?$:()=>$;return new L1({...T(this._def),innerType:this,defaultValue:q,typeName:P.ZodDefault})}brand(){return new g0({typeName:P.ZodBranded,type:this,...T(this._def)})}catch($){let q=typeof $==="function"?$:()=>$;return new j1({...T(this._def),innerType:this,catchValue:q,typeName:P.ZodCatch})}describe($){return new this.constructor({...this._def,description:$})}pipe($){return d1.create(this,$)}readonly(){return N1.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}var vX=/^c[^\s-]{8,}$/i,gX=/^[0-9a-z]+$/,mX=/^[0-9A-HJKMNP-TV-Z]{26}$/i,yX=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,lX=/^[a-z0-9_-]{21}$/i,uX=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,cX=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,dX=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,nX="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",u6,pX=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,iX=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,oX=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,sX=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,rX=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,aX=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,jQ="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",tX=new RegExp(`^${jQ}$`);function NQ($){let q="[0-5]\\d";if($.precision)q=`${q}\\.\\d{${$.precision}}`;else if($.precision==null)q=`${q}(\\.\\d+)?`;let Q=$.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${q})${Q}`}function eX($){return new RegExp(`^${NQ($)}$`)}function RQ($){let q=`${jQ}T${NQ($)}`,Q=[];if(Q.push($.local?"Z?":"Z"),$.offset)Q.push("([+-]\\d{2}:?\\d{2})");return q=`${q}(${Q.join("|")})`,new RegExp(`^${q}$`)}function $H($,q){if((q==="v4"||!q)&&pX.test($))return!0;if((q==="v6"||!q)&&oX.test($))return!0;return!1}function qH($,q){if(!uX.test($))return!1;try{let[Q]=$.split(".");if(!Q)return!1;let J=Q.replace(/-/g,"+").replace(/_/g,"/").padEnd(Q.length+(4-Q.length%4)%4,"="),W=JSON.parse(atob(J));if(typeof W!=="object"||W===null)return!1;if("typ"in W&&W?.typ!=="JWT")return!1;if(!W.alg)return!1;if(q&&W.alg!==q)return!1;return!0}catch{return!1}}function QH($,q){if((q==="v4"||!q)&&iX.test($))return!0;if((q==="v6"||!q)&&sX.test($))return!0;return!1}class D$ extends h{_parse($){if(this._def.coerce)$.data=String($.data);if(this._getType($)!==L.string){let W=this._getOrReturnCtx($);return R(W,{code:U.invalid_type,expected:L.string,received:W.parsedType}),b}let Q=new t,J=void 0;for(let W of this._def.checks)if(W.kind==="min"){if($.data.length<W.value)J=this._getOrReturnCtx($,J),R(J,{code:U.too_small,minimum:W.value,type:"string",inclusive:!0,exact:!1,message:W.message}),Q.dirty()}else if(W.kind==="max"){if($.data.length>W.value)J=this._getOrReturnCtx($,J),R(J,{code:U.too_big,maximum:W.value,type:"string",inclusive:!0,exact:!1,message:W.message}),Q.dirty()}else if(W.kind==="length"){let X=$.data.length>W.value,H=$.data.length<W.value;if(X||H){if(J=this._getOrReturnCtx($,J),X)R(J,{code:U.too_big,maximum:W.value,type:"string",inclusive:!0,exact:!0,message:W.message});else if(H)R(J,{code:U.too_small,minimum:W.value,type:"string",inclusive:!0,exact:!0,message:W.message});Q.dirty()}}else if(W.kind==="email"){if(!dX.test($.data))J=this._getOrReturnCtx($,J),R(J,{validation:"email",code:U.invalid_string,message:W.message}),Q.dirty()}else if(W.kind==="emoji"){if(!u6)u6=new RegExp(nX,"u");if(!u6.test($.data))J=this._getOrReturnCtx($,J),R(J,{validation:"emoji",code:U.invalid_string,message:W.message}),Q.dirty()}else if(W.kind==="uuid"){if(!yX.test($.data))J=this._getOrReturnCtx($,J),R(J,{validation:"uuid",code:U.invalid_string,message:W.message}),Q.dirty()}else if(W.kind==="nanoid"){if(!lX.test($.data))J=this._getOrReturnCtx($,J),R(J,{validation:"nanoid",code:U.invalid_string,message:W.message}),Q.dirty()}else if(W.kind==="cuid"){if(!vX.test($.data))J=this._getOrReturnCtx($,J),R(J,{validation:"cuid",code:U.invalid_string,message:W.message}),Q.dirty()}else if(W.kind==="cuid2"){if(!gX.test($.data))J=this._getOrReturnCtx($,J),R(J,{validation:"cuid2",code:U.invalid_string,message:W.message}),Q.dirty()}else if(W.kind==="ulid"){if(!mX.test($.data))J=this._getOrReturnCtx($,J),R(J,{validation:"ulid",code:U.invalid_string,message:W.message}),Q.dirty()}else if(W.kind==="url")try{new URL($.data)}catch{J=this._getOrReturnCtx($,J),R(J,{validation:"url",code:U.invalid_string,message:W.message}),Q.dirty()}else if(W.kind==="regex"){if(W.regex.lastIndex=0,!W.regex.test($.data))J=this._getOrReturnCtx($,J),R(J,{validation:"regex",code:U.invalid_string,message:W.message}),Q.dirty()}else if(W.kind==="trim")$.data=$.data.trim();else if(W.kind==="includes"){if(!$.data.includes(W.value,W.position))J=this._getOrReturnCtx($,J),R(J,{code:U.invalid_string,validation:{includes:W.value,position:W.position},message:W.message}),Q.dirty()}else if(W.kind==="toLowerCase")$.data=$.data.toLowerCase();else if(W.kind==="toUpperCase")$.data=$.data.toUpperCase();else if(W.kind==="startsWith"){if(!$.data.startsWith(W.value))J=this._getOrReturnCtx($,J),R(J,{code:U.invalid_string,validation:{startsWith:W.value},message:W.message}),Q.dirty()}else if(W.kind==="endsWith"){if(!$.data.endsWith(W.value))J=this._getOrReturnCtx($,J),R(J,{code:U.invalid_string,validation:{endsWith:W.value},message:W.message}),Q.dirty()}else if(W.kind==="datetime"){if(!RQ(W).test($.data))J=this._getOrReturnCtx($,J),R(J,{code:U.invalid_string,validation:"datetime",message:W.message}),Q.dirty()}else if(W.kind==="date"){if(!tX.test($.data))J=this._getOrReturnCtx($,J),R(J,{code:U.invalid_string,validation:"date",message:W.message}),Q.dirty()}else if(W.kind==="time"){if(!eX(W).test($.data))J=this._getOrReturnCtx($,J),R(J,{code:U.invalid_string,validation:"time",message:W.message}),Q.dirty()}else if(W.kind==="duration"){if(!cX.test($.data))J=this._getOrReturnCtx($,J),R(J,{validation:"duration",code:U.invalid_string,message:W.message}),Q.dirty()}else if(W.kind==="ip"){if(!$H($.data,W.version))J=this._getOrReturnCtx($,J),R(J,{validation:"ip",code:U.invalid_string,message:W.message}),Q.dirty()}else if(W.kind==="jwt"){if(!qH($.data,W.alg))J=this._getOrReturnCtx($,J),R(J,{validation:"jwt",code:U.invalid_string,message:W.message}),Q.dirty()}else if(W.kind==="cidr"){if(!QH($.data,W.version))J=this._getOrReturnCtx($,J),R(J,{validation:"cidr",code:U.invalid_string,message:W.message}),Q.dirty()}else if(W.kind==="base64"){if(!rX.test($.data))J=this._getOrReturnCtx($,J),R(J,{validation:"base64",code:U.invalid_string,message:W.message}),Q.dirty()}else if(W.kind==="base64url"){if(!aX.test($.data))J=this._getOrReturnCtx($,J),R(J,{validation:"base64url",code:U.invalid_string,message:W.message}),Q.dirty()}else g.assertNever(W);return{status:Q.value,value:$.data}}_regex($,q,Q){return this.refinement((J)=>$.test(J),{validation:q,code:U.invalid_string,...K.errToObj(Q)})}_addCheck($){return new D$({...this._def,checks:[...this._def.checks,$]})}email($){return this._addCheck({kind:"email",...K.errToObj($)})}url($){return this._addCheck({kind:"url",...K.errToObj($)})}emoji($){return this._addCheck({kind:"emoji",...K.errToObj($)})}uuid($){return this._addCheck({kind:"uuid",...K.errToObj($)})}nanoid($){return this._addCheck({kind:"nanoid",...K.errToObj($)})}cuid($){return this._addCheck({kind:"cuid",...K.errToObj($)})}cuid2($){return this._addCheck({kind:"cuid2",...K.errToObj($)})}ulid($){return this._addCheck({kind:"ulid",...K.errToObj($)})}base64($){return this._addCheck({kind:"base64",...K.errToObj($)})}base64url($){return this._addCheck({kind:"base64url",...K.errToObj($)})}jwt($){return this._addCheck({kind:"jwt",...K.errToObj($)})}ip($){return this._addCheck({kind:"ip",...K.errToObj($)})}cidr($){return this._addCheck({kind:"cidr",...K.errToObj($)})}datetime($){if(typeof $==="string")return this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:$});return this._addCheck({kind:"datetime",precision:typeof $?.precision>"u"?null:$?.precision,offset:$?.offset??!1,local:$?.local??!1,...K.errToObj($?.message)})}date($){return this._addCheck({kind:"date",message:$})}time($){if(typeof $==="string")return this._addCheck({kind:"time",precision:null,message:$});return this._addCheck({kind:"time",precision:typeof $?.precision>"u"?null:$?.precision,...K.errToObj($?.message)})}duration($){return this._addCheck({kind:"duration",...K.errToObj($)})}regex($,q){return this._addCheck({kind:"regex",regex:$,...K.errToObj(q)})}includes($,q){return this._addCheck({kind:"includes",value:$,position:q?.position,...K.errToObj(q?.message)})}startsWith($,q){return this._addCheck({kind:"startsWith",value:$,...K.errToObj(q)})}endsWith($,q){return this._addCheck({kind:"endsWith",value:$,...K.errToObj(q)})}min($,q){return this._addCheck({kind:"min",value:$,...K.errToObj(q)})}max($,q){return this._addCheck({kind:"max",value:$,...K.errToObj(q)})}length($,q){return this._addCheck({kind:"length",value:$,...K.errToObj(q)})}nonempty($){return this.min(1,K.errToObj($))}trim(){return new D$({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new D$({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new D$({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(($)=>$.kind==="datetime")}get isDate(){return!!this._def.checks.find(($)=>$.kind==="date")}get isTime(){return!!this._def.checks.find(($)=>$.kind==="time")}get isDuration(){return!!this._def.checks.find(($)=>$.kind==="duration")}get isEmail(){return!!this._def.checks.find(($)=>$.kind==="email")}get isURL(){return!!this._def.checks.find(($)=>$.kind==="url")}get isEmoji(){return!!this._def.checks.find(($)=>$.kind==="emoji")}get isUUID(){return!!this._def.checks.find(($)=>$.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(($)=>$.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(($)=>$.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(($)=>$.kind==="cuid2")}get isULID(){return!!this._def.checks.find(($)=>$.kind==="ulid")}get isIP(){return!!this._def.checks.find(($)=>$.kind==="ip")}get isCIDR(){return!!this._def.checks.find(($)=>$.kind==="cidr")}get isBase64(){return!!this._def.checks.find(($)=>$.kind==="base64")}get isBase64url(){return!!this._def.checks.find(($)=>$.kind==="base64url")}get minLength(){let $=null;for(let q of this._def.checks)if(q.kind==="min"){if($===null||q.value>$)$=q.value}return $}get maxLength(){let $=null;for(let q of this._def.checks)if(q.kind==="max"){if($===null||q.value<$)$=q.value}return $}}D$.create=($)=>{return new D$({checks:[],typeName:P.ZodString,coerce:$?.coerce??!1,...T($)})};function JH($,q){let Q=($.toString().split(".")[1]||"").length,J=(q.toString().split(".")[1]||"").length,W=Q>J?Q:J,X=Number.parseInt($.toFixed(W).replace(".","")),H=Number.parseInt(q.toFixed(W).replace(".",""));return X%H/10**W}class f$ extends h{constructor(){super(...arguments);this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse($){if(this._def.coerce)$.data=Number($.data);if(this._getType($)!==L.number){let W=this._getOrReturnCtx($);return R(W,{code:U.invalid_type,expected:L.number,received:W.parsedType}),b}let Q=void 0,J=new t;for(let W of this._def.checks)if(W.kind==="int"){if(!g.isInteger($.data))Q=this._getOrReturnCtx($,Q),R(Q,{code:U.invalid_type,expected:"integer",received:"float",message:W.message}),J.dirty()}else if(W.kind==="min"){if(W.inclusive?$.data<W.value:$.data<=W.value)Q=this._getOrReturnCtx($,Q),R(Q,{code:U.too_small,minimum:W.value,type:"number",inclusive:W.inclusive,exact:!1,message:W.message}),J.dirty()}else if(W.kind==="max"){if(W.inclusive?$.data>W.value:$.data>=W.value)Q=this._getOrReturnCtx($,Q),R(Q,{code:U.too_big,maximum:W.value,type:"number",inclusive:W.inclusive,exact:!1,message:W.message}),J.dirty()}else if(W.kind==="multipleOf"){if(JH($.data,W.value)!==0)Q=this._getOrReturnCtx($,Q),R(Q,{code:U.not_multiple_of,multipleOf:W.value,message:W.message}),J.dirty()}else if(W.kind==="finite"){if(!Number.isFinite($.data))Q=this._getOrReturnCtx($,Q),R(Q,{code:U.not_finite,message:W.message}),J.dirty()}else g.assertNever(W);return{status:J.value,value:$.data}}gte($,q){return this.setLimit("min",$,!0,K.toString(q))}gt($,q){return this.setLimit("min",$,!1,K.toString(q))}lte($,q){return this.setLimit("max",$,!0,K.toString(q))}lt($,q){return this.setLimit("max",$,!1,K.toString(q))}setLimit($,q,Q,J){return new f$({...this._def,checks:[...this._def.checks,{kind:$,value:q,inclusive:Q,message:K.toString(J)}]})}_addCheck($){return new f$({...this._def,checks:[...this._def.checks,$]})}int($){return this._addCheck({kind:"int",message:K.toString($)})}positive($){return this._addCheck({kind:"min",value:0,inclusive:!1,message:K.toString($)})}negative($){return this._addCheck({kind:"max",value:0,inclusive:!1,message:K.toString($)})}nonpositive($){return this._addCheck({kind:"max",value:0,inclusive:!0,message:K.toString($)})}nonnegative($){return this._addCheck({kind:"min",value:0,inclusive:!0,message:K.toString($)})}multipleOf($,q){return this._addCheck({kind:"multipleOf",value:$,message:K.toString(q)})}finite($){return this._addCheck({kind:"finite",message:K.toString($)})}safe($){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:K.toString($)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:K.toString($)})}get minValue(){let $=null;for(let q of this._def.checks)if(q.kind==="min"){if($===null||q.value>$)$=q.value}return $}get maxValue(){let $=null;for(let q of this._def.checks)if(q.kind==="max"){if($===null||q.value<$)$=q.value}return $}get isInt(){return!!this._def.checks.find(($)=>$.kind==="int"||$.kind==="multipleOf"&&g.isInteger($.value))}get isFinite(){let $=null,q=null;for(let Q of this._def.checks)if(Q.kind==="finite"||Q.kind==="int"||Q.kind==="multipleOf")return!0;else if(Q.kind==="min"){if(q===null||Q.value>q)q=Q.value}else if(Q.kind==="max"){if($===null||Q.value<$)$=Q.value}return Number.isFinite(q)&&Number.isFinite($)}}f$.create=($)=>{return new f$({checks:[],typeName:P.ZodNumber,coerce:$?.coerce||!1,...T($)})};class x$ extends h{constructor(){super(...arguments);this.min=this.gte,this.max=this.lte}_parse($){if(this._def.coerce)try{$.data=BigInt($.data)}catch{return this._getInvalidInput($)}if(this._getType($)!==L.bigint)return this._getInvalidInput($);let Q=void 0,J=new t;for(let W of this._def.checks)if(W.kind==="min"){if(W.inclusive?$.data<W.value:$.data<=W.value)Q=this._getOrReturnCtx($,Q),R(Q,{code:U.too_small,type:"bigint",minimum:W.value,inclusive:W.inclusive,message:W.message}),J.dirty()}else if(W.kind==="max"){if(W.inclusive?$.data>W.value:$.data>=W.value)Q=this._getOrReturnCtx($,Q),R(Q,{code:U.too_big,type:"bigint",maximum:W.value,inclusive:W.inclusive,message:W.message}),J.dirty()}else if(W.kind==="multipleOf"){if($.data%W.value!==BigInt(0))Q=this._getOrReturnCtx($,Q),R(Q,{code:U.not_multiple_of,multipleOf:W.value,message:W.message}),J.dirty()}else g.assertNever(W);return{status:J.value,value:$.data}}_getInvalidInput($){let q=this._getOrReturnCtx($);return R(q,{code:U.invalid_type,expected:L.bigint,received:q.parsedType}),b}gte($,q){return this.setLimit("min",$,!0,K.toString(q))}gt($,q){return this.setLimit("min",$,!1,K.toString(q))}lte($,q){return this.setLimit("max",$,!0,K.toString(q))}lt($,q){return this.setLimit("max",$,!1,K.toString(q))}setLimit($,q,Q,J){return new x$({...this._def,checks:[...this._def.checks,{kind:$,value:q,inclusive:Q,message:K.toString(J)}]})}_addCheck($){return new x$({...this._def,checks:[...this._def.checks,$]})}positive($){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:K.toString($)})}negative($){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:K.toString($)})}nonpositive($){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:K.toString($)})}nonnegative($){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:K.toString($)})}multipleOf($,q){return this._addCheck({kind:"multipleOf",value:$,message:K.toString(q)})}get minValue(){let $=null;for(let q of this._def.checks)if(q.kind==="min"){if($===null||q.value>$)$=q.value}return $}get maxValue(){let $=null;for(let q of this._def.checks)if(q.kind==="max"){if($===null||q.value<$)$=q.value}return $}}x$.create=($)=>{return new x$({checks:[],typeName:P.ZodBigInt,coerce:$?.coerce??!1,...T($)})};class w1 extends h{_parse($){if(this._def.coerce)$.data=Boolean($.data);if(this._getType($)!==L.boolean){let Q=this._getOrReturnCtx($);return R(Q,{code:U.invalid_type,expected:L.boolean,received:Q.parsedType}),b}return J$($.data)}}w1.create=($)=>{return new w1({typeName:P.ZodBoolean,coerce:$?.coerce||!1,...T($)})};class c$ extends h{_parse($){if(this._def.coerce)$.data=new Date($.data);if(this._getType($)!==L.date){let W=this._getOrReturnCtx($);return R(W,{code:U.invalid_type,expected:L.date,received:W.parsedType}),b}if(Number.isNaN($.data.getTime())){let W=this._getOrReturnCtx($);return R(W,{code:U.invalid_date}),b}let Q=new t,J=void 0;for(let W of this._def.checks)if(W.kind==="min"){if($.data.getTime()<W.value)J=this._getOrReturnCtx($,J),R(J,{code:U.too_small,message:W.message,inclusive:!0,exact:!1,minimum:W.value,type:"date"}),Q.dirty()}else if(W.kind==="max"){if($.data.getTime()>W.value)J=this._getOrReturnCtx($,J),R(J,{code:U.too_big,message:W.message,inclusive:!0,exact:!1,maximum:W.value,type:"date"}),Q.dirty()}else g.assertNever(W);return{status:Q.value,value:new Date($.data.getTime())}}_addCheck($){return new c$({...this._def,checks:[...this._def.checks,$]})}min($,q){return this._addCheck({kind:"min",value:$.getTime(),message:K.toString(q)})}max($,q){return this._addCheck({kind:"max",value:$.getTime(),message:K.toString(q)})}get minDate(){let $=null;for(let q of this._def.checks)if(q.kind==="min"){if($===null||q.value>$)$=q.value}return $!=null?new Date($):null}get maxDate(){let $=null;for(let q of this._def.checks)if(q.kind==="max"){if($===null||q.value<$)$=q.value}return $!=null?new Date($):null}}c$.create=($)=>{return new c$({checks:[],coerce:$?.coerce||!1,typeName:P.ZodDate,...T($)})};class m1 extends h{_parse($){if(this._getType($)!==L.symbol){let Q=this._getOrReturnCtx($);return R(Q,{code:U.invalid_type,expected:L.symbol,received:Q.parsedType}),b}return J$($.data)}}m1.create=($)=>{return new m1({typeName:P.ZodSymbol,...T($)})};class B1 extends h{_parse($){if(this._getType($)!==L.undefined){let Q=this._getOrReturnCtx($);return R(Q,{code:U.invalid_type,expected:L.undefined,received:Q.parsedType}),b}return J$($.data)}}B1.create=($)=>{return new B1({typeName:P.ZodUndefined,...T($)})};class V1 extends h{_parse($){if(this._getType($)!==L.null){let Q=this._getOrReturnCtx($);return R(Q,{code:U.invalid_type,expected:L.null,received:Q.parsedType}),b}return J$($.data)}}V1.create=($)=>{return new V1({typeName:P.ZodNull,...T($)})};class d$ extends h{constructor(){super(...arguments);this._any=!0}_parse($){return J$($.data)}}d$.create=($)=>{return new d$({typeName:P.ZodAny,...T($)})};class Z$ extends h{constructor(){super(...arguments);this._unknown=!0}_parse($){return J$($.data)}}Z$.create=($)=>{return new Z$({typeName:P.ZodUnknown,...T($)})};class C$ extends h{_parse($){let q=this._getOrReturnCtx($);return R(q,{code:U.invalid_type,expected:L.never,received:q.parsedType}),b}}C$.create=($)=>{return new C$({typeName:P.ZodNever,...T($)})};class y1 extends h{_parse($){if(this._getType($)!==L.undefined){let Q=this._getOrReturnCtx($);return R(Q,{code:U.invalid_type,expected:L.void,received:Q.parsedType}),b}return J$($.data)}}y1.create=($)=>{return new y1({typeName:P.ZodVoid,...T($)})};class U$ extends h{_parse($){let{ctx:q,status:Q}=this._processInputParams($),J=this._def;if(q.parsedType!==L.array)return R(q,{code:U.invalid_type,expected:L.array,received:q.parsedType}),b;if(J.exactLength!==null){let X=q.data.length>J.exactLength.value,H=q.data.length<J.exactLength.value;if(X||H)R(q,{code:X?U.too_big:U.too_small,minimum:H?J.exactLength.value:void 0,maximum:X?J.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:J.exactLength.message}),Q.dirty()}if(J.minLength!==null){if(q.data.length<J.minLength.value)R(q,{code:U.too_small,minimum:J.minLength.value,type:"array",inclusive:!0,exact:!1,message:J.minLength.message}),Q.dirty()}if(J.maxLength!==null){if(q.data.length>J.maxLength.value)R(q,{code:U.too_big,maximum:J.maxLength.value,type:"array",inclusive:!0,exact:!1,message:J.maxLength.message}),Q.dirty()}if(q.common.async)return Promise.all([...q.data].map((X,H)=>{return J.type._parseAsync(new L$(q,X,q.path,H))})).then((X)=>{return t.mergeArray(Q,X)});let W=[...q.data].map((X,H)=>{return J.type._parseSync(new L$(q,X,q.path,H))});return t.mergeArray(Q,W)}get element(){return this._def.type}min($,q){return new U$({...this._def,minLength:{value:$,message:K.toString(q)}})}max($,q){return new U$({...this._def,maxLength:{value:$,message:K.toString(q)}})}length($,q){return new U$({...this._def,exactLength:{value:$,message:K.toString(q)}})}nonempty($){return this.min(1,$)}}U$.create=($,q)=>{return new U$({type:$,minLength:null,maxLength:null,exactLength:null,typeName:P.ZodArray,...T(q)})};function Y1($){if($ instanceof n){let q={};for(let Q in $.shape){let J=$.shape[Q];q[Q]=z$.create(Y1(J))}return new n({...$._def,shape:()=>q})}else if($ instanceof U$)return new U$({...$._def,type:Y1($.element)});else if($ instanceof z$)return z$.create(Y1($.unwrap()));else if($ instanceof k$)return k$.create(Y1($.unwrap()));else if($ instanceof O$)return O$.create($.items.map((q)=>Y1(q)));else return $}class n extends h{constructor(){super(...arguments);this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let $=this._def.shape(),q=g.objectKeys($);return this._cached={shape:$,keys:q},this._cached}_parse($){if(this._getType($)!==L.object){let G=this._getOrReturnCtx($);return R(G,{code:U.invalid_type,expected:L.object,received:G.parsedType}),b}let{status:Q,ctx:J}=this._processInputParams($),{shape:W,keys:X}=this._getCached(),H=[];if(!(this._def.catchall instanceof C$&&this._def.unknownKeys==="strip")){for(let G in J.data)if(!X.includes(G))H.push(G)}let Y=[];for(let G of X){let V=W[G],D=J.data[G];Y.push({key:{status:"valid",value:G},value:V._parse(new L$(J,D,J.path,G)),alwaysSet:G in J.data})}if(this._def.catchall instanceof C$){let G=this._def.unknownKeys;if(G==="passthrough")for(let V of H)Y.push({key:{status:"valid",value:V},value:{status:"valid",value:J.data[V]}});else if(G==="strict"){if(H.length>0)R(J,{code:U.unrecognized_keys,keys:H}),Q.dirty()}else if(G==="strip");else throw Error("Internal ZodObject error: invalid unknownKeys value.")}else{let G=this._def.catchall;for(let V of H){let D=J.data[V];Y.push({key:{status:"valid",value:V},value:G._parse(new L$(J,D,J.path,V)),alwaysSet:V in J.data})}}if(J.common.async)return Promise.resolve().then(async()=>{let G=[];for(let V of Y){let D=await V.key,z=await V.value;G.push({key:D,value:z,alwaysSet:V.alwaysSet})}return G}).then((G)=>{return t.mergeObjectSync(Q,G)});else return t.mergeObjectSync(Q,Y)}get shape(){return this._def.shape()}strict($){return K.errToObj,new n({...this._def,unknownKeys:"strict",...$!==void 0?{errorMap:(q,Q)=>{let J=this._def.errorMap?.(q,Q).message??Q.defaultError;if(q.code==="unrecognized_keys")return{message:K.errToObj($).message??J};return{message:J}}}:{}})}strip(){return new n({...this._def,unknownKeys:"strip"})}passthrough(){return new n({...this._def,unknownKeys:"passthrough"})}extend($){return new n({...this._def,shape:()=>({...this._def.shape(),...$})})}merge($){return new n({unknownKeys:$._def.unknownKeys,catchall:$._def.catchall,shape:()=>({...this._def.shape(),...$._def.shape()}),typeName:P.ZodObject})}setKey($,q){return this.augment({[$]:q})}catchall($){return new n({...this._def,catchall:$})}pick($){let q={};for(let Q of g.objectKeys($))if($[Q]&&this.shape[Q])q[Q]=this.shape[Q];return new n({...this._def,shape:()=>q})}omit($){let q={};for(let Q of g.objectKeys(this.shape))if(!$[Q])q[Q]=this.shape[Q];return new n({...this._def,shape:()=>q})}deepPartial(){return Y1(this)}partial($){let q={};for(let Q of g.objectKeys(this.shape)){let J=this.shape[Q];if($&&!$[Q])q[Q]=J;else q[Q]=J.optional()}return new n({...this._def,shape:()=>q})}required($){let q={};for(let Q of g.objectKeys(this.shape))if($&&!$[Q])q[Q]=this.shape[Q];else{let W=this.shape[Q];while(W instanceof z$)W=W._def.innerType;q[Q]=W}return new n({...this._def,shape:()=>q})}keyof(){return EQ(g.objectKeys(this.shape))}}n.create=($,q)=>{return new n({shape:()=>$,unknownKeys:"strip",catchall:C$.create(),typeName:P.ZodObject,...T(q)})};n.strictCreate=($,q)=>{return new n({shape:()=>$,unknownKeys:"strict",catchall:C$.create(),typeName:P.ZodObject,...T(q)})};n.lazycreate=($,q)=>{return new n({shape:$,unknownKeys:"strip",catchall:C$.create(),typeName:P.ZodObject,...T(q)})};class F1 extends h{_parse($){let{ctx:q}=this._processInputParams($),Q=this._def.options;function J(W){for(let H of W)if(H.result.status==="valid")return H.result;for(let H of W)if(H.result.status==="dirty")return q.common.issues.push(...H.ctx.common.issues),H.result;let X=W.map((H)=>new H$(H.ctx.common.issues));return R(q,{code:U.invalid_union,unionErrors:X}),b}if(q.common.async)return Promise.all(Q.map(async(W)=>{let X={...q,common:{...q.common,issues:[]},parent:null};return{result:await W._parseAsync({data:q.data,path:q.path,parent:X}),ctx:X}})).then(J);else{let W=void 0,X=[];for(let Y of Q){let G={...q,common:{...q.common,issues:[]},parent:null},V=Y._parseSync({data:q.data,path:q.path,parent:G});if(V.status==="valid")return V;else if(V.status==="dirty"&&!W)W={result:V,ctx:G};if(G.common.issues.length)X.push(G.common.issues)}if(W)return q.common.issues.push(...W.ctx.common.issues),W.result;let H=X.map((Y)=>new H$(Y));return R(q,{code:U.invalid_union,unionErrors:H}),b}}get options(){return this._def.options}}F1.create=($,q)=>{return new F1({options:$,typeName:P.ZodUnion,...T(q)})};var K$=($)=>{if($ instanceof D1)return K$($.schema);else if($ instanceof j$)return K$($.innerType());else if($ instanceof U1)return[$.value];else if($ instanceof T$)return $.options;else if($ instanceof z1)return g.objectValues($.enum);else if($ instanceof L1)return K$($._def.innerType);else if($ instanceof B1)return[void 0];else if($ instanceof V1)return[null];else if($ instanceof z$)return[void 0,...K$($.unwrap())];else if($ instanceof k$)return[null,...K$($.unwrap())];else if($ instanceof g0)return K$($.unwrap());else if($ instanceof N1)return K$($.unwrap());else if($ instanceof j1)return K$($._def.innerType);else return[]};class v0 extends h{_parse($){let{ctx:q}=this._processInputParams($);if(q.parsedType!==L.object)return R(q,{code:U.invalid_type,expected:L.object,received:q.parsedType}),b;let Q=this.discriminator,J=q.data[Q],W=this.optionsMap.get(J);if(!W)return R(q,{code:U.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[Q]}),b;if(q.common.async)return W._parseAsync({data:q.data,path:q.path,parent:q});else return W._parseSync({data:q.data,path:q.path,parent:q})}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create($,q,Q){let J=new Map;for(let W of q){let X=K$(W.shape[$]);if(!X.length)throw Error(`A discriminator value for key \`${$}\` could not be extracted from all schema options`);for(let H of X){if(J.has(H))throw Error(`Discriminator property ${String($)} has duplicate value ${String(H)}`);J.set(H,W)}}return new v0({typeName:P.ZodDiscriminatedUnion,discriminator:$,options:q,optionsMap:J,...T(Q)})}}function c6($,q){let Q=A$($),J=A$(q);if($===q)return{valid:!0,data:$};else if(Q===L.object&&J===L.object){let W=g.objectKeys(q),X=g.objectKeys($).filter((Y)=>W.indexOf(Y)!==-1),H={...$,...q};for(let Y of X){let G=c6($[Y],q[Y]);if(!G.valid)return{valid:!1};H[Y]=G.data}return{valid:!0,data:H}}else if(Q===L.array&&J===L.array){if($.length!==q.length)return{valid:!1};let W=[];for(let X=0;X<$.length;X++){let H=$[X],Y=q[X],G=c6(H,Y);if(!G.valid)return{valid:!1};W.push(G.data)}return{valid:!0,data:W}}else if(Q===L.date&&J===L.date&&+$===+q)return{valid:!0,data:$};else return{valid:!1}}class _1 extends h{_parse($){let{status:q,ctx:Q}=this._processInputParams($),J=(W,X)=>{if(T0(W)||T0(X))return b;let H=c6(W.value,X.value);if(!H.valid)return R(Q,{code:U.invalid_intersection_types}),b;if(h0(W)||h0(X))q.dirty();return{status:q.value,value:H.data}};if(Q.common.async)return Promise.all([this._def.left._parseAsync({data:Q.data,path:Q.path,parent:Q}),this._def.right._parseAsync({data:Q.data,path:Q.path,parent:Q})]).then(([W,X])=>J(W,X));else return J(this._def.left._parseSync({data:Q.data,path:Q.path,parent:Q}),this._def.right._parseSync({data:Q.data,path:Q.path,parent:Q}))}}_1.create=($,q,Q)=>{return new _1({left:$,right:q,typeName:P.ZodIntersection,...T(Q)})};class O$ extends h{_parse($){let{status:q,ctx:Q}=this._processInputParams($);if(Q.parsedType!==L.array)return R(Q,{code:U.invalid_type,expected:L.array,received:Q.parsedType}),b;if(Q.data.length<this._def.items.length)return R(Q,{code:U.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),b;if(!this._def.rest&&Q.data.length>this._def.items.length)R(Q,{code:U.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),q.dirty();let W=[...Q.data].map((X,H)=>{let Y=this._def.items[H]||this._def.rest;if(!Y)return null;return Y._parse(new L$(Q,X,Q.path,H))}).filter((X)=>!!X);if(Q.common.async)return Promise.all(W).then((X)=>{return t.mergeArray(q,X)});else return t.mergeArray(q,W)}get items(){return this._def.items}rest($){return new O$({...this._def,rest:$})}}O$.create=($,q)=>{if(!Array.isArray($))throw Error("You must pass an array of schemas to z.tuple([ ... ])");return new O$({items:$,typeName:P.ZodTuple,rest:null,...T(q)})};class l1 extends h{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse($){let{status:q,ctx:Q}=this._processInputParams($);if(Q.parsedType!==L.object)return R(Q,{code:U.invalid_type,expected:L.object,received:Q.parsedType}),b;let J=[],W=this._def.keyType,X=this._def.valueType;for(let H in Q.data)J.push({key:W._parse(new L$(Q,H,Q.path,H)),value:X._parse(new L$(Q,Q.data[H],Q.path,H)),alwaysSet:H in Q.data});if(Q.common.async)return t.mergeObjectAsync(q,J);else return t.mergeObjectSync(q,J)}get element(){return this._def.valueType}static create($,q,Q){if(q instanceof h)return new l1({keyType:$,valueType:q,typeName:P.ZodRecord,...T(Q)});return new l1({keyType:D$.create(),valueType:$,typeName:P.ZodRecord,...T(q)})}}class u1 extends h{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse($){let{status:q,ctx:Q}=this._processInputParams($);if(Q.parsedType!==L.map)return R(Q,{code:U.invalid_type,expected:L.map,received:Q.parsedType}),b;let J=this._def.keyType,W=this._def.valueType,X=[...Q.data.entries()].map(([H,Y],G)=>{return{key:J._parse(new L$(Q,H,Q.path,[G,"key"])),value:W._parse(new L$(Q,Y,Q.path,[G,"value"]))}});if(Q.common.async){let H=new Map;return Promise.resolve().then(async()=>{for(let Y of X){let G=await Y.key,V=await Y.value;if(G.status==="aborted"||V.status==="aborted")return b;if(G.status==="dirty"||V.status==="dirty")q.dirty();H.set(G.value,V.value)}return{status:q.value,value:H}})}else{let H=new Map;for(let Y of X){let{key:G,value:V}=Y;if(G.status==="aborted"||V.status==="aborted")return b;if(G.status==="dirty"||V.status==="dirty")q.dirty();H.set(G.value,V.value)}return{status:q.value,value:H}}}}u1.create=($,q,Q)=>{return new u1({valueType:q,keyType:$,typeName:P.ZodMap,...T(Q)})};class n$ extends h{_parse($){let{status:q,ctx:Q}=this._processInputParams($);if(Q.parsedType!==L.set)return R(Q,{code:U.invalid_type,expected:L.set,received:Q.parsedType}),b;let J=this._def;if(J.minSize!==null){if(Q.data.size<J.minSize.value)R(Q,{code:U.too_small,minimum:J.minSize.value,type:"set",inclusive:!0,exact:!1,message:J.minSize.message}),q.dirty()}if(J.maxSize!==null){if(Q.data.size>J.maxSize.value)R(Q,{code:U.too_big,maximum:J.maxSize.value,type:"set",inclusive:!0,exact:!1,message:J.maxSize.message}),q.dirty()}let W=this._def.valueType;function X(Y){let G=new Set;for(let V of Y){if(V.status==="aborted")return b;if(V.status==="dirty")q.dirty();G.add(V.value)}return{status:q.value,value:G}}let H=[...Q.data.values()].map((Y,G)=>W._parse(new L$(Q,Y,Q.path,G)));if(Q.common.async)return Promise.all(H).then((Y)=>X(Y));else return X(H)}min($,q){return new n$({...this._def,minSize:{value:$,message:K.toString(q)}})}max($,q){return new n$({...this._def,maxSize:{value:$,message:K.toString(q)}})}size($,q){return this.min($,q).max($,q)}nonempty($){return this.min(1,$)}}n$.create=($,q)=>{return new n$({valueType:$,minSize:null,maxSize:null,typeName:P.ZodSet,...T(q)})};class G1 extends h{constructor(){super(...arguments);this.validate=this.implement}_parse($){let{ctx:q}=this._processInputParams($);if(q.parsedType!==L.function)return R(q,{code:U.invalid_type,expected:L.function,received:q.parsedType}),b;function Q(H,Y){return g1({data:H,path:q.path,errorMaps:[q.common.contextualErrorMap,q.schemaErrorMap,X1(),M$].filter((G)=>!!G),issueData:{code:U.invalid_arguments,argumentsError:Y}})}function J(H,Y){return g1({data:H,path:q.path,errorMaps:[q.common.contextualErrorMap,q.schemaErrorMap,X1(),M$].filter((G)=>!!G),issueData:{code:U.invalid_return_type,returnTypeError:Y}})}let W={errorMap:q.common.contextualErrorMap},X=q.data;if(this._def.returns instanceof p$){let H=this;return J$(async function(...Y){let G=new H$([]),V=await H._def.args.parseAsync(Y,W).catch((Z)=>{throw G.addIssue(Q(Y,Z)),G}),D=await Reflect.apply(X,this,V);return await H._def.returns._def.type.parseAsync(D,W).catch((Z)=>{throw G.addIssue(J(D,Z)),G})})}else{let H=this;return J$(function(...Y){let G=H._def.args.safeParse(Y,W);if(!G.success)throw new H$([Q(Y,G.error)]);let V=Reflect.apply(X,this,G.data),D=H._def.returns.safeParse(V,W);if(!D.success)throw new H$([J(V,D.error)]);return D.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...$){return new G1({...this._def,args:O$.create($).rest(Z$.create())})}returns($){return new G1({...this._def,returns:$})}implement($){return this.parse($)}strictImplement($){return this.parse($)}static create($,q,Q){return new G1({args:$?$:O$.create([]).rest(Z$.create()),returns:q||Z$.create(),typeName:P.ZodFunction,...T(Q)})}}class D1 extends h{get schema(){return this._def.getter()}_parse($){let{ctx:q}=this._processInputParams($);return this._def.getter()._parse({data:q.data,path:q.path,parent:q})}}D1.create=($,q)=>{return new D1({getter:$,typeName:P.ZodLazy,...T(q)})};class U1 extends h{_parse($){if($.data!==this._def.value){let q=this._getOrReturnCtx($);return R(q,{received:q.data,code:U.invalid_literal,expected:this._def.value}),b}return{status:"valid",value:$.data}}get value(){return this._def.value}}U1.create=($,q)=>{return new U1({value:$,typeName:P.ZodLiteral,...T(q)})};function EQ($,q){return new T$({values:$,typeName:P.ZodEnum,...T(q)})}class T$ extends h{_parse($){if(typeof $.data!=="string"){let q=this._getOrReturnCtx($),Q=this._def.values;return R(q,{expected:g.joinValues(Q),received:q.parsedType,code:U.invalid_type}),b}if(!this._cache)this._cache=new Set(this._def.values);if(!this._cache.has($.data)){let q=this._getOrReturnCtx($),Q=this._def.values;return R(q,{received:q.data,code:U.invalid_enum_value,options:Q}),b}return J$($.data)}get options(){return this._def.values}get enum(){let $={};for(let q of this._def.values)$[q]=q;return $}get Values(){let $={};for(let q of this._def.values)$[q]=q;return $}get Enum(){let $={};for(let q of this._def.values)$[q]=q;return $}extract($,q=this._def){return T$.create($,{...this._def,...q})}exclude($,q=this._def){return T$.create(this.options.filter((Q)=>!$.includes(Q)),{...this._def,...q})}}T$.create=EQ;class z1 extends h{_parse($){let q=g.getValidEnumValues(this._def.values),Q=this._getOrReturnCtx($);if(Q.parsedType!==L.string&&Q.parsedType!==L.number){let J=g.objectValues(q);return R(Q,{expected:g.joinValues(J),received:Q.parsedType,code:U.invalid_type}),b}if(!this._cache)this._cache=new Set(g.getValidEnumValues(this._def.values));if(!this._cache.has($.data)){let J=g.objectValues(q);return R(Q,{received:Q.data,code:U.invalid_enum_value,options:J}),b}return J$($.data)}get enum(){return this._def.values}}z1.create=($,q)=>{return new z1({values:$,typeName:P.ZodNativeEnum,...T(q)})};class p$ extends h{unwrap(){return this._def.type}_parse($){let{ctx:q}=this._processInputParams($);if(q.parsedType!==L.promise&&q.common.async===!1)return R(q,{code:U.invalid_type,expected:L.promise,received:q.parsedType}),b;let Q=q.parsedType===L.promise?q.data:Promise.resolve(q.data);return J$(Q.then((J)=>{return this._def.type.parseAsync(J,{path:q.path,errorMap:q.common.contextualErrorMap})}))}}p$.create=($,q)=>{return new p$({type:$,typeName:P.ZodPromise,...T(q)})};class j$ extends h{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===P.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse($){let{status:q,ctx:Q}=this._processInputParams($),J=this._def.effect||null,W={addIssue:(X)=>{if(R(Q,X),X.fatal)q.abort();else q.dirty()},get path(){return Q.path}};if(W.addIssue=W.addIssue.bind(W),J.type==="preprocess"){let X=J.transform(Q.data,W);if(Q.common.async)return Promise.resolve(X).then(async(H)=>{if(q.value==="aborted")return b;let Y=await this._def.schema._parseAsync({data:H,path:Q.path,parent:Q});if(Y.status==="aborted")return b;if(Y.status==="dirty")return u$(Y.value);if(q.value==="dirty")return u$(Y.value);return Y});else{if(q.value==="aborted")return b;let H=this._def.schema._parseSync({data:X,path:Q.path,parent:Q});if(H.status==="aborted")return b;if(H.status==="dirty")return u$(H.value);if(q.value==="dirty")return u$(H.value);return H}}if(J.type==="refinement"){let X=(H)=>{let Y=J.refinement(H,W);if(Q.common.async)return Promise.resolve(Y);if(Y instanceof Promise)throw Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return H};if(Q.common.async===!1){let H=this._def.schema._parseSync({data:Q.data,path:Q.path,parent:Q});if(H.status==="aborted")return b;if(H.status==="dirty")q.dirty();return X(H.value),{status:q.value,value:H.value}}else return this._def.schema._parseAsync({data:Q.data,path:Q.path,parent:Q}).then((H)=>{if(H.status==="aborted")return b;if(H.status==="dirty")q.dirty();return X(H.value).then(()=>{return{status:q.value,value:H.value}})})}if(J.type==="transform")if(Q.common.async===!1){let X=this._def.schema._parseSync({data:Q.data,path:Q.path,parent:Q});if(!P$(X))return b;let H=J.transform(X.value,W);if(H instanceof Promise)throw Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:q.value,value:H}}else return this._def.schema._parseAsync({data:Q.data,path:Q.path,parent:Q}).then((X)=>{if(!P$(X))return b;return Promise.resolve(J.transform(X.value,W)).then((H)=>({status:q.value,value:H}))});g.assertNever(J)}}j$.create=($,q,Q)=>{return new j$({schema:$,typeName:P.ZodEffects,effect:q,...T(Q)})};j$.createWithPreprocess=($,q,Q)=>{return new j$({schema:q,effect:{type:"preprocess",transform:$},typeName:P.ZodEffects,...T(Q)})};class z$ extends h{_parse($){if(this._getType($)===L.undefined)return J$(void 0);return this._def.innerType._parse($)}unwrap(){return this._def.innerType}}z$.create=($,q)=>{return new z$({innerType:$,typeName:P.ZodOptional,...T(q)})};class k$ extends h{_parse($){if(this._getType($)===L.null)return J$(null);return this._def.innerType._parse($)}unwrap(){return this._def.innerType}}k$.create=($,q)=>{return new k$({innerType:$,typeName:P.ZodNullable,...T(q)})};class L1 extends h{_parse($){let{ctx:q}=this._processInputParams($),Q=q.data;if(q.parsedType===L.undefined)Q=this._def.defaultValue();return this._def.innerType._parse({data:Q,path:q.path,parent:q})}removeDefault(){return this._def.innerType}}L1.create=($,q)=>{return new L1({innerType:$,typeName:P.ZodDefault,defaultValue:typeof q.default==="function"?q.default:()=>q.default,...T(q)})};class j1 extends h{_parse($){let{ctx:q}=this._processInputParams($),Q={...q,common:{...q.common,issues:[]}},J=this._def.innerType._parse({data:Q.data,path:Q.path,parent:{...Q}});if(H1(J))return J.then((W)=>{return{status:"valid",value:W.status==="valid"?W.value:this._def.catchValue({get error(){return new H$(Q.common.issues)},input:Q.data})}});else return{status:"valid",value:J.status==="valid"?J.value:this._def.catchValue({get error(){return new H$(Q.common.issues)},input:Q.data})}}removeCatch(){return this._def.innerType}}j1.create=($,q)=>{return new j1({innerType:$,typeName:P.ZodCatch,catchValue:typeof q.catch==="function"?q.catch:()=>q.catch,...T(q)})};class c1 extends h{_parse($){if(this._getType($)!==L.nan){let Q=this._getOrReturnCtx($);return R(Q,{code:U.invalid_type,expected:L.nan,received:Q.parsedType}),b}return{status:"valid",value:$.data}}}c1.create=($)=>{return new c1({typeName:P.ZodNaN,...T($)})};var WH=Symbol("zod_brand");class g0 extends h{_parse($){let{ctx:q}=this._processInputParams($),Q=q.data;return this._def.type._parse({data:Q,path:q.path,parent:q})}unwrap(){return this._def.type}}class d1 extends h{_parse($){let{status:q,ctx:Q}=this._processInputParams($);if(Q.common.async)return(async()=>{let W=await this._def.in._parseAsync({data:Q.data,path:Q.path,parent:Q});if(W.status==="aborted")return b;if(W.status==="dirty")return q.dirty(),u$(W.value);else return this._def.out._parseAsync({data:W.value,path:Q.path,parent:Q})})();else{let J=this._def.in._parseSync({data:Q.data,path:Q.path,parent:Q});if(J.status==="aborted")return b;if(J.status==="dirty")return q.dirty(),{status:"dirty",value:J.value};else return this._def.out._parseSync({data:J.value,path:Q.path,parent:Q})}}static create($,q){return new d1({in:$,out:q,typeName:P.ZodPipeline})}}class N1 extends h{_parse($){let q=this._def.innerType._parse($),Q=(J)=>{if(P$(J))J.value=Object.freeze(J.value);return J};return H1(q)?q.then((J)=>Q(J)):Q(q)}unwrap(){return this._def.innerType}}N1.create=($,q)=>{return new N1({innerType:$,typeName:P.ZodReadonly,...T(q)})};function LQ($,q){let Q=typeof $==="function"?$(q):typeof $==="string"?{message:$}:$;return typeof Q==="string"?{message:Q}:Q}function SQ($,q={},Q){if($)return d$.create().superRefine((J,W)=>{let X=$(J);if(X instanceof Promise)return X.then((H)=>{if(!H){let Y=LQ(q,J),G=Y.fatal??Q??!0;W.addIssue({code:"custom",...Y,fatal:G})}});if(!X){let H=LQ(q,J),Y=H.fatal??Q??!0;W.addIssue({code:"custom",...H,fatal:Y})}return});return d$.create()}var XH={object:n.lazycreate},P;(function($){$.ZodString="ZodString",$.ZodNumber="ZodNumber",$.ZodNaN="ZodNaN",$.ZodBigInt="ZodBigInt",$.ZodBoolean="ZodBoolean",$.ZodDate="ZodDate",$.ZodSymbol="ZodSymbol",$.ZodUndefined="ZodUndefined",$.ZodNull="ZodNull",$.ZodAny="ZodAny",$.ZodUnknown="ZodUnknown",$.ZodNever="ZodNever",$.ZodVoid="ZodVoid",$.ZodArray="ZodArray",$.ZodObject="ZodObject",$.ZodUnion="ZodUnion",$.ZodDiscriminatedUnion="ZodDiscriminatedUnion",$.ZodIntersection="ZodIntersection",$.ZodTuple="ZodTuple",$.ZodRecord="ZodRecord",$.ZodMap="ZodMap",$.ZodSet="ZodSet",$.ZodFunction="ZodFunction",$.ZodLazy="ZodLazy",$.ZodLiteral="ZodLiteral",$.ZodEnum="ZodEnum",$.ZodEffects="ZodEffects",$.ZodNativeEnum="ZodNativeEnum",$.ZodOptional="ZodOptional",$.ZodNullable="ZodNullable",$.ZodDefault="ZodDefault",$.ZodCatch="ZodCatch",$.ZodPromise="ZodPromise",$.ZodBranded="ZodBranded",$.ZodPipeline="ZodPipeline",$.ZodReadonly="ZodReadonly"})(P||(P={}));var HH=($,q={message:`Input not instance of ${$.name}`})=>SQ((Q)=>Q instanceof $,q),AQ=D$.create,CQ=f$.create,YH=c1.create,GH=x$.create,OQ=w1.create,wH=c$.create,BH=m1.create,VH=B1.create,FH=V1.create,_H=d$.create,DH=Z$.create,UH=C$.create,zH=y1.create,LH=U$.create,jH=n.create,NH=n.strictCreate,RH=F1.create,EH=v0.create,SH=_1.create,AH=O$.create,CH=l1.create,OH=u1.create,MH=n$.create,KH=G1.create,kH=D1.create,IH=U1.create,bH=T$.create,PH=z1.create,ZH=p$.create,fH=j$.create,xH=z$.create,TH=k$.create,hH=j$.createWithPreprocess,vH=d1.create,gH=()=>AQ().optional(),mH=()=>CQ().optional(),yH=()=>OQ().optional(),lH={string:($)=>D$.create({...$,coerce:!0}),number:($)=>f$.create({...$,coerce:!0}),boolean:($)=>w1.create({...$,coerce:!0}),bigint:($)=>x$.create({...$,coerce:!0}),date:($)=>c$.create({...$,coerce:!0})};var uH=b;class m0{config;blacklistedTokens=new Set;constructor($){this.config=$;if(!$.secret)throw Error("JWT secret is required")}generateTokens($){let q=Math.floor(Date.now()/1000),Q=this.parseExpiration(this.config.expiresIn||"1h"),J={sub:$.sub,...$,iat:q,exp:q+Q,iss:this.config.issuer,aud:this.config.audience},W=h$.sign(J,this.config.secret,{algorithm:this.config.algorithm||"HS256"}),X={sub:$.sub,type:"refresh",iat:q,exp:q+this.parseExpiration(this.config.refreshExpiresIn||"7d"),iss:this.config.issuer,aud:this.config.audience},H=h$.sign(X,this.config.refreshSecret||this.config.secret,{algorithm:this.config.algorithm||"HS256"});return{accessToken:W,refreshToken:H,expiresIn:Q}}verifyAccessToken($){if(this.isBlacklisted($))throw Error("Token has been revoked");try{return h$.verify($,this.config.secret,{algorithms:[this.config.algorithm||"HS256"],issuer:this.config.issuer,audience:this.config.audience})}catch(q){if(q instanceof Error)throw Error(`Invalid token: ${q.message}`);throw Error("Invalid token")}}verifyRefreshToken($){if(this.isBlacklisted($))throw Error("Refresh token has been revoked");try{let q=h$.verify($,this.config.refreshSecret||this.config.secret,{algorithms:[this.config.algorithm||"HS256"],issuer:this.config.issuer,audience:this.config.audience});if(q.type!=="refresh")throw Error("Invalid refresh token type");return q}catch(q){if(q instanceof Error)throw Error(`Invalid refresh token: ${q.message}`);throw Error("Invalid refresh token")}}refreshAccessToken($){let q=this.verifyRefreshToken($);return this.blacklistToken($),this.generateTokens({sub:q.sub,...Object.fromEntries(Object.entries(q).filter(([Q])=>!["iat","exp","iss","aud","type"].includes(Q)))})}decodeToken($){try{return h$.decode($)}catch{return null}}blacklistToken($){this.blacklistedTokens.add($),this.cleanupBlacklist()}isBlacklisted($){return this.blacklistedTokens.has($)}cleanupBlacklist(){let $=Math.floor(Date.now()/1000);for(let q of this.blacklistedTokens){let Q=this.decodeToken(q);if(Q&&Q.exp&&Q.exp<$)this.blacklistedTokens.delete(q)}}parseExpiration($){if(typeof $==="number")return $;let q={s:1,m:60,h:3600,d:86400,w:604800},Q=$.match(/^(\d+)([smhdw])$/);if(!Q)throw Error(`Invalid expiration format: ${$}`);let[,J,W]=Q;return parseInt(J)*q[W]}}var cH=B.object({sub:B.string(),iat:B.number().optional(),exp:B.number().optional(),iss:B.string().optional(),aud:B.string().optional()}).passthrough(),dH=B.object({username:B.string().min(1),password:B.string().min(1)}),nH=B.object({refreshToken:B.string().min(1)});v$();class p1{config;userProvider;jwtProvider;constructor($,q){this.config=$;this.userProvider=q;this.jwtProvider=new m0($)}async login($,q){let Q=await this.userProvider.findByCredentials($,q);if(!Q)throw new e("Invalid credentials");let J=this.jwtProvider.generateTokens({sub:Q.id,username:Q.username,email:Q.email,roles:Q.roles||[],permissions:Q.permissions||[]});return{user:Q,tokens:J}}async refresh($){try{return this.jwtProvider.refreshAccessToken($)}catch(q){throw new i$(q instanceof Error?q.message:"Invalid refresh token")}}async logout($,q){if(this.jwtProvider.blacklistToken($),q)this.jwtProvider.blacklistToken(q)}async verifyToken($){try{let q=this.jwtProvider.verifyAccessToken($),Q=await this.userProvider.findById(q.sub);if(!Q)throw new e("User not found");return Q}catch(q){if(q instanceof Error){if(q.message.includes("expired"))throw new n1;throw new i$(q.message)}throw new i$("Token verification failed")}}getUserFromToken($){return this.jwtProvider.verifyAccessToken($)}hasRoles($,q){let Q=$.roles||[];return q.every((J)=>Q.includes(J))}hasPermissions($,q){let Q=$.permissions||[];return q.every((J)=>Q.includes(J))}async register($){if(!this.userProvider.createUser)throw Error("UserProvider does not support user creation");let q=await this.userProvider.createUser($),Q=this.jwtProvider.generateTokens({sub:q.id,username:q.username,email:q.email,roles:q.roles||[],permissions:q.permissions||[]});return{user:q,tokens:Q}}cleanup(){this.jwtProvider.cleanupBlacklist()}getJWTProvider(){return this.jwtProvider}}class IQ{users=new Map;async findByCredentials($,q){for(let[Q,J]of this.users)if(J.username===$){if(await this.verifyPassword(q,J.passwordHash)){let{passwordHash:X,...H}=J;return H}}return null}async findById($){let q=this.users.get($);if(q){let{passwordHash:Q,...J}=q;return J}return null}async hashPassword($){return Buffer.from($).toString("base64")}async verifyPassword($,q){return await this.hashPassword($)===q}async createUser($){let q=crypto.randomUUID(),Q=await this.hashPassword($.password),J={id:q,username:$.username,email:$.email,roles:$.roles||["user"],passwordHash:Q};this.users.set(q,J);let{passwordHash:W,...X}=J;return X}}var CB=v4(PQ(),1),p6=Symbol("route:metadata"),i6=Symbol("controller:metadata"),ZQ=Symbol("parameter:metadata"),fQ=Symbol("dependency:metadata"),o6=Symbol("websocket:metadata"),xQ=Symbol("websocket:handler:metadata"),s6=Symbol("graphql:resolver"),i1=Symbol("graphql:field"),r6=Symbol("auth:metadata"),a6=Symbol("oauth:metadata"),t6=Symbol("roles:metadata"),e6=Symbol("permissions:metadata"),$4=Symbol("minimum-role:metadata"),q4=Symbol("resource-permission:metadata"),Q4=Symbol("session:metadata"),J4=Symbol("csrf:metadata");class d{routes=new Map;controllers=new Map;routesByController=new Map;websockets=new Map;graphqlResolvers=new Map;graphqlFields=new Map;registerRoute($){let q=this.getRouteKey($.target,$.propertyKey);if(this.routes.set(q,$),!this.routesByController.has($.target))this.routesByController.set($.target,[]);this.routesByController.get($.target).push($)}registerController($,q){this.controllers.set($,q)}getRoutes(){return Array.from(this.routes.values())}getRoute($,q){let Q=this.getRouteKey($,q);return this.routes.get(Q)}getRoutesByController($){return this.routesByController.get($)||[]}getController($){return this.controllers.get($)}getControllers(){return new Map(this.controllers)}registerWebSocket($){this.websockets.set($.target,$)}getWebSockets(){return Array.from(this.websockets.values())}getWebSocket($){return this.websockets.get($)}registerGraphQLResolver($){this.graphqlResolvers.set($.target,$)}registerGraphQLField($){let q=this.getRouteKey($.target,$.propertyKey);this.graphqlFields.set(q,$)}getGraphQLResolvers(){return Array.from(this.graphqlResolvers.values())}getGraphQLResolver($){return this.graphqlResolvers.get($)}getGraphQLFields(){return Array.from(this.graphqlFields.values())}getGraphQLFieldsByResolver($){return Array.from(this.graphqlFields.values()).filter((q)=>q.target===$)}clear(){this.routes.clear(),this.controllers.clear(),this.routesByController.clear(),this.websockets.clear(),this.graphqlResolvers.clear(),this.graphqlFields.clear()}getRouteKey($,q){return`${$.name}:${q}`}static defineRoute($,q,Q){let J=this.getRouteMetadata($,q),W={...J,...Q,target:$.constructor,propertyKey:q,middleware:[...J?.middleware||[],...Q.middleware||[]],parameters:Q.parameters||J?.parameters||[],dependencies:Q.dependencies||J?.dependencies||[],responses:Q.responses||J?.responses||[],auth:Q.auth||J?.auth,oauth:Q.oauth||J?.oauth,roles:Q.roles||J?.roles,permissions:Q.permissions||J?.permissions,minimumRole:Q.minimumRole||J?.minimumRole,resourcePermission:Q.resourcePermission||J?.resourcePermission,session:Q.session||J?.session,csrf:Q.csrf||J?.csrf};Reflect.defineMetadata(p6,W,$,q)}static defineParameter($,q,Q,J){let W=this.getParameterMetadata($,q)||[];W[Q]=J,Reflect.defineMetadata(ZQ,W,$,q);let X=this.getRouteMetadata($,q);this.defineRoute($,q,{...X,parameters:W})}static defineDependency($,q,Q,J){let W=this.getDependencyMetadata($,q)||[];W[Q]=J,Reflect.defineMetadata(fQ,W,$,q);let X=this.getRouteMetadata($,q);this.defineRoute($,q,{...X,dependencies:W})}static defineController($,q){Reflect.defineMetadata(i6,q,$)}static getRouteMetadata($,q){return Reflect.getMetadata(p6,$,q)}static getParameterMetadata($,q){return Reflect.getMetadata(ZQ,$,q)}static getDependencyMetadata($,q){return Reflect.getMetadata(fQ,$,q)}static getControllerMetadata($){return Reflect.getMetadata(i6,$)}static hasControllerMetadata($){return Reflect.hasMetadata(i6,$)}static hasRouteMetadata($,q){return Reflect.hasMetadata(p6,$,q)}static getRouteMethods($){let q=$.prototype,Q=[],J=Object.getOwnPropertyNames(q);for(let W of J){if(W==="constructor")continue;if(this.hasRouteMetadata(q,W))Q.push(W)}return Q}static defineWebSocket($,q){let J={...this.getWebSocketMetadata($),...q,target:$};Reflect.defineMetadata(o6,J,$)}static defineWebSocketHandler($,q,Q){let J=this.getWebSocketMetadata($.constructor)||{};switch(Q.type){case"connect":J.onConnect=q;break;case"message":J.onMessage=q,J.messageSchema=Q.schema;break;case"disconnect":J.onDisconnect=q;break}this.defineWebSocket($.constructor,J),Reflect.defineMetadata(xQ,Q,$,q)}static getWebSocketMetadata($){return Reflect.getMetadata(o6,$)}static getWebSocketHandlerMetadata($,q){return Reflect.getMetadata(xQ,$,q)}static hasWebSocketMetadata($){return Reflect.hasMetadata(o6,$)}static defineGraphQLResolver($,q){Reflect.defineMetadata(s6,q,$)}static defineGraphQLField($,q,Q){Reflect.defineMetadata(i1,Q,$,q);let J=this.getGraphQLFieldsMetadata($.constructor)||[];J.push(Q),Reflect.defineMetadata(i1,J,$.constructor)}static getGraphQLResolverMetadata($){return Reflect.getMetadata(s6,$)}static getGraphQLFieldsMetadata($){return Reflect.getMetadata(i1,$)||[]}static getGraphQLFieldMetadata($,q){return Reflect.getMetadata(i1,$,q)}static hasGraphQLResolverMetadata($){return Reflect.hasMetadata(s6,$)}static hasGraphQLFieldMetadata($,q){return Reflect.hasMetadata(i1,$,q)}static defineAuth($,q,Q){Reflect.defineMetadata(r6,Q,$,q);let J=this.getRouteMetadata($,q);this.defineRoute($,q,{...J,auth:Q})}static getAuthMetadata($,q){return Reflect.getMetadata(r6,$,q)}static hasAuthMetadata($,q){return Reflect.hasMetadata(r6,$,q)}static defineOAuth($,q,Q){Reflect.defineMetadata(a6,Q,$,q);let J=this.getRouteMetadata($,q);this.defineRoute($,q,{...J,oauth:Q})}static getOAuthMetadata($,q){return Reflect.getMetadata(a6,$,q)}static hasOAuthMetadata($,q){return Reflect.hasMetadata(a6,$,q)}static defineRoles($,q,Q){Reflect.defineMetadata(t6,Q,$,q);let J=this.getRouteMetadata($,q);this.defineRoute($,q,{...J,roles:Q})}static definePermissions($,q,Q){Reflect.defineMetadata(e6,Q,$,q);let J=this.getRouteMetadata($,q);this.defineRoute($,q,{...J,permissions:Q})}static defineMinimumRole($,q,Q){Reflect.defineMetadata($4,Q,$,q);let J=this.getRouteMetadata($,q);this.defineRoute($,q,{...J,minimumRole:Q})}static getRolesMetadata($,q){return Reflect.getMetadata(t6,$,q)}static getPermissionsMetadata($,q){return Reflect.getMetadata(e6,$,q)}static getMinimumRoleMetadata($,q){return Reflect.getMetadata($4,$,q)}static hasRolesMetadata($,q){return Reflect.hasMetadata(t6,$,q)}static hasPermissionsMetadata($,q){return Reflect.hasMetadata(e6,$,q)}static hasMinimumRoleMetadata($,q){return Reflect.hasMetadata($4,$,q)}static defineResourcePermission($,q,Q){Reflect.defineMetadata(q4,Q,$,q);let J=this.getRouteMetadata($,q);this.defineRoute($,q,{...J,resourcePermission:Q})}static getResourcePermissionMetadata($,q){return Reflect.getMetadata(q4,$,q)}static hasResourcePermissionMetadata($,q){return Reflect.hasMetadata(q4,$,q)}static defineSession($,q,Q){Reflect.defineMetadata(Q4,Q,$,q);let J=this.getRouteMetadata($,q);this.defineRoute($,q,{...J,session:Q})}static defineCSRF($,q,Q){Reflect.defineMetadata(J4,Q,$,q);let J=this.getRouteMetadata($,q);this.defineRoute($,q,{...J,csrf:Q})}static getSessionMetadata($,q){return Reflect.getMetadata(Q4,$,q)}static getCSRFMetadata($,q){return Reflect.getMetadata(J4,$,q)}static hasSessionMetadata($,q){return Reflect.hasMetadata(Q4,$,q)}static hasCSRFMetadata($,q){return Reflect.hasMetadata(J4,$,q)}}function YY($){return(q,Q)=>{let J={required:!$?.optional,config:$};d.defineAuth(q,Q,J)}}function GY(){return($,q,Q)=>{if(q)d.defineParameter($,q,Q,{index:Q,type:"current-user",required:!1})}}function wY(){return($,q,Q)=>{if(q)d.defineParameter($,q,Q,{index:Q,type:"token",required:!1})}}function W4($){return async(q,Q)=>{let J=q.req.header("Authorization");if(!J||!J.startsWith("Bearer "))q.set("auth.error","Missing or invalid Authorization header"),q.set("auth.authenticated",!1);else{let W=J.substring(7);try{let X=$.verifyAccessToken(W);q.set("auth.user",X),q.set("auth.token",W),q.set("auth.authenticated",!0)}catch(X){q.set("auth.error",X instanceof Error?X.message:"Authentication failed"),q.set("auth.authenticated",!1)}}await Q()}}function $$($){return $.get("auth.user")||null}function X4($){return $.get("auth.token")||null}function BY($){return $.get("auth.authenticated")===!0}function VY($){return $.get("auth.error")||null}v$();v$();class TQ{config;name="auth";version="1.0.0";authService;compileExtended=!1;constructor($){this.config=$;this.authService=new p1($.jwt,$.userProvider)}async install($){let q=W4(this.authService.getJWTProvider());if($.use(q),$.getContainer().register(p1,{factory:()=>this.authService,scope:"singleton"}),this.config.enableDefaultRoutes!==!1)this.addDefaultRoutes($);this.extendRouterCompiler($)}extendRouterCompiler($){if(this.compileExtended)return;this.compileExtended=!0,$.use(async(Q,J)=>{Q.set("authService",this.authService),await J()});let q=$.compile.bind($);$.compile=async()=>{await q();let Q=$.getHono(),J=$.getMetadata().getRoutes();for(let W of J){let X=d.getAuthMetadata(W.target.prototype,W.propertyKey);if(W.auth?.required||X?.required){console.log("Adding auth middleware for route:",W.path,W.method);let Y=W.auth?.config||X?.config;Q.use(W.path,async(G,V)=>{if(console.log("Auth middleware executing for:",G.req.path,G.req.method,"target:",W.path,W.method),G.req.method!==W.method)return console.log("Method mismatch, skipping auth check"),V();console.log("Checking authentication...");let D=G.get("auth.user"),z=G.get("auth.error");if(!D){let Z=z||"Authentication required";throw console.log("No user found, throwing auth exception"),new e(Z)}if(Y?.roles?.length){if(!this.authService.hasRoles(D,Y.roles))throw new r(`Required roles: ${Y.roles.join(", ")}`)}if(Y?.permissions?.length){if(!this.authService.hasPermissions(D,Y.permissions))throw new r(`Required permissions: ${Y.permissions.join(", ")}`)}await V()})}}}}buildPath($){return $.path}pathMatches($,q){let Q=$.replace(/:([^/]+)/g,"([^/]+)");return new RegExp(`^${Q}$`).test(q)}addDefaultRoutes($){let q=this.config.routes||{};if($.post(q.login||"/auth/login",{handler:async(Q)=>{let J=await Q.req.json(),{username:W,password:X}=J;try{let H=await this.authService.login(W,X);return{success:!0,user:H.user,tokens:H.tokens}}catch(H){throw new e(H instanceof Error?H.message:"Login failed")}},schema:{body:B.object({username:B.string().min(1),password:B.string().min(1)})}}),$.post(q.refresh||"/auth/refresh",{handler:async(Q)=>{let J=await Q.req.json(),{refreshToken:W}=J;try{return{success:!0,tokens:await this.authService.refresh(W)}}catch(X){throw new e(X instanceof Error?X.message:"Token refresh failed")}},schema:{body:B.object({refreshToken:B.string().min(1)})}}),$.post(q.logout||"/auth/logout",{handler:async(Q)=>{let J=X4(Q),W=await Q.req.json(),{refreshToken:X}=W;if(J)await this.authService.logout(J,X);return{success:!0,message:"Logged out successfully"}},schema:{body:B.object({refreshToken:B.string().optional()})}}),"createUser"in this.config.userProvider)$.post(q.register||"/auth/register",{handler:async(Q)=>{let J=await Q.req.json(),{username:W,password:X,email:H}=J;try{let Y=await this.authService.register({username:W,password:X,email:H});return{success:!0,user:Y.user,tokens:Y.tokens}}catch(Y){throw new e(Y instanceof Error?Y.message:"Registration failed")}},schema:{body:B.object({username:B.string().min(1),password:B.string().min(6),email:B.string().email().optional()})}});$.get("/auth/me",{handler:async(Q)=>{let J=$$(Q);if(!J)throw new e("Not authenticated");return{success:!0,user:J}}})}getAuthService(){return this.authService}}class o1{name;config;constructor($,q){this.name=$;this.config=q}getAuthUrl($,q){let Q=new URLSearchParams({client_id:this.config.clientId,redirect_uri:this.config.redirectUri,response_type:"code",state:$,scope:this.config.scopes?.join(" ")||""});if(q&&this.config.pkce)Q.set("code_challenge",q),Q.set("code_challenge_method","S256");return`${this.config.authUrl}?${Q.toString()}`}async exchangeCodeForTokens($,q){let Q=new URLSearchParams({client_id:this.config.clientId,client_secret:this.config.clientSecret,code:$,grant_type:"authorization_code",redirect_uri:this.config.redirectUri});if(q&&this.config.pkce)Q.set("code_verifier",q);let J=await fetch(this.config.tokenUrl,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:Q.toString()});if(!J.ok){let X=await J.text();throw Error(`Token exchange failed: ${X}`)}let W=await J.json();return{accessToken:W.access_token,refreshToken:W.refresh_token,expiresIn:W.expires_in,tokenType:W.token_type||"Bearer",scope:W.scope}}async getUserInfo($){let q=await fetch(this.config.userInfoUrl,{headers:{Authorization:`Bearer ${$}`,Accept:"application/json"}});if(!q.ok){let J=await q.text();throw Error(`Failed to get user info: ${J}`)}let Q=await q.json();return this.mapUserInfo(Q)}mapUserInfo($){return{id:$.id||$.sub,email:$.email,name:$.name,username:$.login||$.preferred_username,avatar:$.avatar_url||$.picture,provider:this.name,...$}}}class hQ extends o1{constructor($,q,Q){super("google",{clientId:$,clientSecret:q,redirectUri:Q,scopes:["openid","profile","email"],authUrl:"https://accounts.google.com/o/oauth2/v2/auth",tokenUrl:"https://oauth2.googleapis.com/token",userInfoUrl:"https://www.googleapis.com/oauth2/v2/userinfo",pkce:!0})}mapUserInfo($){return{id:$.id,email:$.email,name:$.name,username:$.email,avatar:$.picture,provider:"google",verified:$.verified_email,locale:$.locale,raw:$}}}class vQ extends o1{constructor($,q,Q){super("github",{clientId:$,clientSecret:q,redirectUri:Q,scopes:["user:email"],authUrl:"https://github.com/login/oauth/authorize",tokenUrl:"https://github.com/login/oauth/access_token",userInfoUrl:"https://api.github.com/user",pkce:!1})}mapUserInfo($){return{id:$.id.toString(),email:$.email,name:$.name,username:$.login,avatar:$.avatar_url,provider:"github",company:$.company,location:$.location,bio:$.bio,raw:$}}async getUserInfo($){let q=await fetch(this.config.userInfoUrl,{headers:{Authorization:`Bearer ${$}`,Accept:"application/vnd.github.v3+json","User-Agent":"VeloceTS-OAuth"}});if(!q.ok)throw Error(`Failed to get user info: ${await q.text()}`);let Q=await q.json();if(!Q.email)try{let J=await fetch("https://api.github.com/user/emails",{headers:{Authorization:`Bearer ${$}`,Accept:"application/vnd.github.v3+json","User-Agent":"VeloceTS-OAuth"}});if(J.ok){let X=(await J.json()).find((H)=>H.primary);if(X)Q.email=X.email}}catch(J){}return this.mapUserInfo(Q)}}class gQ extends o1{constructor($,q,Q,J="common"){super("microsoft",{clientId:$,clientSecret:q,redirectUri:Q,scopes:["openid","profile","email"],authUrl:`https://login.microsoftonline.com/${J}/oauth2/v2.0/authorize`,tokenUrl:`https://login.microsoftonline.com/${J}/oauth2/v2.0/token`,userInfoUrl:"https://graph.microsoft.com/v1.0/me",pkce:!0})}mapUserInfo($){return{id:$.id,email:$.mail||$.userPrincipalName,name:$.displayName,username:$.userPrincipalName,avatar:void 0,provider:"microsoft",jobTitle:$.jobTitle,department:$.department,officeLocation:$.officeLocation,raw:$}}}class l0{static generateCodeVerifier(){let $=new Uint8Array(32);return crypto.getRandomValues($),this.base64URLEncode($)}static async generateCodeChallenge($){let Q=new TextEncoder().encode($),J=await crypto.subtle.digest("SHA-256",Q);return this.base64URLEncode(new Uint8Array(J))}static async generatePKCEChallenge(){let $=this.generateCodeVerifier(),q=await this.generateCodeChallenge($);return{codeVerifier:$,codeChallenge:q,codeChallengeMethod:"S256"}}static base64URLEncode($){return btoa(String.fromCharCode(...$)).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}}class u0{states=new Map;ttl=600000;generateState($){let q=crypto.randomUUID();return this.states.set(q,{timestamp:Date.now(),data:$}),this.cleanup(),q}validateState($){let q=this.states.get($);if(!q)return{valid:!1};if(Date.now()-q.timestamp>this.ttl)return this.states.delete($),{valid:!1};return this.states.delete($),{valid:!0,data:q.data}}cleanup(){let $=Date.now();for(let[q,Q]of this.states.entries())if($-Q.timestamp>this.ttl)this.states.delete(q)}}var H4=B.object({code:B.string(),state:B.string(),error:B.string().optional(),error_description:B.string().optional()}),FY=B.object({accessToken:B.string(),refreshToken:B.string().optional(),expiresIn:B.number().optional(),tokenType:B.string(),scope:B.string().optional()}),_Y=B.object({id:B.string(),email:B.string().optional(),name:B.string().optional(),username:B.string().optional(),avatar:B.string().optional(),provider:B.string()}).passthrough();function DY($){return(q,Q)=>{let J={provider:$.provider,config:$};d.defineOAuth(q,Q,J)}}function UY(){return($,q,Q)=>{if(q)d.defineParameter($,q,Q,{index:Q,type:"oauth-user",required:!0})}}function zY(){return($,q,Q)=>{if(q)d.defineParameter($,q,Q,{index:Q,type:"oauth-token",required:!0})}}function LY($){return $.get("oauth.user")||null}function jY($){return $.get("oauth.token")||null}function NY($){return $.get("oauth.authenticated")===!0}function RY($){return $.get("oauth.provider")||null}class mQ{config;name="oauth";version="1.0.0";dependencies=["auth"];stateManager=new u0;pkceStore=new Map;constructor($){this.config=$}async install($){this.addOAuthRoutes($),this.extendRouterCompiler($)}addOAuthRoutes($){let q=this.config.routes||{};$.get(q.login||"/auth/oauth/:provider",{handler:async(Q)=>{let J=Q.req.param("provider"),W=this.config.providers[J];if(!W)return Q.json({error:"Unknown OAuth provider"},400);let X=this.stateManager.generateState({provider:J}),H;if(W.config.pkce){let Y=await l0.generatePKCEChallenge();this.pkceStore.set(X,Y),H=W.getAuthUrl(X,Y.codeChallenge)}else H=W.getAuthUrl(X);return Q.json({authUrl:H,state:X,provider:J})}}),$.get(q.callback||"/auth/oauth/:provider/callback",{handler:async(Q)=>{let J=Q.req.param("provider"),W=Q.req.query(),X=H4.parse(W);if(X.error)return Q.json({error:"OAuth error",description:X.error_description||X.error},400);let H=this.stateManager.validateState(X.state);if(!H.valid||H.data?.provider!==J)return Q.json({error:"Invalid state parameter"},400);let Y=this.config.providers[J];if(!Y)return Q.json({error:"Unknown OAuth provider"},400);try{let G=this.pkceStore.get(X.state),V=G?.codeVerifier,D=await Y.exchangeCodeForTokens(X.code,V),z=await Y.getUserInfo(D.accessToken);if(G)this.pkceStore.delete(X.state);let Z=null;if(this.config.userProvider)Z=await this.findOrCreateUser(z);if(this.config.onUserLogin)await this.config.onUserLogin(z,Z);let C=null;if(this.config.authService&&Z)C=(await this.config.authService.login(Z.username,"")).tokens;return Q.json({success:!0,user:Z||z,oauthTokens:D,jwtTokens:C,provider:J})}catch(G){return console.error("OAuth callback error:",G),Q.json({error:"OAuth authentication failed",message:G instanceof Error?G.message:"Unknown error"},500)}}}),$.get("/auth/oauth/:provider/user",{handler:async(Q)=>{let J=Q.req.param("provider"),W=Q.req.header("Authorization");if(!W||!W.startsWith("Bearer "))return Q.json({error:"Missing OAuth access token"},401);let X=W.substring(7),H=this.config.providers[J];if(!H)return Q.json({error:"Unknown OAuth provider"},400);try{let Y=await H.getUserInfo(X);return Q.json({user:Y})}catch(Y){return Q.json({error:"Failed to get user info",message:Y instanceof Error?Y.message:"Unknown error"},400)}}})}async findOrCreateUser($){if(!this.config.userProvider)return null;let q=await this.findUserByOAuthId($.id,$.provider);if(!q&&$.email)q=await this.findUserByEmail($.email);if(!q){if(q=await this.createUserFromOAuth($),this.config.onUserCreated)await this.config.onUserCreated($)}return q}async findUserByOAuthId($,q){return null}async findUserByEmail($){return null}async createUserFromOAuth($){if(!this.config.userProvider||!("createUser"in this.config.userProvider))throw Error("User provider does not support user creation");let q={username:$.username||$.email||`${$.provider}_${$.id}`,email:$.email,password:crypto.randomUUID(),roles:["user"],oauthId:$.id,oauthProvider:$.provider,name:$.name,avatar:$.avatar};return await this.config.userProvider.createUser(q)}extendRouterCompiler($){}getProvider($){return this.config.providers[$]}getProviders(){return{...this.config.providers}}}class R1{roles=new Map;hierarchy=new Map;compiledPermissions=new Map;defineRole($){if(this.roles.set($.name,$),$.inherits&&$.inherits.length>0)this.hierarchy.set($.name,$.inherits);this.compiledPermissions.clear()}defineRoles($){for(let q of $)this.defineRole(q)}getRolePermissions($){if(this.compiledPermissions.has($))return Array.from(this.compiledPermissions.get($));let q=new Set;return this.collectPermissions($,q,new Set),this.compiledPermissions.set($,q),Array.from(q)}roleHasPermission($,q){return this.getRolePermissions($).includes(q)}userHasPermission($,q){for(let Q of $)if(this.roleHasPermission(Q,q))return!0;return!1}userHasRoles($,q){return q.every((Q)=>$.includes(Q))}userHasAnyRole($,q){return q.some((Q)=>$.includes(Q))}getRolesWithPermission($){let q=[];for(let Q of this.roles.keys())if(this.roleHasPermission(Q,$))q.push(Q);return q}getRoleHierarchy($){let q=[];return this.collectParentRoles($,q,new Set),q}roleInheritsFrom($,q){return this.getRoleHierarchy($).includes(q)}getAllRoles(){return Array.from(this.roles.values())}getRole($){return this.roles.get($)}roleExists($){return this.roles.has($)}validateRoles($){let q=[],Q=[];for(let J of $)if(this.roleExists(J))q.push(J);else Q.push(J);return{valid:q,invalid:Q}}getEffectiveRoles($){let q=new Set;for(let Q of $)q.add(Q),this.getRoleHierarchy(Q).forEach((W)=>q.add(W));return Array.from(q)}compareRoleLevels($,q){let Q=this.getRole($),J=this.getRole(q),W=Q?.level??0,X=J?.level??0;return W-X}getHighestRoleLevel($){let q=0;for(let Q of $){let J=this.getRole(Q);if(J&&J.level&&J.level>q)q=J.level}return q}collectPermissions($,q,Q){if(Q.has($))throw Error(`Circular role inheritance detected: ${$}`);Q.add($);let J=this.roles.get($);if(!J)throw Error(`Role not found: ${$}`);J.permissions.forEach((X)=>q.add(X));let W=this.hierarchy.get($)||[];for(let X of W)this.collectPermissions(X,q,new Set(Q))}collectParentRoles($,q,Q){if(Q.has($))return;Q.add($);let J=this.hierarchy.get($)||[];for(let W of J)q.push(W),this.collectParentRoles(W,q,Q)}}function Y4(){let $=new R1;return $.defineRoles([{name:"guest",description:"Guest user with minimal permissions",permissions:["read:public"],level:1},{name:"user",description:"Regular authenticated user",permissions:["read:own","write:own","read:public"],inherits:["guest"],level:10},{name:"moderator",description:"Moderator with content management permissions",permissions:["read:all","write:all","moderate:content"],inherits:["user"],level:50},{name:"admin",description:"Administrator with full system access",permissions:["*"],inherits:["moderator"],level:100},{name:"super-admin",description:"Super administrator with unrestricted access",permissions:["*","system:*"],inherits:["admin"],level:1000}]),$}var EY=B.object({name:B.string().min(1),description:B.string().optional(),permissions:B.array(B.string()),inherits:B.array(B.string()).optional(),level:B.number().optional()}),SY=B.object({userId:B.string(),roles:B.array(B.string())}),AY=B.object({userId:B.string(),permission:B.string()});class E1{static matches($,q){if(q==="*")return!0;if(q.endsWith("*")){let Q=q.slice(0,-1);return $.startsWith(Q)}return $===q}static hasPermission($,q){return $.some((Q)=>this.matches(q,Q))}static filterByPattern($,q){return $.filter((Q)=>this.matches(Q,q))}}v$();function yQ($){return(q,Q)=>{let W={config:Array.isArray($)?{roles:$,requireAll:!1,allowInherited:!0}:{requireAll:!1,allowInherited:!0,...$}};d.defineRoles(q,Q,W)}}function lQ($){return(q,Q)=>{let W={config:Array.isArray($)?{permissions:$,requireAll:!1}:{requireAll:!1,...$}};d.definePermissions(q,Q,W)}}function G4($){return yQ([$])}function CY($){return lQ([$])}function OY(){return G4("admin")}function MY(){return G4("super-admin")}function KY($){return(q,Q)=>{d.defineMinimumRole(q,Q,{roleName:$})}}function w4($){return async(q,Q)=>{q.set("rbac",$),await Q()}}class s1{rbac;constructor($){this.rbac=$}checkRoles($,q){let Q=$$($);if(!Q)throw new r("Authentication required for role check");let J=Q.roles||[],W=q.allowInherited?this.rbac.getEffectiveRoles(J):J,X;if(q.requireAll)X=q.roles.every((H)=>W.includes(H));else X=q.roles.some((H)=>W.includes(H));if(!X){let H=q.requireAll?"all":"any";throw new r(`Access denied. Required ${H} of roles: ${q.roles.join(", ")}`)}}checkPermissions($,q){let Q=$$($);if(!Q)throw new r("Authentication required for permission check");let J=Q.roles||[],W=new Set;for(let Y of J)this.rbac.getRolePermissions(Y).forEach((V)=>W.add(V));let X=Array.from(W),H;if(q.requireAll)H=q.permissions.every((Y)=>E1.hasPermission(X,Y));else H=q.permissions.some((Y)=>E1.hasPermission(X,Y));if(!H){let Y=q.requireAll?"all":"any";throw new r(`Access denied. Required ${Y} of permissions: ${q.permissions.join(", ")}`)}}checkMinimumRole($,q){let Q=$$($);if(!Q)throw new r("Authentication required for role level check");let J=Q.roles||[],W=this.rbac.getHighestRoleLevel(J),X=this.rbac.getRole(q);if(!X)throw Error(`Required role not found: ${q}`);let H=X.level||0;if(W<H)throw new r(`Access denied. Minimum role level required: ${q} (level ${H})`)}}function uQ($){return $.get("rbac")||null}function B4($){return $$($)?.roles||[]}function cQ($){let q=uQ($),Q=B4($);if(!q)return[];let J=new Set;for(let W of Q)q.getRolePermissions(W).forEach((H)=>J.add(H));return Array.from(J)}function kY($,q){return B4($).includes(q)}function IY($,q){let Q=cQ($);return E1.hasPermission(Q,q)}v$();class dQ{config;name="rbac";version="1.0.0";dependencies=["auth"];rbac;guard;constructor($={}){this.config=$;if($.rbac)this.rbac=$.rbac;else if($.useDefaults!==!1)this.rbac=Y4();else this.rbac=new R1;if($.roles)this.rbac.defineRoles($.roles);this.guard=new s1(this.rbac)}async install($){let q=w4(this.rbac);if($.use(q),$.getContainer().register(R1,{factory:()=>this.rbac,scope:"singleton"}),$.getContainer().register(s1,{factory:()=>this.guard,scope:"singleton"}),this.extendRouterCompiler($),this.config.enableManagementRoutes!==!1)this.addManagementRoutes($)}extendRouterCompiler($){let q=$.compile.bind($);$.compile=async()=>{let Q=$.getMetadata().getRoutes();for(let J of Q)if(J.roles||J.permissions||J.minimumRole){let W=this.buildRBACMiddleware(J);$.getMetadata().registerRoute({...J,middleware:[W,...J.middleware||[]]})}await q()}}buildRBACMiddleware($){let q=this.guard,Q=$.roles?.config,J=$.permissions?.config,W=$.minimumRole;return async(X,H)=>{if(!$$(X))throw new r("Authentication required");if(Q)q.checkRoles(X,Q);if(J)q.checkPermissions(X,J);if(W)q.checkMinimumRole(X,W.roleName);await H()}}addManagementRoutes($){let q=this.config.routes||{};$.get(q.roles||"/rbac/roles",{handler:(Q)=>{let J=this.rbac.getAllRoles();return Q.json({success:!0,roles:J.map((W)=>({name:W.name,description:W.description,permissions:W.permissions,inherits:W.inherits,level:W.level}))})}}),$.get("/rbac/roles/:roleName",{handler:(Q)=>{let J=Q.req.param("roleName"),W=this.rbac.getRole(J);if(!W)return Q.json({error:"Role not found"},404);let X=this.rbac.getRolePermissions(J),H=this.rbac.getRoleHierarchy(J);return Q.json({success:!0,role:{...W,effectivePermissions:X,hierarchy:H}})}}),$.get("/rbac/roles/:roleName/permissions",{handler:(Q)=>{let J=Q.req.param("roleName");if(!this.rbac.roleExists(J))return Q.json({error:"Role not found"},404);let W=this.rbac.getRolePermissions(J);return Q.json({success:!0,role:J,permissions:W})}}),$.post("/rbac/check-permission",{handler:async(Q)=>{let J=await Q.req.json(),{roles:W,permission:X}=J;if(!Array.isArray(W)||!X)return Q.json({error:"Invalid request body"},400);let H=this.rbac.userHasPermission(W,X);return Q.json({success:!0,hasPermission:H,roles:W,permission:X})}}),$.post("/rbac/check-roles",{handler:async(Q)=>{let J=await Q.req.json(),{userRoles:W,requiredRoles:X,requireAll:H=!1}=J;if(!Array.isArray(W)||!Array.isArray(X))return Q.json({error:"Invalid request body"},400);let Y=H?this.rbac.userHasRoles(W,X):this.rbac.userHasAnyRole(W,X);return Q.json({success:!0,hasRoles:Y,userRoles:W,requiredRoles:X,requireAll:H})}}),$.post("/rbac/effective-roles",{handler:async(Q)=>{let J=await Q.req.json(),{roles:W}=J;if(!Array.isArray(W))return Q.json({error:"Invalid request body"},400);let X=this.rbac.getEffectiveRoles(W);return Q.json({success:!0,inputRoles:W,effectiveRoles:X})}}),$.post("/rbac/user-permissions",{handler:async(Q)=>{let J=await Q.req.json(),{roles:W}=J;if(!Array.isArray(W))return Q.json({error:"Invalid request body"},400);let X=new Set;for(let H of W)if(this.rbac.roleExists(H))this.rbac.getRolePermissions(H).forEach((G)=>X.add(G));return Q.json({success:!0,roles:W,permissions:Array.from(X)})}})}getRBACManager(){return this.rbac}getGuard(){return this.guard}}class r1{resourcePermissions=new Map;permissionPolicies=new Map;grantPermission($){let q=this.getPermissionKey($.userId,$.resource);if(!this.resourcePermissions.has(q))this.resourcePermissions.set(q,[]);this.resourcePermissions.get(q).push($)}revokePermission($,q,Q){let J=this.getPermissionKey($,q),X=(this.resourcePermissions.get(J)||[]).filter((H)=>Q?H.resourceId!==Q:!0);if(X.length===0)this.resourcePermissions.delete(J);else this.resourcePermissions.set(J,X)}hasPermission($){let{user:q,resource:Q,action:J,attributes:W}=$;if(this.checkRoleBasedPermission(q,J,Q))return!0;let X=this.getPermissionKey(q.id,Q?.constructor?.name||"unknown"),H=this.resourcePermissions.get(X)||[];for(let Y of H){if(Y.expiresAt&&Y.expiresAt<new Date)continue;if(Y.resourceId&&Q?.id!==Y.resourceId)continue;for(let G of Y.permissions)if(this.matchesPermission(G,J,Q,W)){if(G.conditions&&!this.evaluateConditions(G.conditions,$))continue;return!0}}return this.checkPermissionPolicies($)}getUserPermissions($,q,Q){let J=this.getPermissionKey($,q),W=this.resourcePermissions.get(J)||[],X=[];for(let H of W){if(H.expiresAt&&H.expiresAt<new Date)continue;if(Q&&H.resourceId&&H.resourceId!==Q)continue;X.push(...H.permissions)}return X}getUserResources($){let q=new Set;for(let[Q,J]of this.resourcePermissions.entries())if(Q.startsWith(`${$}:`)){let W=Q.substring($.length+1);q.add(W)}return Array.from(q)}definePolicy($,q){this.permissionPolicies.set($,q)}filterResources($,q,Q,J=(W)=>W.constructor.name){return $.filter((W)=>{let X={user:q,resource:W,action:Q};return this.hasPermission(X)})}filterAttributes($,q,Q,J){let W={user:q,resource:$,action:Q,attributes:J};if(!this.hasPermission(W))return[];let X=$?.constructor?.name||"unknown",H=this.getUserPermissions(q.id,X,$?.id),Y=new Set;for(let G of H)if(G.action===Q||G.action==="*")if(G.attributes)G.attributes.forEach((V)=>Y.add(V));else J.forEach((V)=>Y.add(V));return Array.from(Y)}getPermissionKey($,q){return`${$}:${q}`}checkRoleBasedPermission($,q,Q){return!1}matchesPermission($,q,Q,J){if($.action!=="*"&&$.action!==q)return!1;let W=Q?.constructor?.name||"unknown";if($.resource!=="*"&&$.resource!==W)return!1;if(J&&$.attributes){if(!J.some((H)=>$.attributes.includes(H)||$.attributes.includes("*")))return!1}return!0}evaluateConditions($,q){return $.every((Q)=>this.evaluateCondition(Q,q))}evaluateCondition($,q){let Q=this.getFieldValue($.field,q);switch($.operator){case"eq":return Q===$.value;case"ne":return Q!==$.value;case"in":return Array.isArray($.value)&&$.value.includes(Q);case"nin":return Array.isArray($.value)&&!$.value.includes(Q);case"gt":return Q>$.value;case"gte":return Q>=$.value;case"lt":return Q<$.value;case"lte":return Q<=$.value;case"contains":return String(Q).includes(String($.value));case"startsWith":return String(Q).startsWith(String($.value));case"endsWith":return String(Q).endsWith(String($.value));default:return!1}}getFieldValue($,q){let Q=$.split("."),J=q;for(let W of Q)if(J&&typeof J==="object")J=J[W];else return;return J}checkPermissionPolicies($){for(let q of this.permissionPolicies.values())if(q.evaluate($))return!0;return!1}}class c0{name="ownership";description="User can access resources they own";evaluate($){let{user:q,resource:Q}=$;if(!Q||!q)return!1;return Q.userId===q.id||Q.ownerId===q.id||Q.createdBy===q.id||Q.owner===q.id}}class d0{name="team-membership";description="User can access resources belonging to their team";evaluate($){let{user:q,resource:Q}=$;if(!Q||!q||!q.teamId)return!1;return Q.teamId===q.teamId}}class n0{name="public-resource";description="Anyone can read public resources";evaluate($){let{resource:q,action:Q}=$;if(!q||Q!=="read")return!1;return q.isPublic===!0||q.visibility==="public"}}var nQ=B.object({action:B.string(),resource:B.string(),conditions:B.array(B.object({field:B.string(),operator:B.enum(["eq","ne","in","nin","gt","gte","lt","lte","contains","startsWith","endsWith"]),value:B.any()})).optional(),attributes:B.array(B.string()).optional()}),bY=B.object({userId:B.string(),resource:B.string(),resourceId:B.string().optional(),permissions:B.array(nQ),grantedBy:B.string().optional(),grantedAt:B.date().optional(),expiresAt:B.date().optional()}),PY=B.object({userId:B.string(),action:B.string(),resource:B.string(),resourceId:B.string().optional(),attributes:B.array(B.string()).optional()});v$();function g$($){return(q,Q)=>{let J={config:$};d.defineResourcePermission(q,Q,J)}}function ZY($,q){return g$({action:"read",resource:$,attributes:q})}function fY($,q){return g$({action:"write",resource:$,attributes:q})}function xY($,q){return g$({action:"update",resource:$,attributes:q})}function TY($){return g$({action:"delete",resource:$})}function hY($="access"){return g$({action:$,conditions:[{field:"resource.userId",operator:"eq",value:"{{user.id}}"}]})}function vY($="access"){return g$({action:$,conditions:[{field:"resource.teamId",operator:"eq",value:"{{user.teamId}}"}]})}function gY(){return g$({action:"read",conditions:[{field:"resource.isPublic",operator:"eq",value:!0}]})}function mY($="read"){return(q,Q,J)=>{if(Q)d.defineParameter(q,Q,J,{index:J,type:"filtered-resource",required:!0,metadata:{action:$}})}}function yY($="read"){return(q,Q,J)=>{if(Q)d.defineParameter(q,Q,J,{index:J,type:"filtered-attributes",required:!0,metadata:{action:$}})}}function V4($){return async(q,Q)=>{q.set("permissionManager",$),await Q()}}class a1{permissionManager;constructor($){this.permissionManager=$}checkResourcePermission($,q,Q){let J=$$($);if(!J)throw new r("Authentication required for permission check");let W={user:J,resource:Q,action:q.action,attributes:q.attributes};if(q.conditions)W.conditions=q.conditions.map((H)=>({...H,value:this.resolveTemplateValue(H.value,W)}));if(!this.permissionManager.hasPermission(W))throw new r(`Access denied. Required permission: ${q.action} on ${q.resource||"resource"}`)}filterResource($,q,Q){let J=$$($);if(!J)return null;let W={user:J,resource:q,action:Q};return this.permissionManager.hasPermission(W)?q:null}filterResources($,q,Q){let J=$$($);if(!J)return[];return this.permissionManager.filterResources(q,J,Q)}filterAttributes($,q,Q,J){let W=$$($);if(!W)return[];return this.permissionManager.filterAttributes(q,W,Q,J)}resolveTemplateValue($,q){if(typeof $==="string"&&$.startsWith("{{")&&$.endsWith("}}")){let Q=$.slice(2,-2);return this.getNestedValue(q,Q)}return $}getNestedValue($,q){return q.split(".").reduce((Q,J)=>Q?.[J],$)}}function F4($){return $.get("permissionManager")||null}function pQ($,q,Q,J){let W=F4($),X=$$($);if(!W||!X)return!1;let H={user:X,resource:q,action:Q,attributes:J};return W.hasPermission(H)}function lY($,q,Q){let J=F4($),W=$$($);if(!J||!W)return[];return J.getUserPermissions(W.id,q,Q).map((H)=>H.action)}function uY($,q,Q){return pQ($,q,Q)}class iQ{config;name="permissions";version="1.0.0";dependencies=["auth"];permissionManager;guard;constructor($={}){this.config=$;if(this.permissionManager=$.permissionManager||new r1,$.enableDefaultPolicies!==!1)this.permissionManager.definePolicy("ownership",new c0),this.permissionManager.definePolicy("team-membership",new d0),this.permissionManager.definePolicy("public-resource",new n0);this.guard=new a1(this.permissionManager)}async install($){let q=V4(this.permissionManager);if($.use(q),$.getContainer().register(r1,{factory:()=>this.permissionManager,scope:"singleton"}),$.getContainer().register(a1,{factory:()=>this.guard,scope:"singleton"}),this.extendRouterCompiler($),this.config.enableManagementRoutes!==!1)this.addManagementRoutes($)}extendRouterCompiler($){let q=$.compile.bind($);$.compile=async()=>{await q();let Q=$.getMetadata().getRoutes();for(let J of Q)if(J.resourcePermission)this.addPermissionGuards($,J)}}addPermissionGuards($,q){}addManagementRoutes($){let q=this.config.routes||{};$.post(q.grant||"/permissions/grant",{handler:async(Q)=>{let J=await Q.req.json(),{userId:W,resource:X,resourceId:H,permissions:Y,expiresAt:G}=J,V={userId:W,resource:X,resourceId:H,permissions:Y,grantedBy:"system",grantedAt:new Date,expiresAt:G?new Date(G):void 0};return this.permissionManager.grantPermission(V),Q.json({success:!0,message:"Permission granted successfully",permission:V})},schema:{body:B.object({userId:B.string(),resource:B.string(),resourceId:B.string().optional(),permissions:B.array(B.object({action:B.string(),resource:B.string(),conditions:B.array(B.any()).optional(),attributes:B.array(B.string()).optional()})),expiresAt:B.string().optional()})}}),$.delete(q.revoke||"/permissions/revoke",{handler:async(Q)=>{let J=await Q.req.json(),{userId:W,resource:X,resourceId:H}=J;return this.permissionManager.revokePermission(W,X,H),Q.json({success:!0,message:"Permission revoked successfully"})},schema:{body:B.object({userId:B.string(),resource:B.string(),resourceId:B.string().optional()})}}),$.post(q.check||"/permissions/check",{handler:async(Q)=>{let J=await Q.req.json(),{userId:W,action:X,resource:H,resourceId:Y,attributes:G}=J,V={user:{id:W},resource:Y?{id:Y}:void 0,action:X,attributes:G},D=this.permissionManager.hasPermission(V);return Q.json({success:!0,hasPermission:D,context:{userId:W,action:X,resource:H,resourceId:Y,attributes:G}})},schema:{body:B.object({userId:B.string(),action:B.string(),resource:B.string(),resourceId:B.string().optional(),attributes:B.array(B.string()).optional()})}}),$.get("/permissions/user/:userId/resource/:resource",{handler:(Q)=>{let J=Q.req.param("userId"),W=Q.req.param("resource"),X=Q.req.query("resourceId"),H=this.permissionManager.getUserPermissions(J,W,X);return Q.json({success:!0,userId:J,resource:W,resourceId:X,permissions:H})}}),$.get("/permissions/user/:userId/resources",{handler:(Q)=>{let J=Q.req.param("userId"),W=this.permissionManager.getUserResources(J);return Q.json({success:!0,userId:J,resources:W})}}),$.post("/permissions/bulk-check",{handler:async(Q)=>{let J=await Q.req.json(),{checks:W}=J,X=W.map((H)=>{let Y={user:{id:H.userId},resource:H.resourceId?{id:H.resourceId}:void 0,action:H.action,attributes:H.attributes},G=this.permissionManager.hasPermission(Y);return{...H,hasPermission:G}});return Q.json({success:!0,results:X})},schema:{body:B.object({checks:B.array(B.object({userId:B.string(),action:B.string(),resource:B.string(),resourceId:B.string().optional(),attributes:B.array(B.string()).optional()}))})}}),$.post("/permissions/filter-resources",{handler:async(Q)=>{let J=await Q.req.json(),{userId:W,action:X,resources:H}=J,Y={id:W},G=this.permissionManager.filterResources(H,Y,X);return Q.json({success:!0,userId:W,action:X,totalResources:H.length,filteredResources:G.length,resources:G})},schema:{body:B.object({userId:B.string(),action:B.string(),resources:B.array(B.any())})}})}getPermissionManager(){return this.permissionManager}getGuard(){return this.guard}}class S1{sessions=new Map;async get($){let q=this.sessions.get($);if(!q)return null;if(q.expiresAt&&q.expiresAt<new Date)return this.sessions.delete($),null;return q}async set($,q){this.sessions.set($,q)}async destroy($){this.sessions.delete($)}async touch($){let q=this.sessions.get($);if(q)q.updatedAt=new Date,this.sessions.set($,q)}async clear(){this.sessions.clear()}async length(){return this.sessions.size}async all(){return Array.from(this.sessions.values())}cleanup(){let $=new Date;for(let[q,Q]of this.sessions.entries())if(Q.expiresAt&&Q.expiresAt<$)this.sessions.delete(q)}}class p0{redis;prefix="sess:";constructor($,q){this.redis=$;if(q)this.prefix=q}async get($){let q=this.prefix+$,Q=await this.redis.get(q);if(!Q)return null;try{let J=JSON.parse(Q);if(J.createdAt=new Date(J.createdAt),J.updatedAt=new Date(J.updatedAt),J.expiresAt)J.expiresAt=new Date(J.expiresAt);return J}catch(J){return null}}async set($,q){let Q=this.prefix+$,J=JSON.stringify(q);if(q.expiresAt){let W=Math.floor((q.expiresAt.getTime()-Date.now())/1000);if(W>0)await this.redis.setex(Q,W,J)}else await this.redis.set(Q,J)}async destroy($){let q=this.prefix+$;await this.redis.del(q)}async touch($){let q=await this.get($);if(q)q.updatedAt=new Date,await this.set($,q)}async clear(){let $=await this.redis.keys(this.prefix+"*");if($.length>0)await this.redis.del(...$)}async length(){return(await this.redis.keys(this.prefix+"*")).length}async all(){let $=await this.redis.keys(this.prefix+"*"),q=[];for(let Q of $){let J=await this.redis.get(Q);if(J)try{let W=JSON.parse(J);if(W.createdAt=new Date(W.createdAt),W.updatedAt=new Date(W.updatedAt),W.expiresAt)W.expiresAt=new Date(W.expiresAt);q.push(W)}catch(W){}}return q}}class t1{store;config;constructor($,q){this.store=$;this.config={name:"sessionId",maxAge:86400000,secure:!1,httpOnly:!0,sameSite:"lax",path:"/",rolling:!1,genid:()=>crypto.randomUUID(),...q,domain:q.domain}}async createSession($,q={},Q){let J=this.config.genid(),W=new Date,X=Q?.maxAge||this.config.maxAge,H={id:J,userId:$,data:q,createdAt:W,updatedAt:W,expiresAt:new Date(W.getTime()+X),ipAddress:Q?.ipAddress,userAgent:Q?.userAgent,csrfToken:this.generateCSRFToken()};return await this.store.set(J,H),H}async getSession($){return await this.store.get($)}async updateSession($,q){let Q=await this.store.get($);if(!Q)return null;if(Q.data={...Q.data,...q},Q.updatedAt=new Date,this.config.rolling)Q.expiresAt=new Date(Date.now()+this.config.maxAge);return await this.store.set($,Q),Q}async touchSession($){if(this.config.rolling){let q=await this.store.get($);if(q)q.updatedAt=new Date,q.expiresAt=new Date(Date.now()+this.config.maxAge),await this.store.set($,q)}else await this.store.touch($)}async destroySession($){await this.store.destroy($)}async regenerateSession($){let q=await this.store.get($);if(!q)return null;let Q=this.config.genid(),J={...q,id:Q,updatedAt:new Date,csrfToken:this.generateCSRFToken()};return await this.store.set(Q,J),await this.store.destroy($),J}async getUserSessions($){return(await this.store.all()).filter((Q)=>Q.userId===$)}async destroyUserSessions($){let q=await this.getUserSessions($);for(let Q of q)await this.store.destroy(Q.id)}validateCSRFToken($,q){return $.csrfToken===q}generateCSRFToken(){return crypto.randomUUID()}getCookieOptions(){let $={maxAge:this.config.maxAge,secure:this.config.secure,httpOnly:this.config.httpOnly,sameSite:this.config.sameSite,path:this.config.path};if(this.config.domain)$.domain=this.config.domain;return $}getConfig(){return{...this.config}}getStore(){return this.store}}class e1{tokenStore=new Map;tokenTTL=3600000;generateToken($){let q=crypto.randomUUID(),Q=new Date(Date.now()+this.tokenTTL);return this.tokenStore.set($,{token:q,expiresAt:Q}),this.cleanup(),q}validateToken($,q){let Q=this.tokenStore.get($);if(!Q)return!1;if(Q.expiresAt<new Date)return this.tokenStore.delete($),!1;return Q.token===q}removeToken($){this.tokenStore.delete($)}cleanup(){let $=new Date;for(let[q,Q]of this.tokenStore.entries())if(Q.expiresAt<$)this.tokenStore.delete(q)}}var cY=B.object({id:B.string(),userId:B.string(),data:B.record(B.any()),createdAt:B.date(),updatedAt:B.date(),expiresAt:B.date().optional(),ipAddress:B.string().optional(),userAgent:B.string().optional(),csrfToken:B.string().optional()}),dY=B.object({name:B.string().optional(),secret:B.string(),maxAge:B.number().optional(),secure:B.boolean().optional(),httpOnly:B.boolean().optional(),sameSite:B.enum(["strict","lax","none"]).optional(),domain:B.string().optional(),path:B.string().optional(),rolling:B.boolean().optional()}),nY=B.object({userId:B.string(),data:B.record(B.any()).optional(),maxAge:B.number().optional(),ipAddress:B.string().optional(),userAgent:B.string().optional()}),pY=B.object({data:B.record(B.any())});sQ();var aQ=/^[\w!#$%&'*.^`|~+-]+$/,eY=/^[ !#-:<-[\]-~]*$/,rQ=($)=>{let q=0,Q=$.length;while(q<Q){let J=$.charCodeAt(q);if(J!==32&&J!==9)break;q++}while(Q>q){let J=$.charCodeAt(Q-1);if(J!==32&&J!==9)break;Q--}return q===0&&Q===$.length?$:$.slice(q,Q)},U4=($,q)=>{if(q&&$.indexOf(q)===-1)return{};let Q=$.split(";"),J={};for(let W of Q){let X=W.indexOf("=");if(X===-1)continue;let H=rQ(W.substring(0,X));if(q&&q!==H||!aQ.test(H))continue;let Y=rQ(W.substring(X+1));if(Y.startsWith('"')&&Y.endsWith('"'))Y=Y.slice(1,-1);if(eY.test(Y)){if(J[H]=Y.indexOf("%")!==-1?o0(Y,D4):Y,q)break}}return J};var $G=($,q,Q={})=>{if(!aQ.test($))throw Error("Invalid cookie name");let J=`${$}=${q}`;if($.startsWith("__Secure-")&&!Q.secure)throw Error("__Secure- Cookie must have Secure attributes");if($.startsWith("__Host-")){if(!Q.secure)throw Error("__Host- Cookie must have Secure attributes");if(Q.path!=="/")throw Error('__Host- Cookie must have Path attributes with "/"');if(Q.domain)throw Error("__Host- Cookie must not have Domain attributes")}for(let W of["domain","path"])if(Q[W]&&/[;\r\n]/.test(Q[W]))throw Error(`${W} must not contain ";", "\\r", or "\\n"`);if(Q&&typeof Q.maxAge==="number"&&Q.maxAge>=0){if(Q.maxAge>34560000)throw Error("Cookies Max-Age SHOULD NOT be greater than 400 days (34560000 seconds) in duration.");J+=`; Max-Age=${Q.maxAge|0}`}if(Q.domain&&Q.prefix!=="host")J+=`; Domain=${Q.domain}`;if(Q.path)J+=`; Path=${Q.path}`;if(Q.expires){if(Q.expires.getTime()-Date.now()>34560000000)throw Error("Cookies Expires SHOULD NOT be greater than 400 days (34560000 seconds) in the future.");J+=`; Expires=${Q.expires.toUTCString()}`}if(Q.httpOnly)J+="; HttpOnly";if(Q.secure)J+="; Secure";if(Q.sameSite)J+=`; SameSite=${Q.sameSite.charAt(0).toUpperCase()+Q.sameSite.slice(1)}`;if(Q.priority)J+=`; Priority=${Q.priority.charAt(0).toUpperCase()+Q.priority.slice(1)}`;if(Q.partitioned){if(!Q.secure)throw Error("Partitioned Cookie must have Secure attributes");J+="; Partitioned"}return J},s0=($,q,Q)=>{return q=encodeURIComponent(q),$G($,q,Q)};var tQ=($,q,Q)=>{let J=$.req.raw.headers.get("Cookie");if(typeof q==="string"){if(!J)return;let X=q;if(Q==="secure")X="__Secure-"+q;else if(Q==="host")X="__Host-"+q;return U4(J,X)[X]}if(!J)return{};return U4(J)};var qG=($,q,Q)=>{let J;if(Q?.prefix==="secure")J=s0("__Secure-"+$,q,{path:"/",...Q,secure:!0});else if(Q?.prefix==="host")J=s0("__Host-"+$,q,{...Q,path:"/",secure:!0,domain:void 0});else J=s0($,q,{path:"/",...Q});return J},r0=($,q,Q,J)=>{let W=qG(q,Q,J);$.header("Set-Cookie",W,{append:!0})};v$();function QG($={}){return(q,Q)=>{let J={config:$};d.defineSession(q,Q,J)}}function JG(){return($,q,Q)=>{if(q)d.defineParameter($,q,Q,{index:Q,type:"current-session",required:!0})}}function WG($){return(q,Q,J)=>{if(Q)d.defineParameter(q,Q,J,{index:J,type:"session-data",required:!1,metadata:{key:$}})}}function XG(){return($,q,Q)=>{if(q)d.defineParameter($,q,Q,{index:Q,type:"csrf-token",required:!0})}}function HG(){return($,q)=>{d.defineCSRF($,q,{required:!0})}}function z4($,q){return async(Q,J)=>{let W=$.getConfig(),X=tQ(Q,W.name),H=null;if(X){if(H=await $.getSession(X),H)await $.touchSession(X)}Q.set("session",H),Q.set("sessionManager",$),Q.set("csrfProtection",q),await J()}}class q0{sessionManager;csrfProtection;constructor($,q){this.sessionManager=$;this.csrfProtection=q}checkSession($,q){let Q=N$($);if(q.required&&!Q)throw new e("Session required");if(Q&&q.csrf)this.checkCSRF($,Q)}checkCSRF($,q){if(!this.csrfProtection)throw Error("CSRF protection not configured");let Q=$.req.header("X-CSRF-Token")||$.req.query("_csrf");if(!Q)throw new r("CSRF token required");if(!this.csrfProtection.validateToken(q.id,Q))throw new r("Invalid CSRF token")}async createSession($,q,Q={}){let J=$0($);if(!J)throw Error("Session manager not available");let W=$.req.header("X-Forwarded-For")||$.req.header("X-Real-IP")||"unknown",X=$.req.header("User-Agent")||"unknown",H=await J.createSession(q,Q,{ipAddress:W,userAgent:X}),Y=J.getCookieOptions();return r0($,J.getConfig().name,H.id,Y),$.set("session",H),H}async updateSession($,q){let Q=N$($),J=$0($);if(!Q||!J)return null;let W=await J.updateSession(Q.id,q);if(W)$.set("session",W);return W}async destroySession($){let q=N$($),Q=$0($);if(!q||!Q)return;await Q.destroySession(q.id);let J=Q.getConfig();if(r0($,J.name,"",{...Q.getCookieOptions(),maxAge:0}),$.set("session",null),this.csrfProtection)this.csrfProtection.removeToken(q.id)}async regenerateSession($){let q=N$($),Q=$0($);if(!q||!Q)return null;let J=await Q.regenerateSession(q.id);if(J){let W=Q.getCookieOptions();if(r0($,Q.getConfig().name,J.id,W),$.set("session",J),this.csrfProtection)this.csrfProtection.removeToken(q.id),this.csrfProtection.generateToken(J.id)}return J}generateCSRFToken($){let q=N$($);if(!q||!this.csrfProtection)return null;return this.csrfProtection.generateToken(q.id)}}function N$($){return $.get("session")||null}function $0($){return $.get("sessionManager")||null}function YG($){return $.get("csrfProtection")||null}function GG($,q){let Q=N$($);if(!Q)return null;if(q)return Q.data[q];return Q.data}function wG($){return N$($)!==null}function BG($){return N$($)?.userId||null}function VG($,q,Q){let J=N$($);if(J)J.data[q]=Q,$.set("session",J)}function FG($,q){let Q=N$($);if(Q&&q in Q.data)delete Q.data[q],$.set("session",Q)}class eQ{config;name="session";version="1.0.0";sessionManager;csrfProtection;guard;compileExtended=!1;cleanupIntervalId;constructor($){this.config=$;let q;if($.store)q=$.store;else if($.storeType==="redis"&&$.redis)q=new p0($.redis);else q=new S1;if(this.sessionManager=new t1(q,$.session),$.csrf?.enabled!==!1)this.csrfProtection=new e1;this.guard=new q0(this.sessionManager,this.csrfProtection)}async install($){let q=z4(this.sessionManager,this.csrfProtection);if($.use(q),$.getContainer().register(t1,{factory:()=>this.sessionManager,scope:"singleton"}),$.getContainer().register(q0,{factory:()=>this.guard,scope:"singleton"}),this.csrfProtection)$.getContainer().register(e1,{factory:()=>this.csrfProtection,scope:"singleton"});if(this.extendRouterCompiler($),this.config.enableManagementRoutes!==!1)this.addManagementRoutes($);if(this.sessionManager.getStore()instanceof S1)this.setupCleanup()}extendRouterCompiler($){if(this.compileExtended)return;this.compileExtended=!0;let q=$.compile.bind($);$.compile=async()=>{await q();let Q=$.getMetadata().getRoutes();for(let J of Q)if(J.session||J.csrf)this.addSessionGuards($,J)}}addSessionGuards($,q){}addManagementRoutes($){let q=this.config.routes||{};if($.post(q.create||"/session/create",{handler:async(Q)=>{let J=await Q.req.json(),{userId:W,data:X}=J,H=await this.guard.createSession(Q,W,X);return Q.json({success:!0,message:"Session created successfully",session:{id:H.id,userId:H.userId,data:H.data,createdAt:H.createdAt,expiresAt:H.expiresAt}})},schema:{body:B.object({userId:B.string(),data:B.record(B.any()).optional()})}}),$.post(q.destroy||"/session/destroy",{handler:async(Q)=>{return await this.guard.destroySession(Q),Q.json({success:!0,message:"Session destroyed successfully"})}}),$.post(q.regenerate||"/session/regenerate",{handler:async(Q)=>{let J=await this.guard.regenerateSession(Q);if(!J)return Q.json({error:"No active session to regenerate"},400);return Q.json({success:!0,message:"Session regenerated successfully",session:{id:J.id,userId:J.userId,data:J.data,createdAt:J.createdAt,expiresAt:J.expiresAt}})}}),$.get(q.data||"/session/data",{handler:(Q)=>{let J=Q.get("session");if(!J)return Q.json({error:"No active session"},400);return Q.json({success:!0,data:J.data})}}),$.put(q.data||"/session/data",{handler:async(Q)=>{let J=await Q.req.json(),{data:W}=J,X=await this.guard.updateSession(Q,W);if(!X)return Q.json({error:"No active session to update"},400);return Q.json({success:!0,message:"Session data updated successfully",data:X.data})},schema:{body:B.object({data:B.record(B.any())})}}),this.csrfProtection)$.get(q.csrf||"/session/csrf-token",{handler:(Q)=>{let J=this.guard.generateCSRFToken(Q);if(!J)return Q.json({error:"No active session or CSRF not enabled"},400);return Q.json({success:!0,csrfToken:J})}});$.get("/session/info",{handler:(Q)=>{let J=Q.get("session");if(!J)return Q.json({success:!0,authenticated:!1,session:null});return Q.json({success:!0,authenticated:!0,session:{id:J.id,userId:J.userId,createdAt:J.createdAt,updatedAt:J.updatedAt,expiresAt:J.expiresAt,ipAddress:J.ipAddress,userAgent:J.userAgent}})}}),$.get("/session/all",{handler:async(Q)=>{let J=Q.get("session");if(!J)return Q.json({error:"No active session"},400);let W=await this.sessionManager.getUserSessions(J.userId);return Q.json({success:!0,sessions:W.map((X)=>({id:X.id,createdAt:X.createdAt,updatedAt:X.updatedAt,expiresAt:X.expiresAt,ipAddress:X.ipAddress,userAgent:X.userAgent,current:X.id===J.id}))})}}),$.post("/session/destroy-all",{handler:async(Q)=>{let J=Q.get("session");if(!J)return Q.json({error:"No active session"},400);return await this.sessionManager.destroyUserSessions(J.userId),Q.json({success:!0,message:"All sessions destroyed successfully"})}}),$.get("/session/stats",{handler:async(Q)=>{if(!Q.get("session"))return Q.json({error:"Authentication required"},401);let W=this.sessionManager.getStore(),X=await W.length(),H=await W.all(),Y={totalSessions:X,activeSessions:H.filter((G)=>!G.expiresAt||G.expiresAt>new Date).length,expiredSessions:H.filter((G)=>G.expiresAt&&G.expiresAt<=new Date).length,uniqueUsers:new Set(H.map((G)=>G.userId)).size};return Q.json({success:!0,stats:Y})}})}setupCleanup(){if(this.cleanupIntervalId)return;let $=900000;if(this.cleanupIntervalId=setInterval(()=>{let q=this.sessionManager.getStore();if(q instanceof S1)q.cleanup()},$),typeof process<"u"&&process.on)process.on("exit",()=>{if(this.cleanupIntervalId)clearInterval(this.cleanupIntervalId)})}getSessionManager(){return this.sessionManager}getCSRFProtection(){return this.csrfProtection}getGuard(){return this.guard}}
16
+ ***************************************************************************** */var bQ;(function($){(function(q){var Q=typeof globalThis==="object"?globalThis:typeof global==="object"?global:typeof self==="object"?self:typeof this==="object"?this:Y(),J=W($);if(typeof Q.Reflect<"u")J=W(Q.Reflect,J);if(q(J,Q),typeof Q.Reflect>"u")Q.Reflect=$;function W(G,V){return function(D,z){if(Object.defineProperty(G,D,{configurable:!0,writable:!0,value:z}),V)V(D,z)}}function X(){try{return Function("return this;")()}catch(G){}}function H(){try{return(0,eval)("(function() { return this; })()")}catch(G){}}function Y(){return X()||H()}})(function(q,Q){var J=Object.prototype.hasOwnProperty,W=typeof Symbol==="function",X=W&&typeof Symbol.toPrimitive<"u"?Symbol.toPrimitive:"@@toPrimitive",H=W&&typeof Symbol.iterator<"u"?Symbol.iterator:"@@iterator",Y=typeof Object.create==="function",G={__proto__:[]}instanceof Array,V=!Y&&!G,D={create:Y?function(){return q6(Object.create(null))}:G?function(){return q6({__proto__:null})}:function(){return q6({})},has:V?function(w,F){return J.call(w,F)}:function(w,F){return F in w},get:V?function(w,F){return J.call(w,F)?w[F]:void 0}:function(w,F){return w[F]}},z=Object.getPrototypeOf(Function),Z=typeof Map==="function"&&typeof Map.prototype.entries==="function"?Map:N2(),C=typeof Set==="function"&&typeof Set.prototype.entries==="function"?Set:R2(),y=typeof WeakMap==="function"?WeakMap:E2(),p=W?Symbol.for("@reflect-metadata:registry"):void 0,o$=z2(),a0=L2(o$);function Q0(w,F,_,j){if(!f(_)){if(!O4(w))throw TypeError();if(!i(F))throw TypeError();if(!i(j)&&!f(j)&&!s$(j))throw TypeError();if(s$(j))j=void 0;return _=R$(_),w2(w,F,_,j)}else{if(!O4(w))throw TypeError();if(!M4(F))throw TypeError();return G2(w,F)}}q("decorate",Q0);function A1(w,F){function _(j,I){if(!i(j))throw TypeError();if(!f(I)&&!D2(I))throw TypeError();R4(w,F,j,I)}return _}q("metadata",A1);function $2(w,F,_,j){if(!i(_))throw TypeError();if(!f(j))j=R$(j);return R4(w,F,_,j)}q("defineMetadata",$2);function q2(w,F,_){if(!i(F))throw TypeError();if(!f(_))_=R$(_);return L4(w,F,_)}q("hasMetadata",q2);function Q2(w,F,_){if(!i(F))throw TypeError();if(!f(_))_=R$(_);return t0(w,F,_)}q("hasOwnMetadata",Q2);function J2(w,F,_){if(!i(F))throw TypeError();if(!f(_))_=R$(_);return j4(w,F,_)}q("getMetadata",J2);function W2(w,F,_){if(!i(F))throw TypeError();if(!f(_))_=R$(_);return N4(w,F,_)}q("getOwnMetadata",W2);function X2(w,F){if(!i(w))throw TypeError();if(!f(F))F=R$(F);return E4(w,F)}q("getMetadataKeys",X2);function H2(w,F){if(!i(w))throw TypeError();if(!f(F))F=R$(F);return S4(w,F)}q("getOwnMetadataKeys",H2);function Y2(w,F,_){if(!i(F))throw TypeError();if(!f(_))_=R$(_);if(!i(F))throw TypeError();if(!f(_))_=R$(_);var j=C1(F,_,!1);if(f(j))return!1;return j.OrdinaryDeleteMetadata(w,F,_)}q("deleteMetadata",Y2);function G2(w,F){for(var _=w.length-1;_>=0;--_){var j=w[_],I=j(F);if(!f(I)&&!s$(I)){if(!M4(I))throw TypeError();F=I}}return F}function w2(w,F,_,j){for(var I=w.length-1;I>=0;--I){var o=w[I],a=o(F,_,j);if(!f(a)&&!s$(a)){if(!i(a))throw TypeError();j=a}}return j}function L4(w,F,_){var j=t0(w,F,_);if(j)return!0;var I=$6(F);if(!s$(I))return L4(w,I,_);return!1}function t0(w,F,_){var j=C1(F,_,!1);if(f(j))return!1;return C4(j.OrdinaryHasOwnMetadata(w,F,_))}function j4(w,F,_){var j=t0(w,F,_);if(j)return N4(w,F,_);var I=$6(F);if(!s$(I))return j4(w,I,_);return}function N4(w,F,_){var j=C1(F,_,!1);if(f(j))return;return j.OrdinaryGetOwnMetadata(w,F,_)}function R4(w,F,_,j){var I=C1(_,j,!0);I.OrdinaryDefineOwnMetadata(w,F,_,j)}function E4(w,F){var _=S4(w,F),j=$6(w);if(j===null)return _;var I=E4(j,F);if(I.length<=0)return _;if(_.length<=0)return I;var o=new C,a=[];for(var v=0,E=_;v<E.length;v++){var O=E[v],M=o.has(O);if(!M)o.add(O),a.push(O)}for(var k=0,m=I;k<m.length;k++){var O=m[k],M=o.has(O);if(!M)o.add(O),a.push(O)}return a}function S4(w,F){var _=C1(w,F,!1);if(!_)return[];return _.OrdinaryOwnMetadataKeys(w,F)}function A4(w){if(w===null)return 1;switch(typeof w){case"undefined":return 0;case"boolean":return 2;case"string":return 3;case"symbol":return 4;case"number":return 5;case"object":return w===null?1:6;default:return 6}}function f(w){return w===void 0}function s$(w){return w===null}function B2(w){return typeof w==="symbol"}function i(w){return typeof w==="object"?w!==null:typeof w==="function"}function V2(w,F){switch(A4(w)){case 0:return w;case 1:return w;case 2:return w;case 3:return w;case 4:return w;case 5:return w}var _=F===3?"string":F===5?"number":"default",j=K4(w,X);if(j!==void 0){var I=j.call(w,_);if(i(I))throw TypeError();return I}return F2(w,_==="default"?"number":_)}function F2(w,F){if(F==="string"){var _=w.toString;if(r$(_)){var j=_.call(w);if(!i(j))return j}var I=w.valueOf;if(r$(I)){var j=I.call(w);if(!i(j))return j}}else{var I=w.valueOf;if(r$(I)){var j=I.call(w);if(!i(j))return j}var o=w.toString;if(r$(o)){var j=o.call(w);if(!i(j))return j}}throw TypeError()}function C4(w){return!!w}function _2(w){return""+w}function R$(w){var F=V2(w,3);if(B2(F))return F;return _2(F)}function O4(w){return Array.isArray?Array.isArray(w):w instanceof Object?w instanceof Array:Object.prototype.toString.call(w)==="[object Array]"}function r$(w){return typeof w==="function"}function M4(w){return typeof w==="function"}function D2(w){switch(A4(w)){case 3:return!0;case 4:return!0;default:return!1}}function e0(w,F){return w===F||w!==w&&F!==F}function K4(w,F){var _=w[F];if(_===void 0||_===null)return;if(!r$(_))throw TypeError();return _}function k4(w){var F=K4(w,H);if(!r$(F))throw TypeError();var _=F.call(w);if(!i(_))throw TypeError();return _}function I4(w){return w.value}function b4(w){var F=w.next();return F.done?!1:F}function P4(w){var F=w.return;if(F)F.call(w)}function $6(w){var F=Object.getPrototypeOf(w);if(typeof w!=="function"||w===z)return F;if(F!==z)return F;var _=w.prototype,j=_&&Object.getPrototypeOf(_);if(j==null||j===Object.prototype)return F;var I=j.constructor;if(typeof I!=="function")return F;if(I===w)return F;return I}function U2(){var w;if(!f(p)&&typeof Q.Reflect<"u"&&!(p in Q.Reflect)&&typeof Q.Reflect.defineMetadata==="function")w=j2(Q.Reflect);var F,_,j,I=new y,o={registerProvider:a,getProvider:E,setProvider:M};return o;function a(k){if(!Object.isExtensible(o))throw Error("Cannot add provider to a frozen registry.");switch(!0){case w===k:break;case f(F):F=k;break;case F===k:break;case f(_):_=k;break;case _===k:break;default:if(j===void 0)j=new C;j.add(k);break}}function v(k,m){if(!f(F)){if(F.isProviderFor(k,m))return F;if(!f(_)){if(_.isProviderFor(k,m))return F;if(!f(j)){var u=k4(j);while(!0){var s=b4(u);if(!s)return;var V$=I4(s);if(V$.isProviderFor(k,m))return P4(u),V$}}}}if(!f(w)&&w.isProviderFor(k,m))return w;return}function E(k,m){var u=I.get(k),s;if(!f(u))s=u.get(m);if(!f(s))return s;if(s=v(k,m),!f(s)){if(f(u))u=new Z,I.set(k,u);u.set(m,s)}return s}function O(k){if(f(k))throw TypeError();return F===k||_===k||!f(j)&&j.has(k)}function M(k,m,u){if(!O(u))throw Error("Metadata provider not registered.");var s=E(k,m);if(s!==u){if(!f(s))return!1;var V$=I.get(k);if(f(V$))V$=new Z,I.set(k,V$);V$.set(m,u)}return!0}}function z2(){var w;if(!f(p)&&i(Q.Reflect)&&Object.isExtensible(Q.Reflect))w=Q.Reflect[p];if(f(w))w=U2();if(!f(p)&&i(Q.Reflect)&&Object.isExtensible(Q.Reflect))Object.defineProperty(Q.Reflect,p,{enumerable:!1,configurable:!1,writable:!1,value:w});return w}function L2(w){var F=new y,_={isProviderFor:function(O,M){var k=F.get(O);if(f(k))return!1;return k.has(M)},OrdinaryDefineOwnMetadata:a,OrdinaryHasOwnMetadata:I,OrdinaryGetOwnMetadata:o,OrdinaryOwnMetadataKeys:v,OrdinaryDeleteMetadata:E};return o$.registerProvider(_),_;function j(O,M,k){var m=F.get(O),u=!1;if(f(m)){if(!k)return;m=new Z,F.set(O,m),u=!0}var s=m.get(M);if(f(s)){if(!k)return;if(s=new Z,m.set(M,s),!w.setProvider(O,M,_)){if(m.delete(M),u)F.delete(O);throw Error("Wrong provider for target.")}}return s}function I(O,M,k){var m=j(M,k,!1);if(f(m))return!1;return C4(m.has(O))}function o(O,M,k){var m=j(M,k,!1);if(f(m))return;return m.get(O)}function a(O,M,k,m){var u=j(k,m,!0);u.set(O,M)}function v(O,M){var k=[],m=j(O,M,!1);if(f(m))return k;var u=m.keys(),s=k4(u),V$=0;while(!0){var Z4=b4(s);if(!Z4)return k.length=V$,k;var S2=I4(Z4);try{k[V$]=S2}catch(A2){try{P4(s)}finally{throw A2}}V$++}}function E(O,M,k){var m=j(M,k,!1);if(f(m))return!1;if(!m.delete(O))return!1;if(m.size===0){var u=F.get(M);if(!f(u)){if(u.delete(k),u.size===0)F.delete(u)}}return!0}}function j2(w){var{defineMetadata:F,hasOwnMetadata:_,getOwnMetadata:j,getOwnMetadataKeys:I,deleteMetadata:o}=w,a=new y,v={isProviderFor:function(E,O){var M=a.get(E);if(!f(M)&&M.has(O))return!0;if(I(E,O).length){if(f(M))M=new C,a.set(E,M);return M.add(O),!0}return!1},OrdinaryDefineOwnMetadata:F,OrdinaryHasOwnMetadata:_,OrdinaryGetOwnMetadata:j,OrdinaryOwnMetadataKeys:I,OrdinaryDeleteMetadata:o};return v}function C1(w,F,_){var j=o$.getProvider(w,F);if(!f(j))return j;if(_){if(o$.setProvider(w,F,a0))return a0;throw Error("Illegal state.")}return}function N2(){var w={},F=[],_=function(){function v(E,O,M){this._index=0,this._keys=E,this._values=O,this._selector=M}return v.prototype["@@iterator"]=function(){return this},v.prototype[H]=function(){return this},v.prototype.next=function(){var E=this._index;if(E>=0&&E<this._keys.length){var O=this._selector(this._keys[E],this._values[E]);if(E+1>=this._keys.length)this._index=-1,this._keys=F,this._values=F;else this._index++;return{value:O,done:!1}}return{value:void 0,done:!0}},v.prototype.throw=function(E){if(this._index>=0)this._index=-1,this._keys=F,this._values=F;throw E},v.prototype.return=function(E){if(this._index>=0)this._index=-1,this._keys=F,this._values=F;return{value:E,done:!0}},v}(),j=function(){function v(){this._keys=[],this._values=[],this._cacheKey=w,this._cacheIndex=-2}return Object.defineProperty(v.prototype,"size",{get:function(){return this._keys.length},enumerable:!0,configurable:!0}),v.prototype.has=function(E){return this._find(E,!1)>=0},v.prototype.get=function(E){var O=this._find(E,!1);return O>=0?this._values[O]:void 0},v.prototype.set=function(E,O){var M=this._find(E,!0);return this._values[M]=O,this},v.prototype.delete=function(E){var O=this._find(E,!1);if(O>=0){var M=this._keys.length;for(var k=O+1;k<M;k++)this._keys[k-1]=this._keys[k],this._values[k-1]=this._values[k];if(this._keys.length--,this._values.length--,e0(E,this._cacheKey))this._cacheKey=w,this._cacheIndex=-2;return!0}return!1},v.prototype.clear=function(){this._keys.length=0,this._values.length=0,this._cacheKey=w,this._cacheIndex=-2},v.prototype.keys=function(){return new _(this._keys,this._values,I)},v.prototype.values=function(){return new _(this._keys,this._values,o)},v.prototype.entries=function(){return new _(this._keys,this._values,a)},v.prototype["@@iterator"]=function(){return this.entries()},v.prototype[H]=function(){return this.entries()},v.prototype._find=function(E,O){if(!e0(this._cacheKey,E)){this._cacheIndex=-1;for(var M=0;M<this._keys.length;M++)if(e0(this._keys[M],E)){this._cacheIndex=M;break}}if(this._cacheIndex<0&&O)this._cacheIndex=this._keys.length,this._keys.push(E),this._values.push(void 0);return this._cacheIndex},v}();return j;function I(v,E){return v}function o(v,E){return E}function a(v,E){return[v,E]}}function R2(){var w=function(){function F(){this._map=new Z}return Object.defineProperty(F.prototype,"size",{get:function(){return this._map.size},enumerable:!0,configurable:!0}),F.prototype.has=function(_){return this._map.has(_)},F.prototype.add=function(_){return this._map.set(_,_),this},F.prototype.delete=function(_){return this._map.delete(_)},F.prototype.clear=function(){this._map.clear()},F.prototype.keys=function(){return this._map.keys()},F.prototype.values=function(){return this._map.keys()},F.prototype.entries=function(){return this._map.entries()},F.prototype["@@iterator"]=function(){return this.keys()},F.prototype[H]=function(){return this.keys()},F}();return w}function E2(){var w=16,F=D.create(),_=j();return function(){function E(){this._key=j()}return E.prototype.has=function(O){var M=I(O,!1);return M!==void 0?D.has(M,this._key):!1},E.prototype.get=function(O){var M=I(O,!1);return M!==void 0?D.get(M,this._key):void 0},E.prototype.set=function(O,M){var k=I(O,!0);return k[this._key]=M,this},E.prototype.delete=function(O){var M=I(O,!1);return M!==void 0?delete M[this._key]:!1},E.prototype.clear=function(){this._key=j()},E}();function j(){var E;do E="@@WeakMap@@"+v();while(D.has(F,E));return F[E]=!0,E}function I(E,O){if(!J.call(E,_)){if(!O)return;Object.defineProperty(E,_,{value:D.create()})}return E[_]}function o(E,O){for(var M=0;M<O;++M)E[M]=Math.random()*255|0;return E}function a(E){if(typeof Uint8Array==="function"){var O=new Uint8Array(E);if(typeof crypto<"u")crypto.getRandomValues(O);else if(typeof msCrypto<"u")msCrypto.getRandomValues(O);else o(O,E);return O}return o(Array(E),E)}function v(){var E=a(w);E[6]=E[6]&79|64,E[8]=E[8]&191|128;var O="";for(var M=0;M<w;++M){var k=E[M];if(M===4||M===6||M===8)O+="-";if(k<16)O+="0";O+=k.toString(16).toLowerCase()}return O}}function q6(w){return w.__=void 0,delete w.__,w}})})(bQ||(bQ={}))});var iY=($)=>{let q=$.split("/");if(q[0]==="")q.shift();return q},RV=($)=>{let{groups:q,path:Q}=oY($),J=iY(Q);return sY(J,q)},oY=($)=>{let q=[];return $=$.replace(/\{[^}]+\}/g,(Q,J)=>{let W=`@${J}`;return q.push([W,Q]),W}),{groups:q,path:$}},sY=($,q)=>{for(let Q=q.length-1;Q>=0;Q--){let[J]=q[Q];for(let W=$.length-1;W>=0;W--)if($[W].includes(J)){$[W]=$[W].replace(J,q[Q][1]);break}}return $},i0,EV=($,q)=>{if($==="*")return"*";let Q=$.match(/^\:([^\{\}]+)(?:\{(.+)\})?$/);if(Q){let J=`${$}#${q}`;if(!i0[J])if(Q[2])i0[J]=q&&q[0]!==":"&&q[0]!=="*"?[J,Q[1],new RegExp(`^${Q[2]}(?=/${q})`)]:[$,Q[1],new RegExp(`^${Q[2]}$`)];else i0[J]=[$,Q[1],!0];return i0[J]}return null},o0=($,q)=>{try{return q($)}catch{return $.replace(/(?:%[0-9A-Fa-f]{2})+/g,(Q)=>{try{return q(Q)}catch{return Q}})}},rY=($)=>o0($,decodeURI),aY=($)=>{let q=$.url,Q=q.indexOf("/",q.indexOf(":")+4),J=Q;for(;J<q.length;J++){let W=q.charCodeAt(J);if(W===37){let X=q.indexOf("?",J),H=q.indexOf("#",J),Y=X===-1?H===-1?void 0:H:H===-1?X:Math.min(X,H),G=q.slice(Q,Y);return rY(G.includes("%25")?G.replace(/%25/g,"%2525"):G)}else if(W===63||W===35)break}return q.slice(Q,J)},SV=($)=>{let q=aY($);return q.length>1&&q.at(-1)==="/"?q.slice(0,-1):q},tY=($,q,...Q)=>{if(Q.length)q=tY(q,...Q);return`${$?.[0]==="/"?"":"/"}${$}${q==="/"?"":`${$?.at(-1)==="/"?"":"/"}${q?.[0]==="/"?q.slice(1):q}`}`},AV=($)=>{if($.charCodeAt($.length-1)!==63||!$.includes(":"))return null;let q=$.split("/"),Q=[],J="";return q.forEach((W)=>{if(W!==""&&!/\:/.test(W))J+="/"+W;else if(/\:/.test(W))if(/\?/.test(W)){if(Q.length===0&&J==="")Q.push("/");else Q.push(J);let X=W.replace("?","");J+="/"+X,Q.push(J)}else J+="/"+W}),Q.filter((W,X,H)=>H.indexOf(W)===X)},_4=($)=>{if(!/[%+]/.test($))return $;if($.indexOf("+")!==-1)$=$.replace(/\+/g," ");return $.indexOf("%")!==-1?o0($,D4):$},oQ=($,q,Q)=>{let J;if(!Q&&q&&!/[%+]/.test(q)){let H=$.indexOf("?",8);if(H===-1)return;if(!$.startsWith(q,H+1))H=$.indexOf(`&${q}`,H+1);while(H!==-1){let Y=$.charCodeAt(H+q.length+1);if(Y===61){let G=H+q.length+2,V=$.indexOf("&",G);return _4($.slice(G,V===-1?void 0:V))}else if(Y==38||isNaN(Y))return"";H=$.indexOf(`&${q}`,H+1)}if(J=/[%+]/.test($),!J)return}let W={};J??=/[%+]/.test($);let X=$.indexOf("?",8);while(X!==-1){let H=$.indexOf("&",X+1),Y=$.indexOf("=",X);if(Y>H&&H!==-1)Y=-1;let G=$.slice(X+1,Y===-1?H===-1?void 0:H:Y);if(J)G=_4(G);if(X=H,G==="")continue;let V;if(Y===-1)V="";else if(V=$.slice(Y+1,H===-1?void 0:H),J)V=_4(V);if(Q){if(!(W[G]&&Array.isArray(W[G])))W[G]=[];W[G].push(V)}else W[G]??=V}return q?W[q]:W},CV,OV=($,q)=>{return oQ($,q,!0)},D4;var sQ=J0(()=>{i0={},CV=oQ,D4=decodeURIComponent});var _G={};Q6(_G,{setSessionData:()=>VG,removeSessionData:()=>FG,isSessionAuthenticated:()=>wG,isOAuthAuthenticated:()=>NY,isAuthenticated:()=>BY,getUserRoles:()=>B4,getUserResourcePermissions:()=>lY,getUserPermissions:()=>cQ,getToken:()=>X4,getSessionUserId:()=>BG,getSessionManager:()=>$0,getSessionData:()=>GG,getRBACManager:()=>uQ,getPermissionManager:()=>F4,getOAuthUser:()=>LY,getOAuthToken:()=>jY,getOAuthProvider:()=>RY,getCurrentUser:()=>$$,getCurrentSession:()=>N$,getCSRFProtection:()=>YG,getAuthError:()=>VY,createSessionMiddleware:()=>z4,createRBACMiddleware:()=>w4,createPermissionMiddleware:()=>V4,createDefaultRBAC:()=>Y4,createAuthMiddleware:()=>W4,checkUserRole:()=>kY,checkUserPermission:()=>IY,checkResourceAccess:()=>pQ,canUserAccess:()=>uY,UpdateSessionSchema:()=>pY,TokenRevokedException:()=>n6,TokenPayloadSchema:()=>cH,TokenExpiredException:()=>n1,Token:()=>wY,TeamOnly:()=>vY,TeamMembershipPolicy:()=>d0,SuperAdminOnly:()=>MY,SessionPlugin:()=>eQ,SessionManager:()=>t1,SessionGuard:()=>q0,SessionDataSchema:()=>cY,SessionData:()=>WG,SessionConfigSchema:()=>dY,Session:()=>QG,Roles:()=>yQ,RoleSchema:()=>EY,RoleAssignmentSchema:()=>SY,ResourcePermissionSchema:()=>bY,ResourcePermissionCheckSchema:()=>PY,RequireRole:()=>G4,RequirePermission:()=>CY,RequireCSRF:()=>HG,RefreshRequestSchema:()=>nH,RedisSessionStore:()=>p0,RBACPlugin:()=>dQ,RBACManager:()=>R1,RBACGuard:()=>s1,PublicResourcePolicy:()=>n0,PublicRead:()=>gY,Permissions:()=>lQ,PermissionSchema:()=>nQ,PermissionPlugin:()=>iQ,PermissionMatcher:()=>E1,PermissionManager:()=>r1,PermissionGuard:()=>a1,PermissionCheckSchema:()=>AY,PKCEUtils:()=>l0,OwnershipPolicy:()=>c0,OwnerOnly:()=>hY,OAuthUserSchema:()=>_Y,OAuthUser:()=>UY,OAuthTokensSchema:()=>FY,OAuthToken:()=>zY,OAuthStateManager:()=>u0,OAuthPlugin:()=>mQ,OAuthCallbackSchema:()=>H4,OAuth:()=>DY,MinimumRole:()=>KY,MicrosoftOAuthProvider:()=>gQ,MemorySessionStore:()=>S1,LoginRequestSchema:()=>dH,JWTProvider:()=>m0,InvalidTokenException:()=>i$,InMemoryUserProvider:()=>IQ,GoogleOAuthProvider:()=>hQ,GitHubOAuthProvider:()=>vQ,FilteredResource:()=>mY,FilteredAttributes:()=>yY,CurrentUser:()=>GY,CurrentSession:()=>JG,CreateSessionSchema:()=>nY,CanWrite:()=>fY,CanUpdate:()=>xY,CanRead:()=>ZY,CanDelete:()=>TY,CanAccess:()=>g$,CSRFToken:()=>XG,CSRFProtection:()=>e1,BaseOAuthProvider:()=>o1,AuthorizationException:()=>r,AuthenticationException:()=>e,AuthService:()=>p1,AuthPlugin:()=>TQ,Auth:()=>YY,AdminOnly:()=>OY});module.exports=I2(_G);var h$=v4(DQ(),1);var B={};Q6(B,{void:()=>zH,util:()=>g,unknown:()=>DH,union:()=>RH,undefined:()=>VH,tuple:()=>AH,transformer:()=>fH,symbol:()=>BH,string:()=>AQ,strictObject:()=>NH,setErrorMap:()=>TX,set:()=>MH,record:()=>CH,quotelessJson:()=>fX,promise:()=>ZH,preprocess:()=>hH,pipeline:()=>vH,ostring:()=>gH,optional:()=>xH,onumber:()=>mH,oboolean:()=>yH,objectUtil:()=>l6,object:()=>jH,number:()=>CQ,nullable:()=>TH,null:()=>FH,never:()=>UH,nativeEnum:()=>PH,nan:()=>YH,map:()=>OH,makeIssue:()=>g1,literal:()=>IH,lazy:()=>kH,late:()=>XH,isValid:()=>P$,isDirty:()=>h0,isAsync:()=>H1,isAborted:()=>T0,intersection:()=>SH,instanceof:()=>HH,getParsedType:()=>A$,getErrorMap:()=>X1,function:()=>KH,enum:()=>bH,effect:()=>fH,discriminatedUnion:()=>EH,defaultErrorMap:()=>M$,datetimeRegex:()=>RQ,date:()=>wH,custom:()=>SQ,coerce:()=>lH,boolean:()=>OQ,bigint:()=>GH,array:()=>LH,any:()=>_H,addIssueToContext:()=>R,ZodVoid:()=>y1,ZodUnknown:()=>Z$,ZodUnion:()=>F1,ZodUndefined:()=>B1,ZodType:()=>h,ZodTuple:()=>O$,ZodTransformer:()=>j$,ZodSymbol:()=>m1,ZodString:()=>D$,ZodSet:()=>n$,ZodSchema:()=>h,ZodRecord:()=>l1,ZodReadonly:()=>N1,ZodPromise:()=>p$,ZodPipeline:()=>d1,ZodParsedType:()=>L,ZodOptional:()=>z$,ZodObject:()=>n,ZodNumber:()=>f$,ZodNullable:()=>k$,ZodNull:()=>V1,ZodNever:()=>C$,ZodNativeEnum:()=>z1,ZodNaN:()=>c1,ZodMap:()=>u1,ZodLiteral:()=>U1,ZodLazy:()=>D1,ZodIssueCode:()=>U,ZodIntersection:()=>_1,ZodFunction:()=>G1,ZodFirstPartyTypeKind:()=>P,ZodError:()=>H$,ZodEnum:()=>T$,ZodEffects:()=>j$,ZodDiscriminatedUnion:()=>v0,ZodDefault:()=>L1,ZodDate:()=>c$,ZodCatch:()=>j1,ZodBranded:()=>g0,ZodBoolean:()=>w1,ZodBigInt:()=>x$,ZodArray:()=>U$,ZodAny:()=>d$,Schema:()=>h,ParseStatus:()=>t,OK:()=>J$,NEVER:()=>uH,INVALID:()=>b,EMPTY_PATH:()=>hX,DIRTY:()=>u$,BRAND:()=>WH});var g;(function($){$.assertEqual=(W)=>{};function q(W){}$.assertIs=q;function Q(W){throw Error()}$.assertNever=Q,$.arrayToEnum=(W)=>{let X={};for(let H of W)X[H]=H;return X},$.getValidEnumValues=(W)=>{let X=$.objectKeys(W).filter((Y)=>typeof W[W[Y]]!=="number"),H={};for(let Y of X)H[Y]=W[Y];return $.objectValues(H)},$.objectValues=(W)=>{return $.objectKeys(W).map(function(X){return W[X]})},$.objectKeys=typeof Object.keys==="function"?(W)=>Object.keys(W):(W)=>{let X=[];for(let H in W)if(Object.prototype.hasOwnProperty.call(W,H))X.push(H);return X},$.find=(W,X)=>{for(let H of W)if(X(H))return H;return},$.isInteger=typeof Number.isInteger==="function"?(W)=>Number.isInteger(W):(W)=>typeof W==="number"&&Number.isFinite(W)&&Math.floor(W)===W;function J(W,X=" | "){return W.map((H)=>typeof H==="string"?`'${H}'`:H).join(X)}$.joinValues=J,$.jsonStringifyReplacer=(W,X)=>{if(typeof X==="bigint")return X.toString();return X}})(g||(g={}));var l6;(function($){$.mergeShapes=(q,Q)=>{return{...q,...Q}}})(l6||(l6={}));var L=g.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),A$=($)=>{switch(typeof $){case"undefined":return L.undefined;case"string":return L.string;case"number":return Number.isNaN($)?L.nan:L.number;case"boolean":return L.boolean;case"function":return L.function;case"bigint":return L.bigint;case"symbol":return L.symbol;case"object":if(Array.isArray($))return L.array;if($===null)return L.null;if($.then&&typeof $.then==="function"&&$.catch&&typeof $.catch==="function")return L.promise;if(typeof Map<"u"&&$ instanceof Map)return L.map;if(typeof Set<"u"&&$ instanceof Set)return L.set;if(typeof Date<"u"&&$ instanceof Date)return L.date;return L.object;default:return L.unknown}};var U=g.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),fX=($)=>{return JSON.stringify($,null,2).replace(/"([^"]+)":/g,"$1:")};class H$ extends Error{get errors(){return this.issues}constructor($){super();this.issues=[],this.addIssue=(Q)=>{this.issues=[...this.issues,Q]},this.addIssues=(Q=[])=>{this.issues=[...this.issues,...Q]};let q=new.target.prototype;if(Object.setPrototypeOf)Object.setPrototypeOf(this,q);else this.__proto__=q;this.name="ZodError",this.issues=$}format($){let q=$||function(W){return W.message},Q={_errors:[]},J=(W)=>{for(let X of W.issues)if(X.code==="invalid_union")X.unionErrors.map(J);else if(X.code==="invalid_return_type")J(X.returnTypeError);else if(X.code==="invalid_arguments")J(X.argumentsError);else if(X.path.length===0)Q._errors.push(q(X));else{let H=Q,Y=0;while(Y<X.path.length){let G=X.path[Y];if(Y!==X.path.length-1)H[G]=H[G]||{_errors:[]};else H[G]=H[G]||{_errors:[]},H[G]._errors.push(q(X));H=H[G],Y++}}};return J(this),Q}static assert($){if(!($ instanceof H$))throw Error(`Not a ZodError: ${$}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,g.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten($=(q)=>q.message){let q={},Q=[];for(let J of this.issues)if(J.path.length>0){let W=J.path[0];q[W]=q[W]||[],q[W].push($(J))}else Q.push($(J));return{formErrors:Q,fieldErrors:q}}get formErrors(){return this.flatten()}}H$.create=($)=>{return new H$($)};var xX=($,q)=>{let Q;switch($.code){case U.invalid_type:if($.received===L.undefined)Q="Required";else Q=`Expected ${$.expected}, received ${$.received}`;break;case U.invalid_literal:Q=`Invalid literal value, expected ${JSON.stringify($.expected,g.jsonStringifyReplacer)}`;break;case U.unrecognized_keys:Q=`Unrecognized key(s) in object: ${g.joinValues($.keys,", ")}`;break;case U.invalid_union:Q="Invalid input";break;case U.invalid_union_discriminator:Q=`Invalid discriminator value. Expected ${g.joinValues($.options)}`;break;case U.invalid_enum_value:Q=`Invalid enum value. Expected ${g.joinValues($.options)}, received '${$.received}'`;break;case U.invalid_arguments:Q="Invalid function arguments";break;case U.invalid_return_type:Q="Invalid function return type";break;case U.invalid_date:Q="Invalid date";break;case U.invalid_string:if(typeof $.validation==="object")if("includes"in $.validation){if(Q=`Invalid input: must include "${$.validation.includes}"`,typeof $.validation.position==="number")Q=`${Q} at one or more positions greater than or equal to ${$.validation.position}`}else if("startsWith"in $.validation)Q=`Invalid input: must start with "${$.validation.startsWith}"`;else if("endsWith"in $.validation)Q=`Invalid input: must end with "${$.validation.endsWith}"`;else g.assertNever($.validation);else if($.validation!=="regex")Q=`Invalid ${$.validation}`;else Q="Invalid";break;case U.too_small:if($.type==="array")Q=`Array must contain ${$.exact?"exactly":$.inclusive?"at least":"more than"} ${$.minimum} element(s)`;else if($.type==="string")Q=`String must contain ${$.exact?"exactly":$.inclusive?"at least":"over"} ${$.minimum} character(s)`;else if($.type==="number")Q=`Number must be ${$.exact?"exactly equal to ":$.inclusive?"greater than or equal to ":"greater than "}${$.minimum}`;else if($.type==="bigint")Q=`Number must be ${$.exact?"exactly equal to ":$.inclusive?"greater than or equal to ":"greater than "}${$.minimum}`;else if($.type==="date")Q=`Date must be ${$.exact?"exactly equal to ":$.inclusive?"greater than or equal to ":"greater than "}${new Date(Number($.minimum))}`;else Q="Invalid input";break;case U.too_big:if($.type==="array")Q=`Array must contain ${$.exact?"exactly":$.inclusive?"at most":"less than"} ${$.maximum} element(s)`;else if($.type==="string")Q=`String must contain ${$.exact?"exactly":$.inclusive?"at most":"under"} ${$.maximum} character(s)`;else if($.type==="number")Q=`Number must be ${$.exact?"exactly":$.inclusive?"less than or equal to":"less than"} ${$.maximum}`;else if($.type==="bigint")Q=`BigInt must be ${$.exact?"exactly":$.inclusive?"less than or equal to":"less than"} ${$.maximum}`;else if($.type==="date")Q=`Date must be ${$.exact?"exactly":$.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number($.maximum))}`;else Q="Invalid input";break;case U.custom:Q="Invalid input";break;case U.invalid_intersection_types:Q="Intersection results could not be merged";break;case U.not_multiple_of:Q=`Number must be a multiple of ${$.multipleOf}`;break;case U.not_finite:Q="Number must be finite";break;default:Q=q.defaultError,g.assertNever($)}return{message:Q}},M$=xX;var UQ=M$;function TX($){UQ=$}function X1(){return UQ}var g1=($)=>{let{data:q,path:Q,errorMaps:J,issueData:W}=$,X=[...Q,...W.path||[]],H={...W,path:X};if(W.message!==void 0)return{...W,path:X,message:W.message};let Y="",G=J.filter((V)=>!!V).slice().reverse();for(let V of G)Y=V(H,{data:q,defaultError:Y}).message;return{...W,path:X,message:Y}},hX=[];function R($,q){let Q=X1(),J=g1({issueData:q,data:$.data,path:$.path,errorMaps:[$.common.contextualErrorMap,$.schemaErrorMap,Q,Q===M$?void 0:M$].filter((W)=>!!W)});$.common.issues.push(J)}class t{constructor(){this.value="valid"}dirty(){if(this.value==="valid")this.value="dirty"}abort(){if(this.value!=="aborted")this.value="aborted"}static mergeArray($,q){let Q=[];for(let J of q){if(J.status==="aborted")return b;if(J.status==="dirty")$.dirty();Q.push(J.value)}return{status:$.value,value:Q}}static async mergeObjectAsync($,q){let Q=[];for(let J of q){let W=await J.key,X=await J.value;Q.push({key:W,value:X})}return t.mergeObjectSync($,Q)}static mergeObjectSync($,q){let Q={};for(let J of q){let{key:W,value:X}=J;if(W.status==="aborted")return b;if(X.status==="aborted")return b;if(W.status==="dirty")$.dirty();if(X.status==="dirty")$.dirty();if(W.value!=="__proto__"&&(typeof X.value<"u"||J.alwaysSet))Q[W.value]=X.value}return{status:$.value,value:Q}}}var b=Object.freeze({status:"aborted"}),u$=($)=>({status:"dirty",value:$}),J$=($)=>({status:"valid",value:$}),T0=($)=>$.status==="aborted",h0=($)=>$.status==="dirty",P$=($)=>$.status==="valid",H1=($)=>typeof Promise<"u"&&$ instanceof Promise;var K;(function($){$.errToObj=(q)=>typeof q==="string"?{message:q}:q||{},$.toString=(q)=>typeof q==="string"?q:q?.message})(K||(K={}));class L${constructor($,q,Q,J){this._cachedPath=[],this.parent=$,this.data=q,this._path=Q,this._key=J}get path(){if(!this._cachedPath.length)if(Array.isArray(this._key))this._cachedPath.push(...this._path,...this._key);else this._cachedPath.push(...this._path,this._key);return this._cachedPath}}var zQ=($,q)=>{if(P$(q))return{success:!0,data:q.value};else{if(!$.common.issues.length)throw Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let Q=new H$($.common.issues);return this._error=Q,this._error}}}};function T($){if(!$)return{};let{errorMap:q,invalid_type_error:Q,required_error:J,description:W}=$;if(q&&(Q||J))throw Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);if(q)return{errorMap:q,description:W};return{errorMap:(H,Y)=>{let{message:G}=$;if(H.code==="invalid_enum_value")return{message:G??Y.defaultError};if(typeof Y.data>"u")return{message:G??J??Y.defaultError};if(H.code!=="invalid_type")return{message:Y.defaultError};return{message:G??Q??Y.defaultError}},description:W}}class h{get description(){return this._def.description}_getType($){return A$($.data)}_getOrReturnCtx($,q){return q||{common:$.parent.common,data:$.data,parsedType:A$($.data),schemaErrorMap:this._def.errorMap,path:$.path,parent:$.parent}}_processInputParams($){return{status:new t,ctx:{common:$.parent.common,data:$.data,parsedType:A$($.data),schemaErrorMap:this._def.errorMap,path:$.path,parent:$.parent}}}_parseSync($){let q=this._parse($);if(H1(q))throw Error("Synchronous parse encountered promise.");return q}_parseAsync($){let q=this._parse($);return Promise.resolve(q)}parse($,q){let Q=this.safeParse($,q);if(Q.success)return Q.data;throw Q.error}safeParse($,q){let Q={common:{issues:[],async:q?.async??!1,contextualErrorMap:q?.errorMap},path:q?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:$,parsedType:A$($)},J=this._parseSync({data:$,path:Q.path,parent:Q});return zQ(Q,J)}"~validate"($){let q={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:$,parsedType:A$($)};if(!this["~standard"].async)try{let Q=this._parseSync({data:$,path:[],parent:q});return P$(Q)?{value:Q.value}:{issues:q.common.issues}}catch(Q){if(Q?.message?.toLowerCase()?.includes("encountered"))this["~standard"].async=!0;q.common={issues:[],async:!0}}return this._parseAsync({data:$,path:[],parent:q}).then((Q)=>P$(Q)?{value:Q.value}:{issues:q.common.issues})}async parseAsync($,q){let Q=await this.safeParseAsync($,q);if(Q.success)return Q.data;throw Q.error}async safeParseAsync($,q){let Q={common:{issues:[],contextualErrorMap:q?.errorMap,async:!0},path:q?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:$,parsedType:A$($)},J=this._parse({data:$,path:Q.path,parent:Q}),W=await(H1(J)?J:Promise.resolve(J));return zQ(Q,W)}refine($,q){let Q=(J)=>{if(typeof q==="string"||typeof q>"u")return{message:q};else if(typeof q==="function")return q(J);else return q};return this._refinement((J,W)=>{let X=$(J),H=()=>W.addIssue({code:U.custom,...Q(J)});if(typeof Promise<"u"&&X instanceof Promise)return X.then((Y)=>{if(!Y)return H(),!1;else return!0});if(!X)return H(),!1;else return!0})}refinement($,q){return this._refinement((Q,J)=>{if(!$(Q))return J.addIssue(typeof q==="function"?q(Q,J):q),!1;else return!0})}_refinement($){return new j$({schema:this,typeName:P.ZodEffects,effect:{type:"refinement",refinement:$}})}superRefine($){return this._refinement($)}constructor($){this.spa=this.safeParseAsync,this._def=$,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:(q)=>this["~validate"](q)}}optional(){return z$.create(this,this._def)}nullable(){return k$.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return U$.create(this)}promise(){return p$.create(this,this._def)}or($){return F1.create([this,$],this._def)}and($){return _1.create(this,$,this._def)}transform($){return new j$({...T(this._def),schema:this,typeName:P.ZodEffects,effect:{type:"transform",transform:$}})}default($){let q=typeof $==="function"?$:()=>$;return new L1({...T(this._def),innerType:this,defaultValue:q,typeName:P.ZodDefault})}brand(){return new g0({typeName:P.ZodBranded,type:this,...T(this._def)})}catch($){let q=typeof $==="function"?$:()=>$;return new j1({...T(this._def),innerType:this,catchValue:q,typeName:P.ZodCatch})}describe($){return new this.constructor({...this._def,description:$})}pipe($){return d1.create(this,$)}readonly(){return N1.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}var vX=/^c[^\s-]{8,}$/i,gX=/^[0-9a-z]+$/,mX=/^[0-9A-HJKMNP-TV-Z]{26}$/i,yX=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,lX=/^[a-z0-9_-]{21}$/i,uX=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,cX=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,dX=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,nX="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",u6,pX=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,iX=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,oX=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,sX=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,rX=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,aX=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,jQ="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",tX=new RegExp(`^${jQ}$`);function NQ($){let q="[0-5]\\d";if($.precision)q=`${q}\\.\\d{${$.precision}}`;else if($.precision==null)q=`${q}(\\.\\d+)?`;let Q=$.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${q})${Q}`}function eX($){return new RegExp(`^${NQ($)}$`)}function RQ($){let q=`${jQ}T${NQ($)}`,Q=[];if(Q.push($.local?"Z?":"Z"),$.offset)Q.push("([+-]\\d{2}:?\\d{2})");return q=`${q}(${Q.join("|")})`,new RegExp(`^${q}$`)}function $H($,q){if((q==="v4"||!q)&&pX.test($))return!0;if((q==="v6"||!q)&&oX.test($))return!0;return!1}function qH($,q){if(!uX.test($))return!1;try{let[Q]=$.split(".");if(!Q)return!1;let J=Q.replace(/-/g,"+").replace(/_/g,"/").padEnd(Q.length+(4-Q.length%4)%4,"="),W=JSON.parse(atob(J));if(typeof W!=="object"||W===null)return!1;if("typ"in W&&W?.typ!=="JWT")return!1;if(!W.alg)return!1;if(q&&W.alg!==q)return!1;return!0}catch{return!1}}function QH($,q){if((q==="v4"||!q)&&iX.test($))return!0;if((q==="v6"||!q)&&sX.test($))return!0;return!1}class D$ extends h{_parse($){if(this._def.coerce)$.data=String($.data);if(this._getType($)!==L.string){let W=this._getOrReturnCtx($);return R(W,{code:U.invalid_type,expected:L.string,received:W.parsedType}),b}let Q=new t,J=void 0;for(let W of this._def.checks)if(W.kind==="min"){if($.data.length<W.value)J=this._getOrReturnCtx($,J),R(J,{code:U.too_small,minimum:W.value,type:"string",inclusive:!0,exact:!1,message:W.message}),Q.dirty()}else if(W.kind==="max"){if($.data.length>W.value)J=this._getOrReturnCtx($,J),R(J,{code:U.too_big,maximum:W.value,type:"string",inclusive:!0,exact:!1,message:W.message}),Q.dirty()}else if(W.kind==="length"){let X=$.data.length>W.value,H=$.data.length<W.value;if(X||H){if(J=this._getOrReturnCtx($,J),X)R(J,{code:U.too_big,maximum:W.value,type:"string",inclusive:!0,exact:!0,message:W.message});else if(H)R(J,{code:U.too_small,minimum:W.value,type:"string",inclusive:!0,exact:!0,message:W.message});Q.dirty()}}else if(W.kind==="email"){if(!dX.test($.data))J=this._getOrReturnCtx($,J),R(J,{validation:"email",code:U.invalid_string,message:W.message}),Q.dirty()}else if(W.kind==="emoji"){if(!u6)u6=new RegExp(nX,"u");if(!u6.test($.data))J=this._getOrReturnCtx($,J),R(J,{validation:"emoji",code:U.invalid_string,message:W.message}),Q.dirty()}else if(W.kind==="uuid"){if(!yX.test($.data))J=this._getOrReturnCtx($,J),R(J,{validation:"uuid",code:U.invalid_string,message:W.message}),Q.dirty()}else if(W.kind==="nanoid"){if(!lX.test($.data))J=this._getOrReturnCtx($,J),R(J,{validation:"nanoid",code:U.invalid_string,message:W.message}),Q.dirty()}else if(W.kind==="cuid"){if(!vX.test($.data))J=this._getOrReturnCtx($,J),R(J,{validation:"cuid",code:U.invalid_string,message:W.message}),Q.dirty()}else if(W.kind==="cuid2"){if(!gX.test($.data))J=this._getOrReturnCtx($,J),R(J,{validation:"cuid2",code:U.invalid_string,message:W.message}),Q.dirty()}else if(W.kind==="ulid"){if(!mX.test($.data))J=this._getOrReturnCtx($,J),R(J,{validation:"ulid",code:U.invalid_string,message:W.message}),Q.dirty()}else if(W.kind==="url")try{new URL($.data)}catch{J=this._getOrReturnCtx($,J),R(J,{validation:"url",code:U.invalid_string,message:W.message}),Q.dirty()}else if(W.kind==="regex"){if(W.regex.lastIndex=0,!W.regex.test($.data))J=this._getOrReturnCtx($,J),R(J,{validation:"regex",code:U.invalid_string,message:W.message}),Q.dirty()}else if(W.kind==="trim")$.data=$.data.trim();else if(W.kind==="includes"){if(!$.data.includes(W.value,W.position))J=this._getOrReturnCtx($,J),R(J,{code:U.invalid_string,validation:{includes:W.value,position:W.position},message:W.message}),Q.dirty()}else if(W.kind==="toLowerCase")$.data=$.data.toLowerCase();else if(W.kind==="toUpperCase")$.data=$.data.toUpperCase();else if(W.kind==="startsWith"){if(!$.data.startsWith(W.value))J=this._getOrReturnCtx($,J),R(J,{code:U.invalid_string,validation:{startsWith:W.value},message:W.message}),Q.dirty()}else if(W.kind==="endsWith"){if(!$.data.endsWith(W.value))J=this._getOrReturnCtx($,J),R(J,{code:U.invalid_string,validation:{endsWith:W.value},message:W.message}),Q.dirty()}else if(W.kind==="datetime"){if(!RQ(W).test($.data))J=this._getOrReturnCtx($,J),R(J,{code:U.invalid_string,validation:"datetime",message:W.message}),Q.dirty()}else if(W.kind==="date"){if(!tX.test($.data))J=this._getOrReturnCtx($,J),R(J,{code:U.invalid_string,validation:"date",message:W.message}),Q.dirty()}else if(W.kind==="time"){if(!eX(W).test($.data))J=this._getOrReturnCtx($,J),R(J,{code:U.invalid_string,validation:"time",message:W.message}),Q.dirty()}else if(W.kind==="duration"){if(!cX.test($.data))J=this._getOrReturnCtx($,J),R(J,{validation:"duration",code:U.invalid_string,message:W.message}),Q.dirty()}else if(W.kind==="ip"){if(!$H($.data,W.version))J=this._getOrReturnCtx($,J),R(J,{validation:"ip",code:U.invalid_string,message:W.message}),Q.dirty()}else if(W.kind==="jwt"){if(!qH($.data,W.alg))J=this._getOrReturnCtx($,J),R(J,{validation:"jwt",code:U.invalid_string,message:W.message}),Q.dirty()}else if(W.kind==="cidr"){if(!QH($.data,W.version))J=this._getOrReturnCtx($,J),R(J,{validation:"cidr",code:U.invalid_string,message:W.message}),Q.dirty()}else if(W.kind==="base64"){if(!rX.test($.data))J=this._getOrReturnCtx($,J),R(J,{validation:"base64",code:U.invalid_string,message:W.message}),Q.dirty()}else if(W.kind==="base64url"){if(!aX.test($.data))J=this._getOrReturnCtx($,J),R(J,{validation:"base64url",code:U.invalid_string,message:W.message}),Q.dirty()}else g.assertNever(W);return{status:Q.value,value:$.data}}_regex($,q,Q){return this.refinement((J)=>$.test(J),{validation:q,code:U.invalid_string,...K.errToObj(Q)})}_addCheck($){return new D$({...this._def,checks:[...this._def.checks,$]})}email($){return this._addCheck({kind:"email",...K.errToObj($)})}url($){return this._addCheck({kind:"url",...K.errToObj($)})}emoji($){return this._addCheck({kind:"emoji",...K.errToObj($)})}uuid($){return this._addCheck({kind:"uuid",...K.errToObj($)})}nanoid($){return this._addCheck({kind:"nanoid",...K.errToObj($)})}cuid($){return this._addCheck({kind:"cuid",...K.errToObj($)})}cuid2($){return this._addCheck({kind:"cuid2",...K.errToObj($)})}ulid($){return this._addCheck({kind:"ulid",...K.errToObj($)})}base64($){return this._addCheck({kind:"base64",...K.errToObj($)})}base64url($){return this._addCheck({kind:"base64url",...K.errToObj($)})}jwt($){return this._addCheck({kind:"jwt",...K.errToObj($)})}ip($){return this._addCheck({kind:"ip",...K.errToObj($)})}cidr($){return this._addCheck({kind:"cidr",...K.errToObj($)})}datetime($){if(typeof $==="string")return this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:$});return this._addCheck({kind:"datetime",precision:typeof $?.precision>"u"?null:$?.precision,offset:$?.offset??!1,local:$?.local??!1,...K.errToObj($?.message)})}date($){return this._addCheck({kind:"date",message:$})}time($){if(typeof $==="string")return this._addCheck({kind:"time",precision:null,message:$});return this._addCheck({kind:"time",precision:typeof $?.precision>"u"?null:$?.precision,...K.errToObj($?.message)})}duration($){return this._addCheck({kind:"duration",...K.errToObj($)})}regex($,q){return this._addCheck({kind:"regex",regex:$,...K.errToObj(q)})}includes($,q){return this._addCheck({kind:"includes",value:$,position:q?.position,...K.errToObj(q?.message)})}startsWith($,q){return this._addCheck({kind:"startsWith",value:$,...K.errToObj(q)})}endsWith($,q){return this._addCheck({kind:"endsWith",value:$,...K.errToObj(q)})}min($,q){return this._addCheck({kind:"min",value:$,...K.errToObj(q)})}max($,q){return this._addCheck({kind:"max",value:$,...K.errToObj(q)})}length($,q){return this._addCheck({kind:"length",value:$,...K.errToObj(q)})}nonempty($){return this.min(1,K.errToObj($))}trim(){return new D$({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new D$({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new D$({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(($)=>$.kind==="datetime")}get isDate(){return!!this._def.checks.find(($)=>$.kind==="date")}get isTime(){return!!this._def.checks.find(($)=>$.kind==="time")}get isDuration(){return!!this._def.checks.find(($)=>$.kind==="duration")}get isEmail(){return!!this._def.checks.find(($)=>$.kind==="email")}get isURL(){return!!this._def.checks.find(($)=>$.kind==="url")}get isEmoji(){return!!this._def.checks.find(($)=>$.kind==="emoji")}get isUUID(){return!!this._def.checks.find(($)=>$.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(($)=>$.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(($)=>$.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(($)=>$.kind==="cuid2")}get isULID(){return!!this._def.checks.find(($)=>$.kind==="ulid")}get isIP(){return!!this._def.checks.find(($)=>$.kind==="ip")}get isCIDR(){return!!this._def.checks.find(($)=>$.kind==="cidr")}get isBase64(){return!!this._def.checks.find(($)=>$.kind==="base64")}get isBase64url(){return!!this._def.checks.find(($)=>$.kind==="base64url")}get minLength(){let $=null;for(let q of this._def.checks)if(q.kind==="min"){if($===null||q.value>$)$=q.value}return $}get maxLength(){let $=null;for(let q of this._def.checks)if(q.kind==="max"){if($===null||q.value<$)$=q.value}return $}}D$.create=($)=>{return new D$({checks:[],typeName:P.ZodString,coerce:$?.coerce??!1,...T($)})};function JH($,q){let Q=($.toString().split(".")[1]||"").length,J=(q.toString().split(".")[1]||"").length,W=Q>J?Q:J,X=Number.parseInt($.toFixed(W).replace(".","")),H=Number.parseInt(q.toFixed(W).replace(".",""));return X%H/10**W}class f$ extends h{constructor(){super(...arguments);this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse($){if(this._def.coerce)$.data=Number($.data);if(this._getType($)!==L.number){let W=this._getOrReturnCtx($);return R(W,{code:U.invalid_type,expected:L.number,received:W.parsedType}),b}let Q=void 0,J=new t;for(let W of this._def.checks)if(W.kind==="int"){if(!g.isInteger($.data))Q=this._getOrReturnCtx($,Q),R(Q,{code:U.invalid_type,expected:"integer",received:"float",message:W.message}),J.dirty()}else if(W.kind==="min"){if(W.inclusive?$.data<W.value:$.data<=W.value)Q=this._getOrReturnCtx($,Q),R(Q,{code:U.too_small,minimum:W.value,type:"number",inclusive:W.inclusive,exact:!1,message:W.message}),J.dirty()}else if(W.kind==="max"){if(W.inclusive?$.data>W.value:$.data>=W.value)Q=this._getOrReturnCtx($,Q),R(Q,{code:U.too_big,maximum:W.value,type:"number",inclusive:W.inclusive,exact:!1,message:W.message}),J.dirty()}else if(W.kind==="multipleOf"){if(JH($.data,W.value)!==0)Q=this._getOrReturnCtx($,Q),R(Q,{code:U.not_multiple_of,multipleOf:W.value,message:W.message}),J.dirty()}else if(W.kind==="finite"){if(!Number.isFinite($.data))Q=this._getOrReturnCtx($,Q),R(Q,{code:U.not_finite,message:W.message}),J.dirty()}else g.assertNever(W);return{status:J.value,value:$.data}}gte($,q){return this.setLimit("min",$,!0,K.toString(q))}gt($,q){return this.setLimit("min",$,!1,K.toString(q))}lte($,q){return this.setLimit("max",$,!0,K.toString(q))}lt($,q){return this.setLimit("max",$,!1,K.toString(q))}setLimit($,q,Q,J){return new f$({...this._def,checks:[...this._def.checks,{kind:$,value:q,inclusive:Q,message:K.toString(J)}]})}_addCheck($){return new f$({...this._def,checks:[...this._def.checks,$]})}int($){return this._addCheck({kind:"int",message:K.toString($)})}positive($){return this._addCheck({kind:"min",value:0,inclusive:!1,message:K.toString($)})}negative($){return this._addCheck({kind:"max",value:0,inclusive:!1,message:K.toString($)})}nonpositive($){return this._addCheck({kind:"max",value:0,inclusive:!0,message:K.toString($)})}nonnegative($){return this._addCheck({kind:"min",value:0,inclusive:!0,message:K.toString($)})}multipleOf($,q){return this._addCheck({kind:"multipleOf",value:$,message:K.toString(q)})}finite($){return this._addCheck({kind:"finite",message:K.toString($)})}safe($){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:K.toString($)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:K.toString($)})}get minValue(){let $=null;for(let q of this._def.checks)if(q.kind==="min"){if($===null||q.value>$)$=q.value}return $}get maxValue(){let $=null;for(let q of this._def.checks)if(q.kind==="max"){if($===null||q.value<$)$=q.value}return $}get isInt(){return!!this._def.checks.find(($)=>$.kind==="int"||$.kind==="multipleOf"&&g.isInteger($.value))}get isFinite(){let $=null,q=null;for(let Q of this._def.checks)if(Q.kind==="finite"||Q.kind==="int"||Q.kind==="multipleOf")return!0;else if(Q.kind==="min"){if(q===null||Q.value>q)q=Q.value}else if(Q.kind==="max"){if($===null||Q.value<$)$=Q.value}return Number.isFinite(q)&&Number.isFinite($)}}f$.create=($)=>{return new f$({checks:[],typeName:P.ZodNumber,coerce:$?.coerce||!1,...T($)})};class x$ extends h{constructor(){super(...arguments);this.min=this.gte,this.max=this.lte}_parse($){if(this._def.coerce)try{$.data=BigInt($.data)}catch{return this._getInvalidInput($)}if(this._getType($)!==L.bigint)return this._getInvalidInput($);let Q=void 0,J=new t;for(let W of this._def.checks)if(W.kind==="min"){if(W.inclusive?$.data<W.value:$.data<=W.value)Q=this._getOrReturnCtx($,Q),R(Q,{code:U.too_small,type:"bigint",minimum:W.value,inclusive:W.inclusive,message:W.message}),J.dirty()}else if(W.kind==="max"){if(W.inclusive?$.data>W.value:$.data>=W.value)Q=this._getOrReturnCtx($,Q),R(Q,{code:U.too_big,type:"bigint",maximum:W.value,inclusive:W.inclusive,message:W.message}),J.dirty()}else if(W.kind==="multipleOf"){if($.data%W.value!==BigInt(0))Q=this._getOrReturnCtx($,Q),R(Q,{code:U.not_multiple_of,multipleOf:W.value,message:W.message}),J.dirty()}else g.assertNever(W);return{status:J.value,value:$.data}}_getInvalidInput($){let q=this._getOrReturnCtx($);return R(q,{code:U.invalid_type,expected:L.bigint,received:q.parsedType}),b}gte($,q){return this.setLimit("min",$,!0,K.toString(q))}gt($,q){return this.setLimit("min",$,!1,K.toString(q))}lte($,q){return this.setLimit("max",$,!0,K.toString(q))}lt($,q){return this.setLimit("max",$,!1,K.toString(q))}setLimit($,q,Q,J){return new x$({...this._def,checks:[...this._def.checks,{kind:$,value:q,inclusive:Q,message:K.toString(J)}]})}_addCheck($){return new x$({...this._def,checks:[...this._def.checks,$]})}positive($){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:K.toString($)})}negative($){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:K.toString($)})}nonpositive($){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:K.toString($)})}nonnegative($){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:K.toString($)})}multipleOf($,q){return this._addCheck({kind:"multipleOf",value:$,message:K.toString(q)})}get minValue(){let $=null;for(let q of this._def.checks)if(q.kind==="min"){if($===null||q.value>$)$=q.value}return $}get maxValue(){let $=null;for(let q of this._def.checks)if(q.kind==="max"){if($===null||q.value<$)$=q.value}return $}}x$.create=($)=>{return new x$({checks:[],typeName:P.ZodBigInt,coerce:$?.coerce??!1,...T($)})};class w1 extends h{_parse($){if(this._def.coerce)$.data=Boolean($.data);if(this._getType($)!==L.boolean){let Q=this._getOrReturnCtx($);return R(Q,{code:U.invalid_type,expected:L.boolean,received:Q.parsedType}),b}return J$($.data)}}w1.create=($)=>{return new w1({typeName:P.ZodBoolean,coerce:$?.coerce||!1,...T($)})};class c$ extends h{_parse($){if(this._def.coerce)$.data=new Date($.data);if(this._getType($)!==L.date){let W=this._getOrReturnCtx($);return R(W,{code:U.invalid_type,expected:L.date,received:W.parsedType}),b}if(Number.isNaN($.data.getTime())){let W=this._getOrReturnCtx($);return R(W,{code:U.invalid_date}),b}let Q=new t,J=void 0;for(let W of this._def.checks)if(W.kind==="min"){if($.data.getTime()<W.value)J=this._getOrReturnCtx($,J),R(J,{code:U.too_small,message:W.message,inclusive:!0,exact:!1,minimum:W.value,type:"date"}),Q.dirty()}else if(W.kind==="max"){if($.data.getTime()>W.value)J=this._getOrReturnCtx($,J),R(J,{code:U.too_big,message:W.message,inclusive:!0,exact:!1,maximum:W.value,type:"date"}),Q.dirty()}else g.assertNever(W);return{status:Q.value,value:new Date($.data.getTime())}}_addCheck($){return new c$({...this._def,checks:[...this._def.checks,$]})}min($,q){return this._addCheck({kind:"min",value:$.getTime(),message:K.toString(q)})}max($,q){return this._addCheck({kind:"max",value:$.getTime(),message:K.toString(q)})}get minDate(){let $=null;for(let q of this._def.checks)if(q.kind==="min"){if($===null||q.value>$)$=q.value}return $!=null?new Date($):null}get maxDate(){let $=null;for(let q of this._def.checks)if(q.kind==="max"){if($===null||q.value<$)$=q.value}return $!=null?new Date($):null}}c$.create=($)=>{return new c$({checks:[],coerce:$?.coerce||!1,typeName:P.ZodDate,...T($)})};class m1 extends h{_parse($){if(this._getType($)!==L.symbol){let Q=this._getOrReturnCtx($);return R(Q,{code:U.invalid_type,expected:L.symbol,received:Q.parsedType}),b}return J$($.data)}}m1.create=($)=>{return new m1({typeName:P.ZodSymbol,...T($)})};class B1 extends h{_parse($){if(this._getType($)!==L.undefined){let Q=this._getOrReturnCtx($);return R(Q,{code:U.invalid_type,expected:L.undefined,received:Q.parsedType}),b}return J$($.data)}}B1.create=($)=>{return new B1({typeName:P.ZodUndefined,...T($)})};class V1 extends h{_parse($){if(this._getType($)!==L.null){let Q=this._getOrReturnCtx($);return R(Q,{code:U.invalid_type,expected:L.null,received:Q.parsedType}),b}return J$($.data)}}V1.create=($)=>{return new V1({typeName:P.ZodNull,...T($)})};class d$ extends h{constructor(){super(...arguments);this._any=!0}_parse($){return J$($.data)}}d$.create=($)=>{return new d$({typeName:P.ZodAny,...T($)})};class Z$ extends h{constructor(){super(...arguments);this._unknown=!0}_parse($){return J$($.data)}}Z$.create=($)=>{return new Z$({typeName:P.ZodUnknown,...T($)})};class C$ extends h{_parse($){let q=this._getOrReturnCtx($);return R(q,{code:U.invalid_type,expected:L.never,received:q.parsedType}),b}}C$.create=($)=>{return new C$({typeName:P.ZodNever,...T($)})};class y1 extends h{_parse($){if(this._getType($)!==L.undefined){let Q=this._getOrReturnCtx($);return R(Q,{code:U.invalid_type,expected:L.void,received:Q.parsedType}),b}return J$($.data)}}y1.create=($)=>{return new y1({typeName:P.ZodVoid,...T($)})};class U$ extends h{_parse($){let{ctx:q,status:Q}=this._processInputParams($),J=this._def;if(q.parsedType!==L.array)return R(q,{code:U.invalid_type,expected:L.array,received:q.parsedType}),b;if(J.exactLength!==null){let X=q.data.length>J.exactLength.value,H=q.data.length<J.exactLength.value;if(X||H)R(q,{code:X?U.too_big:U.too_small,minimum:H?J.exactLength.value:void 0,maximum:X?J.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:J.exactLength.message}),Q.dirty()}if(J.minLength!==null){if(q.data.length<J.minLength.value)R(q,{code:U.too_small,minimum:J.minLength.value,type:"array",inclusive:!0,exact:!1,message:J.minLength.message}),Q.dirty()}if(J.maxLength!==null){if(q.data.length>J.maxLength.value)R(q,{code:U.too_big,maximum:J.maxLength.value,type:"array",inclusive:!0,exact:!1,message:J.maxLength.message}),Q.dirty()}if(q.common.async)return Promise.all([...q.data].map((X,H)=>{return J.type._parseAsync(new L$(q,X,q.path,H))})).then((X)=>{return t.mergeArray(Q,X)});let W=[...q.data].map((X,H)=>{return J.type._parseSync(new L$(q,X,q.path,H))});return t.mergeArray(Q,W)}get element(){return this._def.type}min($,q){return new U$({...this._def,minLength:{value:$,message:K.toString(q)}})}max($,q){return new U$({...this._def,maxLength:{value:$,message:K.toString(q)}})}length($,q){return new U$({...this._def,exactLength:{value:$,message:K.toString(q)}})}nonempty($){return this.min(1,$)}}U$.create=($,q)=>{return new U$({type:$,minLength:null,maxLength:null,exactLength:null,typeName:P.ZodArray,...T(q)})};function Y1($){if($ instanceof n){let q={};for(let Q in $.shape){let J=$.shape[Q];q[Q]=z$.create(Y1(J))}return new n({...$._def,shape:()=>q})}else if($ instanceof U$)return new U$({...$._def,type:Y1($.element)});else if($ instanceof z$)return z$.create(Y1($.unwrap()));else if($ instanceof k$)return k$.create(Y1($.unwrap()));else if($ instanceof O$)return O$.create($.items.map((q)=>Y1(q)));else return $}class n extends h{constructor(){super(...arguments);this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let $=this._def.shape(),q=g.objectKeys($);return this._cached={shape:$,keys:q},this._cached}_parse($){if(this._getType($)!==L.object){let G=this._getOrReturnCtx($);return R(G,{code:U.invalid_type,expected:L.object,received:G.parsedType}),b}let{status:Q,ctx:J}=this._processInputParams($),{shape:W,keys:X}=this._getCached(),H=[];if(!(this._def.catchall instanceof C$&&this._def.unknownKeys==="strip")){for(let G in J.data)if(!X.includes(G))H.push(G)}let Y=[];for(let G of X){let V=W[G],D=J.data[G];Y.push({key:{status:"valid",value:G},value:V._parse(new L$(J,D,J.path,G)),alwaysSet:G in J.data})}if(this._def.catchall instanceof C$){let G=this._def.unknownKeys;if(G==="passthrough")for(let V of H)Y.push({key:{status:"valid",value:V},value:{status:"valid",value:J.data[V]}});else if(G==="strict"){if(H.length>0)R(J,{code:U.unrecognized_keys,keys:H}),Q.dirty()}else if(G==="strip");else throw Error("Internal ZodObject error: invalid unknownKeys value.")}else{let G=this._def.catchall;for(let V of H){let D=J.data[V];Y.push({key:{status:"valid",value:V},value:G._parse(new L$(J,D,J.path,V)),alwaysSet:V in J.data})}}if(J.common.async)return Promise.resolve().then(async()=>{let G=[];for(let V of Y){let D=await V.key,z=await V.value;G.push({key:D,value:z,alwaysSet:V.alwaysSet})}return G}).then((G)=>{return t.mergeObjectSync(Q,G)});else return t.mergeObjectSync(Q,Y)}get shape(){return this._def.shape()}strict($){return K.errToObj,new n({...this._def,unknownKeys:"strict",...$!==void 0?{errorMap:(q,Q)=>{let J=this._def.errorMap?.(q,Q).message??Q.defaultError;if(q.code==="unrecognized_keys")return{message:K.errToObj($).message??J};return{message:J}}}:{}})}strip(){return new n({...this._def,unknownKeys:"strip"})}passthrough(){return new n({...this._def,unknownKeys:"passthrough"})}extend($){return new n({...this._def,shape:()=>({...this._def.shape(),...$})})}merge($){return new n({unknownKeys:$._def.unknownKeys,catchall:$._def.catchall,shape:()=>({...this._def.shape(),...$._def.shape()}),typeName:P.ZodObject})}setKey($,q){return this.augment({[$]:q})}catchall($){return new n({...this._def,catchall:$})}pick($){let q={};for(let Q of g.objectKeys($))if($[Q]&&this.shape[Q])q[Q]=this.shape[Q];return new n({...this._def,shape:()=>q})}omit($){let q={};for(let Q of g.objectKeys(this.shape))if(!$[Q])q[Q]=this.shape[Q];return new n({...this._def,shape:()=>q})}deepPartial(){return Y1(this)}partial($){let q={};for(let Q of g.objectKeys(this.shape)){let J=this.shape[Q];if($&&!$[Q])q[Q]=J;else q[Q]=J.optional()}return new n({...this._def,shape:()=>q})}required($){let q={};for(let Q of g.objectKeys(this.shape))if($&&!$[Q])q[Q]=this.shape[Q];else{let W=this.shape[Q];while(W instanceof z$)W=W._def.innerType;q[Q]=W}return new n({...this._def,shape:()=>q})}keyof(){return EQ(g.objectKeys(this.shape))}}n.create=($,q)=>{return new n({shape:()=>$,unknownKeys:"strip",catchall:C$.create(),typeName:P.ZodObject,...T(q)})};n.strictCreate=($,q)=>{return new n({shape:()=>$,unknownKeys:"strict",catchall:C$.create(),typeName:P.ZodObject,...T(q)})};n.lazycreate=($,q)=>{return new n({shape:$,unknownKeys:"strip",catchall:C$.create(),typeName:P.ZodObject,...T(q)})};class F1 extends h{_parse($){let{ctx:q}=this._processInputParams($),Q=this._def.options;function J(W){for(let H of W)if(H.result.status==="valid")return H.result;for(let H of W)if(H.result.status==="dirty")return q.common.issues.push(...H.ctx.common.issues),H.result;let X=W.map((H)=>new H$(H.ctx.common.issues));return R(q,{code:U.invalid_union,unionErrors:X}),b}if(q.common.async)return Promise.all(Q.map(async(W)=>{let X={...q,common:{...q.common,issues:[]},parent:null};return{result:await W._parseAsync({data:q.data,path:q.path,parent:X}),ctx:X}})).then(J);else{let W=void 0,X=[];for(let Y of Q){let G={...q,common:{...q.common,issues:[]},parent:null},V=Y._parseSync({data:q.data,path:q.path,parent:G});if(V.status==="valid")return V;else if(V.status==="dirty"&&!W)W={result:V,ctx:G};if(G.common.issues.length)X.push(G.common.issues)}if(W)return q.common.issues.push(...W.ctx.common.issues),W.result;let H=X.map((Y)=>new H$(Y));return R(q,{code:U.invalid_union,unionErrors:H}),b}}get options(){return this._def.options}}F1.create=($,q)=>{return new F1({options:$,typeName:P.ZodUnion,...T(q)})};var K$=($)=>{if($ instanceof D1)return K$($.schema);else if($ instanceof j$)return K$($.innerType());else if($ instanceof U1)return[$.value];else if($ instanceof T$)return $.options;else if($ instanceof z1)return g.objectValues($.enum);else if($ instanceof L1)return K$($._def.innerType);else if($ instanceof B1)return[void 0];else if($ instanceof V1)return[null];else if($ instanceof z$)return[void 0,...K$($.unwrap())];else if($ instanceof k$)return[null,...K$($.unwrap())];else if($ instanceof g0)return K$($.unwrap());else if($ instanceof N1)return K$($.unwrap());else if($ instanceof j1)return K$($._def.innerType);else return[]};class v0 extends h{_parse($){let{ctx:q}=this._processInputParams($);if(q.parsedType!==L.object)return R(q,{code:U.invalid_type,expected:L.object,received:q.parsedType}),b;let Q=this.discriminator,J=q.data[Q],W=this.optionsMap.get(J);if(!W)return R(q,{code:U.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[Q]}),b;if(q.common.async)return W._parseAsync({data:q.data,path:q.path,parent:q});else return W._parseSync({data:q.data,path:q.path,parent:q})}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create($,q,Q){let J=new Map;for(let W of q){let X=K$(W.shape[$]);if(!X.length)throw Error(`A discriminator value for key \`${$}\` could not be extracted from all schema options`);for(let H of X){if(J.has(H))throw Error(`Discriminator property ${String($)} has duplicate value ${String(H)}`);J.set(H,W)}}return new v0({typeName:P.ZodDiscriminatedUnion,discriminator:$,options:q,optionsMap:J,...T(Q)})}}function c6($,q){let Q=A$($),J=A$(q);if($===q)return{valid:!0,data:$};else if(Q===L.object&&J===L.object){let W=g.objectKeys(q),X=g.objectKeys($).filter((Y)=>W.indexOf(Y)!==-1),H={...$,...q};for(let Y of X){let G=c6($[Y],q[Y]);if(!G.valid)return{valid:!1};H[Y]=G.data}return{valid:!0,data:H}}else if(Q===L.array&&J===L.array){if($.length!==q.length)return{valid:!1};let W=[];for(let X=0;X<$.length;X++){let H=$[X],Y=q[X],G=c6(H,Y);if(!G.valid)return{valid:!1};W.push(G.data)}return{valid:!0,data:W}}else if(Q===L.date&&J===L.date&&+$===+q)return{valid:!0,data:$};else return{valid:!1}}class _1 extends h{_parse($){let{status:q,ctx:Q}=this._processInputParams($),J=(W,X)=>{if(T0(W)||T0(X))return b;let H=c6(W.value,X.value);if(!H.valid)return R(Q,{code:U.invalid_intersection_types}),b;if(h0(W)||h0(X))q.dirty();return{status:q.value,value:H.data}};if(Q.common.async)return Promise.all([this._def.left._parseAsync({data:Q.data,path:Q.path,parent:Q}),this._def.right._parseAsync({data:Q.data,path:Q.path,parent:Q})]).then(([W,X])=>J(W,X));else return J(this._def.left._parseSync({data:Q.data,path:Q.path,parent:Q}),this._def.right._parseSync({data:Q.data,path:Q.path,parent:Q}))}}_1.create=($,q,Q)=>{return new _1({left:$,right:q,typeName:P.ZodIntersection,...T(Q)})};class O$ extends h{_parse($){let{status:q,ctx:Q}=this._processInputParams($);if(Q.parsedType!==L.array)return R(Q,{code:U.invalid_type,expected:L.array,received:Q.parsedType}),b;if(Q.data.length<this._def.items.length)return R(Q,{code:U.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),b;if(!this._def.rest&&Q.data.length>this._def.items.length)R(Q,{code:U.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),q.dirty();let W=[...Q.data].map((X,H)=>{let Y=this._def.items[H]||this._def.rest;if(!Y)return null;return Y._parse(new L$(Q,X,Q.path,H))}).filter((X)=>!!X);if(Q.common.async)return Promise.all(W).then((X)=>{return t.mergeArray(q,X)});else return t.mergeArray(q,W)}get items(){return this._def.items}rest($){return new O$({...this._def,rest:$})}}O$.create=($,q)=>{if(!Array.isArray($))throw Error("You must pass an array of schemas to z.tuple([ ... ])");return new O$({items:$,typeName:P.ZodTuple,rest:null,...T(q)})};class l1 extends h{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse($){let{status:q,ctx:Q}=this._processInputParams($);if(Q.parsedType!==L.object)return R(Q,{code:U.invalid_type,expected:L.object,received:Q.parsedType}),b;let J=[],W=this._def.keyType,X=this._def.valueType;for(let H in Q.data)J.push({key:W._parse(new L$(Q,H,Q.path,H)),value:X._parse(new L$(Q,Q.data[H],Q.path,H)),alwaysSet:H in Q.data});if(Q.common.async)return t.mergeObjectAsync(q,J);else return t.mergeObjectSync(q,J)}get element(){return this._def.valueType}static create($,q,Q){if(q instanceof h)return new l1({keyType:$,valueType:q,typeName:P.ZodRecord,...T(Q)});return new l1({keyType:D$.create(),valueType:$,typeName:P.ZodRecord,...T(q)})}}class u1 extends h{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse($){let{status:q,ctx:Q}=this._processInputParams($);if(Q.parsedType!==L.map)return R(Q,{code:U.invalid_type,expected:L.map,received:Q.parsedType}),b;let J=this._def.keyType,W=this._def.valueType,X=[...Q.data.entries()].map(([H,Y],G)=>{return{key:J._parse(new L$(Q,H,Q.path,[G,"key"])),value:W._parse(new L$(Q,Y,Q.path,[G,"value"]))}});if(Q.common.async){let H=new Map;return Promise.resolve().then(async()=>{for(let Y of X){let G=await Y.key,V=await Y.value;if(G.status==="aborted"||V.status==="aborted")return b;if(G.status==="dirty"||V.status==="dirty")q.dirty();H.set(G.value,V.value)}return{status:q.value,value:H}})}else{let H=new Map;for(let Y of X){let{key:G,value:V}=Y;if(G.status==="aborted"||V.status==="aborted")return b;if(G.status==="dirty"||V.status==="dirty")q.dirty();H.set(G.value,V.value)}return{status:q.value,value:H}}}}u1.create=($,q,Q)=>{return new u1({valueType:q,keyType:$,typeName:P.ZodMap,...T(Q)})};class n$ extends h{_parse($){let{status:q,ctx:Q}=this._processInputParams($);if(Q.parsedType!==L.set)return R(Q,{code:U.invalid_type,expected:L.set,received:Q.parsedType}),b;let J=this._def;if(J.minSize!==null){if(Q.data.size<J.minSize.value)R(Q,{code:U.too_small,minimum:J.minSize.value,type:"set",inclusive:!0,exact:!1,message:J.minSize.message}),q.dirty()}if(J.maxSize!==null){if(Q.data.size>J.maxSize.value)R(Q,{code:U.too_big,maximum:J.maxSize.value,type:"set",inclusive:!0,exact:!1,message:J.maxSize.message}),q.dirty()}let W=this._def.valueType;function X(Y){let G=new Set;for(let V of Y){if(V.status==="aborted")return b;if(V.status==="dirty")q.dirty();G.add(V.value)}return{status:q.value,value:G}}let H=[...Q.data.values()].map((Y,G)=>W._parse(new L$(Q,Y,Q.path,G)));if(Q.common.async)return Promise.all(H).then((Y)=>X(Y));else return X(H)}min($,q){return new n$({...this._def,minSize:{value:$,message:K.toString(q)}})}max($,q){return new n$({...this._def,maxSize:{value:$,message:K.toString(q)}})}size($,q){return this.min($,q).max($,q)}nonempty($){return this.min(1,$)}}n$.create=($,q)=>{return new n$({valueType:$,minSize:null,maxSize:null,typeName:P.ZodSet,...T(q)})};class G1 extends h{constructor(){super(...arguments);this.validate=this.implement}_parse($){let{ctx:q}=this._processInputParams($);if(q.parsedType!==L.function)return R(q,{code:U.invalid_type,expected:L.function,received:q.parsedType}),b;function Q(H,Y){return g1({data:H,path:q.path,errorMaps:[q.common.contextualErrorMap,q.schemaErrorMap,X1(),M$].filter((G)=>!!G),issueData:{code:U.invalid_arguments,argumentsError:Y}})}function J(H,Y){return g1({data:H,path:q.path,errorMaps:[q.common.contextualErrorMap,q.schemaErrorMap,X1(),M$].filter((G)=>!!G),issueData:{code:U.invalid_return_type,returnTypeError:Y}})}let W={errorMap:q.common.contextualErrorMap},X=q.data;if(this._def.returns instanceof p$){let H=this;return J$(async function(...Y){let G=new H$([]),V=await H._def.args.parseAsync(Y,W).catch((Z)=>{throw G.addIssue(Q(Y,Z)),G}),D=await Reflect.apply(X,this,V);return await H._def.returns._def.type.parseAsync(D,W).catch((Z)=>{throw G.addIssue(J(D,Z)),G})})}else{let H=this;return J$(function(...Y){let G=H._def.args.safeParse(Y,W);if(!G.success)throw new H$([Q(Y,G.error)]);let V=Reflect.apply(X,this,G.data),D=H._def.returns.safeParse(V,W);if(!D.success)throw new H$([J(V,D.error)]);return D.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...$){return new G1({...this._def,args:O$.create($).rest(Z$.create())})}returns($){return new G1({...this._def,returns:$})}implement($){return this.parse($)}strictImplement($){return this.parse($)}static create($,q,Q){return new G1({args:$?$:O$.create([]).rest(Z$.create()),returns:q||Z$.create(),typeName:P.ZodFunction,...T(Q)})}}class D1 extends h{get schema(){return this._def.getter()}_parse($){let{ctx:q}=this._processInputParams($);return this._def.getter()._parse({data:q.data,path:q.path,parent:q})}}D1.create=($,q)=>{return new D1({getter:$,typeName:P.ZodLazy,...T(q)})};class U1 extends h{_parse($){if($.data!==this._def.value){let q=this._getOrReturnCtx($);return R(q,{received:q.data,code:U.invalid_literal,expected:this._def.value}),b}return{status:"valid",value:$.data}}get value(){return this._def.value}}U1.create=($,q)=>{return new U1({value:$,typeName:P.ZodLiteral,...T(q)})};function EQ($,q){return new T$({values:$,typeName:P.ZodEnum,...T(q)})}class T$ extends h{_parse($){if(typeof $.data!=="string"){let q=this._getOrReturnCtx($),Q=this._def.values;return R(q,{expected:g.joinValues(Q),received:q.parsedType,code:U.invalid_type}),b}if(!this._cache)this._cache=new Set(this._def.values);if(!this._cache.has($.data)){let q=this._getOrReturnCtx($),Q=this._def.values;return R(q,{received:q.data,code:U.invalid_enum_value,options:Q}),b}return J$($.data)}get options(){return this._def.values}get enum(){let $={};for(let q of this._def.values)$[q]=q;return $}get Values(){let $={};for(let q of this._def.values)$[q]=q;return $}get Enum(){let $={};for(let q of this._def.values)$[q]=q;return $}extract($,q=this._def){return T$.create($,{...this._def,...q})}exclude($,q=this._def){return T$.create(this.options.filter((Q)=>!$.includes(Q)),{...this._def,...q})}}T$.create=EQ;class z1 extends h{_parse($){let q=g.getValidEnumValues(this._def.values),Q=this._getOrReturnCtx($);if(Q.parsedType!==L.string&&Q.parsedType!==L.number){let J=g.objectValues(q);return R(Q,{expected:g.joinValues(J),received:Q.parsedType,code:U.invalid_type}),b}if(!this._cache)this._cache=new Set(g.getValidEnumValues(this._def.values));if(!this._cache.has($.data)){let J=g.objectValues(q);return R(Q,{received:Q.data,code:U.invalid_enum_value,options:J}),b}return J$($.data)}get enum(){return this._def.values}}z1.create=($,q)=>{return new z1({values:$,typeName:P.ZodNativeEnum,...T(q)})};class p$ extends h{unwrap(){return this._def.type}_parse($){let{ctx:q}=this._processInputParams($);if(q.parsedType!==L.promise&&q.common.async===!1)return R(q,{code:U.invalid_type,expected:L.promise,received:q.parsedType}),b;let Q=q.parsedType===L.promise?q.data:Promise.resolve(q.data);return J$(Q.then((J)=>{return this._def.type.parseAsync(J,{path:q.path,errorMap:q.common.contextualErrorMap})}))}}p$.create=($,q)=>{return new p$({type:$,typeName:P.ZodPromise,...T(q)})};class j$ extends h{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===P.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse($){let{status:q,ctx:Q}=this._processInputParams($),J=this._def.effect||null,W={addIssue:(X)=>{if(R(Q,X),X.fatal)q.abort();else q.dirty()},get path(){return Q.path}};if(W.addIssue=W.addIssue.bind(W),J.type==="preprocess"){let X=J.transform(Q.data,W);if(Q.common.async)return Promise.resolve(X).then(async(H)=>{if(q.value==="aborted")return b;let Y=await this._def.schema._parseAsync({data:H,path:Q.path,parent:Q});if(Y.status==="aborted")return b;if(Y.status==="dirty")return u$(Y.value);if(q.value==="dirty")return u$(Y.value);return Y});else{if(q.value==="aborted")return b;let H=this._def.schema._parseSync({data:X,path:Q.path,parent:Q});if(H.status==="aborted")return b;if(H.status==="dirty")return u$(H.value);if(q.value==="dirty")return u$(H.value);return H}}if(J.type==="refinement"){let X=(H)=>{let Y=J.refinement(H,W);if(Q.common.async)return Promise.resolve(Y);if(Y instanceof Promise)throw Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return H};if(Q.common.async===!1){let H=this._def.schema._parseSync({data:Q.data,path:Q.path,parent:Q});if(H.status==="aborted")return b;if(H.status==="dirty")q.dirty();return X(H.value),{status:q.value,value:H.value}}else return this._def.schema._parseAsync({data:Q.data,path:Q.path,parent:Q}).then((H)=>{if(H.status==="aborted")return b;if(H.status==="dirty")q.dirty();return X(H.value).then(()=>{return{status:q.value,value:H.value}})})}if(J.type==="transform")if(Q.common.async===!1){let X=this._def.schema._parseSync({data:Q.data,path:Q.path,parent:Q});if(!P$(X))return b;let H=J.transform(X.value,W);if(H instanceof Promise)throw Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:q.value,value:H}}else return this._def.schema._parseAsync({data:Q.data,path:Q.path,parent:Q}).then((X)=>{if(!P$(X))return b;return Promise.resolve(J.transform(X.value,W)).then((H)=>({status:q.value,value:H}))});g.assertNever(J)}}j$.create=($,q,Q)=>{return new j$({schema:$,typeName:P.ZodEffects,effect:q,...T(Q)})};j$.createWithPreprocess=($,q,Q)=>{return new j$({schema:q,effect:{type:"preprocess",transform:$},typeName:P.ZodEffects,...T(Q)})};class z$ extends h{_parse($){if(this._getType($)===L.undefined)return J$(void 0);return this._def.innerType._parse($)}unwrap(){return this._def.innerType}}z$.create=($,q)=>{return new z$({innerType:$,typeName:P.ZodOptional,...T(q)})};class k$ extends h{_parse($){if(this._getType($)===L.null)return J$(null);return this._def.innerType._parse($)}unwrap(){return this._def.innerType}}k$.create=($,q)=>{return new k$({innerType:$,typeName:P.ZodNullable,...T(q)})};class L1 extends h{_parse($){let{ctx:q}=this._processInputParams($),Q=q.data;if(q.parsedType===L.undefined)Q=this._def.defaultValue();return this._def.innerType._parse({data:Q,path:q.path,parent:q})}removeDefault(){return this._def.innerType}}L1.create=($,q)=>{return new L1({innerType:$,typeName:P.ZodDefault,defaultValue:typeof q.default==="function"?q.default:()=>q.default,...T(q)})};class j1 extends h{_parse($){let{ctx:q}=this._processInputParams($),Q={...q,common:{...q.common,issues:[]}},J=this._def.innerType._parse({data:Q.data,path:Q.path,parent:{...Q}});if(H1(J))return J.then((W)=>{return{status:"valid",value:W.status==="valid"?W.value:this._def.catchValue({get error(){return new H$(Q.common.issues)},input:Q.data})}});else return{status:"valid",value:J.status==="valid"?J.value:this._def.catchValue({get error(){return new H$(Q.common.issues)},input:Q.data})}}removeCatch(){return this._def.innerType}}j1.create=($,q)=>{return new j1({innerType:$,typeName:P.ZodCatch,catchValue:typeof q.catch==="function"?q.catch:()=>q.catch,...T(q)})};class c1 extends h{_parse($){if(this._getType($)!==L.nan){let Q=this._getOrReturnCtx($);return R(Q,{code:U.invalid_type,expected:L.nan,received:Q.parsedType}),b}return{status:"valid",value:$.data}}}c1.create=($)=>{return new c1({typeName:P.ZodNaN,...T($)})};var WH=Symbol("zod_brand");class g0 extends h{_parse($){let{ctx:q}=this._processInputParams($),Q=q.data;return this._def.type._parse({data:Q,path:q.path,parent:q})}unwrap(){return this._def.type}}class d1 extends h{_parse($){let{status:q,ctx:Q}=this._processInputParams($);if(Q.common.async)return(async()=>{let W=await this._def.in._parseAsync({data:Q.data,path:Q.path,parent:Q});if(W.status==="aborted")return b;if(W.status==="dirty")return q.dirty(),u$(W.value);else return this._def.out._parseAsync({data:W.value,path:Q.path,parent:Q})})();else{let J=this._def.in._parseSync({data:Q.data,path:Q.path,parent:Q});if(J.status==="aborted")return b;if(J.status==="dirty")return q.dirty(),{status:"dirty",value:J.value};else return this._def.out._parseSync({data:J.value,path:Q.path,parent:Q})}}static create($,q){return new d1({in:$,out:q,typeName:P.ZodPipeline})}}class N1 extends h{_parse($){let q=this._def.innerType._parse($),Q=(J)=>{if(P$(J))J.value=Object.freeze(J.value);return J};return H1(q)?q.then((J)=>Q(J)):Q(q)}unwrap(){return this._def.innerType}}N1.create=($,q)=>{return new N1({innerType:$,typeName:P.ZodReadonly,...T(q)})};function LQ($,q){let Q=typeof $==="function"?$(q):typeof $==="string"?{message:$}:$;return typeof Q==="string"?{message:Q}:Q}function SQ($,q={},Q){if($)return d$.create().superRefine((J,W)=>{let X=$(J);if(X instanceof Promise)return X.then((H)=>{if(!H){let Y=LQ(q,J),G=Y.fatal??Q??!0;W.addIssue({code:"custom",...Y,fatal:G})}});if(!X){let H=LQ(q,J),Y=H.fatal??Q??!0;W.addIssue({code:"custom",...H,fatal:Y})}return});return d$.create()}var XH={object:n.lazycreate},P;(function($){$.ZodString="ZodString",$.ZodNumber="ZodNumber",$.ZodNaN="ZodNaN",$.ZodBigInt="ZodBigInt",$.ZodBoolean="ZodBoolean",$.ZodDate="ZodDate",$.ZodSymbol="ZodSymbol",$.ZodUndefined="ZodUndefined",$.ZodNull="ZodNull",$.ZodAny="ZodAny",$.ZodUnknown="ZodUnknown",$.ZodNever="ZodNever",$.ZodVoid="ZodVoid",$.ZodArray="ZodArray",$.ZodObject="ZodObject",$.ZodUnion="ZodUnion",$.ZodDiscriminatedUnion="ZodDiscriminatedUnion",$.ZodIntersection="ZodIntersection",$.ZodTuple="ZodTuple",$.ZodRecord="ZodRecord",$.ZodMap="ZodMap",$.ZodSet="ZodSet",$.ZodFunction="ZodFunction",$.ZodLazy="ZodLazy",$.ZodLiteral="ZodLiteral",$.ZodEnum="ZodEnum",$.ZodEffects="ZodEffects",$.ZodNativeEnum="ZodNativeEnum",$.ZodOptional="ZodOptional",$.ZodNullable="ZodNullable",$.ZodDefault="ZodDefault",$.ZodCatch="ZodCatch",$.ZodPromise="ZodPromise",$.ZodBranded="ZodBranded",$.ZodPipeline="ZodPipeline",$.ZodReadonly="ZodReadonly"})(P||(P={}));var HH=($,q={message:`Input not instance of ${$.name}`})=>SQ((Q)=>Q instanceof $,q),AQ=D$.create,CQ=f$.create,YH=c1.create,GH=x$.create,OQ=w1.create,wH=c$.create,BH=m1.create,VH=B1.create,FH=V1.create,_H=d$.create,DH=Z$.create,UH=C$.create,zH=y1.create,LH=U$.create,jH=n.create,NH=n.strictCreate,RH=F1.create,EH=v0.create,SH=_1.create,AH=O$.create,CH=l1.create,OH=u1.create,MH=n$.create,KH=G1.create,kH=D1.create,IH=U1.create,bH=T$.create,PH=z1.create,ZH=p$.create,fH=j$.create,xH=z$.create,TH=k$.create,hH=j$.createWithPreprocess,vH=d1.create,gH=()=>AQ().optional(),mH=()=>CQ().optional(),yH=()=>OQ().optional(),lH={string:($)=>D$.create({...$,coerce:!0}),number:($)=>f$.create({...$,coerce:!0}),boolean:($)=>w1.create({...$,coerce:!0}),bigint:($)=>x$.create({...$,coerce:!0}),date:($)=>c$.create({...$,coerce:!0})};var uH=b;class m0{config;blacklistedTokens=new Set;constructor($){this.config=$;if(!$.secret)throw Error("JWT secret is required")}generateTokens($){let q=Math.floor(Date.now()/1000),Q=this.parseExpiration(this.config.expiresIn||"1h"),J={sub:$.sub,...$,iat:q,exp:q+Q,iss:this.config.issuer,aud:this.config.audience},W=h$.sign(J,this.config.secret,{algorithm:this.config.algorithm||"HS256"}),X={sub:$.sub,type:"refresh",iat:q,exp:q+this.parseExpiration(this.config.refreshExpiresIn||"7d"),iss:this.config.issuer,aud:this.config.audience},H=h$.sign(X,this.config.refreshSecret||this.config.secret,{algorithm:this.config.algorithm||"HS256"});return{accessToken:W,refreshToken:H,expiresIn:Q}}verifyAccessToken($){if(this.isBlacklisted($))throw Error("Token has been revoked");try{return h$.verify($,this.config.secret,{algorithms:[this.config.algorithm||"HS256"],issuer:this.config.issuer,audience:this.config.audience})}catch(q){if(q instanceof Error)throw Error(`Invalid token: ${q.message}`);throw Error("Invalid token")}}verifyRefreshToken($){if(this.isBlacklisted($))throw Error("Refresh token has been revoked");try{let q=h$.verify($,this.config.refreshSecret||this.config.secret,{algorithms:[this.config.algorithm||"HS256"],issuer:this.config.issuer,audience:this.config.audience});if(q.type!=="refresh")throw Error("Invalid refresh token type");return q}catch(q){if(q instanceof Error)throw Error(`Invalid refresh token: ${q.message}`);throw Error("Invalid refresh token")}}refreshAccessToken($){let q=this.verifyRefreshToken($);return this.blacklistToken($),this.generateTokens({sub:q.sub,...Object.fromEntries(Object.entries(q).filter(([Q])=>!["iat","exp","iss","aud","type"].includes(Q)))})}decodeToken($){try{return h$.decode($)}catch{return null}}blacklistToken($){this.blacklistedTokens.add($),this.cleanupBlacklist()}isBlacklisted($){return this.blacklistedTokens.has($)}cleanupBlacklist(){let $=Math.floor(Date.now()/1000);for(let q of this.blacklistedTokens){let Q=this.decodeToken(q);if(Q&&Q.exp&&Q.exp<$)this.blacklistedTokens.delete(q)}}parseExpiration($){if(typeof $==="number")return $;let q={s:1,m:60,h:3600,d:86400,w:604800},Q=$.match(/^(\d+)([smhdw])$/);if(!Q)throw Error(`Invalid expiration format: ${$}`);let[,J,W]=Q;return parseInt(J)*q[W]}}var cH=B.object({sub:B.string(),iat:B.number().optional(),exp:B.number().optional(),iss:B.string().optional(),aud:B.string().optional()}).passthrough(),dH=B.object({username:B.string().min(1),password:B.string().min(1)}),nH=B.object({refreshToken:B.string().min(1)});v$();class p1{config;userProvider;jwtProvider;constructor($,q){this.config=$;this.userProvider=q;this.jwtProvider=new m0($)}async login($,q){let Q=await this.userProvider.findByCredentials($,q);if(!Q)throw new e("Invalid credentials");let J=this.jwtProvider.generateTokens({sub:Q.id,username:Q.username,email:Q.email,roles:Q.roles||[],permissions:Q.permissions||[]});return{user:Q,tokens:J}}async refresh($){try{return this.jwtProvider.refreshAccessToken($)}catch(q){throw new i$(q instanceof Error?q.message:"Invalid refresh token")}}async logout($,q){if(this.jwtProvider.blacklistToken($),q)this.jwtProvider.blacklistToken(q)}async verifyToken($){try{let q=this.jwtProvider.verifyAccessToken($),Q=await this.userProvider.findById(q.sub);if(!Q)throw new e("User not found");return Q}catch(q){if(q instanceof Error){if(q.message.includes("expired"))throw new n1;throw new i$(q.message)}throw new i$("Token verification failed")}}getUserFromToken($){return this.jwtProvider.verifyAccessToken($)}hasRoles($,q){let Q=$.roles||[];return q.every((J)=>Q.includes(J))}hasPermissions($,q){let Q=$.permissions||[];return q.every((J)=>Q.includes(J))}async register($){if(!this.userProvider.createUser)throw Error("UserProvider does not support user creation");let q=await this.userProvider.createUser($),Q=this.jwtProvider.generateTokens({sub:q.id,username:q.username,email:q.email,roles:q.roles||[],permissions:q.permissions||[]});return{user:q,tokens:Q}}cleanup(){this.jwtProvider.cleanupBlacklist()}getJWTProvider(){return this.jwtProvider}}class IQ{users=new Map;async findByCredentials($,q){for(let[Q,J]of this.users)if(J.username===$){if(await this.verifyPassword(q,J.passwordHash)){let{passwordHash:X,...H}=J;return H}}return null}async findById($){let q=this.users.get($);if(q){let{passwordHash:Q,...J}=q;return J}return null}async hashPassword($){return Buffer.from($).toString("base64")}async verifyPassword($,q){return await this.hashPassword($)===q}async createUser($){let q=crypto.randomUUID(),Q=await this.hashPassword($.password),J={id:q,username:$.username,email:$.email,roles:$.roles||["user"],passwordHash:Q};this.users.set(q,J);let{passwordHash:W,...X}=J;return X}}var CB=v4(PQ(),1),p6=Symbol("route:metadata"),i6=Symbol("controller:metadata"),ZQ=Symbol("parameter:metadata"),fQ=Symbol("dependency:metadata"),o6=Symbol("websocket:metadata"),xQ=Symbol("websocket:handler:metadata"),s6=Symbol("graphql:resolver"),i1=Symbol("graphql:field"),r6=Symbol("auth:metadata"),a6=Symbol("oauth:metadata"),t6=Symbol("roles:metadata"),e6=Symbol("permissions:metadata"),$4=Symbol("minimum-role:metadata"),q4=Symbol("resource-permission:metadata"),Q4=Symbol("session:metadata"),J4=Symbol("csrf:metadata");class d{routes=new Map;controllers=new Map;routesByController=new Map;websockets=new Map;graphqlResolvers=new Map;graphqlFields=new Map;registerRoute($){let q=this.getRouteKey($.target,$.propertyKey);if(this.routes.set(q,$),!this.routesByController.has($.target))this.routesByController.set($.target,[]);this.routesByController.get($.target).push($)}registerController($,q){this.controllers.set($,q)}getRoutes(){return Array.from(this.routes.values())}getRoute($,q){let Q=this.getRouteKey($,q);return this.routes.get(Q)}getRoutesByController($){return this.routesByController.get($)||[]}getController($){return this.controllers.get($)}getControllers(){return new Map(this.controllers)}registerWebSocket($){this.websockets.set($.target,$)}getWebSockets(){return Array.from(this.websockets.values())}getWebSocket($){return this.websockets.get($)}registerGraphQLResolver($){this.graphqlResolvers.set($.target,$)}registerGraphQLField($){let q=this.getRouteKey($.target,$.propertyKey);this.graphqlFields.set(q,$)}getGraphQLResolvers(){return Array.from(this.graphqlResolvers.values())}getGraphQLResolver($){return this.graphqlResolvers.get($)}getGraphQLFields(){return Array.from(this.graphqlFields.values())}getGraphQLFieldsByResolver($){return Array.from(this.graphqlFields.values()).filter((q)=>q.target===$)}clear(){this.routes.clear(),this.controllers.clear(),this.routesByController.clear(),this.websockets.clear(),this.graphqlResolvers.clear(),this.graphqlFields.clear()}getRouteKey($,q){return`${$.name}:${q}`}static defineRoute($,q,Q){let J=this.getRouteMetadata($,q),W={...J,...Q,target:$.constructor,propertyKey:q,middleware:[...J?.middleware||[],...Q.middleware||[]],parameters:Q.parameters||J?.parameters||[],dependencies:Q.dependencies||J?.dependencies||[],responses:Q.responses||J?.responses||[],auth:Q.auth||J?.auth,oauth:Q.oauth||J?.oauth,roles:Q.roles||J?.roles,permissions:Q.permissions||J?.permissions,minimumRole:Q.minimumRole||J?.minimumRole,resourcePermission:Q.resourcePermission||J?.resourcePermission,session:Q.session||J?.session,csrf:Q.csrf||J?.csrf};Reflect.defineMetadata(p6,W,$,q)}static defineParameter($,q,Q,J){let W=this.getParameterMetadata($,q)||[];W[Q]=J,Reflect.defineMetadata(ZQ,W,$,q);let X=this.getRouteMetadata($,q);this.defineRoute($,q,{...X,parameters:W})}static defineDependency($,q,Q,J){let W=this.getDependencyMetadata($,q)||[];W[Q]=J,Reflect.defineMetadata(fQ,W,$,q);let X=this.getRouteMetadata($,q);this.defineRoute($,q,{...X,dependencies:W})}static defineController($,q){Reflect.defineMetadata(i6,q,$)}static getRouteMetadata($,q){return Reflect.getMetadata(p6,$,q)}static getParameterMetadata($,q){return Reflect.getMetadata(ZQ,$,q)}static getDependencyMetadata($,q){return Reflect.getMetadata(fQ,$,q)}static getControllerMetadata($){return Reflect.getMetadata(i6,$)}static hasControllerMetadata($){return Reflect.hasMetadata(i6,$)}static hasRouteMetadata($,q){return Reflect.hasMetadata(p6,$,q)}static getRouteMethods($){let q=$.prototype,Q=[],J=Object.getOwnPropertyNames(q);for(let W of J){if(W==="constructor")continue;if(this.hasRouteMetadata(q,W))Q.push(W)}return Q}static defineWebSocket($,q){let J={...this.getWebSocketMetadata($),...q,target:$};Reflect.defineMetadata(o6,J,$)}static defineWebSocketHandler($,q,Q){let J=this.getWebSocketMetadata($.constructor)||{};switch(Q.type){case"connect":J.onConnect=q;break;case"message":J.onMessage=q,J.messageSchema=Q.schema;break;case"disconnect":J.onDisconnect=q;break}this.defineWebSocket($.constructor,J),Reflect.defineMetadata(xQ,Q,$,q)}static getWebSocketMetadata($){return Reflect.getMetadata(o6,$)}static getWebSocketHandlerMetadata($,q){return Reflect.getMetadata(xQ,$,q)}static hasWebSocketMetadata($){return Reflect.hasMetadata(o6,$)}static defineGraphQLResolver($,q){Reflect.defineMetadata(s6,q,$)}static defineGraphQLField($,q,Q){Reflect.defineMetadata(i1,Q,$,q);let J=this.getGraphQLFieldsMetadata($.constructor)||[];J.push(Q),Reflect.defineMetadata(i1,J,$.constructor)}static getGraphQLResolverMetadata($){return Reflect.getMetadata(s6,$)}static getGraphQLFieldsMetadata($){return Reflect.getMetadata(i1,$)||[]}static getGraphQLFieldMetadata($,q){return Reflect.getMetadata(i1,$,q)}static hasGraphQLResolverMetadata($){return Reflect.hasMetadata(s6,$)}static hasGraphQLFieldMetadata($,q){return Reflect.hasMetadata(i1,$,q)}static defineAuth($,q,Q){Reflect.defineMetadata(r6,Q,$,q);let J=this.getRouteMetadata($,q);this.defineRoute($,q,{...J,auth:Q})}static getAuthMetadata($,q){return Reflect.getMetadata(r6,$,q)}static hasAuthMetadata($,q){return Reflect.hasMetadata(r6,$,q)}static defineOAuth($,q,Q){Reflect.defineMetadata(a6,Q,$,q);let J=this.getRouteMetadata($,q);this.defineRoute($,q,{...J,oauth:Q})}static getOAuthMetadata($,q){return Reflect.getMetadata(a6,$,q)}static hasOAuthMetadata($,q){return Reflect.hasMetadata(a6,$,q)}static defineRoles($,q,Q){Reflect.defineMetadata(t6,Q,$,q);let J=this.getRouteMetadata($,q);this.defineRoute($,q,{...J,roles:Q})}static definePermissions($,q,Q){Reflect.defineMetadata(e6,Q,$,q);let J=this.getRouteMetadata($,q);this.defineRoute($,q,{...J,permissions:Q})}static defineMinimumRole($,q,Q){Reflect.defineMetadata($4,Q,$,q);let J=this.getRouteMetadata($,q);this.defineRoute($,q,{...J,minimumRole:Q})}static getRolesMetadata($,q){return Reflect.getMetadata(t6,$,q)}static getPermissionsMetadata($,q){return Reflect.getMetadata(e6,$,q)}static getMinimumRoleMetadata($,q){return Reflect.getMetadata($4,$,q)}static hasRolesMetadata($,q){return Reflect.hasMetadata(t6,$,q)}static hasPermissionsMetadata($,q){return Reflect.hasMetadata(e6,$,q)}static hasMinimumRoleMetadata($,q){return Reflect.hasMetadata($4,$,q)}static defineResourcePermission($,q,Q){Reflect.defineMetadata(q4,Q,$,q);let J=this.getRouteMetadata($,q);this.defineRoute($,q,{...J,resourcePermission:Q})}static getResourcePermissionMetadata($,q){return Reflect.getMetadata(q4,$,q)}static hasResourcePermissionMetadata($,q){return Reflect.hasMetadata(q4,$,q)}static defineSession($,q,Q){Reflect.defineMetadata(Q4,Q,$,q);let J=this.getRouteMetadata($,q);this.defineRoute($,q,{...J,session:Q})}static defineCSRF($,q,Q){Reflect.defineMetadata(J4,Q,$,q);let J=this.getRouteMetadata($,q);this.defineRoute($,q,{...J,csrf:Q})}static getSessionMetadata($,q){return Reflect.getMetadata(Q4,$,q)}static getCSRFMetadata($,q){return Reflect.getMetadata(J4,$,q)}static hasSessionMetadata($,q){return Reflect.hasMetadata(Q4,$,q)}static hasCSRFMetadata($,q){return Reflect.hasMetadata(J4,$,q)}}function YY($){return(q,Q)=>{let J={required:!$?.optional,config:$};d.defineAuth(q,Q,J)}}function GY(){return($,q,Q)=>{if(q)d.defineParameter($,q,Q,{index:Q,type:"current-user",required:!1})}}function wY(){return($,q,Q)=>{if(q)d.defineParameter($,q,Q,{index:Q,type:"token",required:!1})}}function W4($){return async(q,Q)=>{let J=q.req.header("Authorization");if(!J||!J.startsWith("Bearer "))q.set("auth.error","Missing or invalid Authorization header"),q.set("auth.authenticated",!1);else{let W=J.substring(7);try{let X=$.verifyAccessToken(W);q.set("auth.user",X),q.set("auth.token",W),q.set("auth.authenticated",!0)}catch(X){q.set("auth.error",X instanceof Error?X.message:"Authentication failed"),q.set("auth.authenticated",!1)}}await Q()}}function $$($){return $.get("auth.user")||null}function X4($){return $.get("auth.token")||null}function BY($){return $.get("auth.authenticated")===!0}function VY($){return $.get("auth.error")||null}v$();v$();class TQ{config;name="auth";version="1.0.0";authService;compileExtended=!1;constructor($){this.config=$;this.authService=new p1($.jwt,$.userProvider)}async install($){let q=W4(this.authService.getJWTProvider());if($.use(q),$.getContainer().register(p1,{factory:()=>this.authService,scope:"singleton"}),this.config.enableDefaultRoutes!==!1)this.addDefaultRoutes($);this.extendRouterCompiler($)}extendRouterCompiler($){if(this.compileExtended)return;this.compileExtended=!0,$.use(async(Q,J)=>{Q.set("authService",this.authService),await J()});let q=$.compile.bind($);$.compile=async()=>{await q();let Q=$.getHono(),J=$.getMetadata().getRoutes();for(let W of J){let X=d.getAuthMetadata(W.target.prototype,W.propertyKey);if(W.auth?.required||X?.required){console.log("Adding auth middleware for route:",W.path,W.method);let Y=W.auth?.config||X?.config;Q.use(W.path,async(G,V)=>{if(console.log("Auth middleware executing for:",G.req.path,G.req.method,"target:",W.path,W.method),G.req.method!==W.method)return console.log("Method mismatch, skipping auth check"),V();console.log("Checking authentication...");let D=G.get("auth.user"),z=G.get("auth.error");if(!D){let Z=z||"Authentication required";throw console.log("No user found, throwing auth exception"),new e(Z)}if(Y?.roles?.length){if(!this.authService.hasRoles(D,Y.roles))throw new r(`Required roles: ${Y.roles.join(", ")}`)}if(Y?.permissions?.length){if(!this.authService.hasPermissions(D,Y.permissions))throw new r(`Required permissions: ${Y.permissions.join(", ")}`)}await V()})}}}}buildPath($){return $.path}pathMatches($,q){let Q=$.replace(/:([^/]+)/g,"([^/]+)");return new RegExp(`^${Q}$`).test(q)}addDefaultRoutes($){let q=this.config.routes||{};if($.post(q.login||"/auth/login",{handler:async(Q)=>{let J=await Q.req.json(),{username:W,password:X}=J;try{let H=await this.authService.login(W,X);return{success:!0,user:H.user,tokens:H.tokens}}catch(H){throw new e(H instanceof Error?H.message:"Login failed")}},schema:{body:B.object({username:B.string().min(1),password:B.string().min(1)})}}),$.post(q.refresh||"/auth/refresh",{handler:async(Q)=>{let J=await Q.req.json(),{refreshToken:W}=J;try{return{success:!0,tokens:await this.authService.refresh(W)}}catch(X){throw new e(X instanceof Error?X.message:"Token refresh failed")}},schema:{body:B.object({refreshToken:B.string().min(1)})}}),$.post(q.logout||"/auth/logout",{handler:async(Q)=>{let J=X4(Q),W=await Q.req.json(),{refreshToken:X}=W;if(J)await this.authService.logout(J,X);return{success:!0,message:"Logged out successfully"}},schema:{body:B.object({refreshToken:B.string().optional()})}}),"createUser"in this.config.userProvider)$.post(q.register||"/auth/register",{handler:async(Q)=>{let J=await Q.req.json(),{username:W,password:X,email:H}=J;try{let Y=await this.authService.register({username:W,password:X,email:H});return{success:!0,user:Y.user,tokens:Y.tokens}}catch(Y){throw new e(Y instanceof Error?Y.message:"Registration failed")}},schema:{body:B.object({username:B.string().min(1),password:B.string().min(6),email:B.string().email().optional()})}});$.get("/auth/me",{handler:async(Q)=>{let J=$$(Q);if(!J)throw new e("Not authenticated");return{success:!0,user:J}}})}getAuthService(){return this.authService}}class o1{name;config;constructor($,q){this.name=$;this.config=q}getAuthUrl($,q){let Q=new URLSearchParams({client_id:this.config.clientId,redirect_uri:this.config.redirectUri,response_type:"code",state:$,scope:this.config.scopes?.join(" ")||""});if(q&&this.config.pkce)Q.set("code_challenge",q),Q.set("code_challenge_method","S256");return`${this.config.authUrl}?${Q.toString()}`}async exchangeCodeForTokens($,q){let Q=new URLSearchParams({client_id:this.config.clientId,client_secret:this.config.clientSecret,code:$,grant_type:"authorization_code",redirect_uri:this.config.redirectUri});if(q&&this.config.pkce)Q.set("code_verifier",q);let J=await fetch(this.config.tokenUrl,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:Q.toString()});if(!J.ok){let X=await J.text();throw Error(`Token exchange failed: ${X}`)}let W=await J.json();return{accessToken:W.access_token,refreshToken:W.refresh_token,expiresIn:W.expires_in,tokenType:W.token_type||"Bearer",scope:W.scope}}async getUserInfo($){let q=await fetch(this.config.userInfoUrl,{headers:{Authorization:`Bearer ${$}`,Accept:"application/json"}});if(!q.ok){let J=await q.text();throw Error(`Failed to get user info: ${J}`)}let Q=await q.json();return this.mapUserInfo(Q)}mapUserInfo($){return{id:$.id||$.sub,email:$.email,name:$.name,username:$.login||$.preferred_username,avatar:$.avatar_url||$.picture,provider:this.name,...$}}}class hQ extends o1{constructor($,q,Q){super("google",{clientId:$,clientSecret:q,redirectUri:Q,scopes:["openid","profile","email"],authUrl:"https://accounts.google.com/o/oauth2/v2/auth",tokenUrl:"https://oauth2.googleapis.com/token",userInfoUrl:"https://www.googleapis.com/oauth2/v2/userinfo",pkce:!0})}mapUserInfo($){return{id:$.id,email:$.email,name:$.name,username:$.email,avatar:$.picture,provider:"google",verified:$.verified_email,locale:$.locale,raw:$}}}class vQ extends o1{constructor($,q,Q){super("github",{clientId:$,clientSecret:q,redirectUri:Q,scopes:["user:email"],authUrl:"https://github.com/login/oauth/authorize",tokenUrl:"https://github.com/login/oauth/access_token",userInfoUrl:"https://api.github.com/user",pkce:!1})}mapUserInfo($){return{id:$.id.toString(),email:$.email,name:$.name,username:$.login,avatar:$.avatar_url,provider:"github",company:$.company,location:$.location,bio:$.bio,raw:$}}async getUserInfo($){let q=await fetch(this.config.userInfoUrl,{headers:{Authorization:`Bearer ${$}`,Accept:"application/vnd.github.v3+json","User-Agent":"VeloceTS-OAuth"}});if(!q.ok)throw Error(`Failed to get user info: ${await q.text()}`);let Q=await q.json();if(!Q.email)try{let J=await fetch("https://api.github.com/user/emails",{headers:{Authorization:`Bearer ${$}`,Accept:"application/vnd.github.v3+json","User-Agent":"VeloceTS-OAuth"}});if(J.ok){let X=(await J.json()).find((H)=>H.primary);if(X)Q.email=X.email}}catch(J){}return this.mapUserInfo(Q)}}class gQ extends o1{constructor($,q,Q,J="common"){super("microsoft",{clientId:$,clientSecret:q,redirectUri:Q,scopes:["openid","profile","email"],authUrl:`https://login.microsoftonline.com/${J}/oauth2/v2.0/authorize`,tokenUrl:`https://login.microsoftonline.com/${J}/oauth2/v2.0/token`,userInfoUrl:"https://graph.microsoft.com/v1.0/me",pkce:!0})}mapUserInfo($){return{id:$.id,email:$.mail||$.userPrincipalName,name:$.displayName,username:$.userPrincipalName,avatar:void 0,provider:"microsoft",jobTitle:$.jobTitle,department:$.department,officeLocation:$.officeLocation,raw:$}}}class l0{static generateCodeVerifier(){let $=new Uint8Array(32);return crypto.getRandomValues($),this.base64URLEncode($)}static async generateCodeChallenge($){let Q=new TextEncoder().encode($),J=await crypto.subtle.digest("SHA-256",Q);return this.base64URLEncode(new Uint8Array(J))}static async generatePKCEChallenge(){let $=this.generateCodeVerifier(),q=await this.generateCodeChallenge($);return{codeVerifier:$,codeChallenge:q,codeChallengeMethod:"S256"}}static base64URLEncode($){return btoa(String.fromCharCode(...$)).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}}class u0{states=new Map;ttl=600000;generateState($){let q=crypto.randomUUID();return this.states.set(q,{timestamp:Date.now(),data:$}),this.cleanup(),q}validateState($){let q=this.states.get($);if(!q)return{valid:!1};if(Date.now()-q.timestamp>this.ttl)return this.states.delete($),{valid:!1};return this.states.delete($),{valid:!0,data:q.data}}cleanup(){let $=Date.now();for(let[q,Q]of this.states.entries())if($-Q.timestamp>this.ttl)this.states.delete(q)}}var H4=B.object({code:B.string(),state:B.string(),error:B.string().optional(),error_description:B.string().optional()}),FY=B.object({accessToken:B.string(),refreshToken:B.string().optional(),expiresIn:B.number().optional(),tokenType:B.string(),scope:B.string().optional()}),_Y=B.object({id:B.string(),email:B.string().optional(),name:B.string().optional(),username:B.string().optional(),avatar:B.string().optional(),provider:B.string()}).passthrough();function DY($){return(q,Q)=>{let J={provider:$.provider,config:$};d.defineOAuth(q,Q,J)}}function UY(){return($,q,Q)=>{if(q)d.defineParameter($,q,Q,{index:Q,type:"oauth-user",required:!0})}}function zY(){return($,q,Q)=>{if(q)d.defineParameter($,q,Q,{index:Q,type:"oauth-token",required:!0})}}function LY($){return $.get("oauth.user")||null}function jY($){return $.get("oauth.token")||null}function NY($){return $.get("oauth.authenticated")===!0}function RY($){return $.get("oauth.provider")||null}class mQ{config;name="oauth";version="1.0.0";dependencies=["auth"];stateManager=new u0;pkceStore=new Map;constructor($){this.config=$}async install($){this.addOAuthRoutes($),this.extendRouterCompiler($)}addOAuthRoutes($){let q=this.config.routes||{};$.get(q.login||"/auth/oauth/:provider",{handler:async(Q)=>{let J=Q.req.param("provider"),W=this.config.providers[J];if(!W)return Q.json({error:"Unknown OAuth provider"},400);let X=this.stateManager.generateState({provider:J}),H;if(W.config.pkce){let Y=await l0.generatePKCEChallenge();this.pkceStore.set(X,Y),H=W.getAuthUrl(X,Y.codeChallenge)}else H=W.getAuthUrl(X);return Q.json({authUrl:H,state:X,provider:J})}}),$.get(q.callback||"/auth/oauth/:provider/callback",{handler:async(Q)=>{let J=Q.req.param("provider"),W=Q.req.query(),X=H4.parse(W);if(X.error)return Q.json({error:"OAuth error",description:X.error_description||X.error},400);let H=this.stateManager.validateState(X.state);if(!H.valid||H.data?.provider!==J)return Q.json({error:"Invalid state parameter"},400);let Y=this.config.providers[J];if(!Y)return Q.json({error:"Unknown OAuth provider"},400);try{let G=this.pkceStore.get(X.state),V=G?.codeVerifier,D=await Y.exchangeCodeForTokens(X.code,V),z=await Y.getUserInfo(D.accessToken);if(G)this.pkceStore.delete(X.state);let Z=null;if(this.config.userProvider)Z=await this.findOrCreateUser(z);if(this.config.onUserLogin)await this.config.onUserLogin(z,Z);let C=null;if(this.config.authService&&Z)C=(await this.config.authService.login(Z.username,"")).tokens;return Q.json({success:!0,user:Z||z,oauthTokens:D,jwtTokens:C,provider:J})}catch(G){return console.error("OAuth callback error:",G),Q.json({error:"OAuth authentication failed",message:G instanceof Error?G.message:"Unknown error"},500)}}}),$.get("/auth/oauth/:provider/user",{handler:async(Q)=>{let J=Q.req.param("provider"),W=Q.req.header("Authorization");if(!W||!W.startsWith("Bearer "))return Q.json({error:"Missing OAuth access token"},401);let X=W.substring(7),H=this.config.providers[J];if(!H)return Q.json({error:"Unknown OAuth provider"},400);try{let Y=await H.getUserInfo(X);return Q.json({user:Y})}catch(Y){return Q.json({error:"Failed to get user info",message:Y instanceof Error?Y.message:"Unknown error"},400)}}})}async findOrCreateUser($){if(!this.config.userProvider)return null;let q=await this.findUserByOAuthId($.id,$.provider);if(!q&&$.email)q=await this.findUserByEmail($.email);if(!q){if(q=await this.createUserFromOAuth($),this.config.onUserCreated)await this.config.onUserCreated($)}return q}async findUserByOAuthId($,q){return null}async findUserByEmail($){return null}async createUserFromOAuth($){if(!this.config.userProvider||!("createUser"in this.config.userProvider))throw Error("User provider does not support user creation");let q={username:$.username||$.email||`${$.provider}_${$.id}`,email:$.email,password:crypto.randomUUID(),roles:["user"],oauthId:$.id,oauthProvider:$.provider,name:$.name,avatar:$.avatar};return await this.config.userProvider.createUser(q)}extendRouterCompiler($){}getProvider($){return this.config.providers[$]}getProviders(){return{...this.config.providers}}}class R1{roles=new Map;hierarchy=new Map;compiledPermissions=new Map;defineRole($){if(this.roles.set($.name,$),$.inherits&&$.inherits.length>0)this.hierarchy.set($.name,$.inherits);this.compiledPermissions.clear()}defineRoles($){for(let q of $)this.defineRole(q)}getRolePermissions($){if(this.compiledPermissions.has($))return Array.from(this.compiledPermissions.get($));let q=new Set;return this.collectPermissions($,q,new Set),this.compiledPermissions.set($,q),Array.from(q)}roleHasPermission($,q){return this.getRolePermissions($).includes(q)}userHasPermission($,q){for(let Q of $)if(this.roleHasPermission(Q,q))return!0;return!1}userHasRoles($,q){return q.every((Q)=>$.includes(Q))}userHasAnyRole($,q){return q.some((Q)=>$.includes(Q))}getRolesWithPermission($){let q=[];for(let Q of this.roles.keys())if(this.roleHasPermission(Q,$))q.push(Q);return q}getRoleHierarchy($){let q=[];return this.collectParentRoles($,q,new Set),q}roleInheritsFrom($,q){return this.getRoleHierarchy($).includes(q)}getAllRoles(){return Array.from(this.roles.values())}getRole($){return this.roles.get($)}roleExists($){return this.roles.has($)}validateRoles($){let q=[],Q=[];for(let J of $)if(this.roleExists(J))q.push(J);else Q.push(J);return{valid:q,invalid:Q}}getEffectiveRoles($){let q=new Set;for(let Q of $)q.add(Q),this.getRoleHierarchy(Q).forEach((W)=>q.add(W));return Array.from(q)}compareRoleLevels($,q){let Q=this.getRole($),J=this.getRole(q),W=Q?.level??0,X=J?.level??0;return W-X}getHighestRoleLevel($){let q=0;for(let Q of $){let J=this.getRole(Q);if(J&&J.level&&J.level>q)q=J.level}return q}collectPermissions($,q,Q){if(Q.has($))throw Error(`Circular role inheritance detected: ${$}`);Q.add($);let J=this.roles.get($);if(!J)throw Error(`Role not found: ${$}`);J.permissions.forEach((X)=>q.add(X));let W=this.hierarchy.get($)||[];for(let X of W)this.collectPermissions(X,q,new Set(Q))}collectParentRoles($,q,Q){if(Q.has($))return;Q.add($);let J=this.hierarchy.get($)||[];for(let W of J)q.push(W),this.collectParentRoles(W,q,Q)}}function Y4(){let $=new R1;return $.defineRoles([{name:"guest",description:"Guest user with minimal permissions",permissions:["read:public"],level:1},{name:"user",description:"Regular authenticated user",permissions:["read:own","write:own","read:public"],inherits:["guest"],level:10},{name:"moderator",description:"Moderator with content management permissions",permissions:["read:all","write:all","moderate:content"],inherits:["user"],level:50},{name:"admin",description:"Administrator with full system access",permissions:["*"],inherits:["moderator"],level:100},{name:"super-admin",description:"Super administrator with unrestricted access",permissions:["*","system:*"],inherits:["admin"],level:1000}]),$}var EY=B.object({name:B.string().min(1),description:B.string().optional(),permissions:B.array(B.string()),inherits:B.array(B.string()).optional(),level:B.number().optional()}),SY=B.object({userId:B.string(),roles:B.array(B.string())}),AY=B.object({userId:B.string(),permission:B.string()});class E1{static matches($,q){if(q==="*")return!0;if(q.endsWith("*")){let Q=q.slice(0,-1);return $.startsWith(Q)}return $===q}static hasPermission($,q){return $.some((Q)=>this.matches(q,Q))}static filterByPattern($,q){return $.filter((Q)=>this.matches(Q,q))}}v$();function yQ($){return(q,Q)=>{let W={config:Array.isArray($)?{roles:$,requireAll:!1,allowInherited:!0}:{requireAll:!1,allowInherited:!0,...$}};d.defineRoles(q,Q,W)}}function lQ($){return(q,Q)=>{let W={config:Array.isArray($)?{permissions:$,requireAll:!1}:{requireAll:!1,...$}};d.definePermissions(q,Q,W)}}function G4($){return yQ([$])}function CY($){return lQ([$])}function OY(){return G4("admin")}function MY(){return G4("super-admin")}function KY($){return(q,Q)=>{d.defineMinimumRole(q,Q,{roleName:$})}}function w4($){return async(q,Q)=>{q.set("rbac",$),await Q()}}class s1{rbac;constructor($){this.rbac=$}checkRoles($,q){let Q=$$($);if(!Q)throw new r("Authentication required for role check");let J=Q.roles||[],W=q.allowInherited?this.rbac.getEffectiveRoles(J):J,X;if(q.requireAll)X=q.roles.every((H)=>W.includes(H));else X=q.roles.some((H)=>W.includes(H));if(!X){let H=q.requireAll?"all":"any";throw new r(`Access denied. Required ${H} of roles: ${q.roles.join(", ")}`)}}checkPermissions($,q){let Q=$$($);if(!Q)throw new r("Authentication required for permission check");let J=Q.roles||[],W=new Set;for(let Y of J)this.rbac.getRolePermissions(Y).forEach((V)=>W.add(V));let X=Array.from(W),H;if(q.requireAll)H=q.permissions.every((Y)=>E1.hasPermission(X,Y));else H=q.permissions.some((Y)=>E1.hasPermission(X,Y));if(!H){let Y=q.requireAll?"all":"any";throw new r(`Access denied. Required ${Y} of permissions: ${q.permissions.join(", ")}`)}}checkMinimumRole($,q){let Q=$$($);if(!Q)throw new r("Authentication required for role level check");let J=Q.roles||[],W=this.rbac.getHighestRoleLevel(J),X=this.rbac.getRole(q);if(!X)throw Error(`Required role not found: ${q}`);let H=X.level||0;if(W<H)throw new r(`Access denied. Minimum role level required: ${q} (level ${H})`)}}function uQ($){return $.get("rbac")||null}function B4($){return $$($)?.roles||[]}function cQ($){let q=uQ($),Q=B4($);if(!q)return[];let J=new Set;for(let W of Q)q.getRolePermissions(W).forEach((H)=>J.add(H));return Array.from(J)}function kY($,q){return B4($).includes(q)}function IY($,q){let Q=cQ($);return E1.hasPermission(Q,q)}v$();class dQ{config;name="rbac";version="1.0.0";dependencies=["auth"];rbac;guard;constructor($={}){this.config=$;if($.rbac)this.rbac=$.rbac;else if($.useDefaults!==!1)this.rbac=Y4();else this.rbac=new R1;if($.roles)this.rbac.defineRoles($.roles);this.guard=new s1(this.rbac)}async install($){let q=w4(this.rbac);if($.use(q),$.getContainer().register(R1,{factory:()=>this.rbac,scope:"singleton"}),$.getContainer().register(s1,{factory:()=>this.guard,scope:"singleton"}),this.injectRouteGuards($),this.config.enableManagementRoutes!==!1)this.addManagementRoutes($)}injectRouteGuards($){let q=$.getMetadata();for(let Q of q.getRoutes())if(Q.roles||Q.permissions||Q.minimumRole){let J=this.buildRBACMiddleware(Q);q.registerRoute({...Q,middleware:[J,...Q.middleware||[]]})}}buildRBACMiddleware($){let q=this.guard,Q=$.roles?.config,J=$.permissions?.config,W=$.minimumRole;return async(X,H)=>{if(!$$(X))throw new r("Authentication required");if(Q)q.checkRoles(X,Q);if(J)q.checkPermissions(X,J);if(W)q.checkMinimumRole(X,W.roleName);await H()}}addManagementRoutes($){let q=this.config.routes||{};$.get(q.roles||"/rbac/roles",{handler:(Q)=>{let J=this.rbac.getAllRoles();return Q.json({success:!0,roles:J.map((W)=>({name:W.name,description:W.description,permissions:W.permissions,inherits:W.inherits,level:W.level}))})}}),$.get("/rbac/roles/:roleName",{handler:(Q)=>{let J=Q.req.param("roleName"),W=this.rbac.getRole(J);if(!W)return Q.json({error:"Role not found"},404);let X=this.rbac.getRolePermissions(J),H=this.rbac.getRoleHierarchy(J);return Q.json({success:!0,role:{...W,effectivePermissions:X,hierarchy:H}})}}),$.get("/rbac/roles/:roleName/permissions",{handler:(Q)=>{let J=Q.req.param("roleName");if(!this.rbac.roleExists(J))return Q.json({error:"Role not found"},404);let W=this.rbac.getRolePermissions(J);return Q.json({success:!0,role:J,permissions:W})}}),$.post("/rbac/check-permission",{handler:async(Q)=>{let J=await Q.req.json(),{roles:W,permission:X}=J;if(!Array.isArray(W)||!X)return Q.json({error:"Invalid request body"},400);let H=this.rbac.userHasPermission(W,X);return Q.json({success:!0,hasPermission:H,roles:W,permission:X})}}),$.post("/rbac/check-roles",{handler:async(Q)=>{let J=await Q.req.json(),{userRoles:W,requiredRoles:X,requireAll:H=!1}=J;if(!Array.isArray(W)||!Array.isArray(X))return Q.json({error:"Invalid request body"},400);let Y=H?this.rbac.userHasRoles(W,X):this.rbac.userHasAnyRole(W,X);return Q.json({success:!0,hasRoles:Y,userRoles:W,requiredRoles:X,requireAll:H})}}),$.post("/rbac/effective-roles",{handler:async(Q)=>{let J=await Q.req.json(),{roles:W}=J;if(!Array.isArray(W))return Q.json({error:"Invalid request body"},400);let X=this.rbac.getEffectiveRoles(W);return Q.json({success:!0,inputRoles:W,effectiveRoles:X})}}),$.post("/rbac/user-permissions",{handler:async(Q)=>{let J=await Q.req.json(),{roles:W}=J;if(!Array.isArray(W))return Q.json({error:"Invalid request body"},400);let X=new Set;for(let H of W)if(this.rbac.roleExists(H))this.rbac.getRolePermissions(H).forEach((G)=>X.add(G));return Q.json({success:!0,roles:W,permissions:Array.from(X)})}})}getRBACManager(){return this.rbac}getGuard(){return this.guard}}class r1{resourcePermissions=new Map;permissionPolicies=new Map;grantPermission($){let q=this.getPermissionKey($.userId,$.resource);if(!this.resourcePermissions.has(q))this.resourcePermissions.set(q,[]);this.resourcePermissions.get(q).push($)}revokePermission($,q,Q){let J=this.getPermissionKey($,q),X=(this.resourcePermissions.get(J)||[]).filter((H)=>Q?H.resourceId!==Q:!0);if(X.length===0)this.resourcePermissions.delete(J);else this.resourcePermissions.set(J,X)}hasPermission($){let{user:q,resource:Q,action:J,attributes:W}=$;if(this.checkRoleBasedPermission(q,J,Q))return!0;let X=this.getPermissionKey(q.id,Q?.constructor?.name||"unknown"),H=this.resourcePermissions.get(X)||[];for(let Y of H){if(Y.expiresAt&&Y.expiresAt<new Date)continue;if(Y.resourceId&&Q?.id!==Y.resourceId)continue;for(let G of Y.permissions)if(this.matchesPermission(G,J,Q,W)){if(G.conditions&&!this.evaluateConditions(G.conditions,$))continue;return!0}}return this.checkPermissionPolicies($)}getUserPermissions($,q,Q){let J=this.getPermissionKey($,q),W=this.resourcePermissions.get(J)||[],X=[];for(let H of W){if(H.expiresAt&&H.expiresAt<new Date)continue;if(Q&&H.resourceId&&H.resourceId!==Q)continue;X.push(...H.permissions)}return X}getUserResources($){let q=new Set;for(let[Q,J]of this.resourcePermissions.entries())if(Q.startsWith(`${$}:`)){let W=Q.substring($.length+1);q.add(W)}return Array.from(q)}definePolicy($,q){this.permissionPolicies.set($,q)}filterResources($,q,Q,J=(W)=>W.constructor.name){return $.filter((W)=>{let X={user:q,resource:W,action:Q};return this.hasPermission(X)})}filterAttributes($,q,Q,J){let W={user:q,resource:$,action:Q,attributes:J};if(!this.hasPermission(W))return[];let X=$?.constructor?.name||"unknown",H=this.getUserPermissions(q.id,X,$?.id),Y=new Set;for(let G of H)if(G.action===Q||G.action==="*")if(G.attributes)G.attributes.forEach((V)=>Y.add(V));else J.forEach((V)=>Y.add(V));return Array.from(Y)}getPermissionKey($,q){return`${$}:${q}`}checkRoleBasedPermission($,q,Q){return!1}matchesPermission($,q,Q,J){if($.action!=="*"&&$.action!==q)return!1;let W=Q?.constructor?.name||"unknown";if($.resource!=="*"&&$.resource!==W)return!1;if(J&&$.attributes){if(!J.some((H)=>$.attributes.includes(H)||$.attributes.includes("*")))return!1}return!0}evaluateConditions($,q){return $.every((Q)=>this.evaluateCondition(Q,q))}evaluateCondition($,q){let Q=this.getFieldValue($.field,q);switch($.operator){case"eq":return Q===$.value;case"ne":return Q!==$.value;case"in":return Array.isArray($.value)&&$.value.includes(Q);case"nin":return Array.isArray($.value)&&!$.value.includes(Q);case"gt":return Q>$.value;case"gte":return Q>=$.value;case"lt":return Q<$.value;case"lte":return Q<=$.value;case"contains":return String(Q).includes(String($.value));case"startsWith":return String(Q).startsWith(String($.value));case"endsWith":return String(Q).endsWith(String($.value));default:return!1}}getFieldValue($,q){let Q=$.split("."),J=q;for(let W of Q)if(J&&typeof J==="object")J=J[W];else return;return J}checkPermissionPolicies($){for(let q of this.permissionPolicies.values())if(q.evaluate($))return!0;return!1}}class c0{name="ownership";description="User can access resources they own";evaluate($){let{user:q,resource:Q}=$;if(!Q||!q)return!1;return Q.userId===q.id||Q.ownerId===q.id||Q.createdBy===q.id||Q.owner===q.id}}class d0{name="team-membership";description="User can access resources belonging to their team";evaluate($){let{user:q,resource:Q}=$;if(!Q||!q||!q.teamId)return!1;return Q.teamId===q.teamId}}class n0{name="public-resource";description="Anyone can read public resources";evaluate($){let{resource:q,action:Q}=$;if(!q||Q!=="read")return!1;return q.isPublic===!0||q.visibility==="public"}}var nQ=B.object({action:B.string(),resource:B.string(),conditions:B.array(B.object({field:B.string(),operator:B.enum(["eq","ne","in","nin","gt","gte","lt","lte","contains","startsWith","endsWith"]),value:B.any()})).optional(),attributes:B.array(B.string()).optional()}),bY=B.object({userId:B.string(),resource:B.string(),resourceId:B.string().optional(),permissions:B.array(nQ),grantedBy:B.string().optional(),grantedAt:B.date().optional(),expiresAt:B.date().optional()}),PY=B.object({userId:B.string(),action:B.string(),resource:B.string(),resourceId:B.string().optional(),attributes:B.array(B.string()).optional()});v$();function g$($){return(q,Q)=>{let J={config:$};d.defineResourcePermission(q,Q,J)}}function ZY($,q){return g$({action:"read",resource:$,attributes:q})}function fY($,q){return g$({action:"write",resource:$,attributes:q})}function xY($,q){return g$({action:"update",resource:$,attributes:q})}function TY($){return g$({action:"delete",resource:$})}function hY($="access"){return g$({action:$,conditions:[{field:"resource.userId",operator:"eq",value:"{{user.id}}"}]})}function vY($="access"){return g$({action:$,conditions:[{field:"resource.teamId",operator:"eq",value:"{{user.teamId}}"}]})}function gY(){return g$({action:"read",conditions:[{field:"resource.isPublic",operator:"eq",value:!0}]})}function mY($="read"){return(q,Q,J)=>{if(Q)d.defineParameter(q,Q,J,{index:J,type:"filtered-resource",required:!0,metadata:{action:$}})}}function yY($="read"){return(q,Q,J)=>{if(Q)d.defineParameter(q,Q,J,{index:J,type:"filtered-attributes",required:!0,metadata:{action:$}})}}function V4($){return async(q,Q)=>{q.set("permissionManager",$),await Q()}}class a1{permissionManager;constructor($){this.permissionManager=$}checkResourcePermission($,q,Q){let J=$$($);if(!J)throw new r("Authentication required for permission check");let W={user:J,resource:Q,action:q.action,attributes:q.attributes};if(q.conditions)W.conditions=q.conditions.map((H)=>({...H,value:this.resolveTemplateValue(H.value,W)}));if(!this.permissionManager.hasPermission(W))throw new r(`Access denied. Required permission: ${q.action} on ${q.resource||"resource"}`)}filterResource($,q,Q){let J=$$($);if(!J)return null;let W={user:J,resource:q,action:Q};return this.permissionManager.hasPermission(W)?q:null}filterResources($,q,Q){let J=$$($);if(!J)return[];return this.permissionManager.filterResources(q,J,Q)}filterAttributes($,q,Q,J){let W=$$($);if(!W)return[];return this.permissionManager.filterAttributes(q,W,Q,J)}resolveTemplateValue($,q){if(typeof $==="string"&&$.startsWith("{{")&&$.endsWith("}}")){let Q=$.slice(2,-2);return this.getNestedValue(q,Q)}return $}getNestedValue($,q){return q.split(".").reduce((Q,J)=>Q?.[J],$)}}function F4($){return $.get("permissionManager")||null}function pQ($,q,Q,J){let W=F4($),X=$$($);if(!W||!X)return!1;let H={user:X,resource:q,action:Q,attributes:J};return W.hasPermission(H)}function lY($,q,Q){let J=F4($),W=$$($);if(!J||!W)return[];return J.getUserPermissions(W.id,q,Q).map((H)=>H.action)}function uY($,q,Q){return pQ($,q,Q)}class iQ{config;name="permissions";version="1.0.0";dependencies=["auth"];permissionManager;guard;constructor($={}){this.config=$;if(this.permissionManager=$.permissionManager||new r1,$.enableDefaultPolicies!==!1)this.permissionManager.definePolicy("ownership",new c0),this.permissionManager.definePolicy("team-membership",new d0),this.permissionManager.definePolicy("public-resource",new n0);this.guard=new a1(this.permissionManager)}async install($){let q=V4(this.permissionManager);if($.use(q),$.getContainer().register(r1,{factory:()=>this.permissionManager,scope:"singleton"}),$.getContainer().register(a1,{factory:()=>this.guard,scope:"singleton"}),this.extendRouterCompiler($),this.config.enableManagementRoutes!==!1)this.addManagementRoutes($)}extendRouterCompiler($){let q=$.compile.bind($);$.compile=async()=>{await q();let Q=$.getMetadata().getRoutes();for(let J of Q)if(J.resourcePermission)this.addPermissionGuards($,J)}}addPermissionGuards($,q){}addManagementRoutes($){let q=this.config.routes||{};$.post(q.grant||"/permissions/grant",{handler:async(Q)=>{let J=await Q.req.json(),{userId:W,resource:X,resourceId:H,permissions:Y,expiresAt:G}=J,V={userId:W,resource:X,resourceId:H,permissions:Y,grantedBy:"system",grantedAt:new Date,expiresAt:G?new Date(G):void 0};return this.permissionManager.grantPermission(V),Q.json({success:!0,message:"Permission granted successfully",permission:V})},schema:{body:B.object({userId:B.string(),resource:B.string(),resourceId:B.string().optional(),permissions:B.array(B.object({action:B.string(),resource:B.string(),conditions:B.array(B.any()).optional(),attributes:B.array(B.string()).optional()})),expiresAt:B.string().optional()})}}),$.delete(q.revoke||"/permissions/revoke",{handler:async(Q)=>{let J=await Q.req.json(),{userId:W,resource:X,resourceId:H}=J;return this.permissionManager.revokePermission(W,X,H),Q.json({success:!0,message:"Permission revoked successfully"})},schema:{body:B.object({userId:B.string(),resource:B.string(),resourceId:B.string().optional()})}}),$.post(q.check||"/permissions/check",{handler:async(Q)=>{let J=await Q.req.json(),{userId:W,action:X,resource:H,resourceId:Y,attributes:G}=J,V={user:{id:W},resource:Y?{id:Y}:void 0,action:X,attributes:G},D=this.permissionManager.hasPermission(V);return Q.json({success:!0,hasPermission:D,context:{userId:W,action:X,resource:H,resourceId:Y,attributes:G}})},schema:{body:B.object({userId:B.string(),action:B.string(),resource:B.string(),resourceId:B.string().optional(),attributes:B.array(B.string()).optional()})}}),$.get("/permissions/user/:userId/resource/:resource",{handler:(Q)=>{let J=Q.req.param("userId"),W=Q.req.param("resource"),X=Q.req.query("resourceId"),H=this.permissionManager.getUserPermissions(J,W,X);return Q.json({success:!0,userId:J,resource:W,resourceId:X,permissions:H})}}),$.get("/permissions/user/:userId/resources",{handler:(Q)=>{let J=Q.req.param("userId"),W=this.permissionManager.getUserResources(J);return Q.json({success:!0,userId:J,resources:W})}}),$.post("/permissions/bulk-check",{handler:async(Q)=>{let J=await Q.req.json(),{checks:W}=J,X=W.map((H)=>{let Y={user:{id:H.userId},resource:H.resourceId?{id:H.resourceId}:void 0,action:H.action,attributes:H.attributes},G=this.permissionManager.hasPermission(Y);return{...H,hasPermission:G}});return Q.json({success:!0,results:X})},schema:{body:B.object({checks:B.array(B.object({userId:B.string(),action:B.string(),resource:B.string(),resourceId:B.string().optional(),attributes:B.array(B.string()).optional()}))})}}),$.post("/permissions/filter-resources",{handler:async(Q)=>{let J=await Q.req.json(),{userId:W,action:X,resources:H}=J,Y={id:W},G=this.permissionManager.filterResources(H,Y,X);return Q.json({success:!0,userId:W,action:X,totalResources:H.length,filteredResources:G.length,resources:G})},schema:{body:B.object({userId:B.string(),action:B.string(),resources:B.array(B.any())})}})}getPermissionManager(){return this.permissionManager}getGuard(){return this.guard}}class S1{sessions=new Map;async get($){let q=this.sessions.get($);if(!q)return null;if(q.expiresAt&&q.expiresAt<new Date)return this.sessions.delete($),null;return q}async set($,q){this.sessions.set($,q)}async destroy($){this.sessions.delete($)}async touch($){let q=this.sessions.get($);if(q)q.updatedAt=new Date,this.sessions.set($,q)}async clear(){this.sessions.clear()}async length(){return this.sessions.size}async all(){return Array.from(this.sessions.values())}cleanup(){let $=new Date;for(let[q,Q]of this.sessions.entries())if(Q.expiresAt&&Q.expiresAt<$)this.sessions.delete(q)}}class p0{redis;prefix="sess:";constructor($,q){this.redis=$;if(q)this.prefix=q}async get($){let q=this.prefix+$,Q=await this.redis.get(q);if(!Q)return null;try{let J=JSON.parse(Q);if(J.createdAt=new Date(J.createdAt),J.updatedAt=new Date(J.updatedAt),J.expiresAt)J.expiresAt=new Date(J.expiresAt);return J}catch(J){return null}}async set($,q){let Q=this.prefix+$,J=JSON.stringify(q);if(q.expiresAt){let W=Math.floor((q.expiresAt.getTime()-Date.now())/1000);if(W>0)await this.redis.setex(Q,W,J)}else await this.redis.set(Q,J)}async destroy($){let q=this.prefix+$;await this.redis.del(q)}async touch($){let q=await this.get($);if(q)q.updatedAt=new Date,await this.set($,q)}async clear(){let $=await this.redis.keys(this.prefix+"*");if($.length>0)await this.redis.del(...$)}async length(){return(await this.redis.keys(this.prefix+"*")).length}async all(){let $=await this.redis.keys(this.prefix+"*"),q=[];for(let Q of $){let J=await this.redis.get(Q);if(J)try{let W=JSON.parse(J);if(W.createdAt=new Date(W.createdAt),W.updatedAt=new Date(W.updatedAt),W.expiresAt)W.expiresAt=new Date(W.expiresAt);q.push(W)}catch(W){}}return q}}class t1{store;config;constructor($,q){this.store=$;this.config={name:"sessionId",maxAge:86400000,secure:!1,httpOnly:!0,sameSite:"lax",path:"/",rolling:!1,genid:()=>crypto.randomUUID(),...q,domain:q.domain}}async createSession($,q={},Q){let J=this.config.genid(),W=new Date,X=Q?.maxAge||this.config.maxAge,H={id:J,userId:$,data:q,createdAt:W,updatedAt:W,expiresAt:new Date(W.getTime()+X),ipAddress:Q?.ipAddress,userAgent:Q?.userAgent,csrfToken:this.generateCSRFToken()};return await this.store.set(J,H),H}async getSession($){return await this.store.get($)}async updateSession($,q){let Q=await this.store.get($);if(!Q)return null;if(Q.data={...Q.data,...q},Q.updatedAt=new Date,this.config.rolling)Q.expiresAt=new Date(Date.now()+this.config.maxAge);return await this.store.set($,Q),Q}async touchSession($){if(this.config.rolling){let q=await this.store.get($);if(q)q.updatedAt=new Date,q.expiresAt=new Date(Date.now()+this.config.maxAge),await this.store.set($,q)}else await this.store.touch($)}async destroySession($){await this.store.destroy($)}async regenerateSession($){let q=await this.store.get($);if(!q)return null;let Q=this.config.genid(),J={...q,id:Q,updatedAt:new Date,csrfToken:this.generateCSRFToken()};return await this.store.set(Q,J),await this.store.destroy($),J}async getUserSessions($){return(await this.store.all()).filter((Q)=>Q.userId===$)}async destroyUserSessions($){let q=await this.getUserSessions($);for(let Q of q)await this.store.destroy(Q.id)}validateCSRFToken($,q){return $.csrfToken===q}generateCSRFToken(){return crypto.randomUUID()}getCookieOptions(){let $={maxAge:this.config.maxAge,secure:this.config.secure,httpOnly:this.config.httpOnly,sameSite:this.config.sameSite,path:this.config.path};if(this.config.domain)$.domain=this.config.domain;return $}getConfig(){return{...this.config}}getStore(){return this.store}}class e1{tokenStore=new Map;tokenTTL=3600000;generateToken($){let q=crypto.randomUUID(),Q=new Date(Date.now()+this.tokenTTL);return this.tokenStore.set($,{token:q,expiresAt:Q}),this.cleanup(),q}validateToken($,q){let Q=this.tokenStore.get($);if(!Q)return!1;if(Q.expiresAt<new Date)return this.tokenStore.delete($),!1;return Q.token===q}removeToken($){this.tokenStore.delete($)}cleanup(){let $=new Date;for(let[q,Q]of this.tokenStore.entries())if(Q.expiresAt<$)this.tokenStore.delete(q)}}var cY=B.object({id:B.string(),userId:B.string(),data:B.record(B.any()),createdAt:B.date(),updatedAt:B.date(),expiresAt:B.date().optional(),ipAddress:B.string().optional(),userAgent:B.string().optional(),csrfToken:B.string().optional()}),dY=B.object({name:B.string().optional(),secret:B.string(),maxAge:B.number().optional(),secure:B.boolean().optional(),httpOnly:B.boolean().optional(),sameSite:B.enum(["strict","lax","none"]).optional(),domain:B.string().optional(),path:B.string().optional(),rolling:B.boolean().optional()}),nY=B.object({userId:B.string(),data:B.record(B.any()).optional(),maxAge:B.number().optional(),ipAddress:B.string().optional(),userAgent:B.string().optional()}),pY=B.object({data:B.record(B.any())});sQ();var aQ=/^[\w!#$%&'*.^`|~+-]+$/,eY=/^[ !#-:<-[\]-~]*$/,rQ=($)=>{let q=0,Q=$.length;while(q<Q){let J=$.charCodeAt(q);if(J!==32&&J!==9)break;q++}while(Q>q){let J=$.charCodeAt(Q-1);if(J!==32&&J!==9)break;Q--}return q===0&&Q===$.length?$:$.slice(q,Q)},U4=($,q)=>{if(q&&$.indexOf(q)===-1)return{};let Q=$.split(";"),J={};for(let W of Q){let X=W.indexOf("=");if(X===-1)continue;let H=rQ(W.substring(0,X));if(q&&q!==H||!aQ.test(H))continue;let Y=rQ(W.substring(X+1));if(Y.startsWith('"')&&Y.endsWith('"'))Y=Y.slice(1,-1);if(eY.test(Y)){if(J[H]=Y.indexOf("%")!==-1?o0(Y,D4):Y,q)break}}return J};var $G=($,q,Q={})=>{if(!aQ.test($))throw Error("Invalid cookie name");let J=`${$}=${q}`;if($.startsWith("__Secure-")&&!Q.secure)throw Error("__Secure- Cookie must have Secure attributes");if($.startsWith("__Host-")){if(!Q.secure)throw Error("__Host- Cookie must have Secure attributes");if(Q.path!=="/")throw Error('__Host- Cookie must have Path attributes with "/"');if(Q.domain)throw Error("__Host- Cookie must not have Domain attributes")}for(let W of["domain","path"])if(Q[W]&&/[;\r\n]/.test(Q[W]))throw Error(`${W} must not contain ";", "\\r", or "\\n"`);if(Q&&typeof Q.maxAge==="number"&&Q.maxAge>=0){if(Q.maxAge>34560000)throw Error("Cookies Max-Age SHOULD NOT be greater than 400 days (34560000 seconds) in duration.");J+=`; Max-Age=${Q.maxAge|0}`}if(Q.domain&&Q.prefix!=="host")J+=`; Domain=${Q.domain}`;if(Q.path)J+=`; Path=${Q.path}`;if(Q.expires){if(Q.expires.getTime()-Date.now()>34560000000)throw Error("Cookies Expires SHOULD NOT be greater than 400 days (34560000 seconds) in the future.");J+=`; Expires=${Q.expires.toUTCString()}`}if(Q.httpOnly)J+="; HttpOnly";if(Q.secure)J+="; Secure";if(Q.sameSite)J+=`; SameSite=${Q.sameSite.charAt(0).toUpperCase()+Q.sameSite.slice(1)}`;if(Q.priority)J+=`; Priority=${Q.priority.charAt(0).toUpperCase()+Q.priority.slice(1)}`;if(Q.partitioned){if(!Q.secure)throw Error("Partitioned Cookie must have Secure attributes");J+="; Partitioned"}return J},s0=($,q,Q)=>{return q=encodeURIComponent(q),$G($,q,Q)};var tQ=($,q,Q)=>{let J=$.req.raw.headers.get("Cookie");if(typeof q==="string"){if(!J)return;let X=q;if(Q==="secure")X="__Secure-"+q;else if(Q==="host")X="__Host-"+q;return U4(J,X)[X]}if(!J)return{};return U4(J)};var qG=($,q,Q)=>{let J;if(Q?.prefix==="secure")J=s0("__Secure-"+$,q,{path:"/",...Q,secure:!0});else if(Q?.prefix==="host")J=s0("__Host-"+$,q,{...Q,path:"/",secure:!0,domain:void 0});else J=s0($,q,{path:"/",...Q});return J},r0=($,q,Q,J)=>{let W=qG(q,Q,J);$.header("Set-Cookie",W,{append:!0})};v$();function QG($={}){return(q,Q)=>{let J={config:$};d.defineSession(q,Q,J)}}function JG(){return($,q,Q)=>{if(q)d.defineParameter($,q,Q,{index:Q,type:"current-session",required:!0})}}function WG($){return(q,Q,J)=>{if(Q)d.defineParameter(q,Q,J,{index:J,type:"session-data",required:!1,metadata:{key:$}})}}function XG(){return($,q,Q)=>{if(q)d.defineParameter($,q,Q,{index:Q,type:"csrf-token",required:!0})}}function HG(){return($,q)=>{d.defineCSRF($,q,{required:!0})}}function z4($,q){return async(Q,J)=>{let W=$.getConfig(),X=tQ(Q,W.name),H=null;if(X){if(H=await $.getSession(X),H)await $.touchSession(X)}Q.set("session",H),Q.set("sessionManager",$),Q.set("csrfProtection",q),await J()}}class q0{sessionManager;csrfProtection;constructor($,q){this.sessionManager=$;this.csrfProtection=q}checkSession($,q){let Q=N$($);if(q.required&&!Q)throw new e("Session required");if(Q&&q.csrf)this.checkCSRF($,Q)}checkCSRF($,q){if(!this.csrfProtection)throw Error("CSRF protection not configured");let Q=$.req.header("X-CSRF-Token")||$.req.query("_csrf");if(!Q)throw new r("CSRF token required");if(!this.csrfProtection.validateToken(q.id,Q))throw new r("Invalid CSRF token")}async createSession($,q,Q={}){let J=$0($);if(!J)throw Error("Session manager not available");let W=$.req.header("X-Forwarded-For")||$.req.header("X-Real-IP")||"unknown",X=$.req.header("User-Agent")||"unknown",H=await J.createSession(q,Q,{ipAddress:W,userAgent:X}),Y=J.getCookieOptions();return r0($,J.getConfig().name,H.id,Y),$.set("session",H),H}async updateSession($,q){let Q=N$($),J=$0($);if(!Q||!J)return null;let W=await J.updateSession(Q.id,q);if(W)$.set("session",W);return W}async destroySession($){let q=N$($),Q=$0($);if(!q||!Q)return;await Q.destroySession(q.id);let J=Q.getConfig();if(r0($,J.name,"",{...Q.getCookieOptions(),maxAge:0}),$.set("session",null),this.csrfProtection)this.csrfProtection.removeToken(q.id)}async regenerateSession($){let q=N$($),Q=$0($);if(!q||!Q)return null;let J=await Q.regenerateSession(q.id);if(J){let W=Q.getCookieOptions();if(r0($,Q.getConfig().name,J.id,W),$.set("session",J),this.csrfProtection)this.csrfProtection.removeToken(q.id),this.csrfProtection.generateToken(J.id)}return J}generateCSRFToken($){let q=N$($);if(!q||!this.csrfProtection)return null;return this.csrfProtection.generateToken(q.id)}}function N$($){return $.get("session")||null}function $0($){return $.get("sessionManager")||null}function YG($){return $.get("csrfProtection")||null}function GG($,q){let Q=N$($);if(!Q)return null;if(q)return Q.data[q];return Q.data}function wG($){return N$($)!==null}function BG($){return N$($)?.userId||null}function VG($,q,Q){let J=N$($);if(J)J.data[q]=Q,$.set("session",J)}function FG($,q){let Q=N$($);if(Q&&q in Q.data)delete Q.data[q],$.set("session",Q)}class eQ{config;name="session";version="1.0.0";sessionManager;csrfProtection;guard;compileExtended=!1;cleanupIntervalId;constructor($){this.config=$;let q;if($.store)q=$.store;else if($.storeType==="redis"&&$.redis)q=new p0($.redis);else q=new S1;if(this.sessionManager=new t1(q,$.session),$.csrf?.enabled!==!1)this.csrfProtection=new e1;this.guard=new q0(this.sessionManager,this.csrfProtection)}async install($){let q=z4(this.sessionManager,this.csrfProtection);if($.use(q),$.getContainer().register(t1,{factory:()=>this.sessionManager,scope:"singleton"}),$.getContainer().register(q0,{factory:()=>this.guard,scope:"singleton"}),this.csrfProtection)$.getContainer().register(e1,{factory:()=>this.csrfProtection,scope:"singleton"});if(this.extendRouterCompiler($),this.config.enableManagementRoutes!==!1)this.addManagementRoutes($);if(this.sessionManager.getStore()instanceof S1)this.setupCleanup()}extendRouterCompiler($){if(this.compileExtended)return;this.compileExtended=!0;let q=$.compile.bind($);$.compile=async()=>{await q();let Q=$.getMetadata().getRoutes();for(let J of Q)if(J.session||J.csrf)this.addSessionGuards($,J)}}addSessionGuards($,q){}addManagementRoutes($){let q=this.config.routes||{};if($.post(q.create||"/session/create",{handler:async(Q)=>{let J=await Q.req.json(),{userId:W,data:X}=J,H=await this.guard.createSession(Q,W,X);return Q.json({success:!0,message:"Session created successfully",session:{id:H.id,userId:H.userId,data:H.data,createdAt:H.createdAt,expiresAt:H.expiresAt}})},schema:{body:B.object({userId:B.string(),data:B.record(B.any()).optional()})}}),$.post(q.destroy||"/session/destroy",{handler:async(Q)=>{return await this.guard.destroySession(Q),Q.json({success:!0,message:"Session destroyed successfully"})}}),$.post(q.regenerate||"/session/regenerate",{handler:async(Q)=>{let J=await this.guard.regenerateSession(Q);if(!J)return Q.json({error:"No active session to regenerate"},400);return Q.json({success:!0,message:"Session regenerated successfully",session:{id:J.id,userId:J.userId,data:J.data,createdAt:J.createdAt,expiresAt:J.expiresAt}})}}),$.get(q.data||"/session/data",{handler:(Q)=>{let J=Q.get("session");if(!J)return Q.json({error:"No active session"},400);return Q.json({success:!0,data:J.data})}}),$.put(q.data||"/session/data",{handler:async(Q)=>{let J=await Q.req.json(),{data:W}=J,X=await this.guard.updateSession(Q,W);if(!X)return Q.json({error:"No active session to update"},400);return Q.json({success:!0,message:"Session data updated successfully",data:X.data})},schema:{body:B.object({data:B.record(B.any())})}}),this.csrfProtection)$.get(q.csrf||"/session/csrf-token",{handler:(Q)=>{let J=this.guard.generateCSRFToken(Q);if(!J)return Q.json({error:"No active session or CSRF not enabled"},400);return Q.json({success:!0,csrfToken:J})}});$.get("/session/info",{handler:(Q)=>{let J=Q.get("session");if(!J)return Q.json({success:!0,authenticated:!1,session:null});return Q.json({success:!0,authenticated:!0,session:{id:J.id,userId:J.userId,createdAt:J.createdAt,updatedAt:J.updatedAt,expiresAt:J.expiresAt,ipAddress:J.ipAddress,userAgent:J.userAgent}})}}),$.get("/session/all",{handler:async(Q)=>{let J=Q.get("session");if(!J)return Q.json({error:"No active session"},400);let W=await this.sessionManager.getUserSessions(J.userId);return Q.json({success:!0,sessions:W.map((X)=>({id:X.id,createdAt:X.createdAt,updatedAt:X.updatedAt,expiresAt:X.expiresAt,ipAddress:X.ipAddress,userAgent:X.userAgent,current:X.id===J.id}))})}}),$.post("/session/destroy-all",{handler:async(Q)=>{let J=Q.get("session");if(!J)return Q.json({error:"No active session"},400);return await this.sessionManager.destroyUserSessions(J.userId),Q.json({success:!0,message:"All sessions destroyed successfully"})}}),$.get("/session/stats",{handler:async(Q)=>{if(!Q.get("session"))return Q.json({error:"Authentication required"},401);let W=this.sessionManager.getStore(),X=await W.length(),H=await W.all(),Y={totalSessions:X,activeSessions:H.filter((G)=>!G.expiresAt||G.expiresAt>new Date).length,expiredSessions:H.filter((G)=>G.expiresAt&&G.expiresAt<=new Date).length,uniqueUsers:new Set(H.map((G)=>G.userId)).size};return Q.json({success:!0,stats:Y})}})}setupCleanup(){if(this.cleanupIntervalId)return;let $=900000;if(this.cleanupIntervalId=setInterval(()=>{let q=this.sessionManager.getStore();if(q instanceof S1)q.cleanup()},$),typeof process<"u"&&process.on)process.on("exit",()=>{if(this.cleanupIntervalId)clearInterval(this.cleanupIntervalId)})}getSessionManager(){return this.sessionManager}getCSRFProtection(){return this.csrfProtection}getGuard(){return this.guard}}
17
17
 
18
- //# debugId=4C3F6ECBF0DBAC3E64756E2164756E21
18
+ //# debugId=D95CA7EA9BFC40D264756E2164756E21