better-auth
Version:
The most comprehensive authentication library for TypeScript.
104 lines (101 loc) • 3.27 kB
JavaScript
import '../shared/better-auth.8zoxzg-F.mjs';
import '@better-auth/utils/base64';
import '@better-auth/utils/hmac';
import '@better-auth/utils/binary';
import { parseSetCookieHeader } from '../cookies/index.mjs';
import 'better-call';
import 'zod/v4';
import { i as createAuthMiddleware } from '../shared/better-auth.z3dsxLxE.mjs';
import '../shared/better-auth.n2KFGwjY.mjs';
import '../shared/better-auth.DbQJKdHV.mjs';
import '../plugins/organization/access/index.mjs';
import '@better-auth/utils/random';
import '@better-auth/utils/hash';
import '@noble/ciphers/chacha';
import '@noble/ciphers/utils';
import '@noble/ciphers/webcrypto';
import 'jose';
import '@noble/hashes/scrypt';
import '@better-auth/utils';
import '@better-auth/utils/hex';
import '@noble/hashes/utils';
import '../shared/better-auth.B4Qoxdgc.mjs';
import '../shared/better-auth.DBGfIDnh.mjs';
import 'kysely';
import 'defu';
import '@better-auth/utils/otp';
import '../plugins/admin/access/index.mjs';
import '@better-fetch/fetch';
import '../shared/better-auth.CGrHn1Ih.mjs';
import 'zod';
import '@noble/hashes/sha3';
import '../shared/better-auth.DdzSJf-n.mjs';
import '../shared/better-auth.CW6D9eSx.mjs';
import '../shared/better-auth.tB5eU6EY.mjs';
import '../shared/better-auth.VTXNLFMT.mjs';
import '../crypto/index.mjs';
import 'jose/errors';
import '../plugins/access/index.mjs';
function toNextJsHandler(auth) {
const handler = async (request) => {
return "handler" in auth ? auth.handler(request) : auth(request);
};
return {
GET: handler,
POST: handler
};
}
const nextCookies = () => {
return {
id: "next-cookies",
hooks: {
after: [
{
matcher(ctx) {
return true;
},
handler: createAuthMiddleware(async (ctx) => {
const returned = ctx.context.responseHeaders;
if ("_flag" in ctx && ctx._flag === "router") {
return;
}
if (returned instanceof Headers) {
const setCookies = returned?.get("set-cookie");
if (!setCookies) return;
const parsed = parseSetCookieHeader(setCookies);
const { cookies } = await import('next/headers');
let cookieHelper;
try {
cookieHelper = await cookies();
} catch (error) {
if (error instanceof Error && error.message.startsWith(
"`cookies` was called outside a request scope."
)) {
return;
}
throw error;
}
parsed.forEach((value, key) => {
if (!key) return;
const opts = {
sameSite: value.samesite,
secure: value.secure,
maxAge: value["max-age"],
httpOnly: value.httponly,
domain: value.domain,
path: value.path
};
try {
cookieHelper.set(key, decodeURIComponent(value.value), opts);
} catch (e) {
}
});
return;
}
})
}
]
}
};
};
export { nextCookies, toNextJsHandler };