better-auth
Version:
The most comprehensive authentication library for TypeScript.
98 lines (95 loc) • 3.17 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';
import { c as createAuthMiddleware } from '../shared/better-auth.oUCDPPbQ.mjs';
import '../shared/better-auth.Cc72UxUH.mjs';
import '../shared/better-auth.BZads9rH.mjs';
import '../plugins/organization/access/index.mjs';
import '../shared/better-auth.B4Qoxdgc.mjs';
import '../shared/better-auth.Cqykj82J.mjs';
import 'defu';
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 '@better-auth/utils/otp';
import '../plugins/admin/access/index.mjs';
import '@better-fetch/fetch';
import '@better-auth/utils/random';
import '../shared/better-auth.fsvwNeUx.mjs';
import 'kysely';
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 '../shared/better-auth.dn8_oqOu.mjs';
import '../social-providers/index.mjs';
import '../shared/better-auth.DufyW0qf.mjs';
import '../shared/better-auth.BUPPRXfK.mjs';
import '../shared/better-auth.DDEbWX-S.mjs';
import 'jose/errors';
import '../shared/better-auth.ffWeg50w.mjs';
import '../shared/better-auth.OuYYTHC7.mjs';
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');
const cookieHelper = await cookies();
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 };