/**
 * Minified by jsDelivr using Terser v5.39.0.
 * Original file: /npm/@roshan-labs/auth@0.1.20/dist/module.mjs
 *
 * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
 */
import{defineNuxtModule,useLogger,createResolver,addTypeTemplate,addImports,addRouteMiddleware,addPlugin}from"@nuxt/kit";import{defu}from"defu";import{joinURL}from"ufo";import{genInterface}from"knitwork";import{getOriginAndPathnameFromURL}from"../dist/runtime/utils/helper.js";const defaultOptions={enabled:!0,session:{enableRefreshPeriodically:!1,enableRefreshOnWindowFocus:!0},globalAppMiddleware:{enabled:!1,allow404WithoutAuth:!0,addDefaultCallbackUrl:void 0}},defaultProvider={local:{type:"local",endpoints:{signIn:{path:"/login",method:"post"},signOut:{path:"/logout",method:"post"},signUp:{path:"/register",method:"post"},getSession:{path:"/session",method:"get"}},pages:{login:"/login",forbidden:"/forbidden"},token:{signInResponseTokenPointer:"/token",headerName:"Authorization",prefix:"Bearer",maxAgeInSeconds:1800,sameSiteAttribute:"lax"},sessionData:{type:{id:"string | number"},getSessionResponsePointer:""},permissionData:{enabled:!1,getSessionResponsePermissionPointer:"/permission"},redirectKey:"redirectUrl"},authjs:{type:"authjs"}},configKey="auth",PACKAGE_NAME="@roshan-labs/auth",module$1=defineNuxtModule({meta:{name:"@roshan-labs/auth",configKey:"auth"},async setup(e,t){const o=useLogger(PACKAGE_NAME),{origin:i,pathname:a="/api/auth"}=getOriginAndPathnameFromURL(e.baseURL??""),n=e.provider?.type??"local",r={...defu(e,defaultOptions,{params:{origin:i,pathname:a,fullBaseURL:joinURL(i??"",a)}}),provider:defu(e.provider,defaultProvider[n])};if(!r.enabled)return void o.info(`Skipping ${PACKAGE_NAME} setup, as module is not enabled`);o.info(`${PACKAGE_NAME} setup starting`),t.options.runtimeConfig.public.auth=r;const{resolve:s}=createResolver(import.meta.url);"authjs"===r.provider.type&&t.hook("nitro:config",(e=>{e.alias=e.alias||{},e.alias["#auth"]=s("./runtime/server/authjs")})),addTypeTemplate({filename:"types/auth.d.ts",getContents:()=>['declare module "#auth" {',"authjs"===r.provider.type?[`  const NuxtAuthHandler: typeof import('${s("./runtime/server/authjs")}').NuxtAuthHandler`,`  const getServerSession: typeof import('${s("./runtime/server/authjs")}').getServerSession`].join("\n"):genInterface("SessionData",r.provider.sessionData.type),"}"].join("\n")}),addImports([{from:s(`./runtime/composables/${r.provider.type}/use-auth`),name:"useAuth"}]),addRouteMiddleware({name:"auth",path:s("./runtime/middleware/auth")}),addPlugin(s("./runtime/plugins/auth")),"authjs"!==r.provider.type&&r.provider.permissionData.enabled&&addPlugin(s("./runtime/plugins/permission")),o.info(`${PACKAGE_NAME} setup completed`)}});export{module$1 as default};
//# sourceMappingURL=/sm/256cd2be3ea8148470eec02ea3b9e2e290270830ba3f3d86dc19c0f7e361d0c4.map