UNPKG

authrix

Version:

Lightweight, flexible authentication library for Node.js and TypeScript.

1 lines 5.37 kB
import {a}from'./chunk-IACBPVYD.mjs';export{a as requireAuth}from'./chunk-IACBPVYD.mjs';import {a as a$2,b as b$2,c as c$2,d as d$1,e}from'./chunk-KPKS7MLL.mjs';import {a as a$1}from'./chunk-BHP666OX.mjs';import {a as a$3}from'./chunk-A4X5QZSX.mjs';export{b as createLogger,a as logger,c as reconfigureLogger}from'./chunk-A4X5QZSX.mjs';import'./chunk-YS4LLLFP.mjs';import {c as c$1,g}from'./chunk-5VQXQYKM.mjs';export{e as generateSecurePassword,a as hashPassword,f as needsRehash,d as validatePassword,c as verifyAndCheckRehash,b as verifyPassword}from'./chunk-5NOQNI5F.mjs';import {b as b$1}from'./chunk-GACMQPPZ.mjs';export{b as authConfig,e as getAuthrixStatus,c as initAuth,d as isAuthrixInitialized}from'./chunk-GACMQPPZ.mjs';import'./chunk-3SAEGOMQ.mjs';async function F(e,t,r){try{let o=e.cookies[b$1.cookieName];if(!o)throw new c$1("Authentication token is missing.");let n=a$1(o),i=b$1.db;if(!i)throw new g("Database not configured.");let a=await i.findUserById(n.id);if(!a)throw t.clearCookie(b$1.cookieName),new c$1("User not found or token is invalid.");e.user={id:a.id,email:a.email,createdAt:a.createdAt},r();}catch(o){r(o);}}function j(e){let{framework:t,maxAge:r,httpOnly:o,secure:n,sameSite:i,path:a,expires:C}=e,f={httpOnly:o!==false,sameSite:i||"lax",path:a||"/",secure:b$1.forceSecureCookies||n||process.env.NODE_ENV==="production"};return typeof r=="number"&&(f.maxAge=t==="header"?O(r):r),C&&(f.expires=C),f}function u(){return b$1.cookieName||"auth_token"}var W=u;function O(e){return typeof e!="number"?e:e>1e6?Math.floor(e/1e3):e}function k(e,t={}){let r=[];r.push(`${u()}=${e}`);let o={httpOnly:true,sameSite:"lax",path:"/",secure:b$1.forceSecureCookies||process.env.NODE_ENV==="production",...t};return o.httpOnly&&r.push("HttpOnly"),o.path&&r.push(`Path=${o.path}`),typeof o.maxAge=="number"&&r.push(`Max-Age=${O(o.maxAge)}`),o.expires&&r.push(`Expires=${o.expires.toUTCString()}`),o.sameSite&&r.push(`SameSite=${o.sameSite}`),o.secure&&r.push("Secure"),r.join("; ")}function N(){return k("",{expires:new Date(0)})}async function B(e,t,r){try{let o=await import('next/headers').catch(()=>null);if(o?.cookies)return o.cookies().set(e,t,r),!0}catch{}return false}async function G(e,t,r){let o=u();if(r?.res?.setHeader){let n=k(e,t),i=r.res.getHeader?.("Set-Cookie");if(i){let a=Array.isArray(i)?i:[i];r.res.setHeader("Set-Cookie",[...a,n]);}else r.res.setHeader("Set-Cookie",n);return true}return !!await B(o,e,t)}async function K(e){let t=u(),r=N();if(e?.res?.setHeader){let o=e.res.getHeader?.("Set-Cookie");if(o){let n=Array.isArray(o)?o:[o];e.res.setHeader("Set-Cookie",[...n,r]);}else e.res.setHeader("Set-Cookie",r);return true}try{let o=await import('next/headers').catch(()=>null);if(o?.cookies)return o.cookies().set(t,"",{path:"/",expires:new Date(0)}),!0}catch{}return false}var d={getCookieName:u,applyAuthCookie:G,clearAuthCookie:K,createAuthCookieString:k,createLogoutCookieString:N,normalizeCookieOptions:j,getAuthCookieName:W};async function R(){try{return await import('./nextjs-JULZU27K.mjs')}catch{return null}}async function Q(e,t,r={},o){let n=await a$2(e,t,r);return {user:n.user,token:n.token,meta:{source:"core"}}}async function X(e,t,r={},o){let n=await b$2(e,t,r);return {user:n.user,token:n.token,meta:{source:"core"}}}async function Y(e={},t){return c$2(e)}async function b(e){let t=d.getAuthCookieName();return e?.req?.cookies?.[t]||null}async function T(e){let t=await b(e);return d$1(t)}async function Z(e$1){let t=await b(e$1);return e(t)}function ee(){return a}function D(e){return async(t,r)=>{try{let o=await T({req:t});return t.user=o||null,e(t,r)}catch{return t.user=null,e(t,r)}}}function te(e){return D(e)}var oe={require:a,guard:ee(),optional:D,withUser:te};async function c(e){let t=await R();if(!t)throw new Error(`Next.js handlers not available (attempted: ${e}).`);let o={signup:t.createSignupHandler,signin:t.createSigninHandler,logout:t.createLogoutHandler,currentUser:t.createCurrentUserHandler,validateToken:t.createTokenValidationHandler}[e];if(!o)throw new Error(`Unknown handler ${e}`);return o()}var re={signup:()=>c("signup"),signin:()=>c("signin"),logout:()=>c("logout"),currentUser:()=>c("currentUser"),validateToken:()=>c("validateToken")},ne={create:(e,t)=>d.createAuthCookieString(e,t),clear:()=>d.createLogoutCookieString()},ie={detect:()=>({isNextJs:!!globalThis.EdgeRuntime||!!globalThis.c}),async next(){let e=await R();return e?{info:e.getNextJsEnvironmentInfo?.(),infoAsync:e.getNextJsEnvironmentInfoAsync?.(),reset:e.resetEnvironmentDetection,redetect:e.redetectNextJsEnvironment,injectTest:e.forceNextJsAvailability}:null}},se={actions:{signup:Q,signin:X,logout:Y},session:{getUser:T,isAuthenticated:Z},middleware:oe,handlers:re,cookies:ne,env:ie};var E=new Set;function H(e,t){if(process.env.NODE_ENV==="production")return;let r=`${e}->${t}`;E.has(r)||(E.add(r),a$3.structuredWarn({category:"deprecation",action:e,message:`${e} deprecated. Use ${t}`,replacement:t}));}function x(e,t,r){return (...o)=>(H(t,r),e(...o))}var Ne=x(a$2,"signupCore (root export)","auth.core.signup via authrix/advanced"),Re=x(b$2,"signinCore (root export)","auth.core.signin via authrix/advanced"),be=x(c$2,"logoutCore (root export)","auth.core.logout via authrix/advanced");export{se as auth,F as authMiddleware,be as logoutCoreDeprecated,Re as signinCoreDeprecated,Ne as signupCoreDeprecated};