veloce-ts 0.4.15 → 0.4.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/src/auth/index.js +3 -3
- package/dist/cjs/src/auth/index.js.map +3 -3
- package/dist/cjs/src/cli/index.js +2 -2
- package/dist/cjs/src/cli/index.js.map +2 -2
- package/dist/cjs/src/errors/index.js +2 -2
- package/dist/cjs/src/errors/index.js.map +2 -2
- package/dist/cjs/src/index.js +15 -15
- package/dist/cjs/src/index.js.map +5 -5
- package/dist/cjs/src/middleware/index.js +2 -2
- package/dist/cjs/src/middleware/index.js.map +2 -2
- package/dist/cjs/src/plugins/index.js +2 -2
- package/dist/cjs/src/plugins/index.js.map +2 -2
- package/dist/cjs/src/testing/index.js +13 -13
- package/dist/cjs/src/testing/index.js.map +4 -4
- package/dist/esm/src/auth/index.js +3 -3
- package/dist/esm/src/auth/index.js.map +3 -3
- package/dist/esm/src/cli/index.js +2 -2
- package/dist/esm/src/cli/index.js.map +2 -2
- package/dist/esm/src/errors/index.js +2 -2
- package/dist/esm/src/errors/index.js.map +2 -2
- package/dist/esm/src/index.js +22 -22
- package/dist/esm/src/index.js.map +5 -5
- package/dist/esm/src/middleware/index.js +2 -2
- package/dist/esm/src/middleware/index.js.map +2 -2
- package/dist/esm/src/plugins/index.js +2 -2
- package/dist/esm/src/plugins/index.js.map +2 -2
- package/dist/esm/src/testing/index.js +12 -12
- package/dist/esm/src/testing/index.js.map +4 -4
- package/dist/types/auth/rbac-plugin.d.ts +1 -1
- package/dist/types/auth/rbac-plugin.d.ts.map +1 -1
- package/dist/types/core/compiled-metadata.d.ts.map +1 -1
- package/dist/types/core/router-compiler.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
var C2=Object.create;var{getPrototypeOf:O2,defineProperty:O1,getOwnPropertyNames:x4,getOwnPropertyDescriptor:M2}=Object,T4=Object.prototype.hasOwnProperty;function h4($){return this[$]}var K2,k2,v4=($,q,Q)=>{var J=$!=null&&typeof $==="object";if(J){var W=q?K2??=new WeakMap:k2??=new WeakMap,X=W.get($);if(X)return X}Q=$!=null?C2(O2($)):{};let H=q||!$||!$.__esModule?O1(Q,"default",{value:$,enumerable:!0}):Q;for(let Y of x4($))if(!T4.call(H,Y))O1(H,Y,{get:h4.bind($,Y),enumerable:!0});if(J)W.set($,H);return H},I2=($)=>{var q=(f4??=new WeakMap).get($),Q;if(q)return q;if(q=O1({},"__esModule",{value:!0}),$&&typeof $==="object"||typeof $==="function"){for(var J of x4($))if(!T4.call(q,J))O1(q,J,{get:h4.bind($,J),enumerable:!(Q=M2($,J))||Q.enumerable})}return f4.set($,q),q},f4,N=($,q)=>()=>(q||$((q={exports:{}}).exports,q),q.exports);var b2=($)=>$;function P2($,q){this[$]=b2.bind(null,q)}var Q6=($,q)=>{for(var Q in q)O1($,Q,{get:q[Q],enumerable:!0,configurable:!0,set:P2.bind(q,Q)})};var J0=($,q)=>()=>($&&(q=$($=0)),q);var a$=N((J6,m4)=>{/*! safe-buffer. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */var W0=require("buffer"),E$=W0.Buffer;function g4($,q){for(var Q in $)q[Q]=$[Q]}if(E$.from&&E$.alloc&&E$.allocUnsafe&&E$.allocUnsafeSlow)m4.exports=W0;else g4(W0,J6),J6.Buffer=m$;function m$($,q,Q){return E$($,q,Q)}m$.prototype=Object.create(E$.prototype);g4(E$,m$);m$.from=function($,q,Q){if(typeof $==="number")throw TypeError("Argument must not be a number");return E$($,q,Q)};m$.alloc=function($,q,Q){if(typeof $!=="number")throw TypeError("Argument must be a number");var J=E$($);if(q!==void 0)if(typeof Q==="string")J.fill(q,Q);else J.fill(q);else J.fill(0);return J};m$.allocUnsafe=function($){if(typeof $!=="number")throw TypeError("Argument must be a number");return E$($)};m$.allocUnsafeSlow=function($){if(typeof $!=="number")throw TypeError("Argument must be a number");return W0.SlowBuffer($)}});var W6=N((UG,y4)=>{var X0=a$().Buffer,Z2=require("stream"),f2=require("util");function H0($){if(this.buffer=null,this.writable=!0,this.readable=!0,!$)return this.buffer=X0.alloc(0),this;if(typeof $.pipe==="function")return this.buffer=X0.alloc(0),$.pipe(this),this;if($.length||typeof $==="object")return this.buffer=$,this.writable=!1,process.nextTick(function(){this.emit("end",$),this.readable=!1,this.emit("close")}.bind(this)),this;throw TypeError("Unexpected data type ("+typeof $+")")}f2.inherits(H0,Z2);H0.prototype.write=function(q){this.buffer=X0.concat([this.buffer,X0.from(q)]),this.emit("data",q)};H0.prototype.end=function(q){if(q)this.write(q);this.emit("end",q),this.emit("close"),this.writable=!1,this.readable=!1};y4.exports=H0});var u4=N((zG,l4)=>{function X6($){var q=($/8|0)+($%8===0?0:1);return q}var x2={ES256:X6(256),ES384:X6(384),ES512:X6(521)};function T2($){var q=x2[$];if(q)return q;throw Error('Unknown algorithm "'+$+'"')}l4.exports=T2});var s4=N((LG,o4)=>{var Y0=a$().Buffer,d4=u4(),G0=128,n4=0,h2=32,v2=16,g2=2,p4=v2|h2|n4<<6,w0=g2|n4<<6;function m2($){return $.replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}function i4($){if(Y0.isBuffer($))return $;else if(typeof $==="string")return Y0.from($,"base64");throw TypeError("ECDSA signature must be a Base64 string or a Buffer")}function y2($,q){$=i4($);var Q=d4(q),J=Q+1,W=$.length,X=0;if($[X++]!==p4)throw Error('Could not find expected "seq"');var H=$[X++];if(H===(G0|1))H=$[X++];if(W-X<H)throw Error('"seq" specified length of "'+H+'", only "'+(W-X)+'" remaining');if($[X++]!==w0)throw Error('Could not find expected "int" for "r"');var Y=$[X++];if(W-X-2<Y)throw Error('"r" specified length of "'+Y+'", only "'+(W-X-2)+'" available');if(J<Y)throw Error('"r" specified length of "'+Y+'", max of "'+J+'" is acceptable');var G=X;if(X+=Y,$[X++]!==w0)throw Error('Could not find expected "int" for "s"');var V=$[X++];if(W-X!==V)throw Error('"s" specified length of "'+V+'", expected "'+(W-X)+'"');if(J<V)throw Error('"s" specified length of "'+V+'", max of "'+J+'" is acceptable');var D=X;if(X+=V,X!==W)throw Error('Expected to consume entire buffer, but "'+(W-X)+'" bytes remain');var z=Q-Y,Z=Q-V,C=Y0.allocUnsafe(z+Y+Z+V);for(X=0;X<z;++X)C[X]=0;$.copy(C,X,G+Math.max(-z,0),G+Y),X=Q;for(var y=X;X<y+Z;++X)C[X]=0;return $.copy(C,X,D+Math.max(-Z,0),D+V),C=C.toString("base64"),C=m2(C),C}function c4($,q,Q){var J=0;while(q+J<Q&&$[q+J]===0)++J;var W=$[q+J]>=G0;if(W)--J;return J}function l2($,q){$=i4($);var Q=d4(q),J=$.length;if(J!==Q*2)throw TypeError('"'+q+'" signatures must be "'+Q*2+'" bytes, saw "'+J+'"');var W=c4($,0,Q),X=c4($,Q,$.length),H=Q-W,Y=Q-X,G=2+H+1+1+Y,V=G<G0,D=Y0.allocUnsafe((V?2:3)+G),z=0;if(D[z++]=p4,V)D[z++]=G;else D[z++]=G0|1,D[z++]=G&255;if(D[z++]=w0,D[z++]=H,W<0)D[z++]=0,z+=$.copy(D,z,0,Q);else z+=$.copy(D,z,W,Q);if(D[z++]=w0,D[z++]=Y,X<0)D[z++]=0,$.copy(D,z,Q);else $.copy(D,z,Q+X);return D}o4.exports={derToJose:y2,joseToDer:l2}});var a4=N((jG,r4)=>{var M1=require("buffer").Buffer,H6=require("buffer").SlowBuffer;r4.exports=B0;function B0($,q){if(!M1.isBuffer($)||!M1.isBuffer(q))return!1;if($.length!==q.length)return!1;var Q=0;for(var J=0;J<$.length;J++)Q|=$[J]^q[J];return Q===0}B0.install=function(){M1.prototype.equal=H6.prototype.equal=function(q){return B0(this,q)}};var u2=M1.prototype.equal,c2=H6.prototype.equal;B0.restore=function(){M1.prototype.equal=u2,H6.prototype.equal=c2}});var B6=N((NG,Hq)=>{var e$=a$().Buffer,G$=require("crypto"),e4=s4(),t4=require("util"),d2=`"%s" is not a valid algorithm.
|
|
2
2
|
Supported algorithms are:
|
|
3
|
-
"HS256", "HS384", "HS512", "RS256", "RS384", "RS512", "PS256", "PS384", "PS512", "ES256", "ES384", "ES512" and "none".`,K1="secret must be a string or buffer",t$="key must be a string or a buffer",n2="key must be a string, a buffer or an object",G6=typeof G$.createPublicKey==="function";if(G6)t$+=" or a KeyObject",K1+="or a KeyObject";function $q($){if(e$.isBuffer($))return;if(typeof $==="string")return;if(!G6)throw F$(t$);if(typeof $!=="object")throw F$(t$);if(typeof $.type!=="string")throw F$(t$);if(typeof $.asymmetricKeyType!=="string")throw F$(t$);if(typeof $.export!=="function")throw F$(t$)}function qq($){if(e$.isBuffer($))return;if(typeof $==="string")return;if(typeof $==="object")return;throw F$(n2)}function p2($){if(e$.isBuffer($))return;if(typeof $==="string")return $;if(!G6)throw F$(K1);if(typeof $!=="object")throw F$(K1);if($.type!=="secret")throw F$(K1);if(typeof $.export!=="function")throw F$(K1)}function w6($){return $.replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}function Qq($){$=$.toString();var q=4-$.length%4;if(q!==4)for(var Q=0;Q<q;++Q)$+="=";return $.replace(/\-/g,"+").replace(/_/g,"/")}function F$($){var q=[].slice.call(arguments,1),Q=t4.format.bind(t4,$).apply(null,q);return TypeError(Q)}function i2($){return e$.isBuffer($)||typeof $==="string"}function k1($){if(!i2($))$=JSON.stringify($);return $}function Jq($){return function(Q,J){p2(J),Q=k1(Q);var W=G$.createHmac("sha"+$,J),X=(W.update(Q),W.digest("base64"));return w6(X)}}var Y6,o2="timingSafeEqual"in G$?function(q,Q){if(q.byteLength!==Q.byteLength)return!1;return G$.timingSafeEqual(q,Q)}:function(q,Q){if(!Y6)Y6=a4();return Y6(q,Q)};function s2($){return function(Q,J,W){var X=Jq($)(Q,W);return o2(e$.from(J),e$.from(X))}}function Wq($){return function(Q,J){qq(J),Q=k1(Q);var W=G$.createSign("RSA-SHA"+$),X=(W.update(Q),W.sign(J,"base64"));return w6(X)}}function Xq($){return function(Q,J,W){$q(W),Q=k1(Q),J=Qq(J);var X=G$.createVerify("RSA-SHA"+$);return X.update(Q),X.verify(W,J,"base64")}}function r2($){return function(Q,J){qq(J),Q=k1(Q);var W=G$.createSign("RSA-SHA"+$),X=(W.update(Q),W.sign({key:J,padding:G$.constants.RSA_PKCS1_PSS_PADDING,saltLength:G$.constants.RSA_PSS_SALTLEN_DIGEST},"base64"));return w6(X)}}function a2($){return function(Q,J,W){$q(W),Q=k1(Q),J=Qq(J);var X=G$.createVerify("RSA-SHA"+$);return X.update(Q),X.verify({key:W,padding:G$.constants.RSA_PKCS1_PSS_PADDING,saltLength:G$.constants.RSA_PSS_SALTLEN_DIGEST},J,"base64")}}function t2($){var q=Wq($);return function(){var J=q.apply(null,arguments);return J=e4.derToJose(J,"ES"+$),J}}function e2($){var q=Xq($);return function(J,W,X){W=e4.joseToDer(W,"ES"+$).toString("base64");var H=q(J,W,X);return H}}function $5(){return function(){return""}}function q5(){return function(q,Q){return Q===""}}Hq.exports=function(q){var Q={hs:Jq,rs:Wq,ps:r2,es:t2,none:$5},J={hs:s2,rs:Xq,ps:a2,es:e2,none:q5},W=q.match(/^(RS|PS|ES|HS)(256|384|512)$|^(none)$/);if(!W)throw F$(d2,q);var X=(W[1]||W[3]).toLowerCase(),H=W[2];return{sign:Q[X](H),verify:J[X](H)}}});var V6=N((RG,Yq)=>{var Q5=require("buffer").Buffer;Yq.exports=function(q){if(typeof q==="string")return q;if(typeof q==="number"||Q5.isBuffer(q))return q.toString();return JSON.stringify(q)}});var _q=N((EG,Fq)=>{var J5=a$().Buffer,Gq=W6(),W5=B6(),X5=require("stream"),wq=V6(),F6=require("util");function Bq($,q){return J5.from($,q).toString("base64").replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}function H5($,q,Q){Q=Q||"utf8";var J=Bq(wq($),"binary"),W=Bq(wq(q),Q);return F6.format("%s.%s",J,W)}function Vq($){var{header:q,payload:Q}=$,J=$.secret||$.privateKey,W=$.encoding,X=W5(q.alg),H=H5(q,Q,W),Y=X.sign(H,J);return F6.format("%s.%s",H,Y)}function V0($){var q=$.secret;if(q=q==null?$.privateKey:q,q=q==null?$.key:q,/^hs/i.test($.header.alg)===!0&&q==null)throw TypeError("secret must be a string or buffer or a KeyObject");var Q=new Gq(q);this.readable=!0,this.header=$.header,this.encoding=$.encoding,this.secret=this.privateKey=this.key=Q,this.payload=new Gq($.payload),this.secret.once("close",function(){if(!this.payload.writable&&this.readable)this.sign()}.bind(this)),this.payload.once("close",function(){if(!this.secret.writable&&this.readable)this.sign()}.bind(this))}F6.inherits(V0,X5);V0.prototype.sign=function(){try{var q=Vq({header:this.header,payload:this.payload.buffer,secret:this.secret.buffer,encoding:this.encoding});return this.emit("done",q),this.emit("data",q),this.emit("end"),this.readable=!1,q}catch(Q){this.readable=!1,this.emit("error",Q),this.emit("close")}};V0.sign=Vq;Fq.exports=V0});var Aq=N((SG,Sq)=>{var Uq=a$().Buffer,Dq=W6(),Y5=B6(),G5=require("stream"),zq=V6(),w5=require("util"),B5=/^[a-zA-Z0-9\-_]+?\.[a-zA-Z0-9\-_]+?\.([a-zA-Z0-9\-_]+)?$/;function V5($){return Object.prototype.toString.call($)==="[object Object]"}function F5($){if(V5($))return $;try{return JSON.parse($)}catch(q){return}}function Lq($){var q=$.split(".",1)[0];return F5(Uq.from(q,"base64").toString("binary"))}function _5($){return $.split(".",2).join(".")}function jq($){return $.split(".")[2]}function D5($,q){q=q||"utf8";var Q=$.split(".")[1];return Uq.from(Q,"base64").toString(q)}function Nq($){return B5.test($)&&!!Lq($)}function Rq($,q,Q){if(!q){var J=Error("Missing algorithm parameter for jws.verify");throw J.code="MISSING_ALGORITHM",J}$=zq($);var W=jq($),X=_5($),H=Y5(q);return H.verify(X,W,Q)}function Eq($,q){if(q=q||{},$=zq($),!Nq($))return null;var Q=Lq($);if(!Q)return null;var J=D5($);if(Q.typ==="JWT"||q.json)J=JSON.parse(J,q.encoding);return{header:Q,payload:J,signature:jq($)}}function $1($){$=$||{};var q=$.secret;if(q=q==null?$.publicKey:q,q=q==null?$.key:q,/^hs/i.test($.algorithm)===!0&&q==null)throw TypeError("secret must be a string or buffer or a KeyObject");var Q=new Dq(q);this.readable=!0,this.algorithm=$.algorithm,this.encoding=$.encoding,this.secret=this.publicKey=this.key=Q,this.signature=new Dq($.signature),this.secret.once("close",function(){if(!this.signature.writable&&this.readable)this.verify()}.bind(this)),this.signature.once("close",function(){if(!this.secret.writable&&this.readable)this.verify()}.bind(this))}w5.inherits($1,G5);$1.prototype.verify=function(){try{var q=Rq(this.signature.buffer,this.algorithm,this.key.buffer),Q=Eq(this.signature.buffer,this.encoding);return this.emit("done",q,Q),this.emit("data",q),this.emit("end"),this.readable=!1,q}catch(J){this.readable=!1,this.emit("error",J),this.emit("close")}};$1.decode=Eq;$1.isValid=Nq;$1.verify=Rq;Sq.exports=$1});var _0=N((I$)=>{var Cq=_q(),F0=Aq(),U5=["HS256","HS384","HS512","RS256","RS384","RS512","PS256","PS384","PS512","ES256","ES384","ES512"];I$.ALGORITHMS=U5;I$.sign=Cq.sign;I$.verify=F0.verify;I$.decode=F0.decode;I$.isValid=F0.isValid;I$.createSign=function(q){return new Cq(q)};I$.createVerify=function(q){return new F0(q)}});var _6=N((CG,Oq)=>{var z5=_0();Oq.exports=function($,q){q=q||{};var Q=z5.decode($,q);if(!Q)return null;var J=Q.payload;if(typeof J==="string")try{var W=JSON.parse(J);if(W!==null&&typeof W==="object")J=W}catch(X){}if(q.complete===!0)return{header:Q.header,payload:J,signature:Q.signature};return J}});var I1=N((OG,Mq)=>{var D0=function($,q){if(Error.call(this,$),Error.captureStackTrace)Error.captureStackTrace(this,this.constructor);if(this.name="JsonWebTokenError",this.message=$,q)this.inner=q};D0.prototype=Object.create(Error.prototype);D0.prototype.constructor=D0;Mq.exports=D0});var D6=N((MG,kq)=>{var Kq=I1(),U0=function($,q){Kq.call(this,$),this.name="NotBeforeError",this.date=q};U0.prototype=Object.create(Kq.prototype);U0.prototype.constructor=U0;kq.exports=U0});var U6=N((KG,bq)=>{var Iq=I1(),z0=function($,q){Iq.call(this,$),this.name="TokenExpiredError",this.expiredAt=q};z0.prototype=Object.create(Iq.prototype);z0.prototype.constructor=z0;bq.exports=z0});var Zq=N((kG,Pq)=>{var q1=1000,Q1=q1*60,J1=Q1*60,y$=J1*24,L5=y$*7,j5=y$*365.25;Pq.exports=function($,q){q=q||{};var Q=typeof $;if(Q==="string"&&$.length>0)return N5($);else if(Q==="number"&&isFinite($))return q.long?E5($):R5($);throw Error("val is not a non-empty string or a valid number. val="+JSON.stringify($))};function N5($){if($=String($),$.length>100)return;var q=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec($);if(!q)return;var Q=parseFloat(q[1]),J=(q[2]||"ms").toLowerCase();switch(J){case"years":case"year":case"yrs":case"yr":case"y":return Q*j5;case"weeks":case"week":case"w":return Q*L5;case"days":case"day":case"d":return Q*y$;case"hours":case"hour":case"hrs":case"hr":case"h":return Q*J1;case"minutes":case"minute":case"mins":case"min":case"m":return Q*Q1;case"seconds":case"second":case"secs":case"sec":case"s":return Q*q1;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return Q;default:return}}function R5($){var q=Math.abs($);if(q>=y$)return Math.round($/y$)+"d";if(q>=J1)return Math.round($/J1)+"h";if(q>=Q1)return Math.round($/Q1)+"m";if(q>=q1)return Math.round($/q1)+"s";return $+"ms"}function E5($){var q=Math.abs($);if(q>=y$)return L0($,q,y$,"day");if(q>=J1)return L0($,q,J1,"hour");if(q>=Q1)return L0($,q,Q1,"minute");if(q>=q1)return L0($,q,q1,"second");return $+" ms"}function L0($,q,Q,J){var W=q>=Q*1.5;return Math.round($/Q)+" "+J+(W?"s":"")}});var z6=N((IG,fq)=>{var S5=Zq();fq.exports=function($,q){var Q=q||Math.floor(Date.now()/1000);if(typeof $==="string"){var J=S5($);if(typeof J>"u")return;return Math.floor(Q+J/1000)}else if(typeof $==="number")return Q+$;else return}});var b1=N((bG,xq)=>{var A5=Number.MAX_SAFE_INTEGER||9007199254740991,C5=["major","premajor","minor","preminor","patch","prepatch","prerelease"];xq.exports={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:16,MAX_SAFE_BUILD_LENGTH:250,MAX_SAFE_INTEGER:A5,RELEASE_TYPES:C5,SEMVER_SPEC_VERSION:"2.0.0",FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2}});var P1=N((PG,Tq)=>{var O5=typeof process==="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...$)=>console.error("SEMVER",...$):()=>{};Tq.exports=O5});var W1=N((S$,hq)=>{var{MAX_SAFE_COMPONENT_LENGTH:L6,MAX_SAFE_BUILD_LENGTH:M5,MAX_LENGTH:K5}=b1(),k5=P1();S$=hq.exports={};var I5=S$.re=[],b5=S$.safeRe=[],S=S$.src=[],P5=S$.safeSrc=[],A=S$.t={},Z5=0,j6="[a-zA-Z0-9-]",f5=[["\\s",1],["\\d",K5],[j6,M5]],x5=($)=>{for(let[q,Q]of f5)$=$.split(`${q}*`).join(`${q}{0,${Q}}`).split(`${q}+`).join(`${q}{1,${Q}}`);return $},x=($,q,Q)=>{let J=x5(q),W=Z5++;k5($,W,q),A[$]=W,S[W]=q,P5[W]=J,I5[W]=new RegExp(q,Q?"g":void 0),b5[W]=new RegExp(J,Q?"g":void 0)};x("NUMERICIDENTIFIER","0|[1-9]\\d*");x("NUMERICIDENTIFIERLOOSE","\\d+");x("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${j6}*`);x("MAINVERSION",`(${S[A.NUMERICIDENTIFIER]})\\.(${S[A.NUMERICIDENTIFIER]})\\.(${S[A.NUMERICIDENTIFIER]})`);x("MAINVERSIONLOOSE",`(${S[A.NUMERICIDENTIFIERLOOSE]})\\.(${S[A.NUMERICIDENTIFIERLOOSE]})\\.(${S[A.NUMERICIDENTIFIERLOOSE]})`);x("PRERELEASEIDENTIFIER",`(?:${S[A.NONNUMERICIDENTIFIER]}|${S[A.NUMERICIDENTIFIER]})`);x("PRERELEASEIDENTIFIERLOOSE",`(?:${S[A.NONNUMERICIDENTIFIER]}|${S[A.NUMERICIDENTIFIERLOOSE]})`);x("PRERELEASE",`(?:-(${S[A.PRERELEASEIDENTIFIER]}(?:\\.${S[A.PRERELEASEIDENTIFIER]})*))`);x("PRERELEASELOOSE",`(?:-?(${S[A.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${S[A.PRERELEASEIDENTIFIERLOOSE]})*))`);x("BUILDIDENTIFIER",`${j6}+`);x("BUILD",`(?:\\+(${S[A.BUILDIDENTIFIER]}(?:\\.${S[A.BUILDIDENTIFIER]})*))`);x("FULLPLAIN",`v?${S[A.MAINVERSION]}${S[A.PRERELEASE]}?${S[A.BUILD]}?`);x("FULL",`^${S[A.FULLPLAIN]}$`);x("LOOSEPLAIN",`[v=\\s]*${S[A.MAINVERSIONLOOSE]}${S[A.PRERELEASELOOSE]}?${S[A.BUILD]}?`);x("LOOSE",`^${S[A.LOOSEPLAIN]}$`);x("GTLT","((?:<|>)?=?)");x("XRANGEIDENTIFIERLOOSE",`${S[A.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);x("XRANGEIDENTIFIER",`${S[A.NUMERICIDENTIFIER]}|x|X|\\*`);x("XRANGEPLAIN",`[v=\\s]*(${S[A.XRANGEIDENTIFIER]})(?:\\.(${S[A.XRANGEIDENTIFIER]})(?:\\.(${S[A.XRANGEIDENTIFIER]})(?:${S[A.PRERELEASE]})?${S[A.BUILD]}?)?)?`);x("XRANGEPLAINLOOSE",`[v=\\s]*(${S[A.XRANGEIDENTIFIERLOOSE]})(?:\\.(${S[A.XRANGEIDENTIFIERLOOSE]})(?:\\.(${S[A.XRANGEIDENTIFIERLOOSE]})(?:${S[A.PRERELEASELOOSE]})?${S[A.BUILD]}?)?)?`);x("XRANGE",`^${S[A.GTLT]}\\s*${S[A.XRANGEPLAIN]}$`);x("XRANGELOOSE",`^${S[A.GTLT]}\\s*${S[A.XRANGEPLAINLOOSE]}$`);x("COERCEPLAIN",`(^|[^\\d])(\\d{1,${L6}})(?:\\.(\\d{1,${L6}}))?(?:\\.(\\d{1,${L6}}))?`);x("COERCE",`${S[A.COERCEPLAIN]}(?:$|[^\\d])`);x("COERCEFULL",S[A.COERCEPLAIN]+`(?:${S[A.PRERELEASE]})?(?:${S[A.BUILD]})?(?:$|[^\\d])`);x("COERCERTL",S[A.COERCE],!0);x("COERCERTLFULL",S[A.COERCEFULL],!0);x("LONETILDE","(?:~>?)");x("TILDETRIM",`(\\s*)${S[A.LONETILDE]}\\s+`,!0);S$.tildeTrimReplace="$1~";x("TILDE",`^${S[A.LONETILDE]}${S[A.XRANGEPLAIN]}$`);x("TILDELOOSE",`^${S[A.LONETILDE]}${S[A.XRANGEPLAINLOOSE]}$`);x("LONECARET","(?:\\^)");x("CARETTRIM",`(\\s*)${S[A.LONECARET]}\\s+`,!0);S$.caretTrimReplace="$1^";x("CARET",`^${S[A.LONECARET]}${S[A.XRANGEPLAIN]}$`);x("CARETLOOSE",`^${S[A.LONECARET]}${S[A.XRANGEPLAINLOOSE]}$`);x("COMPARATORLOOSE",`^${S[A.GTLT]}\\s*(${S[A.LOOSEPLAIN]})$|^$`);x("COMPARATOR",`^${S[A.GTLT]}\\s*(${S[A.FULLPLAIN]})$|^$`);x("COMPARATORTRIM",`(\\s*)${S[A.GTLT]}\\s*(${S[A.LOOSEPLAIN]}|${S[A.XRANGEPLAIN]})`,!0);S$.comparatorTrimReplace="$1$2$3";x("HYPHENRANGE",`^\\s*(${S[A.XRANGEPLAIN]})\\s+-\\s+(${S[A.XRANGEPLAIN]})\\s*$`);x("HYPHENRANGELOOSE",`^\\s*(${S[A.XRANGEPLAINLOOSE]})\\s+-\\s+(${S[A.XRANGEPLAINLOOSE]})\\s*$`);x("STAR","(<|>)?=?\\s*\\*");x("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$");x("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")});var j0=N((ZG,vq)=>{var T5=Object.freeze({loose:!0}),h5=Object.freeze({}),v5=($)=>{if(!$)return h5;if(typeof $!=="object")return T5;return $};vq.exports=v5});var N6=N((fG,yq)=>{var gq=/^[0-9]+$/,mq=($,q)=>{if(typeof $==="number"&&typeof q==="number")return $===q?0:$<q?-1:1;let Q=gq.test($),J=gq.test(q);if(Q&&J)$=+$,q=+q;return $===q?0:Q&&!J?-1:J&&!Q?1:$<q?-1:1},g5=($,q)=>mq(q,$);yq.exports={compareIdentifiers:mq,rcompareIdentifiers:g5}});var q$=N((xG,uq)=>{var N0=P1(),{MAX_LENGTH:lq,MAX_SAFE_INTEGER:R0}=b1(),{safeRe:E0,t:S0}=W1(),m5=j0(),{compareIdentifiers:R6}=N6();class _${constructor($,q){if(q=m5(q),$ instanceof _$)if($.loose===!!q.loose&&$.includePrerelease===!!q.includePrerelease)return $;else $=$.version;else if(typeof $!=="string")throw TypeError(`Invalid version. Must be a string. Got type "${typeof $}".`);if($.length>lq)throw TypeError(`version is longer than ${lq} characters`);N0("SemVer",$,q),this.options=q,this.loose=!!q.loose,this.includePrerelease=!!q.includePrerelease;let Q=$.trim().match(q.loose?E0[S0.LOOSE]:E0[S0.FULL]);if(!Q)throw TypeError(`Invalid Version: ${$}`);if(this.raw=$,this.major=+Q[1],this.minor=+Q[2],this.patch=+Q[3],this.major>R0||this.major<0)throw TypeError("Invalid major version");if(this.minor>R0||this.minor<0)throw TypeError("Invalid minor version");if(this.patch>R0||this.patch<0)throw TypeError("Invalid patch version");if(!Q[4])this.prerelease=[];else this.prerelease=Q[4].split(".").map((J)=>{if(/^[0-9]+$/.test(J)){let W=+J;if(W>=0&&W<R0)return W}return J});this.build=Q[5]?Q[5].split("."):[],this.format()}format(){if(this.version=`${this.major}.${this.minor}.${this.patch}`,this.prerelease.length)this.version+=`-${this.prerelease.join(".")}`;return this.version}toString(){return this.version}compare($){if(N0("SemVer.compare",this.version,this.options,$),!($ instanceof _$)){if(typeof $==="string"&&$===this.version)return 0;$=new _$($,this.options)}if($.version===this.version)return 0;return this.compareMain($)||this.comparePre($)}compareMain($){if(!($ instanceof _$))$=new _$($,this.options);if(this.major<$.major)return-1;if(this.major>$.major)return 1;if(this.minor<$.minor)return-1;if(this.minor>$.minor)return 1;if(this.patch<$.patch)return-1;if(this.patch>$.patch)return 1;return 0}comparePre($){if(!($ instanceof _$))$=new _$($,this.options);if(this.prerelease.length&&!$.prerelease.length)return-1;else if(!this.prerelease.length&&$.prerelease.length)return 1;else if(!this.prerelease.length&&!$.prerelease.length)return 0;let q=0;do{let Q=this.prerelease[q],J=$.prerelease[q];if(N0("prerelease compare",q,Q,J),Q===void 0&&J===void 0)return 0;else if(J===void 0)return 1;else if(Q===void 0)return-1;else if(Q===J)continue;else return R6(Q,J)}while(++q)}compareBuild($){if(!($ instanceof _$))$=new _$($,this.options);let q=0;do{let Q=this.build[q],J=$.build[q];if(N0("build compare",q,Q,J),Q===void 0&&J===void 0)return 0;else if(J===void 0)return 1;else if(Q===void 0)return-1;else if(Q===J)continue;else return R6(Q,J)}while(++q)}inc($,q,Q){if($.startsWith("pre")){if(!q&&Q===!1)throw Error("invalid increment argument: identifier is empty");if(q){let J=`-${q}`.match(this.options.loose?E0[S0.PRERELEASELOOSE]:E0[S0.PRERELEASE]);if(!J||J[1]!==q)throw Error(`invalid identifier: ${q}`)}}switch($){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",q,Q);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",q,Q);break;case"prepatch":this.prerelease.length=0,this.inc("patch",q,Q),this.inc("pre",q,Q);break;case"prerelease":if(this.prerelease.length===0)this.inc("patch",q,Q);this.inc("pre",q,Q);break;case"release":if(this.prerelease.length===0)throw Error(`version ${this.raw} is not a prerelease`);this.prerelease.length=0;break;case"major":if(this.minor!==0||this.patch!==0||this.prerelease.length===0)this.major++;this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":if(this.patch!==0||this.prerelease.length===0)this.minor++;this.patch=0,this.prerelease=[];break;case"patch":if(this.prerelease.length===0)this.patch++;this.prerelease=[];break;case"pre":{let J=Number(Q)?1:0;if(this.prerelease.length===0)this.prerelease=[J];else{let W=this.prerelease.length;while(--W>=0)if(typeof this.prerelease[W]==="number")this.prerelease[W]++,W=-2;if(W===-1){if(q===this.prerelease.join(".")&&Q===!1)throw Error("invalid increment argument: identifier already exists");this.prerelease.push(J)}}if(q){let W=[q,J];if(Q===!1)W=[q];if(R6(this.prerelease[0],q)===0){if(isNaN(this.prerelease[1]))this.prerelease=W}else this.prerelease=W}break}default:throw Error(`invalid increment argument: ${$}`)}if(this.raw=this.format(),this.build.length)this.raw+=`+${this.build.join(".")}`;return this}}uq.exports=_$});var l$=N((TG,dq)=>{var cq=q$(),y5=($,q,Q=!1)=>{if($ instanceof cq)return $;try{return new cq($,q)}catch(J){if(!Q)return null;throw J}};dq.exports=y5});var pq=N((hG,nq)=>{var l5=l$(),u5=($,q)=>{let Q=l5($,q);return Q?Q.version:null};nq.exports=u5});var oq=N((vG,iq)=>{var c5=l$(),d5=($,q)=>{let Q=c5($.trim().replace(/^[=v]+/,""),q);return Q?Q.version:null};iq.exports=d5});var aq=N((gG,rq)=>{var sq=q$(),n5=($,q,Q,J,W)=>{if(typeof Q==="string")W=J,J=Q,Q=void 0;try{return new sq($ instanceof sq?$.version:$,Q).inc(q,J,W).version}catch(X){return null}};rq.exports=n5});var $8=N((mG,eq)=>{var tq=l$(),p5=($,q)=>{let Q=tq($,null,!0),J=tq(q,null,!0),W=Q.compare(J);if(W===0)return null;let X=W>0,H=X?Q:J,Y=X?J:Q,G=!!H.prerelease.length;if(!!Y.prerelease.length&&!G){if(!Y.patch&&!Y.minor)return"major";if(Y.compareMain(H)===0){if(Y.minor&&!Y.patch)return"minor";return"patch"}}let D=G?"pre":"";if(Q.major!==J.major)return D+"major";if(Q.minor!==J.minor)return D+"minor";if(Q.patch!==J.patch)return D+"patch";return"prerelease"};eq.exports=p5});var Q8=N((yG,q8)=>{var i5=q$(),o5=($,q)=>new i5($,q).major;q8.exports=o5});var W8=N((lG,J8)=>{var s5=q$(),r5=($,q)=>new s5($,q).minor;J8.exports=r5});var H8=N((uG,X8)=>{var a5=q$(),t5=($,q)=>new a5($,q).patch;X8.exports=t5});var G8=N((cG,Y8)=>{var e5=l$(),$J=($,q)=>{let Q=e5($,q);return Q&&Q.prerelease.length?Q.prerelease:null};Y8.exports=$J});var w$=N((dG,B8)=>{var w8=q$(),qJ=($,q,Q)=>new w8($,Q).compare(new w8(q,Q));B8.exports=qJ});var F8=N((nG,V8)=>{var QJ=w$(),JJ=($,q,Q)=>QJ(q,$,Q);V8.exports=JJ});var D8=N((pG,_8)=>{var WJ=w$(),XJ=($,q)=>WJ($,q,!0);_8.exports=XJ});var A0=N((iG,z8)=>{var U8=q$(),HJ=($,q,Q)=>{let J=new U8($,Q),W=new U8(q,Q);return J.compare(W)||J.compareBuild(W)};z8.exports=HJ});var j8=N((oG,L8)=>{var YJ=A0(),GJ=($,q)=>$.sort((Q,J)=>YJ(Q,J,q));L8.exports=GJ});var R8=N((sG,N8)=>{var wJ=A0(),BJ=($,q)=>$.sort((Q,J)=>wJ(J,Q,q));N8.exports=BJ});var Z1=N((rG,E8)=>{var VJ=w$(),FJ=($,q,Q)=>VJ($,q,Q)>0;E8.exports=FJ});var C0=N((aG,S8)=>{var _J=w$(),DJ=($,q,Q)=>_J($,q,Q)<0;S8.exports=DJ});var E6=N((tG,A8)=>{var UJ=w$(),zJ=($,q,Q)=>UJ($,q,Q)===0;A8.exports=zJ});var S6=N((eG,C8)=>{var LJ=w$(),jJ=($,q,Q)=>LJ($,q,Q)!==0;C8.exports=jJ});var O0=N(($w,O8)=>{var NJ=w$(),RJ=($,q,Q)=>NJ($,q,Q)>=0;O8.exports=RJ});var M0=N((qw,M8)=>{var EJ=w$(),SJ=($,q,Q)=>EJ($,q,Q)<=0;M8.exports=SJ});var A6=N((Qw,K8)=>{var AJ=E6(),CJ=S6(),OJ=Z1(),MJ=O0(),KJ=C0(),kJ=M0(),IJ=($,q,Q,J)=>{switch(q){case"===":if(typeof $==="object")$=$.version;if(typeof Q==="object")Q=Q.version;return $===Q;case"!==":if(typeof $==="object")$=$.version;if(typeof Q==="object")Q=Q.version;return $!==Q;case"":case"=":case"==":return AJ($,Q,J);case"!=":return CJ($,Q,J);case">":return OJ($,Q,J);case">=":return MJ($,Q,J);case"<":return KJ($,Q,J);case"<=":return kJ($,Q,J);default:throw TypeError(`Invalid operator: ${q}`)}};K8.exports=IJ});var I8=N((Jw,k8)=>{var bJ=q$(),PJ=l$(),{safeRe:K0,t:k0}=W1(),ZJ=($,q)=>{if($ instanceof bJ)return $;if(typeof $==="number")$=String($);if(typeof $!=="string")return null;q=q||{};let Q=null;if(!q.rtl)Q=$.match(q.includePrerelease?K0[k0.COERCEFULL]:K0[k0.COERCE]);else{let G=q.includePrerelease?K0[k0.COERCERTLFULL]:K0[k0.COERCERTL],V;while((V=G.exec($))&&(!Q||Q.index+Q[0].length!==$.length)){if(!Q||V.index+V[0].length!==Q.index+Q[0].length)Q=V;G.lastIndex=V.index+V[1].length+V[2].length}G.lastIndex=-1}if(Q===null)return null;let J=Q[2],W=Q[3]||"0",X=Q[4]||"0",H=q.includePrerelease&&Q[5]?`-${Q[5]}`:"",Y=q.includePrerelease&&Q[6]?`+${Q[6]}`:"";return PJ(`${J}.${W}.${X}${H}${Y}`,q)};k8.exports=ZJ});var Z8=N((Ww,P8)=>{class b8{constructor(){this.max=1000,this.map=new Map}get($){let q=this.map.get($);if(q===void 0)return;else return this.map.delete($),this.map.set($,q),q}delete($){return this.map.delete($)}set($,q){if(!this.delete($)&&q!==void 0){if(this.map.size>=this.max){let J=this.map.keys().next().value;this.delete(J)}this.map.set($,q)}return this}}P8.exports=b8});var B$=N((Xw,h8)=>{var fJ=/\s+/g;class f1{constructor($,q){if(q=TJ(q),$ instanceof f1)if($.loose===!!q.loose&&$.includePrerelease===!!q.includePrerelease)return $;else return new f1($.raw,q);if($ instanceof C6)return this.raw=$.value,this.set=[[$]],this.formatted=void 0,this;if(this.options=q,this.loose=!!q.loose,this.includePrerelease=!!q.includePrerelease,this.raw=$.trim().replace(fJ," "),this.set=this.raw.split("||").map((Q)=>this.parseRange(Q.trim())).filter((Q)=>Q.length),!this.set.length)throw TypeError(`Invalid SemVer Range: ${this.raw}`);if(this.set.length>1){let Q=this.set[0];if(this.set=this.set.filter((J)=>!x8(J[0])),this.set.length===0)this.set=[Q];else if(this.set.length>1){for(let J of this.set)if(J.length===1&&uJ(J[0])){this.set=[J];break}}}this.formatted=void 0}get range(){if(this.formatted===void 0){this.formatted="";for(let $=0;$<this.set.length;$++){if($>0)this.formatted+="||";let q=this.set[$];for(let Q=0;Q<q.length;Q++){if(Q>0)this.formatted+=" ";this.formatted+=q[Q].toString().trim()}}}return this.formatted}format(){return this.range}toString(){return this.range}parseRange($){let Q=((this.options.includePrerelease&&yJ)|(this.options.loose&&lJ))+":"+$,J=f8.get(Q);if(J)return J;let W=this.options.loose,X=W?W$[Q$.HYPHENRANGELOOSE]:W$[Q$.HYPHENRANGE];$=$.replace(X,tJ(this.options.includePrerelease)),c("hyphen replace",$),$=$.replace(W$[Q$.COMPARATORTRIM],vJ),c("comparator trim",$),$=$.replace(W$[Q$.TILDETRIM],gJ),c("tilde trim",$),$=$.replace(W$[Q$.CARETTRIM],mJ),c("caret trim",$);let H=$.split(" ").map((D)=>cJ(D,this.options)).join(" ").split(/\s+/).map((D)=>aJ(D,this.options));if(W)H=H.filter((D)=>{return c("loose invalid filter",D,this.options),!!D.match(W$[Q$.COMPARATORLOOSE])});c("range list",H);let Y=new Map,G=H.map((D)=>new C6(D,this.options));for(let D of G){if(x8(D))return[D];Y.set(D.value,D)}if(Y.size>1&&Y.has(""))Y.delete("");let V=[...Y.values()];return f8.set(Q,V),V}intersects($,q){if(!($ instanceof f1))throw TypeError("a Range is required");return this.set.some((Q)=>{return T8(Q,q)&&$.set.some((J)=>{return T8(J,q)&&Q.every((W)=>{return J.every((X)=>{return W.intersects(X,q)})})})})}test($){if(!$)return!1;if(typeof $==="string")try{$=new hJ($,this.options)}catch(q){return!1}for(let q=0;q<this.set.length;q++)if(eJ(this.set[q],$,this.options))return!0;return!1}}h8.exports=f1;var xJ=Z8(),f8=new xJ,TJ=j0(),C6=x1(),c=P1(),hJ=q$(),{safeRe:W$,t:Q$,comparatorTrimReplace:vJ,tildeTrimReplace:gJ,caretTrimReplace:mJ}=W1(),{FLAG_INCLUDE_PRERELEASE:yJ,FLAG_LOOSE:lJ}=b1(),x8=($)=>$.value==="<0.0.0-0",uJ=($)=>$.value==="",T8=($,q)=>{let Q=!0,J=$.slice(),W=J.pop();while(Q&&J.length)Q=J.every((X)=>{return W.intersects(X,q)}),W=J.pop();return Q},cJ=($,q)=>{return $=$.replace(W$[Q$.BUILD],""),c("comp",$,q),$=pJ($,q),c("caret",$),$=dJ($,q),c("tildes",$),$=oJ($,q),c("xrange",$),$=rJ($,q),c("stars",$),$},X$=($)=>!$||$.toLowerCase()==="x"||$==="*",dJ=($,q)=>{return $.trim().split(/\s+/).map((Q)=>nJ(Q,q)).join(" ")},nJ=($,q)=>{let Q=q.loose?W$[Q$.TILDELOOSE]:W$[Q$.TILDE];return $.replace(Q,(J,W,X,H,Y)=>{c("tilde",$,J,W,X,H,Y);let G;if(X$(W))G="";else if(X$(X))G=`>=${W}.0.0 <${+W+1}.0.0-0`;else if(X$(H))G=`>=${W}.${X}.0 <${W}.${+X+1}.0-0`;else if(Y)c("replaceTilde pr",Y),G=`>=${W}.${X}.${H}-${Y} <${W}.${+X+1}.0-0`;else G=`>=${W}.${X}.${H} <${W}.${+X+1}.0-0`;return c("tilde return",G),G})},pJ=($,q)=>{return $.trim().split(/\s+/).map((Q)=>iJ(Q,q)).join(" ")},iJ=($,q)=>{c("caret",$,q);let Q=q.loose?W$[Q$.CARETLOOSE]:W$[Q$.CARET],J=q.includePrerelease?"-0":"";return $.replace(Q,(W,X,H,Y,G)=>{c("caret",$,W,X,H,Y,G);let V;if(X$(X))V="";else if(X$(H))V=`>=${X}.0.0${J} <${+X+1}.0.0-0`;else if(X$(Y))if(X==="0")V=`>=${X}.${H}.0${J} <${X}.${+H+1}.0-0`;else V=`>=${X}.${H}.0${J} <${+X+1}.0.0-0`;else if(G)if(c("replaceCaret pr",G),X==="0")if(H==="0")V=`>=${X}.${H}.${Y}-${G} <${X}.${H}.${+Y+1}-0`;else V=`>=${X}.${H}.${Y}-${G} <${X}.${+H+1}.0-0`;else V=`>=${X}.${H}.${Y}-${G} <${+X+1}.0.0-0`;else if(c("no pr"),X==="0")if(H==="0")V=`>=${X}.${H}.${Y}${J} <${X}.${H}.${+Y+1}-0`;else V=`>=${X}.${H}.${Y}${J} <${X}.${+H+1}.0-0`;else V=`>=${X}.${H}.${Y} <${+X+1}.0.0-0`;return c("caret return",V),V})},oJ=($,q)=>{return c("replaceXRanges",$,q),$.split(/\s+/).map((Q)=>sJ(Q,q)).join(" ")},sJ=($,q)=>{$=$.trim();let Q=q.loose?W$[Q$.XRANGELOOSE]:W$[Q$.XRANGE];return $.replace(Q,(J,W,X,H,Y,G)=>{c("xRange",$,J,W,X,H,Y,G);let V=X$(X),D=V||X$(H),z=D||X$(Y),Z=z;if(W==="="&&Z)W="";if(G=q.includePrerelease?"-0":"",V)if(W===">"||W==="<")J="<0.0.0-0";else J="*";else if(W&&Z){if(D)H=0;if(Y=0,W===">")if(W=">=",D)X=+X+1,H=0,Y=0;else H=+H+1,Y=0;else if(W==="<=")if(W="<",D)X=+X+1;else H=+H+1;if(W==="<")G="-0";J=`${W+X}.${H}.${Y}${G}`}else if(D)J=`>=${X}.0.0${G} <${+X+1}.0.0-0`;else if(z)J=`>=${X}.${H}.0${G} <${X}.${+H+1}.0-0`;return c("xRange return",J),J})},rJ=($,q)=>{return c("replaceStars",$,q),$.trim().replace(W$[Q$.STAR],"")},aJ=($,q)=>{return c("replaceGTE0",$,q),$.trim().replace(W$[q.includePrerelease?Q$.GTE0PRE:Q$.GTE0],"")},tJ=($)=>(q,Q,J,W,X,H,Y,G,V,D,z,Z)=>{if(X$(J))Q="";else if(X$(W))Q=`>=${J}.0.0${$?"-0":""}`;else if(X$(X))Q=`>=${J}.${W}.0${$?"-0":""}`;else if(H)Q=`>=${Q}`;else Q=`>=${Q}${$?"-0":""}`;if(X$(V))G="";else if(X$(D))G=`<${+V+1}.0.0-0`;else if(X$(z))G=`<${V}.${+D+1}.0-0`;else if(Z)G=`<=${V}.${D}.${z}-${Z}`;else if($)G=`<${V}.${D}.${+z+1}-0`;else G=`<=${G}`;return`${Q} ${G}`.trim()},eJ=($,q,Q)=>{for(let J=0;J<$.length;J++)if(!$[J].test(q))return!1;if(q.prerelease.length&&!Q.includePrerelease){for(let J=0;J<$.length;J++){if(c($[J].semver),$[J].semver===C6.ANY)continue;if($[J].semver.prerelease.length>0){let W=$[J].semver;if(W.major===q.major&&W.minor===q.minor&&W.patch===q.patch)return!0}}return!1}return!0}});var x1=N((Hw,u8)=>{var T1=Symbol("SemVer ANY");class I0{static get ANY(){return T1}constructor($,q){if(q=v8(q),$ instanceof I0)if($.loose===!!q.loose)return $;else $=$.value;if($=$.trim().split(/\s+/).join(" "),M6("comparator",$,q),this.options=q,this.loose=!!q.loose,this.parse($),this.semver===T1)this.value="";else this.value=this.operator+this.semver.version;M6("comp",this)}parse($){let q=this.options.loose?g8[m8.COMPARATORLOOSE]:g8[m8.COMPARATOR],Q=$.match(q);if(!Q)throw TypeError(`Invalid comparator: ${$}`);if(this.operator=Q[1]!==void 0?Q[1]:"",this.operator==="=")this.operator="";if(!Q[2])this.semver=T1;else this.semver=new y8(Q[2],this.options.loose)}toString(){return this.value}test($){if(M6("Comparator.test",$,this.options.loose),this.semver===T1||$===T1)return!0;if(typeof $==="string")try{$=new y8($,this.options)}catch(q){return!1}return O6($,this.operator,this.semver,this.options)}intersects($,q){if(!($ instanceof I0))throw TypeError("a Comparator is required");if(this.operator===""){if(this.value==="")return!0;return new l8($.value,q).test(this.value)}else if($.operator===""){if($.value==="")return!0;return new l8(this.value,q).test($.semver)}if(q=v8(q),q.includePrerelease&&(this.value==="<0.0.0-0"||$.value==="<0.0.0-0"))return!1;if(!q.includePrerelease&&(this.value.startsWith("<0.0.0")||$.value.startsWith("<0.0.0")))return!1;if(this.operator.startsWith(">")&&$.operator.startsWith(">"))return!0;if(this.operator.startsWith("<")&&$.operator.startsWith("<"))return!0;if(this.semver.version===$.semver.version&&this.operator.includes("=")&&$.operator.includes("="))return!0;if(O6(this.semver,"<",$.semver,q)&&this.operator.startsWith(">")&&$.operator.startsWith("<"))return!0;if(O6(this.semver,">",$.semver,q)&&this.operator.startsWith("<")&&$.operator.startsWith(">"))return!0;return!1}}u8.exports=I0;var v8=j0(),{safeRe:g8,t:m8}=W1(),O6=A6(),M6=P1(),y8=q$(),l8=B$()});var h1=N((Yw,c8)=>{var $7=B$(),q7=($,q,Q)=>{try{q=new $7(q,Q)}catch(J){return!1}return q.test($)};c8.exports=q7});var n8=N((Gw,d8)=>{var Q7=B$(),J7=($,q)=>new Q7($,q).set.map((Q)=>Q.map((J)=>J.value).join(" ").trim().split(" "));d8.exports=J7});var i8=N((ww,p8)=>{var W7=q$(),X7=B$(),H7=($,q,Q)=>{let J=null,W=null,X=null;try{X=new X7(q,Q)}catch(H){return null}return $.forEach((H)=>{if(X.test(H)){if(!J||W.compare(H)===-1)J=H,W=new W7(J,Q)}}),J};p8.exports=H7});var s8=N((Bw,o8)=>{var Y7=q$(),G7=B$(),w7=($,q,Q)=>{let J=null,W=null,X=null;try{X=new G7(q,Q)}catch(H){return null}return $.forEach((H)=>{if(X.test(H)){if(!J||W.compare(H)===1)J=H,W=new Y7(J,Q)}}),J};o8.exports=w7});var t8=N((Vw,a8)=>{var K6=q$(),B7=B$(),r8=Z1(),V7=($,q)=>{$=new B7($,q);let Q=new K6("0.0.0");if($.test(Q))return Q;if(Q=new K6("0.0.0-0"),$.test(Q))return Q;Q=null;for(let J=0;J<$.set.length;++J){let W=$.set[J],X=null;if(W.forEach((H)=>{let Y=new K6(H.semver.version);switch(H.operator){case">":if(Y.prerelease.length===0)Y.patch++;else Y.prerelease.push(0);Y.raw=Y.format();case"":case">=":if(!X||r8(Y,X))X=Y;break;case"<":case"<=":break;default:throw Error(`Unexpected operation: ${H.operator}`)}}),X&&(!Q||r8(Q,X)))Q=X}if(Q&&$.test(Q))return Q;return null};a8.exports=V7});var $9=N((Fw,e8)=>{var F7=B$(),_7=($,q)=>{try{return new F7($,q).range||"*"}catch(Q){return null}};e8.exports=_7});var b0=N((_w,W9)=>{var D7=q$(),J9=x1(),{ANY:U7}=J9,z7=B$(),L7=h1(),q9=Z1(),Q9=C0(),j7=M0(),N7=O0(),R7=($,q,Q,J)=>{$=new D7($,J),q=new z7(q,J);let W,X,H,Y,G;switch(Q){case">":W=q9,X=j7,H=Q9,Y=">",G=">=";break;case"<":W=Q9,X=N7,H=q9,Y="<",G="<=";break;default:throw TypeError('Must provide a hilo val of "<" or ">"')}if(L7($,q,J))return!1;for(let V=0;V<q.set.length;++V){let D=q.set[V],z=null,Z=null;if(D.forEach((C)=>{if(C.semver===U7)C=new J9(">=0.0.0");if(z=z||C,Z=Z||C,W(C.semver,z.semver,J))z=C;else if(H(C.semver,Z.semver,J))Z=C}),z.operator===Y||z.operator===G)return!1;if((!Z.operator||Z.operator===Y)&&X($,Z.semver))return!1;else if(Z.operator===G&&H($,Z.semver))return!1}return!0};W9.exports=R7});var H9=N((Dw,X9)=>{var E7=b0(),S7=($,q,Q)=>E7($,q,">",Q);X9.exports=S7});var G9=N((Uw,Y9)=>{var A7=b0(),C7=($,q,Q)=>A7($,q,"<",Q);Y9.exports=C7});var V9=N((zw,B9)=>{var w9=B$(),O7=($,q,Q)=>{return $=new w9($,Q),q=new w9(q,Q),$.intersects(q,Q)};B9.exports=O7});var _9=N((Lw,F9)=>{var M7=h1(),K7=w$();F9.exports=($,q,Q)=>{let J=[],W=null,X=null,H=$.sort((D,z)=>K7(D,z,Q));for(let D of H)if(M7(D,q,Q)){if(X=D,!W)W=D}else{if(X)J.push([W,X]);X=null,W=null}if(W)J.push([W,null]);let Y=[];for(let[D,z]of J)if(D===z)Y.push(D);else if(!z&&D===H[0])Y.push("*");else if(!z)Y.push(`>=${D}`);else if(D===H[0])Y.push(`<=${z}`);else Y.push(`${D} - ${z}`);let G=Y.join(" || "),V=typeof q.raw==="string"?q.raw:String(q);return G.length<V.length?G:q}});var N9=N((jw,j9)=>{var D9=B$(),I6=x1(),{ANY:k6}=I6,v1=h1(),b6=w$(),k7=($,q,Q={})=>{if($===q)return!0;$=new D9($,Q),q=new D9(q,Q);let J=!1;$:for(let W of $.set){for(let X of q.set){let H=b7(W,X,Q);if(J=J||H!==null,H)continue $}if(J)return!1}return!0},I7=[new I6(">=0.0.0-0")],U9=[new I6(">=0.0.0")],b7=($,q,Q)=>{if($===q)return!0;if($.length===1&&$[0].semver===k6)if(q.length===1&&q[0].semver===k6)return!0;else if(Q.includePrerelease)$=I7;else $=U9;if(q.length===1&&q[0].semver===k6)if(Q.includePrerelease)return!0;else q=U9;let J=new Set,W,X;for(let C of $)if(C.operator===">"||C.operator===">=")W=z9(W,C,Q);else if(C.operator==="<"||C.operator==="<=")X=L9(X,C,Q);else J.add(C.semver);if(J.size>1)return null;let H;if(W&&X){if(H=b6(W.semver,X.semver,Q),H>0)return null;else if(H===0&&(W.operator!==">="||X.operator!=="<="))return null}for(let C of J){if(W&&!v1(C,String(W),Q))return null;if(X&&!v1(C,String(X),Q))return null;for(let y of q)if(!v1(C,String(y),Q))return!1;return!0}let Y,G,V,D,z=X&&!Q.includePrerelease&&X.semver.prerelease.length?X.semver:!1,Z=W&&!Q.includePrerelease&&W.semver.prerelease.length?W.semver:!1;if(z&&z.prerelease.length===1&&X.operator==="<"&&z.prerelease[0]===0)z=!1;for(let C of q){if(D=D||C.operator===">"||C.operator===">=",V=V||C.operator==="<"||C.operator==="<=",W){if(Z){if(C.semver.prerelease&&C.semver.prerelease.length&&C.semver.major===Z.major&&C.semver.minor===Z.minor&&C.semver.patch===Z.patch)Z=!1}if(C.operator===">"||C.operator===">="){if(Y=z9(W,C,Q),Y===C&&Y!==W)return!1}else if(W.operator===">="&&!v1(W.semver,String(C),Q))return!1}if(X){if(z){if(C.semver.prerelease&&C.semver.prerelease.length&&C.semver.major===z.major&&C.semver.minor===z.minor&&C.semver.patch===z.patch)z=!1}if(C.operator==="<"||C.operator==="<="){if(G=L9(X,C,Q),G===C&&G!==X)return!1}else if(X.operator==="<="&&!v1(X.semver,String(C),Q))return!1}if(!C.operator&&(X||W)&&H!==0)return!1}if(W&&V&&!X&&H!==0)return!1;if(X&&D&&!W&&H!==0)return!1;if(Z||z)return!1;return!0},z9=($,q,Q)=>{if(!$)return q;let J=b6($.semver,q.semver,Q);return J>0?$:J<0?q:q.operator===">"&&$.operator===">="?q:$},L9=($,q,Q)=>{if(!$)return q;let J=b6($.semver,q.semver,Q);return J<0?$:J>0?q:q.operator==="<"&&$.operator==="<="?q:$};j9.exports=k7});var P0=N((Nw,S9)=>{var P6=W1(),R9=b1(),P7=q$(),E9=N6(),Z7=l$(),f7=pq(),x7=oq(),T7=aq(),h7=$8(),v7=Q8(),g7=W8(),m7=H8(),y7=G8(),l7=w$(),u7=F8(),c7=D8(),d7=A0(),n7=j8(),p7=R8(),i7=Z1(),o7=C0(),s7=E6(),r7=S6(),a7=O0(),t7=M0(),e7=A6(),$3=I8(),q3=x1(),Q3=B$(),J3=h1(),W3=n8(),X3=i8(),H3=s8(),Y3=t8(),G3=$9(),w3=b0(),B3=H9(),V3=G9(),F3=V9(),_3=_9(),D3=N9();S9.exports={parse:Z7,valid:f7,clean:x7,inc:T7,diff:h7,major:v7,minor:g7,patch:m7,prerelease:y7,compare:l7,rcompare:u7,compareLoose:c7,compareBuild:d7,sort:n7,rsort:p7,gt:i7,lt:o7,eq:s7,neq:r7,gte:a7,lte:t7,cmp:e7,coerce:$3,Comparator:q3,Range:Q3,satisfies:J3,toComparators:W3,maxSatisfying:X3,minSatisfying:H3,minVersion:Y3,validRange:G3,outside:w3,gtr:B3,ltr:V3,intersects:F3,simplifyRange:_3,subset:D3,SemVer:P7,re:P6.re,src:P6.src,tokens:P6.t,SEMVER_SPEC_VERSION:R9.SEMVER_SPEC_VERSION,RELEASE_TYPES:R9.RELEASE_TYPES,compareIdentifiers:E9.compareIdentifiers,rcompareIdentifiers:E9.rcompareIdentifiers}});var C9=N((Rw,A9)=>{var U3=P0();A9.exports=U3.satisfies(process.version,">=15.7.0")});var M9=N((Ew,O9)=>{var z3=P0();O9.exports=z3.satisfies(process.version,">=16.9.0")});var Z6=N((Sw,K9)=>{var L3=C9(),j3=M9(),N3={ec:["ES256","ES384","ES512"],rsa:["RS256","PS256","RS384","PS384","RS512","PS512"],"rsa-pss":["PS256","PS384","PS512"]},R3={ES256:"prime256v1",ES384:"secp384r1",ES512:"secp521r1"};K9.exports=function($,q){if(!$||!q)return;let Q=q.asymmetricKeyType;if(!Q)return;let J=N3[Q];if(!J)throw Error(`Unknown key type "${Q}".`);if(!J.includes($))throw Error(`"alg" parameter for "${Q}" key type must be one of: ${J.join(", ")}.`);if(L3)switch(Q){case"ec":let W=q.asymmetricKeyDetails.namedCurve,X=R3[$];if(W!==X)throw Error(`"alg" parameter "${$}" requires curve "${X}".`);break;case"rsa-pss":if(j3){let H=parseInt($.slice(-3),10),{hashAlgorithm:Y,mgf1HashAlgorithm:G,saltLength:V}=q.asymmetricKeyDetails;if(Y!==`sha${H}`||G!==Y)throw Error(`Invalid key for this operation, its RSA-PSS parameters do not meet the requirements of "alg" ${$}.`);if(V!==void 0&&V>H>>3)throw Error(`Invalid key for this operation, its RSA-PSS parameter saltLength does not meet the requirements of "alg" ${$}.`)}break}}});var f6=N((Aw,k9)=>{var E3=P0();k9.exports=E3.satisfies(process.version,"^6.12.0 || >=8.0.0")});var P9=N((Cw,b9)=>{var l=I1(),S3=D6(),I9=U6(),A3=_6(),C3=z6(),O3=Z6(),M3=f6(),K3=_0(),{KeyObject:k3,createSecretKey:I3,createPublicKey:b3}=require("crypto"),x6=["RS256","RS384","RS512"],P3=["ES256","ES384","ES512"],T6=["RS256","RS384","RS512"],Z3=["HS256","HS384","HS512"];if(M3)x6.splice(x6.length,0,"PS256","PS384","PS512"),T6.splice(T6.length,0,"PS256","PS384","PS512");b9.exports=function($,q,Q,J){if(typeof Q==="function"&&!J)J=Q,Q={};if(!Q)Q={};Q=Object.assign({},Q);let W;if(J)W=J;else W=function(D,z){if(D)throw D;return z};if(Q.clockTimestamp&&typeof Q.clockTimestamp!=="number")return W(new l("clockTimestamp must be a number"));if(Q.nonce!==void 0&&(typeof Q.nonce!=="string"||Q.nonce.trim()===""))return W(new l("nonce must be a non-empty string"));if(Q.allowInvalidAsymmetricKeyTypes!==void 0&&typeof Q.allowInvalidAsymmetricKeyTypes!=="boolean")return W(new l("allowInvalidAsymmetricKeyTypes must be a boolean"));let X=Q.clockTimestamp||Math.floor(Date.now()/1000);if(!$)return W(new l("jwt must be provided"));if(typeof $!=="string")return W(new l("jwt must be a string"));let H=$.split(".");if(H.length!==3)return W(new l("jwt malformed"));let Y;try{Y=A3($,{complete:!0})}catch(D){return W(D)}if(!Y)return W(new l("invalid token"));let G=Y.header,V;if(typeof q==="function"){if(!J)return W(new l("verify must be called asynchronous if secret or public key is provided as a callback"));V=q}else V=function(D,z){return z(null,q)};return V(G,function(D,z){if(D)return W(new l("error in secret or public key callback: "+D.message));let Z=H[2].trim()!=="";if(!Z&&z)return W(new l("jwt signature is required"));if(Z&&!z)return W(new l("secret or public key must be provided"));if(!Z&&!Q.algorithms)return W(new l('please specify "none" in "algorithms" to verify unsigned tokens'));if(z!=null&&!(z instanceof k3))try{z=b3(z)}catch(p){try{z=I3(typeof z==="string"?Buffer.from(z):z)}catch(o$){return W(new l("secretOrPublicKey is not valid key material"))}}if(!Q.algorithms)if(z.type==="secret")Q.algorithms=Z3;else if(["rsa","rsa-pss"].includes(z.asymmetricKeyType))Q.algorithms=T6;else if(z.asymmetricKeyType==="ec")Q.algorithms=P3;else Q.algorithms=x6;if(Q.algorithms.indexOf(Y.header.alg)===-1)return W(new l("invalid algorithm"));if(G.alg.startsWith("HS")&&z.type!=="secret")return W(new l(`secretOrPublicKey must be a symmetric key when using ${G.alg}`));else if(/^(?:RS|PS|ES)/.test(G.alg)&&z.type!=="public")return W(new l(`secretOrPublicKey must be an asymmetric key when using ${G.alg}`));if(!Q.allowInvalidAsymmetricKeyTypes)try{O3(G.alg,z)}catch(p){return W(p)}let C;try{C=K3.verify($,Y.header.alg,z)}catch(p){return W(p)}if(!C)return W(new l("invalid signature"));let y=Y.payload;if(typeof y.nbf<"u"&&!Q.ignoreNotBefore){if(typeof y.nbf!=="number")return W(new l("invalid nbf value"));if(y.nbf>X+(Q.clockTolerance||0))return W(new S3("jwt not active",new Date(y.nbf*1000)))}if(typeof y.exp<"u"&&!Q.ignoreExpiration){if(typeof y.exp!=="number")return W(new l("invalid exp value"));if(X>=y.exp+(Q.clockTolerance||0))return W(new I9("jwt expired",new Date(y.exp*1000)))}if(Q.audience){let p=Array.isArray(Q.audience)?Q.audience:[Q.audience];if(!(Array.isArray(y.aud)?y.aud:[y.aud]).some(function(Q0){return p.some(function(A1){return A1 instanceof RegExp?A1.test(Q0):A1===Q0})}))return W(new l("jwt audience invalid. expected: "+p.join(" or ")))}if(Q.issuer){if(typeof Q.issuer==="string"&&y.iss!==Q.issuer||Array.isArray(Q.issuer)&&Q.issuer.indexOf(y.iss)===-1)return W(new l("jwt issuer invalid. expected: "+Q.issuer))}if(Q.subject){if(y.sub!==Q.subject)return W(new l("jwt subject invalid. expected: "+Q.subject))}if(Q.jwtid){if(y.jti!==Q.jwtid)return W(new l("jwt jwtid invalid. expected: "+Q.jwtid))}if(Q.nonce){if(y.nonce!==Q.nonce)return W(new l("jwt nonce invalid. expected: "+Q.nonce))}if(Q.maxAge){if(typeof y.iat!=="number")return W(new l("iat required when maxAge is specified"));let p=C3(Q.maxAge,y.iat);if(typeof p>"u")return W(new l('"maxAge" should be a number of seconds or string representing a timespan eg: "1d", "20h", 60'));if(X>=p+(Q.clockTolerance||0))return W(new I9("maxAge exceeded",new Date(p*1000)))}if(Q.complete===!0){let p=Y.signature;return W(null,{header:G,payload:y,signature:p})}return W(null,y)})}});var v9=N((Ow,h9)=>{var Z9=1/0,x9=9007199254740991,f3=179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,f9=NaN,x3="[object Arguments]",T3="[object Function]",h3="[object GeneratorFunction]",v3="[object String]",g3="[object Symbol]",m3=/^\s+|\s+$/g,y3=/^[-+]0x[0-9a-f]+$/i,l3=/^0b[01]+$/i,u3=/^0o[0-7]+$/i,c3=/^(?:0|[1-9]\d*)$/,d3=parseInt;function n3($,q){var Q=-1,J=$?$.length:0,W=Array(J);while(++Q<J)W[Q]=q($[Q],Q,$);return W}function p3($,q,Q,J){var W=$.length,X=Q+(J?1:-1);while(J?X--:++X<W)if(q($[X],X,$))return X;return-1}function i3($,q,Q){if(q!==q)return p3($,o3,Q);var J=Q-1,W=$.length;while(++J<W)if($[J]===q)return J;return-1}function o3($){return $!==$}function s3($,q){var Q=-1,J=Array($);while(++Q<$)J[Q]=q(Q);return J}function r3($,q){return n3(q,function(Q){return $[Q]})}function a3($,q){return function(Q){return $(q(Q))}}var Z0=Object.prototype,v6=Z0.hasOwnProperty,f0=Z0.toString,t3=Z0.propertyIsEnumerable,e3=a3(Object.keys,Object),$W=Math.max;function qW($,q){var Q=T9($)||HW($)?s3($.length,String):[],J=Q.length,W=!!J;for(var X in $)if((q||v6.call($,X))&&!(W&&(X=="length"||JW(X,J))))Q.push(X);return Q}function QW($){if(!WW($))return e3($);var q=[];for(var Q in Object($))if(v6.call($,Q)&&Q!="constructor")q.push(Q);return q}function JW($,q){return q=q==null?x9:q,!!q&&(typeof $=="number"||c3.test($))&&($>-1&&$%1==0&&$<q)}function WW($){var q=$&&$.constructor,Q=typeof q=="function"&&q.prototype||Z0;return $===Q}function XW($,q,Q,J){$=g6($)?$:zW($),Q=Q&&!J?_W(Q):0;var W=$.length;if(Q<0)Q=$W(W+Q,0);return BW($)?Q<=W&&$.indexOf(q,Q)>-1:!!W&&i3($,q,Q)>-1}function HW($){return YW($)&&v6.call($,"callee")&&(!t3.call($,"callee")||f0.call($)==x3)}var T9=Array.isArray;function g6($){return $!=null&&wW($.length)&&!GW($)}function YW($){return m6($)&&g6($)}function GW($){var q=h6($)?f0.call($):"";return q==T3||q==h3}function wW($){return typeof $=="number"&&$>-1&&$%1==0&&$<=x9}function h6($){var q=typeof $;return!!$&&(q=="object"||q=="function")}function m6($){return!!$&&typeof $=="object"}function BW($){return typeof $=="string"||!T9($)&&m6($)&&f0.call($)==v3}function VW($){return typeof $=="symbol"||m6($)&&f0.call($)==g3}function FW($){if(!$)return $===0?$:0;if($=DW($),$===Z9||$===-Z9){var q=$<0?-1:1;return q*f3}return $===$?$:0}function _W($){var q=FW($),Q=q%1;return q===q?Q?q-Q:q:0}function DW($){if(typeof $=="number")return $;if(VW($))return f9;if(h6($)){var q=typeof $.valueOf=="function"?$.valueOf():$;$=h6(q)?q+"":q}if(typeof $!="string")return $===0?$:+$;$=$.replace(m3,"");var Q=l3.test($);return Q||u3.test($)?d3($.slice(2),Q?2:8):y3.test($)?f9:+$}function UW($){return g6($)?qW($):QW($)}function zW($){return $?r3($,UW($)):[]}h9.exports=XW});var m9=N((Mw,g9)=>{var LW="[object Boolean]",jW=Object.prototype,NW=jW.toString;function RW($){return $===!0||$===!1||EW($)&&NW.call($)==LW}function EW($){return!!$&&typeof $=="object"}g9.exports=RW});var d9=N((Kw,c9)=>{var y9=1/0,SW=179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,l9=NaN,AW="[object Symbol]",CW=/^\s+|\s+$/g,OW=/^[-+]0x[0-9a-f]+$/i,MW=/^0b[01]+$/i,KW=/^0o[0-7]+$/i,kW=parseInt,IW=Object.prototype,bW=IW.toString;function PW($){return typeof $=="number"&&$==TW($)}function u9($){var q=typeof $;return!!$&&(q=="object"||q=="function")}function ZW($){return!!$&&typeof $=="object"}function fW($){return typeof $=="symbol"||ZW($)&&bW.call($)==AW}function xW($){if(!$)return $===0?$:0;if($=hW($),$===y9||$===-y9){var q=$<0?-1:1;return q*SW}return $===$?$:0}function TW($){var q=xW($),Q=q%1;return q===q?Q?q-Q:q:0}function hW($){if(typeof $=="number")return $;if(fW($))return l9;if(u9($)){var q=typeof $.valueOf=="function"?$.valueOf():$;$=u9(q)?q+"":q}if(typeof $!="string")return $===0?$:+$;$=$.replace(CW,"");var Q=MW.test($);return Q||KW.test($)?kW($.slice(2),Q?2:8):OW.test($)?l9:+$}c9.exports=PW});var p9=N((kw,n9)=>{var vW="[object Number]",gW=Object.prototype,mW=gW.toString;function yW($){return!!$&&typeof $=="object"}function lW($){return typeof $=="number"||yW($)&&mW.call($)==vW}n9.exports=lW});var r9=N((Iw,s9)=>{var uW="[object Object]";function cW($){var q=!1;if($!=null&&typeof $.toString!="function")try{q=!!($+"")}catch(Q){}return q}function dW($,q){return function(Q){return $(q(Q))}}var nW=Function.prototype,i9=Object.prototype,o9=nW.toString,pW=i9.hasOwnProperty,iW=o9.call(Object),oW=i9.toString,sW=dW(Object.getPrototypeOf,Object);function rW($){return!!$&&typeof $=="object"}function aW($){if(!rW($)||oW.call($)!=uW||cW($))return!1;var q=sW($);if(q===null)return!0;var Q=pW.call(q,"constructor")&&q.constructor;return typeof Q=="function"&&Q instanceof Q&&o9.call(Q)==iW}s9.exports=aW});var t9=N((bw,a9)=>{var tW="[object String]",eW=Object.prototype,$X=eW.toString,qX=Array.isArray;function QX($){return!!$&&typeof $=="object"}function JX($){return typeof $=="string"||!qX($)&&QX($)&&$X.call($)==tW}a9.exports=JX});var JQ=N((Pw,QQ)=>{var WX="Expected a function",e9=1/0,XX=179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,$Q=NaN,HX="[object Symbol]",YX=/^\s+|\s+$/g,GX=/^[-+]0x[0-9a-f]+$/i,wX=/^0b[01]+$/i,BX=/^0o[0-7]+$/i,VX=parseInt,FX=Object.prototype,_X=FX.toString;function DX($,q){var Q;if(typeof q!="function")throw TypeError(WX);return $=NX($),function(){if(--$>0)Q=q.apply(this,arguments);if($<=1)q=void 0;return Q}}function UX($){return DX(2,$)}function qQ($){var q=typeof $;return!!$&&(q=="object"||q=="function")}function zX($){return!!$&&typeof $=="object"}function LX($){return typeof $=="symbol"||zX($)&&_X.call($)==HX}function jX($){if(!$)return $===0?$:0;if($=RX($),$===e9||$===-e9){var q=$<0?-1:1;return q*XX}return $===$?$:0}function NX($){var q=jX($),Q=q%1;return q===q?Q?q-Q:q:0}function RX($){if(typeof $=="number")return $;if(LX($))return $Q;if(qQ($)){var q=typeof $.valueOf=="function"?$.valueOf():$;$=qQ(q)?q+"":q}if(typeof $!="string")return $===0?$:+$;$=$.replace(YX,"");var Q=wX.test($);return Q||BX.test($)?VX($.slice(2),Q?2:8):GX.test($)?$Q:+$}QQ.exports=UX});var FQ=N((Zw,VQ)=>{var WQ=z6(),EX=f6(),SX=Z6(),XQ=_0(),AX=v9(),x0=m9(),HQ=d9(),y6=p9(),GQ=r9(),b$=t9(),CX=JQ(),{KeyObject:OX,createSecretKey:MX,createPrivateKey:KX}=require("crypto"),wQ=["RS256","RS384","RS512","ES256","ES384","ES512","HS256","HS384","HS512","none"];if(EX)wQ.splice(3,0,"PS256","PS384","PS512");var kX={expiresIn:{isValid:function($){return HQ($)||b$($)&&$},message:'"expiresIn" should be a number of seconds or string representing a timespan'},notBefore:{isValid:function($){return HQ($)||b$($)&&$},message:'"notBefore" should be a number of seconds or string representing a timespan'},audience:{isValid:function($){return b$($)||Array.isArray($)},message:'"audience" must be a string or array'},algorithm:{isValid:AX.bind(null,wQ),message:'"algorithm" must be a valid string enum value'},header:{isValid:GQ,message:'"header" must be an object'},encoding:{isValid:b$,message:'"encoding" must be a string'},issuer:{isValid:b$,message:'"issuer" must be a string'},subject:{isValid:b$,message:'"subject" must be a string'},jwtid:{isValid:b$,message:'"jwtid" must be a string'},noTimestamp:{isValid:x0,message:'"noTimestamp" must be a boolean'},keyid:{isValid:b$,message:'"keyid" must be a string'},mutatePayload:{isValid:x0,message:'"mutatePayload" must be a boolean'},allowInsecureKeySizes:{isValid:x0,message:'"allowInsecureKeySizes" must be a boolean'},allowInvalidAsymmetricKeyTypes:{isValid:x0,message:'"allowInvalidAsymmetricKeyTypes" must be a boolean'}},IX={iat:{isValid:y6,message:'"iat" should be a number of seconds'},exp:{isValid:y6,message:'"exp" should be a number of seconds'},nbf:{isValid:y6,message:'"nbf" should be a number of seconds'}};function BQ($,q,Q,J){if(!GQ(Q))throw Error('Expected "'+J+'" to be a plain object.');Object.keys(Q).forEach(function(W){let X=$[W];if(!X){if(!q)throw Error('"'+W+'" is not allowed in "'+J+'"');return}if(!X.isValid(Q[W]))throw Error(X.message)})}function bX($){return BQ(kX,!1,$,"options")}function PX($){return BQ(IX,!0,$,"payload")}var YQ={audience:"aud",issuer:"iss",subject:"sub",jwtid:"jti"},ZX=["expiresIn","notBefore","noTimestamp","audience","issuer","subject","jwtid"];VQ.exports=function($,q,Q,J){if(typeof Q==="function")J=Q,Q={};else Q=Q||{};let W=typeof $==="object"&&!Buffer.isBuffer($),X=Object.assign({alg:Q.algorithm||"HS256",typ:W?"JWT":void 0,kid:Q.keyid},Q.header);function H(V){if(J)return J(V);throw V}if(!q&&Q.algorithm!=="none")return H(Error("secretOrPrivateKey must have a value"));if(q!=null&&!(q instanceof OX))try{q=KX(q)}catch(V){try{q=MX(typeof q==="string"?Buffer.from(q):q)}catch(D){return H(Error("secretOrPrivateKey is not valid key material"))}}if(X.alg.startsWith("HS")&&q.type!=="secret")return H(Error(`secretOrPrivateKey must be a symmetric key when using ${X.alg}`));else if(/^(?:RS|PS|ES)/.test(X.alg)){if(q.type!=="private")return H(Error(`secretOrPrivateKey must be an asymmetric key when using ${X.alg}`));if(!Q.allowInsecureKeySizes&&!X.alg.startsWith("ES")&&q.asymmetricKeyDetails!==void 0&&q.asymmetricKeyDetails.modulusLength<2048)return H(Error(`secretOrPrivateKey has a minimum key size of 2048 bits for ${X.alg}`))}if(typeof $>"u")return H(Error("payload is required"));else if(W){try{PX($)}catch(V){return H(V)}if(!Q.mutatePayload)$=Object.assign({},$)}else{let V=ZX.filter(function(D){return typeof Q[D]<"u"});if(V.length>0)return H(Error("invalid "+V.join(",")+" option for "+typeof $+" payload"))}if(typeof $.exp<"u"&&typeof Q.expiresIn<"u")return H(Error('Bad "options.expiresIn" option the payload already has an "exp" property.'));if(typeof $.nbf<"u"&&typeof Q.notBefore<"u")return H(Error('Bad "options.notBefore" option the payload already has an "nbf" property.'));try{bX(Q)}catch(V){return H(V)}if(!Q.allowInvalidAsymmetricKeyTypes)try{SX(X.alg,q)}catch(V){return H(V)}let Y=$.iat||Math.floor(Date.now()/1000);if(Q.noTimestamp)delete $.iat;else if(W)$.iat=Y;if(typeof Q.notBefore<"u"){try{$.nbf=WQ(Q.notBefore,Y)}catch(V){return H(V)}if(typeof $.nbf>"u")return H(Error('"notBefore" should be a number of seconds or string representing a timespan eg: "1d", "20h", 60'))}if(typeof Q.expiresIn<"u"&&typeof $==="object"){try{$.exp=WQ(Q.expiresIn,Y)}catch(V){return H(V)}if(typeof $.exp>"u")return H(Error('"expiresIn" should be a number of seconds or string representing a timespan eg: "1d", "20h", 60'))}Object.keys(YQ).forEach(function(V){let D=YQ[V];if(typeof Q[V]<"u"){if(typeof $[D]<"u")return H(Error('Bad "options.'+V+'" option. The payload already has an "'+D+'" property.'));$[D]=Q[V]}});let G=Q.encoding||"utf8";if(typeof J==="function")J=J&&CX(J),XQ.createSign({header:X,privateKey:q,payload:$,encoding:G}).once("error",J).once("done",function(V){if(!Q.allowInsecureKeySizes&&/^(?:RS|PS)/.test(X.alg)&&V.length<256)return J(Error(`secretOrPrivateKey has a minimum key size of 2048 bits for ${X.alg}`));J(null,V)});else{let V=XQ.sign({header:X,payload:$,secret:q,encoding:G});if(!Q.allowInsecureKeySizes&&/^(?:RS|PS)/.test(X.alg)&&V.length<256)throw Error(`secretOrPrivateKey has a minimum key size of 2048 bits for ${X.alg}`);return V}}});var DQ=N((fw,_Q)=>{_Q.exports={decode:_6(),verify:P9(),sign:FQ(),JsonWebTokenError:I1(),NotBeforeError:D6(),TokenExpiredError:U6()}});function y0($){return`https://veloce-ts.com/problems/${$}`}function MQ($,q){if(q)return q;let Q=pH[$]??"unknown-error";return y0(Q)}function KQ($,q,Q){if(Q)return Q;return iH[$]??q}function oH($){try{return new URL($.req.url).href}catch{return $.req.path}}function sH($){let q=$.statusCode??$.status,J={error:(typeof $.error==="string"?$.error:null)??(typeof $.detail==="string"?$.detail:"Error"),statusCode:q};if($.details!==void 0)J.details=$.details;else if($.violations!==void 0)J.details=$.violations;return J}function BB($,q,Q,J){let W=oH($),X={...q,instance:W};if(J==="legacy")return $.json(sH(X),Q);return new Response(JSON.stringify(X),{status:Q,headers:{"Content-Type":"application/problem+json"}})}var GB="application/problem+json",wB="https://veloce-ts.com/problems",pH,iH;var d6=J0(()=>{pH={400:"bad-request",401:"unauthorized",403:"forbidden",404:"not-found",409:"conflict",410:"gone",413:"payload-too-large",422:"unprocessable-entity",429:"too-many-requests",500:"internal-server-error",503:"service-unavailable"},iH={400:"Bad Request",401:"Unauthorized",403:"Forbidden",404:"Not Found",409:"Conflict",410:"Gone",413:"Payload Too Large",422:"Unprocessable Entity",429:"Too Many Requests",500:"Internal Server Error",503:"Service Unavailable"}});var Y$,rH,aH,tH,eH,$Y,qY,QY,JY,WY,XY;var kQ=J0(()=>{d6();Y$=class Y$ extends Error{statusCode;details;problemType;title;constructor($,q,Q,J){super(q);this.statusCode=$;this.details=Q;if(this.name="HTTPException",this.problemType=J?.problemType,this.title=J?.title,Error.captureStackTrace)Error.captureStackTrace(this,this.constructor)}toJSON(){let $=this.statusCode,q=MQ($,this.problemType),Q=KQ($,this.message,this.title);return{type:q,title:Q,status:$,detail:this.message,...this.details!==void 0?{details:this.details}:{},error:this.message,statusCode:$}}};rH=class rH extends Y${constructor($="Not Found",q){super(404,$,q,{title:"Not Found"});this.name="NotFoundException"}};aH=class aH extends Y${constructor($="Unauthorized",q){super(401,$,q,{title:"Unauthorized"});this.name="UnauthorizedException"}};tH=class tH extends Y${constructor($="Forbidden",q){super(403,$,q,{title:"Forbidden"});this.name="ForbiddenException"}};eH=class eH extends Y${constructor($="Bad Request",q){super(400,$,q,{title:"Bad Request"});this.name="BadRequestException"}};$Y=class $Y extends Y${constructor($="Conflict",q){super(409,$,q,{title:"Conflict"});this.name="ConflictException"}};qY=class qY extends Y${constructor($="Gone",q){super(410,$,q,{title:"Gone"});this.name="GoneException"}};QY=class QY extends Y${constructor($="Payload Too Large",q){super(413,$,q,{title:"Payload Too Large"});this.name="PayloadTooLargeException"}};JY=class JY extends Y${constructor($="Unprocessable Entity",q){super(422,$,q,{title:"Unprocessable Entity"});this.name="UnprocessableEntityException"}};WY=class WY extends Y${constructor($="Too Many Requests",q){super(429,$,q,{title:"Too Many Requests"});this.name="TooManyRequestsException"}};XY=class XY extends Y${constructor($="Service Unavailable",q){super(503,$,q,{title:"Service Unavailable"});this.name="ServiceUnavailableException"}}});var HY={};Q6(HY,{TokenRevokedException:()=>n6,TokenExpiredException:()=>n1,InvalidTokenException:()=>i$,AuthorizationException:()=>r,AuthenticationException:()=>e});var e,r,n1,i$,n6;var v$=J0(()=>{kQ();d6();e=class e extends Y${constructor($="Authentication required"){super(401,$,void 0,{title:"Authentication Error",problemType:y0("authentication-error")});this.name="AuthenticationException"}};r=class r extends Y${constructor($="Insufficient permissions"){super(403,$,void 0,{title:"Authorization Error",problemType:y0("authorization-error")});this.name="AuthorizationException"}};n1=class n1 extends e{constructor($="Token has expired"){super($);this.name="TokenExpiredException"}};i$=class i$ extends e{constructor($="Invalid token"){super($);this.name="InvalidTokenException"}};n6=class n6 extends e{constructor($="Token has been revoked"){super($);this.name="TokenRevokedException"}}});var PQ=N(()=>{/*! *****************************************************************************
|
|
3
|
+
"HS256", "HS384", "HS512", "RS256", "RS384", "RS512", "PS256", "PS384", "PS512", "ES256", "ES384", "ES512" and "none".`,K1="secret must be a string or buffer",t$="key must be a string or a buffer",n2="key must be a string, a buffer or an object",G6=typeof G$.createPublicKey==="function";if(G6)t$+=" or a KeyObject",K1+="or a KeyObject";function $q($){if(e$.isBuffer($))return;if(typeof $==="string")return;if(!G6)throw F$(t$);if(typeof $!=="object")throw F$(t$);if(typeof $.type!=="string")throw F$(t$);if(typeof $.asymmetricKeyType!=="string")throw F$(t$);if(typeof $.export!=="function")throw F$(t$)}function qq($){if(e$.isBuffer($))return;if(typeof $==="string")return;if(typeof $==="object")return;throw F$(n2)}function p2($){if(e$.isBuffer($))return;if(typeof $==="string")return $;if(!G6)throw F$(K1);if(typeof $!=="object")throw F$(K1);if($.type!=="secret")throw F$(K1);if(typeof $.export!=="function")throw F$(K1)}function w6($){return $.replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}function Qq($){$=$.toString();var q=4-$.length%4;if(q!==4)for(var Q=0;Q<q;++Q)$+="=";return $.replace(/\-/g,"+").replace(/_/g,"/")}function F$($){var q=[].slice.call(arguments,1),Q=t4.format.bind(t4,$).apply(null,q);return TypeError(Q)}function i2($){return e$.isBuffer($)||typeof $==="string"}function k1($){if(!i2($))$=JSON.stringify($);return $}function Jq($){return function(Q,J){p2(J),Q=k1(Q);var W=G$.createHmac("sha"+$,J),X=(W.update(Q),W.digest("base64"));return w6(X)}}var Y6,o2="timingSafeEqual"in G$?function(q,Q){if(q.byteLength!==Q.byteLength)return!1;return G$.timingSafeEqual(q,Q)}:function(q,Q){if(!Y6)Y6=a4();return Y6(q,Q)};function s2($){return function(Q,J,W){var X=Jq($)(Q,W);return o2(e$.from(J),e$.from(X))}}function Wq($){return function(Q,J){qq(J),Q=k1(Q);var W=G$.createSign("RSA-SHA"+$),X=(W.update(Q),W.sign(J,"base64"));return w6(X)}}function Xq($){return function(Q,J,W){$q(W),Q=k1(Q),J=Qq(J);var X=G$.createVerify("RSA-SHA"+$);return X.update(Q),X.verify(W,J,"base64")}}function r2($){return function(Q,J){qq(J),Q=k1(Q);var W=G$.createSign("RSA-SHA"+$),X=(W.update(Q),W.sign({key:J,padding:G$.constants.RSA_PKCS1_PSS_PADDING,saltLength:G$.constants.RSA_PSS_SALTLEN_DIGEST},"base64"));return w6(X)}}function a2($){return function(Q,J,W){$q(W),Q=k1(Q),J=Qq(J);var X=G$.createVerify("RSA-SHA"+$);return X.update(Q),X.verify({key:W,padding:G$.constants.RSA_PKCS1_PSS_PADDING,saltLength:G$.constants.RSA_PSS_SALTLEN_DIGEST},J,"base64")}}function t2($){var q=Wq($);return function(){var J=q.apply(null,arguments);return J=e4.derToJose(J,"ES"+$),J}}function e2($){var q=Xq($);return function(J,W,X){W=e4.joseToDer(W,"ES"+$).toString("base64");var H=q(J,W,X);return H}}function $5(){return function(){return""}}function q5(){return function(q,Q){return Q===""}}Hq.exports=function(q){var Q={hs:Jq,rs:Wq,ps:r2,es:t2,none:$5},J={hs:s2,rs:Xq,ps:a2,es:e2,none:q5},W=q.match(/^(RS|PS|ES|HS)(256|384|512)$|^(none)$/);if(!W)throw F$(d2,q);var X=(W[1]||W[3]).toLowerCase(),H=W[2];return{sign:Q[X](H),verify:J[X](H)}}});var V6=N((RG,Yq)=>{var Q5=require("buffer").Buffer;Yq.exports=function(q){if(typeof q==="string")return q;if(typeof q==="number"||Q5.isBuffer(q))return q.toString();return JSON.stringify(q)}});var _q=N((EG,Fq)=>{var J5=a$().Buffer,Gq=W6(),W5=B6(),X5=require("stream"),wq=V6(),F6=require("util");function Bq($,q){return J5.from($,q).toString("base64").replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}function H5($,q,Q){Q=Q||"utf8";var J=Bq(wq($),"binary"),W=Bq(wq(q),Q);return F6.format("%s.%s",J,W)}function Vq($){var{header:q,payload:Q}=$,J=$.secret||$.privateKey,W=$.encoding,X=W5(q.alg),H=H5(q,Q,W),Y=X.sign(H,J);return F6.format("%s.%s",H,Y)}function V0($){var q=$.secret;if(q=q==null?$.privateKey:q,q=q==null?$.key:q,/^hs/i.test($.header.alg)===!0&&q==null)throw TypeError("secret must be a string or buffer or a KeyObject");var Q=new Gq(q);this.readable=!0,this.header=$.header,this.encoding=$.encoding,this.secret=this.privateKey=this.key=Q,this.payload=new Gq($.payload),this.secret.once("close",function(){if(!this.payload.writable&&this.readable)this.sign()}.bind(this)),this.payload.once("close",function(){if(!this.secret.writable&&this.readable)this.sign()}.bind(this))}F6.inherits(V0,X5);V0.prototype.sign=function(){try{var q=Vq({header:this.header,payload:this.payload.buffer,secret:this.secret.buffer,encoding:this.encoding});return this.emit("done",q),this.emit("data",q),this.emit("end"),this.readable=!1,q}catch(Q){this.readable=!1,this.emit("error",Q),this.emit("close")}};V0.sign=Vq;Fq.exports=V0});var Aq=N((SG,Sq)=>{var Uq=a$().Buffer,Dq=W6(),Y5=B6(),G5=require("stream"),zq=V6(),w5=require("util"),B5=/^[a-zA-Z0-9\-_]+?\.[a-zA-Z0-9\-_]+?\.([a-zA-Z0-9\-_]+)?$/;function V5($){return Object.prototype.toString.call($)==="[object Object]"}function F5($){if(V5($))return $;try{return JSON.parse($)}catch(q){return}}function Lq($){var q=$.split(".",1)[0];return F5(Uq.from(q,"base64").toString("binary"))}function _5($){return $.split(".",2).join(".")}function jq($){return $.split(".")[2]}function D5($,q){q=q||"utf8";var Q=$.split(".")[1];return Uq.from(Q,"base64").toString(q)}function Nq($){return B5.test($)&&!!Lq($)}function Rq($,q,Q){if(!q){var J=Error("Missing algorithm parameter for jws.verify");throw J.code="MISSING_ALGORITHM",J}$=zq($);var W=jq($),X=_5($),H=Y5(q);return H.verify(X,W,Q)}function Eq($,q){if(q=q||{},$=zq($),!Nq($))return null;var Q=Lq($);if(!Q)return null;var J=D5($);if(Q.typ==="JWT"||q.json)J=JSON.parse(J,q.encoding);return{header:Q,payload:J,signature:jq($)}}function $1($){$=$||{};var q=$.secret;if(q=q==null?$.publicKey:q,q=q==null?$.key:q,/^hs/i.test($.algorithm)===!0&&q==null)throw TypeError("secret must be a string or buffer or a KeyObject");var Q=new Dq(q);this.readable=!0,this.algorithm=$.algorithm,this.encoding=$.encoding,this.secret=this.publicKey=this.key=Q,this.signature=new Dq($.signature),this.secret.once("close",function(){if(!this.signature.writable&&this.readable)this.verify()}.bind(this)),this.signature.once("close",function(){if(!this.secret.writable&&this.readable)this.verify()}.bind(this))}w5.inherits($1,G5);$1.prototype.verify=function(){try{var q=Rq(this.signature.buffer,this.algorithm,this.key.buffer),Q=Eq(this.signature.buffer,this.encoding);return this.emit("done",q,Q),this.emit("data",q),this.emit("end"),this.readable=!1,q}catch(J){this.readable=!1,this.emit("error",J),this.emit("close")}};$1.decode=Eq;$1.isValid=Nq;$1.verify=Rq;Sq.exports=$1});var _0=N((I$)=>{var Cq=_q(),F0=Aq(),U5=["HS256","HS384","HS512","RS256","RS384","RS512","PS256","PS384","PS512","ES256","ES384","ES512"];I$.ALGORITHMS=U5;I$.sign=Cq.sign;I$.verify=F0.verify;I$.decode=F0.decode;I$.isValid=F0.isValid;I$.createSign=function(q){return new Cq(q)};I$.createVerify=function(q){return new F0(q)}});var _6=N((CG,Oq)=>{var z5=_0();Oq.exports=function($,q){q=q||{};var Q=z5.decode($,q);if(!Q)return null;var J=Q.payload;if(typeof J==="string")try{var W=JSON.parse(J);if(W!==null&&typeof W==="object")J=W}catch(X){}if(q.complete===!0)return{header:Q.header,payload:J,signature:Q.signature};return J}});var I1=N((OG,Mq)=>{var D0=function($,q){if(Error.call(this,$),Error.captureStackTrace)Error.captureStackTrace(this,this.constructor);if(this.name="JsonWebTokenError",this.message=$,q)this.inner=q};D0.prototype=Object.create(Error.prototype);D0.prototype.constructor=D0;Mq.exports=D0});var D6=N((MG,kq)=>{var Kq=I1(),U0=function($,q){Kq.call(this,$),this.name="NotBeforeError",this.date=q};U0.prototype=Object.create(Kq.prototype);U0.prototype.constructor=U0;kq.exports=U0});var U6=N((KG,bq)=>{var Iq=I1(),z0=function($,q){Iq.call(this,$),this.name="TokenExpiredError",this.expiredAt=q};z0.prototype=Object.create(Iq.prototype);z0.prototype.constructor=z0;bq.exports=z0});var Zq=N((kG,Pq)=>{var q1=1000,Q1=q1*60,J1=Q1*60,y$=J1*24,L5=y$*7,j5=y$*365.25;Pq.exports=function($,q){q=q||{};var Q=typeof $;if(Q==="string"&&$.length>0)return N5($);else if(Q==="number"&&isFinite($))return q.long?E5($):R5($);throw Error("val is not a non-empty string or a valid number. val="+JSON.stringify($))};function N5($){if($=String($),$.length>100)return;var q=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec($);if(!q)return;var Q=parseFloat(q[1]),J=(q[2]||"ms").toLowerCase();switch(J){case"years":case"year":case"yrs":case"yr":case"y":return Q*j5;case"weeks":case"week":case"w":return Q*L5;case"days":case"day":case"d":return Q*y$;case"hours":case"hour":case"hrs":case"hr":case"h":return Q*J1;case"minutes":case"minute":case"mins":case"min":case"m":return Q*Q1;case"seconds":case"second":case"secs":case"sec":case"s":return Q*q1;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return Q;default:return}}function R5($){var q=Math.abs($);if(q>=y$)return Math.round($/y$)+"d";if(q>=J1)return Math.round($/J1)+"h";if(q>=Q1)return Math.round($/Q1)+"m";if(q>=q1)return Math.round($/q1)+"s";return $+"ms"}function E5($){var q=Math.abs($);if(q>=y$)return L0($,q,y$,"day");if(q>=J1)return L0($,q,J1,"hour");if(q>=Q1)return L0($,q,Q1,"minute");if(q>=q1)return L0($,q,q1,"second");return $+" ms"}function L0($,q,Q,J){var W=q>=Q*1.5;return Math.round($/Q)+" "+J+(W?"s":"")}});var z6=N((IG,fq)=>{var S5=Zq();fq.exports=function($,q){var Q=q||Math.floor(Date.now()/1000);if(typeof $==="string"){var J=S5($);if(typeof J>"u")return;return Math.floor(Q+J/1000)}else if(typeof $==="number")return Q+$;else return}});var b1=N((bG,xq)=>{var A5=Number.MAX_SAFE_INTEGER||9007199254740991,C5=["major","premajor","minor","preminor","patch","prepatch","prerelease"];xq.exports={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:16,MAX_SAFE_BUILD_LENGTH:250,MAX_SAFE_INTEGER:A5,RELEASE_TYPES:C5,SEMVER_SPEC_VERSION:"2.0.0",FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2}});var P1=N((PG,Tq)=>{var O5=typeof process==="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...$)=>console.error("SEMVER",...$):()=>{};Tq.exports=O5});var W1=N((S$,hq)=>{var{MAX_SAFE_COMPONENT_LENGTH:L6,MAX_SAFE_BUILD_LENGTH:M5,MAX_LENGTH:K5}=b1(),k5=P1();S$=hq.exports={};var I5=S$.re=[],b5=S$.safeRe=[],S=S$.src=[],P5=S$.safeSrc=[],A=S$.t={},Z5=0,j6="[a-zA-Z0-9-]",f5=[["\\s",1],["\\d",K5],[j6,M5]],x5=($)=>{for(let[q,Q]of f5)$=$.split(`${q}*`).join(`${q}{0,${Q}}`).split(`${q}+`).join(`${q}{1,${Q}}`);return $},x=($,q,Q)=>{let J=x5(q),W=Z5++;k5($,W,q),A[$]=W,S[W]=q,P5[W]=J,I5[W]=new RegExp(q,Q?"g":void 0),b5[W]=new RegExp(J,Q?"g":void 0)};x("NUMERICIDENTIFIER","0|[1-9]\\d*");x("NUMERICIDENTIFIERLOOSE","\\d+");x("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${j6}*`);x("MAINVERSION",`(${S[A.NUMERICIDENTIFIER]})\\.(${S[A.NUMERICIDENTIFIER]})\\.(${S[A.NUMERICIDENTIFIER]})`);x("MAINVERSIONLOOSE",`(${S[A.NUMERICIDENTIFIERLOOSE]})\\.(${S[A.NUMERICIDENTIFIERLOOSE]})\\.(${S[A.NUMERICIDENTIFIERLOOSE]})`);x("PRERELEASEIDENTIFIER",`(?:${S[A.NONNUMERICIDENTIFIER]}|${S[A.NUMERICIDENTIFIER]})`);x("PRERELEASEIDENTIFIERLOOSE",`(?:${S[A.NONNUMERICIDENTIFIER]}|${S[A.NUMERICIDENTIFIERLOOSE]})`);x("PRERELEASE",`(?:-(${S[A.PRERELEASEIDENTIFIER]}(?:\\.${S[A.PRERELEASEIDENTIFIER]})*))`);x("PRERELEASELOOSE",`(?:-?(${S[A.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${S[A.PRERELEASEIDENTIFIERLOOSE]})*))`);x("BUILDIDENTIFIER",`${j6}+`);x("BUILD",`(?:\\+(${S[A.BUILDIDENTIFIER]}(?:\\.${S[A.BUILDIDENTIFIER]})*))`);x("FULLPLAIN",`v?${S[A.MAINVERSION]}${S[A.PRERELEASE]}?${S[A.BUILD]}?`);x("FULL",`^${S[A.FULLPLAIN]}$`);x("LOOSEPLAIN",`[v=\\s]*${S[A.MAINVERSIONLOOSE]}${S[A.PRERELEASELOOSE]}?${S[A.BUILD]}?`);x("LOOSE",`^${S[A.LOOSEPLAIN]}$`);x("GTLT","((?:<|>)?=?)");x("XRANGEIDENTIFIERLOOSE",`${S[A.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);x("XRANGEIDENTIFIER",`${S[A.NUMERICIDENTIFIER]}|x|X|\\*`);x("XRANGEPLAIN",`[v=\\s]*(${S[A.XRANGEIDENTIFIER]})(?:\\.(${S[A.XRANGEIDENTIFIER]})(?:\\.(${S[A.XRANGEIDENTIFIER]})(?:${S[A.PRERELEASE]})?${S[A.BUILD]}?)?)?`);x("XRANGEPLAINLOOSE",`[v=\\s]*(${S[A.XRANGEIDENTIFIERLOOSE]})(?:\\.(${S[A.XRANGEIDENTIFIERLOOSE]})(?:\\.(${S[A.XRANGEIDENTIFIERLOOSE]})(?:${S[A.PRERELEASELOOSE]})?${S[A.BUILD]}?)?)?`);x("XRANGE",`^${S[A.GTLT]}\\s*${S[A.XRANGEPLAIN]}$`);x("XRANGELOOSE",`^${S[A.GTLT]}\\s*${S[A.XRANGEPLAINLOOSE]}$`);x("COERCEPLAIN",`(^|[^\\d])(\\d{1,${L6}})(?:\\.(\\d{1,${L6}}))?(?:\\.(\\d{1,${L6}}))?`);x("COERCE",`${S[A.COERCEPLAIN]}(?:$|[^\\d])`);x("COERCEFULL",S[A.COERCEPLAIN]+`(?:${S[A.PRERELEASE]})?(?:${S[A.BUILD]})?(?:$|[^\\d])`);x("COERCERTL",S[A.COERCE],!0);x("COERCERTLFULL",S[A.COERCEFULL],!0);x("LONETILDE","(?:~>?)");x("TILDETRIM",`(\\s*)${S[A.LONETILDE]}\\s+`,!0);S$.tildeTrimReplace="$1~";x("TILDE",`^${S[A.LONETILDE]}${S[A.XRANGEPLAIN]}$`);x("TILDELOOSE",`^${S[A.LONETILDE]}${S[A.XRANGEPLAINLOOSE]}$`);x("LONECARET","(?:\\^)");x("CARETTRIM",`(\\s*)${S[A.LONECARET]}\\s+`,!0);S$.caretTrimReplace="$1^";x("CARET",`^${S[A.LONECARET]}${S[A.XRANGEPLAIN]}$`);x("CARETLOOSE",`^${S[A.LONECARET]}${S[A.XRANGEPLAINLOOSE]}$`);x("COMPARATORLOOSE",`^${S[A.GTLT]}\\s*(${S[A.LOOSEPLAIN]})$|^$`);x("COMPARATOR",`^${S[A.GTLT]}\\s*(${S[A.FULLPLAIN]})$|^$`);x("COMPARATORTRIM",`(\\s*)${S[A.GTLT]}\\s*(${S[A.LOOSEPLAIN]}|${S[A.XRANGEPLAIN]})`,!0);S$.comparatorTrimReplace="$1$2$3";x("HYPHENRANGE",`^\\s*(${S[A.XRANGEPLAIN]})\\s+-\\s+(${S[A.XRANGEPLAIN]})\\s*$`);x("HYPHENRANGELOOSE",`^\\s*(${S[A.XRANGEPLAINLOOSE]})\\s+-\\s+(${S[A.XRANGEPLAINLOOSE]})\\s*$`);x("STAR","(<|>)?=?\\s*\\*");x("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$");x("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")});var j0=N((ZG,vq)=>{var T5=Object.freeze({loose:!0}),h5=Object.freeze({}),v5=($)=>{if(!$)return h5;if(typeof $!=="object")return T5;return $};vq.exports=v5});var N6=N((fG,yq)=>{var gq=/^[0-9]+$/,mq=($,q)=>{if(typeof $==="number"&&typeof q==="number")return $===q?0:$<q?-1:1;let Q=gq.test($),J=gq.test(q);if(Q&&J)$=+$,q=+q;return $===q?0:Q&&!J?-1:J&&!Q?1:$<q?-1:1},g5=($,q)=>mq(q,$);yq.exports={compareIdentifiers:mq,rcompareIdentifiers:g5}});var q$=N((xG,uq)=>{var N0=P1(),{MAX_LENGTH:lq,MAX_SAFE_INTEGER:R0}=b1(),{safeRe:E0,t:S0}=W1(),m5=j0(),{compareIdentifiers:R6}=N6();class _${constructor($,q){if(q=m5(q),$ instanceof _$)if($.loose===!!q.loose&&$.includePrerelease===!!q.includePrerelease)return $;else $=$.version;else if(typeof $!=="string")throw TypeError(`Invalid version. Must be a string. Got type "${typeof $}".`);if($.length>lq)throw TypeError(`version is longer than ${lq} characters`);N0("SemVer",$,q),this.options=q,this.loose=!!q.loose,this.includePrerelease=!!q.includePrerelease;let Q=$.trim().match(q.loose?E0[S0.LOOSE]:E0[S0.FULL]);if(!Q)throw TypeError(`Invalid Version: ${$}`);if(this.raw=$,this.major=+Q[1],this.minor=+Q[2],this.patch=+Q[3],this.major>R0||this.major<0)throw TypeError("Invalid major version");if(this.minor>R0||this.minor<0)throw TypeError("Invalid minor version");if(this.patch>R0||this.patch<0)throw TypeError("Invalid patch version");if(!Q[4])this.prerelease=[];else this.prerelease=Q[4].split(".").map((J)=>{if(/^[0-9]+$/.test(J)){let W=+J;if(W>=0&&W<R0)return W}return J});this.build=Q[5]?Q[5].split("."):[],this.format()}format(){if(this.version=`${this.major}.${this.minor}.${this.patch}`,this.prerelease.length)this.version+=`-${this.prerelease.join(".")}`;return this.version}toString(){return this.version}compare($){if(N0("SemVer.compare",this.version,this.options,$),!($ instanceof _$)){if(typeof $==="string"&&$===this.version)return 0;$=new _$($,this.options)}if($.version===this.version)return 0;return this.compareMain($)||this.comparePre($)}compareMain($){if(!($ instanceof _$))$=new _$($,this.options);if(this.major<$.major)return-1;if(this.major>$.major)return 1;if(this.minor<$.minor)return-1;if(this.minor>$.minor)return 1;if(this.patch<$.patch)return-1;if(this.patch>$.patch)return 1;return 0}comparePre($){if(!($ instanceof _$))$=new _$($,this.options);if(this.prerelease.length&&!$.prerelease.length)return-1;else if(!this.prerelease.length&&$.prerelease.length)return 1;else if(!this.prerelease.length&&!$.prerelease.length)return 0;let q=0;do{let Q=this.prerelease[q],J=$.prerelease[q];if(N0("prerelease compare",q,Q,J),Q===void 0&&J===void 0)return 0;else if(J===void 0)return 1;else if(Q===void 0)return-1;else if(Q===J)continue;else return R6(Q,J)}while(++q)}compareBuild($){if(!($ instanceof _$))$=new _$($,this.options);let q=0;do{let Q=this.build[q],J=$.build[q];if(N0("build compare",q,Q,J),Q===void 0&&J===void 0)return 0;else if(J===void 0)return 1;else if(Q===void 0)return-1;else if(Q===J)continue;else return R6(Q,J)}while(++q)}inc($,q,Q){if($.startsWith("pre")){if(!q&&Q===!1)throw Error("invalid increment argument: identifier is empty");if(q){let J=`-${q}`.match(this.options.loose?E0[S0.PRERELEASELOOSE]:E0[S0.PRERELEASE]);if(!J||J[1]!==q)throw Error(`invalid identifier: ${q}`)}}switch($){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",q,Q);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",q,Q);break;case"prepatch":this.prerelease.length=0,this.inc("patch",q,Q),this.inc("pre",q,Q);break;case"prerelease":if(this.prerelease.length===0)this.inc("patch",q,Q);this.inc("pre",q,Q);break;case"release":if(this.prerelease.length===0)throw Error(`version ${this.raw} is not a prerelease`);this.prerelease.length=0;break;case"major":if(this.minor!==0||this.patch!==0||this.prerelease.length===0)this.major++;this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":if(this.patch!==0||this.prerelease.length===0)this.minor++;this.patch=0,this.prerelease=[];break;case"patch":if(this.prerelease.length===0)this.patch++;this.prerelease=[];break;case"pre":{let J=Number(Q)?1:0;if(this.prerelease.length===0)this.prerelease=[J];else{let W=this.prerelease.length;while(--W>=0)if(typeof this.prerelease[W]==="number")this.prerelease[W]++,W=-2;if(W===-1){if(q===this.prerelease.join(".")&&Q===!1)throw Error("invalid increment argument: identifier already exists");this.prerelease.push(J)}}if(q){let W=[q,J];if(Q===!1)W=[q];if(R6(this.prerelease[0],q)===0){if(isNaN(this.prerelease[1]))this.prerelease=W}else this.prerelease=W}break}default:throw Error(`invalid increment argument: ${$}`)}if(this.raw=this.format(),this.build.length)this.raw+=`+${this.build.join(".")}`;return this}}uq.exports=_$});var l$=N((TG,dq)=>{var cq=q$(),y5=($,q,Q=!1)=>{if($ instanceof cq)return $;try{return new cq($,q)}catch(J){if(!Q)return null;throw J}};dq.exports=y5});var pq=N((hG,nq)=>{var l5=l$(),u5=($,q)=>{let Q=l5($,q);return Q?Q.version:null};nq.exports=u5});var oq=N((vG,iq)=>{var c5=l$(),d5=($,q)=>{let Q=c5($.trim().replace(/^[=v]+/,""),q);return Q?Q.version:null};iq.exports=d5});var aq=N((gG,rq)=>{var sq=q$(),n5=($,q,Q,J,W)=>{if(typeof Q==="string")W=J,J=Q,Q=void 0;try{return new sq($ instanceof sq?$.version:$,Q).inc(q,J,W).version}catch(X){return null}};rq.exports=n5});var $8=N((mG,eq)=>{var tq=l$(),p5=($,q)=>{let Q=tq($,null,!0),J=tq(q,null,!0),W=Q.compare(J);if(W===0)return null;let X=W>0,H=X?Q:J,Y=X?J:Q,G=!!H.prerelease.length;if(!!Y.prerelease.length&&!G){if(!Y.patch&&!Y.minor)return"major";if(Y.compareMain(H)===0){if(Y.minor&&!Y.patch)return"minor";return"patch"}}let D=G?"pre":"";if(Q.major!==J.major)return D+"major";if(Q.minor!==J.minor)return D+"minor";if(Q.patch!==J.patch)return D+"patch";return"prerelease"};eq.exports=p5});var Q8=N((yG,q8)=>{var i5=q$(),o5=($,q)=>new i5($,q).major;q8.exports=o5});var W8=N((lG,J8)=>{var s5=q$(),r5=($,q)=>new s5($,q).minor;J8.exports=r5});var H8=N((uG,X8)=>{var a5=q$(),t5=($,q)=>new a5($,q).patch;X8.exports=t5});var G8=N((cG,Y8)=>{var e5=l$(),$J=($,q)=>{let Q=e5($,q);return Q&&Q.prerelease.length?Q.prerelease:null};Y8.exports=$J});var w$=N((dG,B8)=>{var w8=q$(),qJ=($,q,Q)=>new w8($,Q).compare(new w8(q,Q));B8.exports=qJ});var F8=N((nG,V8)=>{var QJ=w$(),JJ=($,q,Q)=>QJ(q,$,Q);V8.exports=JJ});var D8=N((pG,_8)=>{var WJ=w$(),XJ=($,q)=>WJ($,q,!0);_8.exports=XJ});var A0=N((iG,z8)=>{var U8=q$(),HJ=($,q,Q)=>{let J=new U8($,Q),W=new U8(q,Q);return J.compare(W)||J.compareBuild(W)};z8.exports=HJ});var j8=N((oG,L8)=>{var YJ=A0(),GJ=($,q)=>$.sort((Q,J)=>YJ(Q,J,q));L8.exports=GJ});var R8=N((sG,N8)=>{var wJ=A0(),BJ=($,q)=>$.sort((Q,J)=>wJ(J,Q,q));N8.exports=BJ});var Z1=N((rG,E8)=>{var VJ=w$(),FJ=($,q,Q)=>VJ($,q,Q)>0;E8.exports=FJ});var C0=N((aG,S8)=>{var _J=w$(),DJ=($,q,Q)=>_J($,q,Q)<0;S8.exports=DJ});var E6=N((tG,A8)=>{var UJ=w$(),zJ=($,q,Q)=>UJ($,q,Q)===0;A8.exports=zJ});var S6=N((eG,C8)=>{var LJ=w$(),jJ=($,q,Q)=>LJ($,q,Q)!==0;C8.exports=jJ});var O0=N(($w,O8)=>{var NJ=w$(),RJ=($,q,Q)=>NJ($,q,Q)>=0;O8.exports=RJ});var M0=N((qw,M8)=>{var EJ=w$(),SJ=($,q,Q)=>EJ($,q,Q)<=0;M8.exports=SJ});var A6=N((Qw,K8)=>{var AJ=E6(),CJ=S6(),OJ=Z1(),MJ=O0(),KJ=C0(),kJ=M0(),IJ=($,q,Q,J)=>{switch(q){case"===":if(typeof $==="object")$=$.version;if(typeof Q==="object")Q=Q.version;return $===Q;case"!==":if(typeof $==="object")$=$.version;if(typeof Q==="object")Q=Q.version;return $!==Q;case"":case"=":case"==":return AJ($,Q,J);case"!=":return CJ($,Q,J);case">":return OJ($,Q,J);case">=":return MJ($,Q,J);case"<":return KJ($,Q,J);case"<=":return kJ($,Q,J);default:throw TypeError(`Invalid operator: ${q}`)}};K8.exports=IJ});var I8=N((Jw,k8)=>{var bJ=q$(),PJ=l$(),{safeRe:K0,t:k0}=W1(),ZJ=($,q)=>{if($ instanceof bJ)return $;if(typeof $==="number")$=String($);if(typeof $!=="string")return null;q=q||{};let Q=null;if(!q.rtl)Q=$.match(q.includePrerelease?K0[k0.COERCEFULL]:K0[k0.COERCE]);else{let G=q.includePrerelease?K0[k0.COERCERTLFULL]:K0[k0.COERCERTL],V;while((V=G.exec($))&&(!Q||Q.index+Q[0].length!==$.length)){if(!Q||V.index+V[0].length!==Q.index+Q[0].length)Q=V;G.lastIndex=V.index+V[1].length+V[2].length}G.lastIndex=-1}if(Q===null)return null;let J=Q[2],W=Q[3]||"0",X=Q[4]||"0",H=q.includePrerelease&&Q[5]?`-${Q[5]}`:"",Y=q.includePrerelease&&Q[6]?`+${Q[6]}`:"";return PJ(`${J}.${W}.${X}${H}${Y}`,q)};k8.exports=ZJ});var Z8=N((Ww,P8)=>{class b8{constructor(){this.max=1000,this.map=new Map}get($){let q=this.map.get($);if(q===void 0)return;else return this.map.delete($),this.map.set($,q),q}delete($){return this.map.delete($)}set($,q){if(!this.delete($)&&q!==void 0){if(this.map.size>=this.max){let J=this.map.keys().next().value;this.delete(J)}this.map.set($,q)}return this}}P8.exports=b8});var B$=N((Xw,h8)=>{var fJ=/\s+/g;class f1{constructor($,q){if(q=TJ(q),$ instanceof f1)if($.loose===!!q.loose&&$.includePrerelease===!!q.includePrerelease)return $;else return new f1($.raw,q);if($ instanceof C6)return this.raw=$.value,this.set=[[$]],this.formatted=void 0,this;if(this.options=q,this.loose=!!q.loose,this.includePrerelease=!!q.includePrerelease,this.raw=$.trim().replace(fJ," "),this.set=this.raw.split("||").map((Q)=>this.parseRange(Q.trim())).filter((Q)=>Q.length),!this.set.length)throw TypeError(`Invalid SemVer Range: ${this.raw}`);if(this.set.length>1){let Q=this.set[0];if(this.set=this.set.filter((J)=>!x8(J[0])),this.set.length===0)this.set=[Q];else if(this.set.length>1){for(let J of this.set)if(J.length===1&&uJ(J[0])){this.set=[J];break}}}this.formatted=void 0}get range(){if(this.formatted===void 0){this.formatted="";for(let $=0;$<this.set.length;$++){if($>0)this.formatted+="||";let q=this.set[$];for(let Q=0;Q<q.length;Q++){if(Q>0)this.formatted+=" ";this.formatted+=q[Q].toString().trim()}}}return this.formatted}format(){return this.range}toString(){return this.range}parseRange($){let Q=((this.options.includePrerelease&&yJ)|(this.options.loose&&lJ))+":"+$,J=f8.get(Q);if(J)return J;let W=this.options.loose,X=W?W$[Q$.HYPHENRANGELOOSE]:W$[Q$.HYPHENRANGE];$=$.replace(X,tJ(this.options.includePrerelease)),c("hyphen replace",$),$=$.replace(W$[Q$.COMPARATORTRIM],vJ),c("comparator trim",$),$=$.replace(W$[Q$.TILDETRIM],gJ),c("tilde trim",$),$=$.replace(W$[Q$.CARETTRIM],mJ),c("caret trim",$);let H=$.split(" ").map((D)=>cJ(D,this.options)).join(" ").split(/\s+/).map((D)=>aJ(D,this.options));if(W)H=H.filter((D)=>{return c("loose invalid filter",D,this.options),!!D.match(W$[Q$.COMPARATORLOOSE])});c("range list",H);let Y=new Map,G=H.map((D)=>new C6(D,this.options));for(let D of G){if(x8(D))return[D];Y.set(D.value,D)}if(Y.size>1&&Y.has(""))Y.delete("");let V=[...Y.values()];return f8.set(Q,V),V}intersects($,q){if(!($ instanceof f1))throw TypeError("a Range is required");return this.set.some((Q)=>{return T8(Q,q)&&$.set.some((J)=>{return T8(J,q)&&Q.every((W)=>{return J.every((X)=>{return W.intersects(X,q)})})})})}test($){if(!$)return!1;if(typeof $==="string")try{$=new hJ($,this.options)}catch(q){return!1}for(let q=0;q<this.set.length;q++)if(eJ(this.set[q],$,this.options))return!0;return!1}}h8.exports=f1;var xJ=Z8(),f8=new xJ,TJ=j0(),C6=x1(),c=P1(),hJ=q$(),{safeRe:W$,t:Q$,comparatorTrimReplace:vJ,tildeTrimReplace:gJ,caretTrimReplace:mJ}=W1(),{FLAG_INCLUDE_PRERELEASE:yJ,FLAG_LOOSE:lJ}=b1(),x8=($)=>$.value==="<0.0.0-0",uJ=($)=>$.value==="",T8=($,q)=>{let Q=!0,J=$.slice(),W=J.pop();while(Q&&J.length)Q=J.every((X)=>{return W.intersects(X,q)}),W=J.pop();return Q},cJ=($,q)=>{return $=$.replace(W$[Q$.BUILD],""),c("comp",$,q),$=pJ($,q),c("caret",$),$=dJ($,q),c("tildes",$),$=oJ($,q),c("xrange",$),$=rJ($,q),c("stars",$),$},X$=($)=>!$||$.toLowerCase()==="x"||$==="*",dJ=($,q)=>{return $.trim().split(/\s+/).map((Q)=>nJ(Q,q)).join(" ")},nJ=($,q)=>{let Q=q.loose?W$[Q$.TILDELOOSE]:W$[Q$.TILDE];return $.replace(Q,(J,W,X,H,Y)=>{c("tilde",$,J,W,X,H,Y);let G;if(X$(W))G="";else if(X$(X))G=`>=${W}.0.0 <${+W+1}.0.0-0`;else if(X$(H))G=`>=${W}.${X}.0 <${W}.${+X+1}.0-0`;else if(Y)c("replaceTilde pr",Y),G=`>=${W}.${X}.${H}-${Y} <${W}.${+X+1}.0-0`;else G=`>=${W}.${X}.${H} <${W}.${+X+1}.0-0`;return c("tilde return",G),G})},pJ=($,q)=>{return $.trim().split(/\s+/).map((Q)=>iJ(Q,q)).join(" ")},iJ=($,q)=>{c("caret",$,q);let Q=q.loose?W$[Q$.CARETLOOSE]:W$[Q$.CARET],J=q.includePrerelease?"-0":"";return $.replace(Q,(W,X,H,Y,G)=>{c("caret",$,W,X,H,Y,G);let V;if(X$(X))V="";else if(X$(H))V=`>=${X}.0.0${J} <${+X+1}.0.0-0`;else if(X$(Y))if(X==="0")V=`>=${X}.${H}.0${J} <${X}.${+H+1}.0-0`;else V=`>=${X}.${H}.0${J} <${+X+1}.0.0-0`;else if(G)if(c("replaceCaret pr",G),X==="0")if(H==="0")V=`>=${X}.${H}.${Y}-${G} <${X}.${H}.${+Y+1}-0`;else V=`>=${X}.${H}.${Y}-${G} <${X}.${+H+1}.0-0`;else V=`>=${X}.${H}.${Y}-${G} <${+X+1}.0.0-0`;else if(c("no pr"),X==="0")if(H==="0")V=`>=${X}.${H}.${Y}${J} <${X}.${H}.${+Y+1}-0`;else V=`>=${X}.${H}.${Y}${J} <${X}.${+H+1}.0-0`;else V=`>=${X}.${H}.${Y} <${+X+1}.0.0-0`;return c("caret return",V),V})},oJ=($,q)=>{return c("replaceXRanges",$,q),$.split(/\s+/).map((Q)=>sJ(Q,q)).join(" ")},sJ=($,q)=>{$=$.trim();let Q=q.loose?W$[Q$.XRANGELOOSE]:W$[Q$.XRANGE];return $.replace(Q,(J,W,X,H,Y,G)=>{c("xRange",$,J,W,X,H,Y,G);let V=X$(X),D=V||X$(H),z=D||X$(Y),Z=z;if(W==="="&&Z)W="";if(G=q.includePrerelease?"-0":"",V)if(W===">"||W==="<")J="<0.0.0-0";else J="*";else if(W&&Z){if(D)H=0;if(Y=0,W===">")if(W=">=",D)X=+X+1,H=0,Y=0;else H=+H+1,Y=0;else if(W==="<=")if(W="<",D)X=+X+1;else H=+H+1;if(W==="<")G="-0";J=`${W+X}.${H}.${Y}${G}`}else if(D)J=`>=${X}.0.0${G} <${+X+1}.0.0-0`;else if(z)J=`>=${X}.${H}.0${G} <${X}.${+H+1}.0-0`;return c("xRange return",J),J})},rJ=($,q)=>{return c("replaceStars",$,q),$.trim().replace(W$[Q$.STAR],"")},aJ=($,q)=>{return c("replaceGTE0",$,q),$.trim().replace(W$[q.includePrerelease?Q$.GTE0PRE:Q$.GTE0],"")},tJ=($)=>(q,Q,J,W,X,H,Y,G,V,D,z,Z)=>{if(X$(J))Q="";else if(X$(W))Q=`>=${J}.0.0${$?"-0":""}`;else if(X$(X))Q=`>=${J}.${W}.0${$?"-0":""}`;else if(H)Q=`>=${Q}`;else Q=`>=${Q}${$?"-0":""}`;if(X$(V))G="";else if(X$(D))G=`<${+V+1}.0.0-0`;else if(X$(z))G=`<${V}.${+D+1}.0-0`;else if(Z)G=`<=${V}.${D}.${z}-${Z}`;else if($)G=`<${V}.${D}.${+z+1}-0`;else G=`<=${G}`;return`${Q} ${G}`.trim()},eJ=($,q,Q)=>{for(let J=0;J<$.length;J++)if(!$[J].test(q))return!1;if(q.prerelease.length&&!Q.includePrerelease){for(let J=0;J<$.length;J++){if(c($[J].semver),$[J].semver===C6.ANY)continue;if($[J].semver.prerelease.length>0){let W=$[J].semver;if(W.major===q.major&&W.minor===q.minor&&W.patch===q.patch)return!0}}return!1}return!0}});var x1=N((Hw,u8)=>{var T1=Symbol("SemVer ANY");class I0{static get ANY(){return T1}constructor($,q){if(q=v8(q),$ instanceof I0)if($.loose===!!q.loose)return $;else $=$.value;if($=$.trim().split(/\s+/).join(" "),M6("comparator",$,q),this.options=q,this.loose=!!q.loose,this.parse($),this.semver===T1)this.value="";else this.value=this.operator+this.semver.version;M6("comp",this)}parse($){let q=this.options.loose?g8[m8.COMPARATORLOOSE]:g8[m8.COMPARATOR],Q=$.match(q);if(!Q)throw TypeError(`Invalid comparator: ${$}`);if(this.operator=Q[1]!==void 0?Q[1]:"",this.operator==="=")this.operator="";if(!Q[2])this.semver=T1;else this.semver=new y8(Q[2],this.options.loose)}toString(){return this.value}test($){if(M6("Comparator.test",$,this.options.loose),this.semver===T1||$===T1)return!0;if(typeof $==="string")try{$=new y8($,this.options)}catch(q){return!1}return O6($,this.operator,this.semver,this.options)}intersects($,q){if(!($ instanceof I0))throw TypeError("a Comparator is required");if(this.operator===""){if(this.value==="")return!0;return new l8($.value,q).test(this.value)}else if($.operator===""){if($.value==="")return!0;return new l8(this.value,q).test($.semver)}if(q=v8(q),q.includePrerelease&&(this.value==="<0.0.0-0"||$.value==="<0.0.0-0"))return!1;if(!q.includePrerelease&&(this.value.startsWith("<0.0.0")||$.value.startsWith("<0.0.0")))return!1;if(this.operator.startsWith(">")&&$.operator.startsWith(">"))return!0;if(this.operator.startsWith("<")&&$.operator.startsWith("<"))return!0;if(this.semver.version===$.semver.version&&this.operator.includes("=")&&$.operator.includes("="))return!0;if(O6(this.semver,"<",$.semver,q)&&this.operator.startsWith(">")&&$.operator.startsWith("<"))return!0;if(O6(this.semver,">",$.semver,q)&&this.operator.startsWith("<")&&$.operator.startsWith(">"))return!0;return!1}}u8.exports=I0;var v8=j0(),{safeRe:g8,t:m8}=W1(),O6=A6(),M6=P1(),y8=q$(),l8=B$()});var h1=N((Yw,c8)=>{var $7=B$(),q7=($,q,Q)=>{try{q=new $7(q,Q)}catch(J){return!1}return q.test($)};c8.exports=q7});var n8=N((Gw,d8)=>{var Q7=B$(),J7=($,q)=>new Q7($,q).set.map((Q)=>Q.map((J)=>J.value).join(" ").trim().split(" "));d8.exports=J7});var i8=N((ww,p8)=>{var W7=q$(),X7=B$(),H7=($,q,Q)=>{let J=null,W=null,X=null;try{X=new X7(q,Q)}catch(H){return null}return $.forEach((H)=>{if(X.test(H)){if(!J||W.compare(H)===-1)J=H,W=new W7(J,Q)}}),J};p8.exports=H7});var s8=N((Bw,o8)=>{var Y7=q$(),G7=B$(),w7=($,q,Q)=>{let J=null,W=null,X=null;try{X=new G7(q,Q)}catch(H){return null}return $.forEach((H)=>{if(X.test(H)){if(!J||W.compare(H)===1)J=H,W=new Y7(J,Q)}}),J};o8.exports=w7});var t8=N((Vw,a8)=>{var K6=q$(),B7=B$(),r8=Z1(),V7=($,q)=>{$=new B7($,q);let Q=new K6("0.0.0");if($.test(Q))return Q;if(Q=new K6("0.0.0-0"),$.test(Q))return Q;Q=null;for(let J=0;J<$.set.length;++J){let W=$.set[J],X=null;if(W.forEach((H)=>{let Y=new K6(H.semver.version);switch(H.operator){case">":if(Y.prerelease.length===0)Y.patch++;else Y.prerelease.push(0);Y.raw=Y.format();case"":case">=":if(!X||r8(Y,X))X=Y;break;case"<":case"<=":break;default:throw Error(`Unexpected operation: ${H.operator}`)}}),X&&(!Q||r8(Q,X)))Q=X}if(Q&&$.test(Q))return Q;return null};a8.exports=V7});var $9=N((Fw,e8)=>{var F7=B$(),_7=($,q)=>{try{return new F7($,q).range||"*"}catch(Q){return null}};e8.exports=_7});var b0=N((_w,W9)=>{var D7=q$(),J9=x1(),{ANY:U7}=J9,z7=B$(),L7=h1(),q9=Z1(),Q9=C0(),j7=M0(),N7=O0(),R7=($,q,Q,J)=>{$=new D7($,J),q=new z7(q,J);let W,X,H,Y,G;switch(Q){case">":W=q9,X=j7,H=Q9,Y=">",G=">=";break;case"<":W=Q9,X=N7,H=q9,Y="<",G="<=";break;default:throw TypeError('Must provide a hilo val of "<" or ">"')}if(L7($,q,J))return!1;for(let V=0;V<q.set.length;++V){let D=q.set[V],z=null,Z=null;if(D.forEach((C)=>{if(C.semver===U7)C=new J9(">=0.0.0");if(z=z||C,Z=Z||C,W(C.semver,z.semver,J))z=C;else if(H(C.semver,Z.semver,J))Z=C}),z.operator===Y||z.operator===G)return!1;if((!Z.operator||Z.operator===Y)&&X($,Z.semver))return!1;else if(Z.operator===G&&H($,Z.semver))return!1}return!0};W9.exports=R7});var H9=N((Dw,X9)=>{var E7=b0(),S7=($,q,Q)=>E7($,q,">",Q);X9.exports=S7});var G9=N((Uw,Y9)=>{var A7=b0(),C7=($,q,Q)=>A7($,q,"<",Q);Y9.exports=C7});var V9=N((zw,B9)=>{var w9=B$(),O7=($,q,Q)=>{return $=new w9($,Q),q=new w9(q,Q),$.intersects(q,Q)};B9.exports=O7});var _9=N((Lw,F9)=>{var M7=h1(),K7=w$();F9.exports=($,q,Q)=>{let J=[],W=null,X=null,H=$.sort((D,z)=>K7(D,z,Q));for(let D of H)if(M7(D,q,Q)){if(X=D,!W)W=D}else{if(X)J.push([W,X]);X=null,W=null}if(W)J.push([W,null]);let Y=[];for(let[D,z]of J)if(D===z)Y.push(D);else if(!z&&D===H[0])Y.push("*");else if(!z)Y.push(`>=${D}`);else if(D===H[0])Y.push(`<=${z}`);else Y.push(`${D} - ${z}`);let G=Y.join(" || "),V=typeof q.raw==="string"?q.raw:String(q);return G.length<V.length?G:q}});var N9=N((jw,j9)=>{var D9=B$(),I6=x1(),{ANY:k6}=I6,v1=h1(),b6=w$(),k7=($,q,Q={})=>{if($===q)return!0;$=new D9($,Q),q=new D9(q,Q);let J=!1;$:for(let W of $.set){for(let X of q.set){let H=b7(W,X,Q);if(J=J||H!==null,H)continue $}if(J)return!1}return!0},I7=[new I6(">=0.0.0-0")],U9=[new I6(">=0.0.0")],b7=($,q,Q)=>{if($===q)return!0;if($.length===1&&$[0].semver===k6)if(q.length===1&&q[0].semver===k6)return!0;else if(Q.includePrerelease)$=I7;else $=U9;if(q.length===1&&q[0].semver===k6)if(Q.includePrerelease)return!0;else q=U9;let J=new Set,W,X;for(let C of $)if(C.operator===">"||C.operator===">=")W=z9(W,C,Q);else if(C.operator==="<"||C.operator==="<=")X=L9(X,C,Q);else J.add(C.semver);if(J.size>1)return null;let H;if(W&&X){if(H=b6(W.semver,X.semver,Q),H>0)return null;else if(H===0&&(W.operator!==">="||X.operator!=="<="))return null}for(let C of J){if(W&&!v1(C,String(W),Q))return null;if(X&&!v1(C,String(X),Q))return null;for(let y of q)if(!v1(C,String(y),Q))return!1;return!0}let Y,G,V,D,z=X&&!Q.includePrerelease&&X.semver.prerelease.length?X.semver:!1,Z=W&&!Q.includePrerelease&&W.semver.prerelease.length?W.semver:!1;if(z&&z.prerelease.length===1&&X.operator==="<"&&z.prerelease[0]===0)z=!1;for(let C of q){if(D=D||C.operator===">"||C.operator===">=",V=V||C.operator==="<"||C.operator==="<=",W){if(Z){if(C.semver.prerelease&&C.semver.prerelease.length&&C.semver.major===Z.major&&C.semver.minor===Z.minor&&C.semver.patch===Z.patch)Z=!1}if(C.operator===">"||C.operator===">="){if(Y=z9(W,C,Q),Y===C&&Y!==W)return!1}else if(W.operator===">="&&!v1(W.semver,String(C),Q))return!1}if(X){if(z){if(C.semver.prerelease&&C.semver.prerelease.length&&C.semver.major===z.major&&C.semver.minor===z.minor&&C.semver.patch===z.patch)z=!1}if(C.operator==="<"||C.operator==="<="){if(G=L9(X,C,Q),G===C&&G!==X)return!1}else if(X.operator==="<="&&!v1(X.semver,String(C),Q))return!1}if(!C.operator&&(X||W)&&H!==0)return!1}if(W&&V&&!X&&H!==0)return!1;if(X&&D&&!W&&H!==0)return!1;if(Z||z)return!1;return!0},z9=($,q,Q)=>{if(!$)return q;let J=b6($.semver,q.semver,Q);return J>0?$:J<0?q:q.operator===">"&&$.operator===">="?q:$},L9=($,q,Q)=>{if(!$)return q;let J=b6($.semver,q.semver,Q);return J<0?$:J>0?q:q.operator==="<"&&$.operator==="<="?q:$};j9.exports=k7});var P0=N((Nw,S9)=>{var P6=W1(),R9=b1(),P7=q$(),E9=N6(),Z7=l$(),f7=pq(),x7=oq(),T7=aq(),h7=$8(),v7=Q8(),g7=W8(),m7=H8(),y7=G8(),l7=w$(),u7=F8(),c7=D8(),d7=A0(),n7=j8(),p7=R8(),i7=Z1(),o7=C0(),s7=E6(),r7=S6(),a7=O0(),t7=M0(),e7=A6(),$3=I8(),q3=x1(),Q3=B$(),J3=h1(),W3=n8(),X3=i8(),H3=s8(),Y3=t8(),G3=$9(),w3=b0(),B3=H9(),V3=G9(),F3=V9(),_3=_9(),D3=N9();S9.exports={parse:Z7,valid:f7,clean:x7,inc:T7,diff:h7,major:v7,minor:g7,patch:m7,prerelease:y7,compare:l7,rcompare:u7,compareLoose:c7,compareBuild:d7,sort:n7,rsort:p7,gt:i7,lt:o7,eq:s7,neq:r7,gte:a7,lte:t7,cmp:e7,coerce:$3,Comparator:q3,Range:Q3,satisfies:J3,toComparators:W3,maxSatisfying:X3,minSatisfying:H3,minVersion:Y3,validRange:G3,outside:w3,gtr:B3,ltr:V3,intersects:F3,simplifyRange:_3,subset:D3,SemVer:P7,re:P6.re,src:P6.src,tokens:P6.t,SEMVER_SPEC_VERSION:R9.SEMVER_SPEC_VERSION,RELEASE_TYPES:R9.RELEASE_TYPES,compareIdentifiers:E9.compareIdentifiers,rcompareIdentifiers:E9.rcompareIdentifiers}});var C9=N((Rw,A9)=>{var U3=P0();A9.exports=U3.satisfies(process.version,">=15.7.0")});var M9=N((Ew,O9)=>{var z3=P0();O9.exports=z3.satisfies(process.version,">=16.9.0")});var Z6=N((Sw,K9)=>{var L3=C9(),j3=M9(),N3={ec:["ES256","ES384","ES512"],rsa:["RS256","PS256","RS384","PS384","RS512","PS512"],"rsa-pss":["PS256","PS384","PS512"]},R3={ES256:"prime256v1",ES384:"secp384r1",ES512:"secp521r1"};K9.exports=function($,q){if(!$||!q)return;let Q=q.asymmetricKeyType;if(!Q)return;let J=N3[Q];if(!J)throw Error(`Unknown key type "${Q}".`);if(!J.includes($))throw Error(`"alg" parameter for "${Q}" key type must be one of: ${J.join(", ")}.`);if(L3)switch(Q){case"ec":let W=q.asymmetricKeyDetails.namedCurve,X=R3[$];if(W!==X)throw Error(`"alg" parameter "${$}" requires curve "${X}".`);break;case"rsa-pss":if(j3){let H=parseInt($.slice(-3),10),{hashAlgorithm:Y,mgf1HashAlgorithm:G,saltLength:V}=q.asymmetricKeyDetails;if(Y!==`sha${H}`||G!==Y)throw Error(`Invalid key for this operation, its RSA-PSS parameters do not meet the requirements of "alg" ${$}.`);if(V!==void 0&&V>H>>3)throw Error(`Invalid key for this operation, its RSA-PSS parameter saltLength does not meet the requirements of "alg" ${$}.`)}break}}});var f6=N((Aw,k9)=>{var E3=P0();k9.exports=E3.satisfies(process.version,"^6.12.0 || >=8.0.0")});var P9=N((Cw,b9)=>{var l=I1(),S3=D6(),I9=U6(),A3=_6(),C3=z6(),O3=Z6(),M3=f6(),K3=_0(),{KeyObject:k3,createSecretKey:I3,createPublicKey:b3}=require("crypto"),x6=["RS256","RS384","RS512"],P3=["ES256","ES384","ES512"],T6=["RS256","RS384","RS512"],Z3=["HS256","HS384","HS512"];if(M3)x6.splice(x6.length,0,"PS256","PS384","PS512"),T6.splice(T6.length,0,"PS256","PS384","PS512");b9.exports=function($,q,Q,J){if(typeof Q==="function"&&!J)J=Q,Q={};if(!Q)Q={};Q=Object.assign({},Q);let W;if(J)W=J;else W=function(D,z){if(D)throw D;return z};if(Q.clockTimestamp&&typeof Q.clockTimestamp!=="number")return W(new l("clockTimestamp must be a number"));if(Q.nonce!==void 0&&(typeof Q.nonce!=="string"||Q.nonce.trim()===""))return W(new l("nonce must be a non-empty string"));if(Q.allowInvalidAsymmetricKeyTypes!==void 0&&typeof Q.allowInvalidAsymmetricKeyTypes!=="boolean")return W(new l("allowInvalidAsymmetricKeyTypes must be a boolean"));let X=Q.clockTimestamp||Math.floor(Date.now()/1000);if(!$)return W(new l("jwt must be provided"));if(typeof $!=="string")return W(new l("jwt must be a string"));let H=$.split(".");if(H.length!==3)return W(new l("jwt malformed"));let Y;try{Y=A3($,{complete:!0})}catch(D){return W(D)}if(!Y)return W(new l("invalid token"));let G=Y.header,V;if(typeof q==="function"){if(!J)return W(new l("verify must be called asynchronous if secret or public key is provided as a callback"));V=q}else V=function(D,z){return z(null,q)};return V(G,function(D,z){if(D)return W(new l("error in secret or public key callback: "+D.message));let Z=H[2].trim()!=="";if(!Z&&z)return W(new l("jwt signature is required"));if(Z&&!z)return W(new l("secret or public key must be provided"));if(!Z&&!Q.algorithms)return W(new l('please specify "none" in "algorithms" to verify unsigned tokens'));if(z!=null&&!(z instanceof k3))try{z=b3(z)}catch(p){try{z=I3(typeof z==="string"?Buffer.from(z):z)}catch(o$){return W(new l("secretOrPublicKey is not valid key material"))}}if(!Q.algorithms)if(z.type==="secret")Q.algorithms=Z3;else if(["rsa","rsa-pss"].includes(z.asymmetricKeyType))Q.algorithms=T6;else if(z.asymmetricKeyType==="ec")Q.algorithms=P3;else Q.algorithms=x6;if(Q.algorithms.indexOf(Y.header.alg)===-1)return W(new l("invalid algorithm"));if(G.alg.startsWith("HS")&&z.type!=="secret")return W(new l(`secretOrPublicKey must be a symmetric key when using ${G.alg}`));else if(/^(?:RS|PS|ES)/.test(G.alg)&&z.type!=="public")return W(new l(`secretOrPublicKey must be an asymmetric key when using ${G.alg}`));if(!Q.allowInvalidAsymmetricKeyTypes)try{O3(G.alg,z)}catch(p){return W(p)}let C;try{C=K3.verify($,Y.header.alg,z)}catch(p){return W(p)}if(!C)return W(new l("invalid signature"));let y=Y.payload;if(typeof y.nbf<"u"&&!Q.ignoreNotBefore){if(typeof y.nbf!=="number")return W(new l("invalid nbf value"));if(y.nbf>X+(Q.clockTolerance||0))return W(new S3("jwt not active",new Date(y.nbf*1000)))}if(typeof y.exp<"u"&&!Q.ignoreExpiration){if(typeof y.exp!=="number")return W(new l("invalid exp value"));if(X>=y.exp+(Q.clockTolerance||0))return W(new I9("jwt expired",new Date(y.exp*1000)))}if(Q.audience){let p=Array.isArray(Q.audience)?Q.audience:[Q.audience];if(!(Array.isArray(y.aud)?y.aud:[y.aud]).some(function(Q0){return p.some(function(A1){return A1 instanceof RegExp?A1.test(Q0):A1===Q0})}))return W(new l("jwt audience invalid. expected: "+p.join(" or ")))}if(Q.issuer){if(typeof Q.issuer==="string"&&y.iss!==Q.issuer||Array.isArray(Q.issuer)&&Q.issuer.indexOf(y.iss)===-1)return W(new l("jwt issuer invalid. expected: "+Q.issuer))}if(Q.subject){if(y.sub!==Q.subject)return W(new l("jwt subject invalid. expected: "+Q.subject))}if(Q.jwtid){if(y.jti!==Q.jwtid)return W(new l("jwt jwtid invalid. expected: "+Q.jwtid))}if(Q.nonce){if(y.nonce!==Q.nonce)return W(new l("jwt nonce invalid. expected: "+Q.nonce))}if(Q.maxAge){if(typeof y.iat!=="number")return W(new l("iat required when maxAge is specified"));let p=C3(Q.maxAge,y.iat);if(typeof p>"u")return W(new l('"maxAge" should be a number of seconds or string representing a timespan eg: "1d", "20h", 60'));if(X>=p+(Q.clockTolerance||0))return W(new I9("maxAge exceeded",new Date(p*1000)))}if(Q.complete===!0){let p=Y.signature;return W(null,{header:G,payload:y,signature:p})}return W(null,y)})}});var v9=N((Ow,h9)=>{var Z9=1/0,x9=9007199254740991,f3=179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,f9=NaN,x3="[object Arguments]",T3="[object Function]",h3="[object GeneratorFunction]",v3="[object String]",g3="[object Symbol]",m3=/^\s+|\s+$/g,y3=/^[-+]0x[0-9a-f]+$/i,l3=/^0b[01]+$/i,u3=/^0o[0-7]+$/i,c3=/^(?:0|[1-9]\d*)$/,d3=parseInt;function n3($,q){var Q=-1,J=$?$.length:0,W=Array(J);while(++Q<J)W[Q]=q($[Q],Q,$);return W}function p3($,q,Q,J){var W=$.length,X=Q+(J?1:-1);while(J?X--:++X<W)if(q($[X],X,$))return X;return-1}function i3($,q,Q){if(q!==q)return p3($,o3,Q);var J=Q-1,W=$.length;while(++J<W)if($[J]===q)return J;return-1}function o3($){return $!==$}function s3($,q){var Q=-1,J=Array($);while(++Q<$)J[Q]=q(Q);return J}function r3($,q){return n3(q,function(Q){return $[Q]})}function a3($,q){return function(Q){return $(q(Q))}}var Z0=Object.prototype,v6=Z0.hasOwnProperty,f0=Z0.toString,t3=Z0.propertyIsEnumerable,e3=a3(Object.keys,Object),$W=Math.max;function qW($,q){var Q=T9($)||HW($)?s3($.length,String):[],J=Q.length,W=!!J;for(var X in $)if((q||v6.call($,X))&&!(W&&(X=="length"||JW(X,J))))Q.push(X);return Q}function QW($){if(!WW($))return e3($);var q=[];for(var Q in Object($))if(v6.call($,Q)&&Q!="constructor")q.push(Q);return q}function JW($,q){return q=q==null?x9:q,!!q&&(typeof $=="number"||c3.test($))&&($>-1&&$%1==0&&$<q)}function WW($){var q=$&&$.constructor,Q=typeof q=="function"&&q.prototype||Z0;return $===Q}function XW($,q,Q,J){$=g6($)?$:zW($),Q=Q&&!J?_W(Q):0;var W=$.length;if(Q<0)Q=$W(W+Q,0);return BW($)?Q<=W&&$.indexOf(q,Q)>-1:!!W&&i3($,q,Q)>-1}function HW($){return YW($)&&v6.call($,"callee")&&(!t3.call($,"callee")||f0.call($)==x3)}var T9=Array.isArray;function g6($){return $!=null&&wW($.length)&&!GW($)}function YW($){return m6($)&&g6($)}function GW($){var q=h6($)?f0.call($):"";return q==T3||q==h3}function wW($){return typeof $=="number"&&$>-1&&$%1==0&&$<=x9}function h6($){var q=typeof $;return!!$&&(q=="object"||q=="function")}function m6($){return!!$&&typeof $=="object"}function BW($){return typeof $=="string"||!T9($)&&m6($)&&f0.call($)==v3}function VW($){return typeof $=="symbol"||m6($)&&f0.call($)==g3}function FW($){if(!$)return $===0?$:0;if($=DW($),$===Z9||$===-Z9){var q=$<0?-1:1;return q*f3}return $===$?$:0}function _W($){var q=FW($),Q=q%1;return q===q?Q?q-Q:q:0}function DW($){if(typeof $=="number")return $;if(VW($))return f9;if(h6($)){var q=typeof $.valueOf=="function"?$.valueOf():$;$=h6(q)?q+"":q}if(typeof $!="string")return $===0?$:+$;$=$.replace(m3,"");var Q=l3.test($);return Q||u3.test($)?d3($.slice(2),Q?2:8):y3.test($)?f9:+$}function UW($){return g6($)?qW($):QW($)}function zW($){return $?r3($,UW($)):[]}h9.exports=XW});var m9=N((Mw,g9)=>{var LW="[object Boolean]",jW=Object.prototype,NW=jW.toString;function RW($){return $===!0||$===!1||EW($)&&NW.call($)==LW}function EW($){return!!$&&typeof $=="object"}g9.exports=RW});var d9=N((Kw,c9)=>{var y9=1/0,SW=179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,l9=NaN,AW="[object Symbol]",CW=/^\s+|\s+$/g,OW=/^[-+]0x[0-9a-f]+$/i,MW=/^0b[01]+$/i,KW=/^0o[0-7]+$/i,kW=parseInt,IW=Object.prototype,bW=IW.toString;function PW($){return typeof $=="number"&&$==TW($)}function u9($){var q=typeof $;return!!$&&(q=="object"||q=="function")}function ZW($){return!!$&&typeof $=="object"}function fW($){return typeof $=="symbol"||ZW($)&&bW.call($)==AW}function xW($){if(!$)return $===0?$:0;if($=hW($),$===y9||$===-y9){var q=$<0?-1:1;return q*SW}return $===$?$:0}function TW($){var q=xW($),Q=q%1;return q===q?Q?q-Q:q:0}function hW($){if(typeof $=="number")return $;if(fW($))return l9;if(u9($)){var q=typeof $.valueOf=="function"?$.valueOf():$;$=u9(q)?q+"":q}if(typeof $!="string")return $===0?$:+$;$=$.replace(CW,"");var Q=MW.test($);return Q||KW.test($)?kW($.slice(2),Q?2:8):OW.test($)?l9:+$}c9.exports=PW});var p9=N((kw,n9)=>{var vW="[object Number]",gW=Object.prototype,mW=gW.toString;function yW($){return!!$&&typeof $=="object"}function lW($){return typeof $=="number"||yW($)&&mW.call($)==vW}n9.exports=lW});var r9=N((Iw,s9)=>{var uW="[object Object]";function cW($){var q=!1;if($!=null&&typeof $.toString!="function")try{q=!!($+"")}catch(Q){}return q}function dW($,q){return function(Q){return $(q(Q))}}var nW=Function.prototype,i9=Object.prototype,o9=nW.toString,pW=i9.hasOwnProperty,iW=o9.call(Object),oW=i9.toString,sW=dW(Object.getPrototypeOf,Object);function rW($){return!!$&&typeof $=="object"}function aW($){if(!rW($)||oW.call($)!=uW||cW($))return!1;var q=sW($);if(q===null)return!0;var Q=pW.call(q,"constructor")&&q.constructor;return typeof Q=="function"&&Q instanceof Q&&o9.call(Q)==iW}s9.exports=aW});var t9=N((bw,a9)=>{var tW="[object String]",eW=Object.prototype,$X=eW.toString,qX=Array.isArray;function QX($){return!!$&&typeof $=="object"}function JX($){return typeof $=="string"||!qX($)&&QX($)&&$X.call($)==tW}a9.exports=JX});var JQ=N((Pw,QQ)=>{var WX="Expected a function",e9=1/0,XX=179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,$Q=NaN,HX="[object Symbol]",YX=/^\s+|\s+$/g,GX=/^[-+]0x[0-9a-f]+$/i,wX=/^0b[01]+$/i,BX=/^0o[0-7]+$/i,VX=parseInt,FX=Object.prototype,_X=FX.toString;function DX($,q){var Q;if(typeof q!="function")throw TypeError(WX);return $=NX($),function(){if(--$>0)Q=q.apply(this,arguments);if($<=1)q=void 0;return Q}}function UX($){return DX(2,$)}function qQ($){var q=typeof $;return!!$&&(q=="object"||q=="function")}function zX($){return!!$&&typeof $=="object"}function LX($){return typeof $=="symbol"||zX($)&&_X.call($)==HX}function jX($){if(!$)return $===0?$:0;if($=RX($),$===e9||$===-e9){var q=$<0?-1:1;return q*XX}return $===$?$:0}function NX($){var q=jX($),Q=q%1;return q===q?Q?q-Q:q:0}function RX($){if(typeof $=="number")return $;if(LX($))return $Q;if(qQ($)){var q=typeof $.valueOf=="function"?$.valueOf():$;$=qQ(q)?q+"":q}if(typeof $!="string")return $===0?$:+$;$=$.replace(YX,"");var Q=wX.test($);return Q||BX.test($)?VX($.slice(2),Q?2:8):GX.test($)?$Q:+$}QQ.exports=UX});var FQ=N((Zw,VQ)=>{var WQ=z6(),EX=f6(),SX=Z6(),XQ=_0(),AX=v9(),x0=m9(),HQ=d9(),y6=p9(),GQ=r9(),b$=t9(),CX=JQ(),{KeyObject:OX,createSecretKey:MX,createPrivateKey:KX}=require("crypto"),wQ=["RS256","RS384","RS512","ES256","ES384","ES512","HS256","HS384","HS512","none"];if(EX)wQ.splice(3,0,"PS256","PS384","PS512");var kX={expiresIn:{isValid:function($){return HQ($)||b$($)&&$},message:'"expiresIn" should be a number of seconds or string representing a timespan'},notBefore:{isValid:function($){return HQ($)||b$($)&&$},message:'"notBefore" should be a number of seconds or string representing a timespan'},audience:{isValid:function($){return b$($)||Array.isArray($)},message:'"audience" must be a string or array'},algorithm:{isValid:AX.bind(null,wQ),message:'"algorithm" must be a valid string enum value'},header:{isValid:GQ,message:'"header" must be an object'},encoding:{isValid:b$,message:'"encoding" must be a string'},issuer:{isValid:b$,message:'"issuer" must be a string'},subject:{isValid:b$,message:'"subject" must be a string'},jwtid:{isValid:b$,message:'"jwtid" must be a string'},noTimestamp:{isValid:x0,message:'"noTimestamp" must be a boolean'},keyid:{isValid:b$,message:'"keyid" must be a string'},mutatePayload:{isValid:x0,message:'"mutatePayload" must be a boolean'},allowInsecureKeySizes:{isValid:x0,message:'"allowInsecureKeySizes" must be a boolean'},allowInvalidAsymmetricKeyTypes:{isValid:x0,message:'"allowInvalidAsymmetricKeyTypes" must be a boolean'}},IX={iat:{isValid:y6,message:'"iat" should be a number of seconds'},exp:{isValid:y6,message:'"exp" should be a number of seconds'},nbf:{isValid:y6,message:'"nbf" should be a number of seconds'}};function BQ($,q,Q,J){if(!GQ(Q))throw Error('Expected "'+J+'" to be a plain object.');Object.keys(Q).forEach(function(W){let X=$[W];if(!X){if(!q)throw Error('"'+W+'" is not allowed in "'+J+'"');return}if(!X.isValid(Q[W]))throw Error(X.message)})}function bX($){return BQ(kX,!1,$,"options")}function PX($){return BQ(IX,!0,$,"payload")}var YQ={audience:"aud",issuer:"iss",subject:"sub",jwtid:"jti"},ZX=["expiresIn","notBefore","noTimestamp","audience","issuer","subject","jwtid"];VQ.exports=function($,q,Q,J){if(typeof Q==="function")J=Q,Q={};else Q=Q||{};let W=typeof $==="object"&&!Buffer.isBuffer($),X=Object.assign({alg:Q.algorithm||"HS256",typ:W?"JWT":void 0,kid:Q.keyid},Q.header);function H(V){if(J)return J(V);throw V}if(!q&&Q.algorithm!=="none")return H(Error("secretOrPrivateKey must have a value"));if(q!=null&&!(q instanceof OX))try{q=KX(q)}catch(V){try{q=MX(typeof q==="string"?Buffer.from(q):q)}catch(D){return H(Error("secretOrPrivateKey is not valid key material"))}}if(X.alg.startsWith("HS")&&q.type!=="secret")return H(Error(`secretOrPrivateKey must be a symmetric key when using ${X.alg}`));else if(/^(?:RS|PS|ES)/.test(X.alg)){if(q.type!=="private")return H(Error(`secretOrPrivateKey must be an asymmetric key when using ${X.alg}`));if(!Q.allowInsecureKeySizes&&!X.alg.startsWith("ES")&&q.asymmetricKeyDetails!==void 0&&q.asymmetricKeyDetails.modulusLength<2048)return H(Error(`secretOrPrivateKey has a minimum key size of 2048 bits for ${X.alg}`))}if(typeof $>"u")return H(Error("payload is required"));else if(W){try{PX($)}catch(V){return H(V)}if(!Q.mutatePayload)$=Object.assign({},$)}else{let V=ZX.filter(function(D){return typeof Q[D]<"u"});if(V.length>0)return H(Error("invalid "+V.join(",")+" option for "+typeof $+" payload"))}if(typeof $.exp<"u"&&typeof Q.expiresIn<"u")return H(Error('Bad "options.expiresIn" option the payload already has an "exp" property.'));if(typeof $.nbf<"u"&&typeof Q.notBefore<"u")return H(Error('Bad "options.notBefore" option the payload already has an "nbf" property.'));try{bX(Q)}catch(V){return H(V)}if(!Q.allowInvalidAsymmetricKeyTypes)try{SX(X.alg,q)}catch(V){return H(V)}let Y=$.iat||Math.floor(Date.now()/1000);if(Q.noTimestamp)delete $.iat;else if(W)$.iat=Y;if(typeof Q.notBefore<"u"){try{$.nbf=WQ(Q.notBefore,Y)}catch(V){return H(V)}if(typeof $.nbf>"u")return H(Error('"notBefore" should be a number of seconds or string representing a timespan eg: "1d", "20h", 60'))}if(typeof Q.expiresIn<"u"&&typeof $==="object"){try{$.exp=WQ(Q.expiresIn,Y)}catch(V){return H(V)}if(typeof $.exp>"u")return H(Error('"expiresIn" should be a number of seconds or string representing a timespan eg: "1d", "20h", 60'))}Object.keys(YQ).forEach(function(V){let D=YQ[V];if(typeof Q[V]<"u"){if(typeof $[D]<"u")return H(Error('Bad "options.'+V+'" option. The payload already has an "'+D+'" property.'));$[D]=Q[V]}});let G=Q.encoding||"utf8";if(typeof J==="function")J=J&&CX(J),XQ.createSign({header:X,privateKey:q,payload:$,encoding:G}).once("error",J).once("done",function(V){if(!Q.allowInsecureKeySizes&&/^(?:RS|PS)/.test(X.alg)&&V.length<256)return J(Error(`secretOrPrivateKey has a minimum key size of 2048 bits for ${X.alg}`));J(null,V)});else{let V=XQ.sign({header:X,payload:$,secret:q,encoding:G});if(!Q.allowInsecureKeySizes&&/^(?:RS|PS)/.test(X.alg)&&V.length<256)throw Error(`secretOrPrivateKey has a minimum key size of 2048 bits for ${X.alg}`);return V}}});var DQ=N((fw,_Q)=>{_Q.exports={decode:_6(),verify:P9(),sign:FQ(),JsonWebTokenError:I1(),NotBeforeError:D6(),TokenExpiredError:U6()}});function y0($){return`https://veloce-ts.com/problems/${$}`}function MQ($,q){if(q)return q;let Q=pH[$]??"unknown-error";return y0(Q)}function KQ($,q,Q){if(Q)return Q;return iH[$]??q}function oH($){try{return new URL($.req.url).href}catch{return $.req.path}}function sH($){let q=$.statusCode??$.status,J={error:(typeof $.error==="string"?$.error:null)??(typeof $.detail==="string"?$.detail:"Error"),statusCode:q};if($.details!==void 0)J.details=$.details;else if($.violations!==void 0)J.details=$.violations;return J}function BB($,q,Q,J){let W=oH($),X={...q,instance:W};if(J==="legacy")return $.json(sH(X),Q);return new Response(JSON.stringify(X),{status:Q,headers:{"Content-Type":"application/problem+json"}})}var GB="application/problem+json",wB="https://veloce-ts.com/problems",pH,iH;var d6=J0(()=>{pH={400:"bad-request",401:"unauthorized",403:"forbidden",404:"not-found",409:"conflict",410:"gone",413:"payload-too-large",422:"unprocessable-entity",429:"too-many-requests",500:"internal-server-error",503:"service-unavailable"},iH={400:"Bad Request",401:"Unauthorized",403:"Forbidden",404:"Not Found",409:"Conflict",410:"Gone",413:"Payload Too Large",422:"Unprocessable Entity",429:"Too Many Requests",500:"Internal Server Error",503:"Service Unavailable"}});var Y$,rH,aH,tH,eH,$Y,qY,QY,JY,WY,XY;var kQ=J0(()=>{d6();Y$=class Y$ extends Error{statusCode;details;problemType;title;constructor($,q,Q,J){super(q);this.statusCode=$;this.details=Q;if(this.name="HTTPException",this.problemType=J?.problemType,this.title=J?.title,Error.captureStackTrace)Error.captureStackTrace(this,this.constructor)}toJSON(){let $=this.statusCode,q=MQ($,this.problemType),Q=KQ($,this.message,this.title);return{type:q,title:Q,status:$,detail:this.message,...this.details!==void 0?{details:this.details}:{},error:this.message,statusCode:$}}};rH=class rH extends Y${constructor($="Not Found",q){super(404,$,q,{title:"Not Found"});this.name="NotFoundException"}};aH=class aH extends Y${constructor($="Unauthorized",q){super(401,$,q,{title:"Unauthorized"});this.name="UnauthorizedException"}};tH=class tH extends Y${constructor($="Forbidden",q){super(403,$,q,{title:"Forbidden"});this.name="ForbiddenException"}};eH=class eH extends Y${constructor($="Bad Request",q){super(400,$,q,{title:"Bad Request"});this.name="BadRequestException"}};$Y=class $Y extends Y${constructor($="Conflict",q){super(409,$,q,{title:"Conflict"});this.name="ConflictException"}};qY=class qY extends Y${constructor($="Gone",q){super(410,$,q,{title:"Gone"});this.name="GoneException"}};QY=class QY extends Y${constructor($="Payload Too Large",q){super(413,$,q,{title:"Payload Too Large"});this.name="PayloadTooLargeException"}};JY=class JY extends Y${constructor($="Unprocessable Entity",q){super(422,$,q,{title:"Unprocessable Entity"});this.name="UnprocessableEntityException"}};WY=class WY extends Y${constructor($="Too Many Requests",q){super(429,$,q,{title:"Too Many Requests"});this.name="TooManyRequestsException"}};XY=class XY extends Y${constructor($="Service Unavailable",q){super(503,$,q,{title:"Service Unavailable"});this.name="ServiceUnavailableException"}}});var HY={};Q6(HY,{TokenRevokedException:()=>n6,TokenExpiredException:()=>n1,InvalidTokenException:()=>i$,AuthorizationException:()=>t,AuthenticationException:()=>a});var a,t,n1,i$,n6;var v$=J0(()=>{kQ();d6();a=class a extends Y${constructor($="Authentication required"){super(401,$,void 0,{title:"Authentication Error",problemType:y0("authentication-error")});this.name="AuthenticationException"}};t=class t extends Y${constructor($="Insufficient permissions"){super(403,$,void 0,{title:"Authorization Error",problemType:y0("authorization-error")});this.name="AuthorizationException"}};n1=class n1 extends a{constructor($="Token has expired"){super($);this.name="TokenExpiredException"}};i$=class i$ extends a{constructor($="Invalid token"){super($);this.name="InvalidTokenException"}};n6=class n6 extends a{constructor($="Token has been revoked"){super($);this.name="TokenRevokedException"}}});var PQ=N(()=>{/*! *****************************************************************************
|
|
4
4
|
Copyright (C) Microsoft. All rights reserved.
|
|
5
5
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
|
|
6
6
|
this file except in compliance with the License. You may obtain a copy of the
|
|
@@ -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],r=o(F,_,j);if(!f(r)&&!s$(r)){if(!i(r))throw TypeError();j=r}}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,r=[];for(var v=0,E=_;v<E.length;v++){var O=E[v],M=o.has(O);if(!M)o.add(O),r.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),r.push(O)}return r}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:r,getProvider:E,setProvider:M};return o;function r(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:r,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 r(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,r=new y,v={isProviderFor:function(E,O){var M=r.get(E);if(!f(M)&&M.has(O))return!0;if(I(E,O).length){if(f(M))M=new C,r.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,r)},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 r(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 r(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=r(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},EV=($)=>{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,SV=($,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)},AV=($)=>{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}`}`},CV=($)=>{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},OV,MV=($,q)=>{return oQ($,q,!0)},D4;var sQ=J0(()=>{i0={},OV=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:()=>t,AuthenticationException:()=>a,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:()=>e,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 e{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 e.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 e,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 e,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 e;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 e;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 e,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 e.mergeArray(Q,X)});let W=[...q.data].map((X,H)=>{return J.type._parseSync(new L$(q,X,q.path,H))});return e.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 e.mergeObjectSync(Q,G)});else return e.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 e.mergeArray(q,X)});else return e.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 e.mergeObjectAsync(q,J);else return e.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 a("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 a("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 a(Z)}if(Y?.roles?.length){if(!this.authService.hasRoles(D,Y.roles))throw new t(`Required roles: ${Y.roles.join(", ")}`)}if(Y?.permissions?.length){if(!this.authService.hasPermissions(D,Y.permissions))throw new t(`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 a(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 a(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 a(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 a("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 t("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 t(`Access denied. Required ${H} of roles: ${q.roles.join(", ")}`)}}checkPermissions($,q){let Q=$$($);if(!Q)throw new t("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 t(`Access denied. Required ${Y} of permissions: ${q.permissions.join(", ")}`)}}checkMinimumRole($,q){let Q=$$($);if(!Q)throw new t("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 t(`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 a("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 t("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 t(`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 a("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 t("CSRF token required");if(!this.csrfProtection.validateToken(q.id,Q))throw new t("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=
|
|
18
|
+
//# debugId=1E2E32AF8826CAFA64756E2164756E21
|