UNPKG

@lunoxjs/core

Version:
2 lines (1 loc) 24 kB
var ce=Object.defineProperty;var i=(r,e)=>ce(r,"name",{value:e,configurable:!0});import ue from"pluralize";import le from"crypto";import{config as he}from"dotenv";import{Validator as de,Messages as pe,extend as ge}from"@kodepandai/node-input-validator";import x from"cookie";import"express-session";import me from"path";var ve=Object.defineProperty,fe=i((r,e)=>ve(r,"name",{value:e,configurable:!0}),"i$8");let R=i(class{static wrap(e){return e===null?[]:Array.isArray(e)?e:[e]}},"n");fe(R,"Arr");var be=Object.defineProperty,ye=i((r,e)=>be(r,"name",{value:e,configurable:!0}),"c$7");let d=i(class b{static studlyCache={};static plural(e,t=2){return ue(e,t)}static ucfirst(e){return e.charAt(0).toUpperCase()+e.slice(1)}static snake(e,t="_"){return e.replace(/[A-Z]/g,(s,a)=>a==0?s.toLowerCase():`${t}${s.toLowerCase()}`)}static contains(e,t){return typeof t=="string"&&(t=[t]),t.some(s=>e.includes(s))}static is(e,t){const s=R.wrap(e);return s.length==0?!1:s.some(a=>a===t||(t.match(new RegExp("^"+a.replace(/\*/g,".*")))?.length||0)>0)}static random(e=16){return le.randomBytes(e).toString("base64").replace(/(\/|\+|=)/g,"").slice(0,e)}static studly(e){if(b.studlyCache[e])return b.studlyCache[e];const t=e.replace(/-|_/g," ").split(" ").map(s=>b.ucfirst(s));return b.studlyCache[e]=t.join("")}},"s");ye(d,"Str");var $e=Object.defineProperty,_e=i((r,e)=>$e(r,"name",{value:e,configurable:!0}),"e$4");let J=i(class extends Error{_guards;_redirectTo;constructor(e="Unauthenticated.",t=[],s){super(e),this._guards=t,this._redirectTo=s}guards(){return this._guards}redirectTo(){return this._redirectTo}},"s");_e(J,"AuthenticationException");var ke=Object.defineProperty,we=i((r,e)=>ke(r,"name",{value:e,configurable:!0}),"r$d");let L=i(class{_user;provider;async user(){}authenticate(){if(this._user)return this._user;throw new J}async check(){return!!await this.user()}async guest(){return!await this.check()}async id(){const e=await this.user();if(e)return e.getAuthIdentifier()}getProvider(){return this.provider}setProvider(e){this.provider=e}},"i");we(L,"GuardHelper");var Oe=Object.defineProperty,xe=i((r,e)=>Oe(r,"name",{value:e,configurable:!0}),"e$3");let V=i(class{recaller;constructor(e){this.recaller=e}valid(){return this.properString()&&this.hasAllSegments()}properString(){return typeof this.recaller=="string"&&this.recaller.includes("|")}hasAllSegments(){const e=this.recaller.split("|");return e.length==3&&e[0].trim()!==""&&e[1].trim()!==""}id(){return this.recaller.split("|",3)[0]}token(){return this.recaller.split("|",3)[1]}},"l");xe(V,"Recaller");var Re=Object.defineProperty,Pe=i((r,e)=>Re(r,"name",{value:e,configurable:!0}),"i$6");let B=i(class extends L{name;session;request;lastAttempted;rememberDuration=2628e3;loggedOut=!1;recallAttempted=!1;viaRemember=!1;constructor(e,t,s,a){super(),this.name=e,this.provider=t,this.session=s,this.request=a}async validate(e){return this.lastAttempted=await this.provider.retrieveByCredentials(e),this.hasValidCredentials(this.lastAttempted,e)}async once(e){return await this.validate(e)?(this.setUser(this.lastAttempted),!0):!1}async attempt(e={password:""},t=!1){const s=await this.provider.retrieveByCredentials(e);return this.hasValidCredentials(s,e)?(await this.login(s,t),!0):!1}hasValidCredentials(e,t){return e!=null&&this.provider.validateCredentials(e,t)}async login(e,t){await this.updateSession(e.getAuthIdentifier()),t&&(await this.ensureRememberTokenIsSet(e),this.queueRecallerCookie(e)),this.setUser(e)}queueRecallerCookie(e){this.request.cookieJar.queue(this.createRecaller(`${e.getAuthIdentifier()}|${e.getRememberToken()}|${e.getAuthPassword()}`))}createRecaller(e){return this.request.cookieJar.make(this.getRecallerName(),e,this.getRememberDuration())}getRememberDuration(){return this.rememberDuration}setRememberDuration(e){return this.rememberDuration=e,this}async ensureRememberTokenIsSet(e){e.getRememberToken()||await this.cycleRememberToken(e)}async cycleRememberToken(e){const t=d.random(60);e.setRememberToken(t),await this.provider.updateRememberToken(e,t)}async logout(){const e=await this.user();this.clearUserDataFromStorage(),this._user&&e?.getRememberToken()&&await this.cycleRememberToken(e),this._user=void 0,this.loggedOut=!0}setUser(e){return this._user=e,this.loggedOut=!1,this}getName(){return`login_${this.name}_${sha1(this.constructor.name)}`}async updateSession(e){await this.session.migrate(!0),this.session.put(this.getName(),e)}async user(){if(this.loggedOut)return;if(this._user)return this._user;const e=this.session.get(this.getName());e&&(this._user=await this.provider.retrieveById(e));const t=this.recaller();return!this._user&&t&&(this._user=await this.userFromRecaller(t),this._user&&await this.updateSession(this._user.getAuthIdentifier())),this._user}async userFromRecaller(e){if(!e.valid()||this.recallAttempted)return;this.recallAttempted=!0;const t=await this.provider.retrieveByToken(e.id(),e.token());return this.viaRemember=!!t,t}recaller(){if(!this.request)return;const e=this.request.cookies.get(this.getRecallerName());if(e)return new V(e)}getRecallerName(){return`remember_${this.name}_${sha1(this.constructor.name)}`}clearUserDataFromStorage(){this.session.remove(this.getName()),this.recaller()&&this.request.cookieJar.queue(this.request.cookieJar.forget(this.getRecallerName()))}},"a");Pe(B,"SessionGuard");var Se=Object.defineProperty,qe=i((r,e)=>Se(r,"name",{value:e,configurable:!0}),"u$5");const p=qe((r,...e)=>{const t=Object.create(null);return t.construct=(s,a,n)=>{const o=Reflect.construct(s,a,n),c=Object.create(null),l=Object.getOwnPropertyDescriptor(r.prototype,"__get");return l&&(c.get=(u,h,O)=>Reflect.has(u,h)?Reflect.get(u,h,O):l.value.call(u,h,...e)),new Proxy(o,c)},(Object.getOwnPropertyDescriptor(r.prototype,"__getStatic")||Object.getPrototypeOf(r).__getStatic)&&(t.get=(s,a,n)=>{if(a in s)return s[a];if(typeof a=="string")return s.__getStatic.call(n,a,...e)}),new Proxy(r,t)},"useMagic");var Ce=Object.defineProperty,je=i((r,e)=>Ce(r,"name",{value:e,configurable:!0}),"s$8");class P{static symbol=Symbol("AuthManager");app;guards={};request;static userProviders={};constructor(e){this.app=e}setRequest(e){return this.request=e,this}guard(e){return e=e||this.getDefaultDriver(),this.guards[e]||(this.guards[e]=this.resolve(e))}getDefaultDriver(){return this.config("auth.defaults.guard")}static registerUserProvider(e,t){this.userProviders[e]=t}resolve(e){const t=this.getConfig(e);if(!t)throw new Error(`"Auth guard [${e}] is not defined."`);const s=`create${d.ucfirst(t.driver)}Driver`;if(typeof this[s]=="function")return this[s](e,t);throw new Error(`Auth driver [${t.driver}] for guard [${e}] is not defined.`)}getConfig(e){return this.config(`auth.guards.${e}`)}createSessionDriver(e,t){const s=this.createUserProvider(t.provider),a=new B(e,s,this.request.session(),this.request);return t.remember&&a.setRememberDuration(t.remember),a}createUserProvider(e){const t=this.getProviderConfiguration(e);if(!t)throw new Error("cannot get user provider config");const s=t.driver;if(s in this.constructor.userProviders)return this.constructor.userProviders[s](t);throw new Error(`Authentication user provider [${t.driver}] is not defined.`)}getProviderConfiguration(e){if(e=e||this.getDefaultUserProvider(),e)return this.config("auth.providers."+e)}config(e){return this.app.config.get(e)}getDefaultUserProvider(){return this.config("auth.defaults.provider")}__get(e){return(...t)=>this.guard()[e].call(this.guard(),...t)}}i(P,"AuthManager"),je(P,"AuthManager");var G=p(P),Ee=Object.defineProperty,Ae=i((r,e)=>Ee(r,"name",{value:e,configurable:!0}),"p$3");let S=i(class{app;constructor(e){this.app=e}async register(){}async boot(){}commands(e){this.app.instance("_commands",[...this.app.instances._commands??[],...e])}},"a");Ae(S,"ServiceProvider");var Fe=Object.defineProperty,De=i((r,e)=>Fe(r,"name",{value:e,configurable:!0}),"r$c");let m=i(class extends Error{},"s");De(m,"BadMethodCallException");var Te=Object.defineProperty,W=i((r,e)=>Te(r,"name",{value:e,configurable:!0}),"c$4");let q=i(class{static facadeId=null;static app;static resolvedInstance={};static setApplicationFacade(e){this.app=e}static getFacadeAccessor(){throw new Error("Facade does not implement getFacadeAccessor method.")}static __getStatic(e,t){return(...s)=>{const a=this.resolveFacadeInstance(t);if(a.facadeCalled&&a.facadeCalled(),a[e])return a[e].call(a,...s);if(a.constructor&&a.constructor[e])return a.constructor[e].call(a.constructor,...s);throw new m(`Method ${a.constructor.name}.${e} does not exist.`)}}static resolveFacadeInstance(e){let t;if(["string","symbol"].includes(typeof this.getFacadeAccessor())){if(e=this.getFacadeAccessor(),this.resolvedInstance[e])return this.resolvedInstance[e];t=this.app.make(this.getFacadeAccessor())}else e in this.app.instances||this.app.singleton(e,this.getFacadeAccessor()),t=this.app.make(e);return this.resolvedInstance[e]=t,t}},"o");W(q,"Facade");class C extends q{}i(C,"ExtendedFacade"),W(C,"ExtendedFacade");var y=p(q,["__getStatic"]),Me=Object.defineProperty,Ie=i((r,e)=>Me(r,"name",{value:e,configurable:!0}),"t$5");function v(r){const e=Symbol(r.name);return p(r,e)}i(v,"n$3"),Ie(v,"useFacade");var Ne=Object.defineProperty,Ue=i((r,e)=>Ne(r,"name",{value:e,configurable:!0}),"r$a");let g=i(class extends Error{statusCode;headers;previous;constructor(e,t="",s=null,a={}){super(t),this.previous=s,this.statusCode=e,this.headers=a}getStatusCode(){return this.statusCode}getHeaders(){return this.headers}getPrevious(){return this.previous}},"s");Ue(g,"HttpException");var He=Object.defineProperty,Je=i((r,e)=>He(r,"name",{value:e,configurable:!0}),"e$2");let z=i(class extends g{constructor(e="",t=null,s={}){super(404,e,t,s)}},"o");Je(z,"NotFoundHttpException");var Le=Object.defineProperty,Q=i((r,e)=>Le(r,"name",{value:e,configurable:!0}),"r$9");const Ve=Q(r=>new Z(r),"Traitable");let Z=i(class{superclass;constructor(e){this.superclass=e}use(...e){return e.reduce((t,s)=>s(t),this.superclass)}},"a");Q(Z,"TraitBuilder");var Be=Object.defineProperty,Ge=i((r,e)=>Be(r,"name",{value:e,configurable:!0}),"s$5");let j=i(class{static symbol=Symbol("Env");constructor(){he()}get(e,t=null){switch(process.env[e]?.toLowerCase()){case void 0:return t;case"true":case"(true)":return!0;case"false":case"(false)":return!1;default:return process.env[e]}}},"t");Ge(j,"Env");var We=Object.defineProperty,ze=i((r,e)=>We(r,"name",{value:e,configurable:!0}),"a$7");let K=i(class extends y{static getFacadeAccessor(){return j.symbol}},"e");ze(K,"Env");var Qe=v(K),Ze=Object.defineProperty,Ke=i((r,e)=>Ze(r,"name",{value:e,configurable:!0}),"l");let $=i(class{static symbol=Symbol("SessionManager");app;session;request;started=!1;constructor(e){this.app=e,this.session={}}setRequest(e){return this.session=e.getOriginalRequest().session||{},this.request=e,this.isStarted()||this.start(),this}get(e){return e.split(".").reduce((t,s)=>t?.[s],this.all(!0,!0,!0))||null}getFlashed(){return this.session.__session||{}}old(e){return delete this.session.__old?._token,e?e.split(".").reduce((t,s)=>t?.[s],this.session?.__old)||null:this.session.__old}all(e=!1,t=!1,s=!1){let a={...this.session};return delete a.cookie,delete a.__lastAccess,delete a.__old,delete a.__session,!t&&this.request.auth().guard()?.getName()&&delete a[this.request.auth().guard()?.getName()],s||delete a._token,e&&(a={...a,...this.session.__session}),a}put(e,t){this.session[e]=t}flash(e,t){const s=this.getFlashed();return this.put("__session",{...s,[e]:t})}has(e){return Object.keys(this.session).includes(e)&&this.session[e]!=null}exists(e){return Object.keys(this.session).includes(e)}save(){return new Promise((e,t)=>{if(this.session?.save)return this.session.save(s=>{s&&t(s),e(!0)});e(!0)})}async flush(){return new Promise((e,t)=>{this.session?.destroy?.(s=>{s||e(!0),t(s)})})}remove(e){this.session[e]=null}forget(e){e.forEach(t=>{this.remove(t)})}static getDefaultDriver(){return"file"}static async getStore(e){const t={file:"session-file-store"}[this.getDefaultDriver()];try{const s=(await import(t)).default(e);return new s(this.getStoreConfig())}catch{throw new Error(`please install [${t}] to use ${this.getDefaultDriver()} session driver`)}}static getStoreConfig(){switch(this.getDefaultDriver()){case"file":return{path:this.getConfig().files,logFn:()=>{}};default:return{}}}static getConfig(){return config("session")}async migrate(e=!1){const t=this.request.getOriginalRequest().session?.id;return new Promise((s,a)=>{this.session.regenerate?.(n=>{n?(console.log(n),a(n)):(this.session=this.request.getOriginalRequest().session,s(!0),e&&setTimeout(()=>{this.session.sessionStore?.destroy(t,o=>{o&&console.log(o)})},1e3))})})}async start(){this.has("_token")||this.regenerateToken(),this.started=!0}regenerateToken(){this.put("_token",d.random(40))}token(){return this.get("_token")}isStarted(){return this.started}},"a");Ke($,"SessionManager");var Xe=Object.defineProperty,Ye=i((r,e)=>Xe(r,"name",{value:e,configurable:!0}),"a$5");let _=i(class extends Error{status=422;validator;constructor(e){super("The given data was invalid."),this.validator=e}errors(){return this.validator.getErrors()}},"o");Ye(_,"ValidationException");var et=Object.defineProperty,tt=i((r,e)=>et(r,"name",{value:e,configurable:!0}),"s$4");class E extends de{_inputs;constructor(e,t,s,a={}){super(e,t,s),this.niceNames(a),this._inputs=Object.keys(t).reduce((n,o)=>(n[o]=e[o],n),{})}async fails(){return!await super.validate()}async validate(e){const t=e||this._inputs;if(await super.validate(e))return Object.keys(t).reduce((s,a)=>(s[a]=t[a],s),{});throw new _(this)}}i(E,"O"),tt(E,"Validator");var st=Object.defineProperty,rt=i((r,e)=>st(r,"name",{value:e,configurable:!0}),"o$3");let A=i(class{static symbol=Symbol("ValidatorFactory");app;constructor(e){this.app=e}make(e,t,s={},a={}){return new E(e,t,s,a)}extend(e){return e.message&&pe.extend({[e.name]:e.message}),ge(e.name,t=>({name:e.name,handler:s=>e.passes(t,s)}))}},"p");rt(A,"Factory");var it=Object.defineProperty,at=i((r,e)=>it(r,"name",{value:e,configurable:!0}),"t$2");let X=i(class extends y{static getFacadeAccessor(){return A.symbol}},"a");at(X,"Validator");var Y=v(X),nt=Object.defineProperty,ot=i((r,e)=>nt(r,"name",{value:e,configurable:!0}),"i$3");let k=i(class oe{original;status;_headers;res;cookies=[];constructor(e,t=200,s={}){e instanceof oe?this.original=e.getOriginal():this.original=e,this.status=t,this._headers=s}getCookies(){return this.cookies}setCookie(e){this.cookies.push(e)}getOriginal(){return this.original}getStatus(){return this.status}get headers(){return this._headers.getCookies||Object.defineProperty(this._headers,"getCookies",{value:this.getCookies.bind(this)}),this._headers.setCookie||Object.defineProperty(this._headers,"setCookie",{value:this.setCookie.bind(this)}),this._headers}setCookiesToHeaders(){this._headers={...this._headers,"set-cookie":this.cookies.map(e=>e.toString())}}setOriginal(e){return this.original=e,this}setServerResponse(e){return this.res=e,this.res.statusCode=this.status,this._headers={...this._headers,...this.res.getHeaders()},this}mergeResponse(e){this.status=e.status,this._headers={...this._headers,...e.headers},this.original=e.getOriginal(),this.cookies=[...this.cookies,...e.headers.getCookies()]}getServerResponse(){return this.res}setHeader(e,t){return this.res&&this.res.setHeader(e,t),this._headers={...this.headers,[e]:t},this}},"t");ot(k,"Response");var ct=Object.defineProperty,ut=i((r,e)=>ct(r,"name",{value:e,configurable:!0}),"r$7");let F=i(class extends k{request;isWithInput=!1;inputExcept=[];session={};url;constructor(e){return super({},302,{Location:e}),this.url=e,this}setRequest(e){if(this.url=="__back"){const s=e.getOriginalRequest(),a=s.headers.referrer||s.headers.referer||"/";this.setHeader("Location",a)}if(this.isWithInput){const s=e.all();Object.keys(s).forEach(a=>{this.inputExcept.includes(a)&&delete s[a]}),e.session().put("__old",s)}const t=e.session().getFlashed();return e.session().put("__session",{...t,...this.session}),e}withInput(e={except:[]}){return e.except.length>0&&(typeof e.except=="string"?this.inputExcept.push(e.except):this.inputExcept=[...this.inputExcept,...e.except]),this.isWithInput=!0,this}with(e){return this.session=e,this}},"n");ut(F,"RedirectResponse");var lt=Object.defineProperty,ht=i((r,e)=>lt(r,"name",{value:e,configurable:!0}),"o$1");let D=i(class{static symbol=Symbol("ResponseFactory");constructor(){}make(e="",t=200,s={}){return new k(e,t,s)}},"r");ht(D,"ResponseFactory");var dt=Object.defineProperty,pt=i((r,e)=>dt(r,"name",{value:e,configurable:!0}),"o");let ee=i(class extends y{static getFacadeAccessor(){return D.symbol}},"r");pt(ee,"Response");var T=v(ee),gt=Object.defineProperty,mt=i((r,e)=>gt(r,"name",{value:e,configurable:!0}),"s$3");let te=i(class extends S{async register(){this.app.bind($.symbol,()=>request().session())}async boot(){}},"r");mt(te,"SessionServiceProvider");var vt=Object.defineProperty,ft=i((r,e)=>vt(r,"name",{value:e,configurable:!0}),"r$3");let w=i(class extends Error{},"s");ft(w,"TokenMismatchException");var bt=Object.defineProperty,se=i((r,e)=>bt(r,"name",{value:e,configurable:!0}),"a$1");let re=i(class{static symbol=Symbol("ExceptionHandler");container;reportCallbacks=[];renderCallbacks=[];dontReport=[];internalDontReport=[g,_,w];constructor(e){this.container=e,this.register()}async render(e,t){let s;for(let c=0;c<this.renderCallbacks.length;c++){const{exception:l,renderUsing:u}=this.renderCallbacks[c];if(t instanceof l){s=u(t,e);break}}if(s instanceof F&&(s.setRequest(e),await e.session().save()),s instanceof ne&&(s=await s.render(e)),s)return s;let a=500,n={};if(t=this.prepareException(t),t instanceof g&&(a=t.getStatusCode(),n=t.getHeaders(),!e.wantsJson()))return T.make(t.message,a,n);const o={message:t.message};return env("APP_DEBUG")&&(o.stack=t.stack),T.make(o,a,n)}prepareException(e){return[{type:w,value:t=>new g(419,t.message,t)}].reduce((t,s)=>(e instanceof s.type&&(t=s.value(e)),t),e)}report(e){if(this.shouldntReport(e))return;let t=se(s=>{console.log(s)},"report");this.reportCallbacks.forEach(({exception:s,reportUsing:a})=>{e instanceof s&&(t=a)}),t(e)}reportable(e,t){this.reportCallbacks.push({exception:e,reportUsing:t})}renderable(e,t){this.renderCallbacks.push({exception:e,renderUsing:t})}register(){}shouldntReport(e){return[...this.dontReport,...this.internalDontReport].findIndex(t=>e instanceof t)>=0}},"f");se(re,"Handler");var yt=Object.defineProperty,$t=i((r,e)=>yt(r,"name",{value:e,configurable:!0}),"r$2");let ie=i(class extends Error{},"s");$t(ie,"RuntimeException");var _t=Object.defineProperty,kt=i((r,e)=>_t(r,"name",{value:e,configurable:!0}),"c$1");class M{static macros={};static macro(e,t){this.macros[e]=t}static hasMacro(e){return Object.keys(this.macros).includes(e)}static flushMacros(){this.macros={}}static __getStatic(e){if(typeof e=="string")return(...t)=>{if(!this.hasMacro(e))throw new m(`Method ${this.constructor.name}.${e} does not exist.`);return this.macros[e](...t)}}__get(e){if(typeof e=="string")return(...t)=>{const s=this.constructor;if(!s.hasMacro(e))throw new m(`Method ${s.name}.${e} does not exist.`);return s.macros[e].bind(this)(...t)}}}i(M,"e"),kt(M,"Macroable");var ae=p(M,["__getStatic","__get"]),wt=Object.defineProperty,Ot=i((r,e)=>wt(r,"name",{value:e,configurable:!0}),"n");let f=i(class H{constructor(e,t,s=0,a="/",n=null,o=!1,c=!0,l=!1,u="lax"){this.name=e,this.value=t,this.expires=s,this.path=a,this.domain=n,this.secure=o,this.httpOnly=c,this.raw=l,this.sameSite=u,this.domain==null&&(this.domain=void 0),this.sameSite==null&&(this.sameSite=void 0)}static fromString(e){if(!e)return null;const t={name:"",expires:0,value:"",path:"/",domain:null,sameSite:"Lax",secure:!1,httpOnly:!1},s=x.parse(e);return t.name=Object.keys(s)[0],t.value=s[t.name],t.path=s.Path||"/",t.expires=H.getExpiresTimeFromLifeTime(Number(s["Max-Age"])/6e4),t.domain=s.Domain,t.sameSite=s.SameSite.toLowerCase(),e.includes("Secure;")&&(t.secure=!0),e.includes("HttpOnly;")&&(t.httpOnly=!0),new H(t.name,t.value,t.expires,t.path,t.domain,t.secure,t.httpOnly)}static getExpiresTimeFromLifeTime(e){const t=new Date;return t.setTime(t.getTime()+Number(e)*60*1e3)}getName(){return this.name}getExpiresTime(){return this.expires}getPath(){return this.path}getDomain(){return this.domain}isSecure(){return this.secure}isHttpOnly(){return this.httpOnly}isRaw(){return this.raw}getSameSite(){return this.sameSite}getValue(){return this.value}toString(){return x.serialize(this.name,this.value,{domain:this.domain,expires:new Date(this.expires),httpOnly:this.httpOnly,path:this.path,sameSite:this.sameSite,secure:this.secure})}},"r");Ot(f,"Cookie");var xt=Object.defineProperty,Rt=i((r,e)=>xt(r,"name",{value:e,configurable:!0}),"f");class I{_queued={};make(e,t,s=0,a="/",n=null,o=!1,c=!0,l=!1,u="lax"){const h=f.getExpiresTimeFromLifeTime(s);return new f(e,t,h,a,n,o,c,l,u)}queue(...e){let t;if(e[0]&&e[0]instanceof f)t=e[0];else{const[s,a,n,o,c,l,u,h,O]=e;t=this.make(s,a,n,o,c,l,u,h,O)}this._queued[t.getName()]||(this._queued[t.getName()]={}),this._queued[t.getName()][t.getPath()]=t}getQueuedCookies(){return Object.values(this._queued).map(e=>Object.values(e)[0])}flushQueuedCookies(){return this._queued={},this}forget(e,t="/",s=null){return this.make(e,null,-2628e3,t,s)}}i(I,"m"),Rt(I,"CookieJar");var Pt=Object.defineProperty,St=i((r,e)=>Pt(r,"name",{value:e,configurable:!0}),"s");class N extends ae{static macros={};static symbol=Symbol("Request");app;files={};req;data;sessionManager;authManager;_cookies;_cookieJar;router={};formRequest;constructor(e,t){super(),this.app=e,this.req=t;const s=typeof t?.query=="object"?t.query:{};this.data={...s,...t?.body},this.sessionManager=null,this.authManager=null,this._cookies=null,this._cookieJar=null,this.formRequest=null}get(e,t=null){return e.split(".").reduce((s,a)=>s?.[a],this.data)||t}input(e,t=null){return this.get(e,t)}header(e){return this.req.headers[e.toLowerCase()]}only(e){return e.reduce((t,s)=>(t[s]=this.data[s],t),{})}all(){return this.data}allFiles(){return this.files}file(e){return this.files[e]||null}method(){return this.req.method}merge(e){return this.data={...this.data,...e},this}getOriginalRequest(){return this.req}instance(){return this}session(){return this.sessionManager?this.sessionManager:this.sessionManager=new $(this.app).setRequest(this)}get cookies(){return this._cookies||(this._cookies=x.parse(this.req.headers?.cookie||""),Object.defineProperty(this._cookies,"set",{value:this.setCookie.bind(this)}),Object.defineProperty(this._cookies,"get",{value:this.getCookie.bind(this)})),this._cookies}get cookieJar(){return this._cookieJar||(this._cookieJar=new I),this._cookieJar}setCookie(e,t){this._cookies||(this._cookies={}),this._cookies[e]=t}getCookie(e){return this._cookies||(this._cookies={}),this._cookies[e]}auth(){return this.authManager?this.authManager:this.authManager=new G(this.app).setRequest(this)}wantsJson(){const e=this.getOriginalRequest().headers.accept||"";return d.contains(e,["/json","+json"])}async validate(e,t={},s={}){return await Y.make(this.data,e,t,s).validate()}setFormRequest(e){return(this.formRequest=new e(this.app,this.req)).merge(this.data)}getFormRequest(){return this.formRequest}is(...e){return d.is(e,this.req.url.replace("/",""))}setRouter(e){this.router=e}getRouter(){return this.router}}i(N,"Request"),St(N,"Request");var qt=p(N),Ct=Object.defineProperty,jt=i((r,e)=>Ct(r,"name",{value:e,configurable:!0}),"r");class U{app;path;data={};ctx={};constructor(e){this.app=e}make(e,t={}){return this.path=e.split(".").join(me.sep),this.data=t,this}withContext(e){return this.ctx=e,this}async render(e){throw new Error("Method not implemented.")}}i(U,"p"),jt(U,"ViewFactory");var ne=U;export{_ as A,te as B,ne as C,Qe as E,S as a,$ as b,y as c,qt as d,A as e,ie as f,p as g,ae as h,re as i,F as j,k,w as l,f as m,v as n,z as o,G as p,T as q,D as r,g as s,j as t,R as u,m as v,Y as w,Ve as x,d as y,C as z};