@delmaredigital/payload-better-auth 0.1.4 → 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. package/LICENSE +21 -73
  2. package/README.md +165 -290
  3. package/dist/adapter/collections.d.ts +52 -0
  4. package/dist/adapter/collections.d.ts.map +1 -0
  5. package/dist/adapter/collections.js +150 -0
  6. package/dist/adapter/collections.js.map +1 -0
  7. package/dist/adapter/index.d.ts +6 -9
  8. package/dist/adapter/index.d.ts.map +1 -0
  9. package/dist/adapter/index.js +399 -350
  10. package/dist/adapter/index.js.map +1 -1
  11. package/dist/components/BeforeLogin.d.ts +11 -0
  12. package/dist/components/BeforeLogin.d.ts.map +1 -0
  13. package/dist/components/BeforeLogin.js +25 -0
  14. package/dist/components/BeforeLogin.js.map +1 -0
  15. package/dist/components/LoginView.d.ts +21 -0
  16. package/dist/components/LoginView.d.ts.map +1 -0
  17. package/dist/components/LoginView.js +214 -0
  18. package/dist/components/LoginView.js.map +1 -0
  19. package/dist/components/LogoutButton.d.ts +7 -0
  20. package/dist/components/LogoutButton.d.ts.map +1 -0
  21. package/dist/components/LogoutButton.js +43 -0
  22. package/dist/components/LogoutButton.js.map +1 -0
  23. package/dist/exports/client.d.ts +6 -0
  24. package/dist/exports/client.d.ts.map +1 -0
  25. package/dist/exports/client.js +6 -0
  26. package/dist/exports/client.js.map +1 -0
  27. package/dist/exports/components.d.ts +12 -0
  28. package/dist/exports/components.d.ts.map +1 -0
  29. package/dist/exports/components.js +10 -0
  30. package/dist/exports/components.js.map +1 -0
  31. package/dist/index.d.ts +14 -115
  32. package/dist/index.d.ts.map +1 -0
  33. package/dist/index.js +18 -610
  34. package/dist/index.js.map +1 -1
  35. package/dist/plugin/index.d.ts +68 -16
  36. package/dist/plugin/index.d.ts.map +1 -0
  37. package/dist/plugin/index.js +268 -76
  38. package/dist/plugin/index.js.map +1 -1
  39. package/dist/utils/detectAuthConfig.d.ts +18 -0
  40. package/dist/utils/detectAuthConfig.d.ts.map +1 -0
  41. package/dist/utils/detectAuthConfig.js +31 -0
  42. package/dist/utils/detectAuthConfig.js.map +1 -0
  43. package/dist/utils/session.d.ts +63 -0
  44. package/dist/utils/session.d.ts.map +1 -0
  45. package/dist/utils/session.js +65 -0
  46. package/dist/utils/session.js.map +1 -0
  47. package/package.json +22 -23
  48. package/dist/adapter/index.d.mts +0 -70
  49. package/dist/adapter/index.mjs +0 -366
  50. package/dist/adapter/index.mjs.map +0 -1
  51. package/dist/client.d.mts +0 -1
  52. package/dist/client.d.ts +0 -1
  53. package/dist/client.js +0 -12
  54. package/dist/client.js.map +0 -1
  55. package/dist/client.mjs +0 -3
  56. package/dist/client.mjs.map +0 -1
  57. package/dist/index.d.mts +0 -120
  58. package/dist/index.mjs +0 -603
  59. package/dist/index.mjs.map +0 -1
  60. package/dist/plugin/index.d.mts +0 -78
  61. package/dist/plugin/index.mjs +0 -82
  62. package/dist/plugin/index.mjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/adapter/index.ts"],"names":["result","doc"],"mappings":"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","file":"index.js","sourcesContent":["/**\n * Payload CMS Adapter for Better Auth\n *\n * A clean adapter that bridges Better Auth to Payload collections.\n * Follows the same factory pattern as payload-auth for compatibility.\n *\n * @packageDocumentation\n */\n\nimport type { Adapter, BetterAuthOptions, Where } from 'better-auth'\nimport type { BasePayload, Where as PayloadWhere, CollectionSlug } from 'payload'\n\nexport type PayloadAdapterConfig = {\n /**\n * The Payload instance or a function that returns it.\n * Use a function for lazy initialization.\n */\n payloadClient: BasePayload | (() => Promise<BasePayload>)\n\n /**\n * Adapter configuration options\n */\n adapterConfig: {\n /**\n * Map Better Auth model names to Payload collection slugs.\n * Defaults: { user: 'users', session: 'sessions', account: 'accounts', verification: 'verifications' }\n */\n collections?: Record<string, string>\n\n /**\n * Enable debug logging for troubleshooting\n */\n enableDebugLogs?: boolean\n\n /**\n * ID type used by Payload\n * - 'number' for SERIAL/auto-increment (recommended - Payload default)\n * - 'text' for UUID (requires idType: 'uuid' in Payload's db adapter)\n */\n idType: 'number' | 'text'\n }\n}\n\nconst DEFAULT_COLLECTIONS: Record<string, string> = {\n user: 'users',\n session: 'sessions',\n account: 'accounts',\n verification: 'verifications',\n}\n\n/**\n * Creates a Better Auth adapter that uses Payload CMS as the database.\n *\n * Returns a factory function that Better Auth calls with its options.\n * This matches the pattern used by other Better Auth adapters.\n *\n * @example\n * ```ts\n * import { payloadAdapter } from '@delmare/payload-better-auth/adapter'\n *\n * const auth = betterAuth({\n * database: payloadAdapter({\n * payloadClient: payload,\n * adapterConfig: {\n * idType: 'number', // Use Payload's default SERIAL IDs\n * collections: { user: 'users' },\n * },\n * }),\n * // Required when using serial/integer IDs\n * advanced: {\n * database: {\n * generateId: 'serial',\n * },\n * },\n * })\n * ```\n */\nexport function payloadAdapter({\n payloadClient,\n adapterConfig,\n}: PayloadAdapterConfig): (options: BetterAuthOptions) => Adapter {\n const { collections = {}, enableDebugLogs = false, idType } = adapterConfig\n const finalCollections = { ...DEFAULT_COLLECTIONS, ...collections }\n\n const log = (...args: unknown[]) => {\n if (enableDebugLogs) console.log('[payload-adapter]', ...args)\n }\n\n async function resolvePayloadClient(): Promise<BasePayload> {\n return typeof payloadClient === 'function'\n ? await payloadClient()\n : payloadClient\n }\n\n function getCollection(model: string): CollectionSlug {\n return (finalCollections[model] ?? model) as CollectionSlug\n }\n\n /**\n * Transform field name for where clause (Better Auth → Payload)\n * Converts relationship fields like `userId` to `user`\n */\n function transformFieldName(fieldName: string): string {\n if (\n fieldName.endsWith('Id') &&\n fieldName !== 'id' &&\n fieldName !== 'accountId' &&\n fieldName !== 'providerId'\n ) {\n return fieldName.slice(0, -2)\n }\n return fieldName\n }\n\n /**\n * Convert Better Auth where clause to Payload where clause\n */\n function convertWhere(where?: Where[]): PayloadWhere {\n if (!where || where.length === 0) return {}\n\n if (where.length === 1) {\n const w = where[0]\n return {\n [transformFieldName(w.field)]: convertOperator(w.operator, w.value),\n }\n }\n\n const andConditions = where.filter((w) => w.connector !== 'OR')\n const orConditions = where.filter((w) => w.connector === 'OR')\n\n const result: PayloadWhere = {}\n\n if (andConditions.length > 0) {\n result.and = andConditions.map((w) => ({\n [transformFieldName(w.field)]: convertOperator(w.operator, w.value),\n }))\n }\n\n if (orConditions.length > 0) {\n result.or = orConditions.map((w) => ({\n [transformFieldName(w.field)]: convertOperator(w.operator, w.value),\n }))\n }\n\n return result\n }\n\n function convertOperator(\n operator: string | undefined,\n value: unknown\n ): Record<string, unknown> {\n switch (operator) {\n case 'eq':\n return { equals: value }\n case 'ne':\n return { not_equals: value }\n case 'gt':\n return { greater_than: value }\n case 'gte':\n return { greater_than_equal: value }\n case 'lt':\n return { less_than: value }\n case 'lte':\n return { less_than_equal: value }\n case 'in':\n return { in: value }\n case 'contains':\n return { contains: value }\n case 'starts_with':\n return { like: `${value}%` }\n case 'ends_with':\n return { like: `%${value}` }\n default:\n return { equals: value }\n }\n }\n\n function extractSingleId(where: PayloadWhere): string | number | null {\n if ('and' in where || 'or' in where) return null\n\n const idCondition = where.id\n if (\n idCondition &&\n typeof idCondition === 'object' &&\n 'equals' in idCondition\n ) {\n const value = idCondition.equals\n if (typeof value === 'string' || typeof value === 'number') {\n return value\n }\n }\n\n return null\n }\n\n /**\n * Transform input data (Better Auth → Payload field names)\n * Also converts relationship IDs to the correct type based on idType\n */\n function transformInput(\n data: Record<string, unknown>\n ): Record<string, unknown> {\n const result: Record<string, unknown> = {}\n\n for (const [key, value] of Object.entries(data)) {\n if (\n key.endsWith('Id') &&\n key !== 'id' &&\n key !== 'accountId' &&\n key !== 'providerId'\n ) {\n // Transform userId -> user and convert to correct ID type for relationships\n const fieldName = key.slice(0, -2)\n if (idType === 'number' && typeof value === 'string') {\n const num = parseInt(value, 10)\n result[fieldName] = isNaN(num) ? value : num\n } else {\n result[fieldName] = value\n }\n } else {\n result[key] = value\n }\n }\n\n return result\n }\n\n /**\n * Transform output data (Payload → Better Auth field names)\n */\n function transformOutput<T>(doc: T): T {\n if (!doc || typeof doc !== 'object') return doc\n\n const result = { ...doc } as Record<string, unknown>\n\n if ('id' in result && result.id !== undefined) {\n result.id = String(result.id)\n }\n\n for (const [key, value] of Object.entries(result)) {\n if (value && typeof value === 'object' && 'id' in value) {\n result[`${key}Id`] = String((value as { id: unknown }).id)\n delete result[key]\n } else if (\n typeof value === 'string' &&\n /^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}/.test(value)\n ) {\n result[key] = new Date(value)\n }\n }\n\n return result as T\n }\n\n function convertId(id: string | number): string | number {\n if (idType === 'number' && typeof id === 'string') {\n const num = parseInt(id, 10)\n return isNaN(num) ? id : num\n }\n if (idType === 'text' && typeof id === 'number') {\n return String(id)\n }\n return id\n }\n\n /**\n * Handle join requests - fetch related data\n */\n async function handleJoins(\n payload: BasePayload,\n doc: Record<string, unknown>,\n model: string,\n join: Record<string, boolean | { limit?: number }>\n ): Promise<Record<string, unknown>> {\n const result = { ...doc }\n\n for (const [joinKey, joinConfig] of Object.entries(join)) {\n if (!joinConfig) continue\n\n const limit = typeof joinConfig === 'object' ? joinConfig.limit : undefined\n\n log('handleJoins', { model, joinKey, docId: doc.id })\n\n if (model === 'user' && joinKey === 'account') {\n const accounts = await payload.find({\n collection: getCollection('account'),\n where: { user: { equals: doc.id } },\n limit: limit ?? 100,\n depth: 0,\n })\n result[joinKey] = accounts.docs.map((a) => transformOutput(a))\n } else if (model === 'session' && joinKey === 'user') {\n const userId = doc.userId as string\n if (userId) {\n try {\n const user = await payload.findByID({\n collection: getCollection('user'),\n id: userId,\n depth: 0,\n })\n result[joinKey] = transformOutput(user)\n } catch {\n result[joinKey] = null\n }\n }\n } else if (model === 'account' && joinKey === 'user') {\n const userId = doc.userId as string\n if (userId) {\n try {\n const user = await payload.findByID({\n collection: getCollection('user'),\n id: userId,\n depth: 0,\n })\n result[joinKey] = transformOutput(user)\n } catch {\n result[joinKey] = null\n }\n }\n }\n // Extensibility: Add more join patterns here for plugins\n }\n\n return result\n }\n\n return (_options: BetterAuthOptions): Adapter => {\n log('Adapter initialized', { collections: finalCollections })\n\n return {\n id: 'payload-adapter',\n\n async create<T extends Record<string, unknown>, R = T>({\n model,\n data,\n }: {\n model: string\n data: Omit<T, 'id'>\n select?: string[]\n forceAllowId?: boolean\n }): Promise<R> {\n const payload = await resolvePayloadClient()\n const collection = getCollection(model)\n const transformedData = transformInput(data as Record<string, unknown>)\n\n log('create', { collection, data: transformedData })\n\n try {\n const result = await payload.create({\n collection,\n data: transformedData,\n depth: 0,\n })\n return transformOutput(result) as R\n } catch (error) {\n console.error('[payload-adapter] create failed:', {\n collection,\n model,\n error: error instanceof Error ? error.message : error,\n })\n throw error\n }\n },\n\n async findOne<T>({\n model,\n where,\n select: _select,\n join,\n }: {\n model: string\n where: Where[]\n select?: string[]\n join?: Record<string, boolean | { limit?: number }>\n }): Promise<T | null> {\n try {\n const payload = await resolvePayloadClient()\n const collection = getCollection(model)\n const payloadWhere = convertWhere(where)\n\n const id = extractSingleId(payloadWhere)\n if (id) {\n try {\n const result = await payload.findByID({\n collection,\n id: convertId(id),\n depth: 1,\n })\n let doc = transformOutput(result) as unknown as Record<\n string,\n unknown\n >\n if (join) {\n doc = await handleJoins(payload, doc, model, join)\n }\n return doc as unknown as T\n } catch (error) {\n if (\n error instanceof Error &&\n 'status' in error &&\n (error as Error & { status: number }).status === 404\n ) {\n return null\n }\n throw error\n }\n }\n\n const result = await payload.find({\n collection,\n where: payloadWhere,\n limit: 1,\n depth: 1,\n })\n\n let doc: Record<string, unknown> | null = result.docs[0]\n ? (transformOutput(result.docs[0]) as unknown as Record<\n string,\n unknown\n >)\n : null\n\n if (doc && join) {\n doc = await handleJoins(payload, doc, model, join)\n }\n\n return doc as unknown as T | null\n } catch (error) {\n console.error('[payload-adapter] findOne FAILED', {\n model,\n where,\n error,\n })\n throw error\n }\n },\n\n async findMany<T>({\n model,\n where,\n limit,\n offset,\n sortBy,\n }: {\n model: string\n where?: Where[]\n limit?: number\n sortBy?: { field: string; direction: 'asc' | 'desc' }\n offset?: number\n join?: Record<string, boolean | { limit?: number }>\n }): Promise<T[]> {\n const payload = await resolvePayloadClient()\n const collection = getCollection(model)\n const payloadWhere = convertWhere(where)\n\n const result = await payload.find({\n collection,\n where: payloadWhere,\n limit: limit ?? 100,\n page: offset ? Math.floor(offset / (limit ?? 100)) + 1 : 1,\n sort: sortBy\n ? `${sortBy.direction === 'desc' ? '-' : ''}${sortBy.field}`\n : undefined,\n depth: 1,\n })\n\n return result.docs.map((doc) => transformOutput(doc)) as T[]\n },\n\n async update<T>({\n model,\n where,\n update: data,\n }: {\n model: string\n where: Where[]\n update: Record<string, unknown>\n }): Promise<T | null> {\n const payload = await resolvePayloadClient()\n const collection = getCollection(model)\n const payloadWhere = convertWhere(where)\n const transformedData = transformInput(data)\n\n const id = extractSingleId(payloadWhere)\n if (id) {\n const result = await payload.update({\n collection,\n id: convertId(id),\n data: transformedData,\n depth: 1,\n })\n return transformOutput(result) as T\n }\n\n const result = await payload.update({\n collection,\n where: payloadWhere,\n data: transformedData,\n depth: 1,\n })\n\n return result.docs[0] ? (transformOutput(result.docs[0]) as T) : null\n },\n\n async updateMany({\n model,\n where,\n update: data,\n }: {\n model: string\n where: Where[]\n update: Record<string, unknown>\n }): Promise<number> {\n const payload = await resolvePayloadClient()\n const collection = getCollection(model)\n const payloadWhere = convertWhere(where)\n const transformedData = transformInput(data)\n\n const result = await payload.update({\n collection,\n where: payloadWhere,\n data: transformedData,\n depth: 0,\n })\n\n return result.docs.length\n },\n\n async delete({ model, where }: { model: string; where: Where[] }): Promise<void> {\n const payload = await resolvePayloadClient()\n const collection = getCollection(model)\n const payloadWhere = convertWhere(where)\n\n const id = extractSingleId(payloadWhere)\n if (id) {\n await payload.delete({ collection, id: convertId(id) })\n return\n }\n\n await payload.delete({ collection, where: payloadWhere })\n },\n\n async deleteMany({\n model,\n where,\n }: {\n model: string\n where: Where[]\n }): Promise<number> {\n const payload = await resolvePayloadClient()\n const collection = getCollection(model)\n const payloadWhere = convertWhere(where)\n\n const result = await payload.delete({\n collection,\n where: payloadWhere,\n })\n\n return result.docs.length\n },\n\n async count({\n model,\n where,\n }: {\n model: string\n where?: Where[]\n }): Promise<number> {\n const payload = await resolvePayloadClient()\n const collection = getCollection(model)\n const payloadWhere = convertWhere(where)\n\n const result = await payload.count({\n collection,\n where: payloadWhere,\n })\n\n return result.totalDocs\n },\n\n async transaction(callback) {\n return callback(this)\n },\n }\n }\n}\n\nexport type { Adapter, BetterAuthOptions }\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/adapter/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ export type BeforeLoginProps = {
2
+ /** URL to redirect to for login. Default: '/admin/login' */
3
+ loginUrl?: string;
4
+ };
5
+ /**
6
+ * BeforeLogin component that redirects to the custom login page.
7
+ * Injected into Payload's beforeLogin slot to intercept default login.
8
+ */
9
+ export declare function BeforeLogin({ loginUrl }: BeforeLoginProps): import("react/jsx-runtime").JSX.Element;
10
+ export default BeforeLogin;
11
+ //# sourceMappingURL=BeforeLogin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BeforeLogin.d.ts","sourceRoot":"","sources":["../../src/components/BeforeLogin.tsx"],"names":[],"mappings":"AAKA,MAAM,MAAM,gBAAgB,GAAG;IAC7B,4DAA4D;IAC5D,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,CAAA;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,EAAE,QAAyB,EAAE,EAAE,gBAAgB,2CAsB1E;AAED,eAAe,WAAW,CAAA"}
@@ -0,0 +1,25 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { useEffect } from 'react';
4
+ import { useRouter } from 'next/navigation.js';
5
+ /**
6
+ * BeforeLogin component that redirects to the custom login page.
7
+ * Injected into Payload's beforeLogin slot to intercept default login.
8
+ */
9
+ export function BeforeLogin({ loginUrl = '/admin/login' }) {
10
+ const router = useRouter();
11
+ useEffect(() => {
12
+ router.replace(loginUrl);
13
+ }, [router, loginUrl]);
14
+ // Show loading state while redirecting
15
+ return (_jsx("div", { style: {
16
+ display: 'flex',
17
+ minHeight: '100vh',
18
+ alignItems: 'center',
19
+ justifyContent: 'center',
20
+ background: 'var(--theme-bg)',
21
+ color: 'var(--theme-text)',
22
+ }, children: _jsx("div", { children: "Redirecting to login..." }) }));
23
+ }
24
+ export default BeforeLogin;
25
+ //# sourceMappingURL=BeforeLogin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BeforeLogin.js","sourceRoot":"","sources":["../../src/components/BeforeLogin.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAO9C;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,EAAE,QAAQ,GAAG,cAAc,EAAoB;IACzE,MAAM,MAAM,GAAG,SAAS,EAAE,CAAA;IAE1B,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;IAC1B,CAAC,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAA;IAEtB,uCAAuC;IACvC,OAAO,CACL,cACE,KAAK,EAAE;YACL,OAAO,EAAE,MAAM;YACf,SAAS,EAAE,OAAO;YAClB,UAAU,EAAE,QAAQ;YACpB,cAAc,EAAE,QAAQ;YACxB,UAAU,EAAE,iBAAiB;YAC7B,KAAK,EAAE,mBAAmB;SAC3B,YAED,oDAAkC,GAC9B,CACP,CAAA;AACH,CAAC;AAED,eAAe,WAAW,CAAA"}
@@ -0,0 +1,21 @@
1
+ export type LoginViewProps = {
2
+ /** Custom logo element */
3
+ logo?: React.ReactNode;
4
+ /** Login page title. Default: 'Login' */
5
+ title?: string;
6
+ /** Path to redirect after successful login. Default: '/admin' */
7
+ afterLoginPath?: string;
8
+ /**
9
+ * Required role for admin access. Default: 'admin'.
10
+ * Set to undefined/null to disable role checking.
11
+ * For complex RBAC, disable the login view and create your own.
12
+ */
13
+ requiredRole?: string | null;
14
+ };
15
+ /**
16
+ * Full login page component matching Payload's admin theme.
17
+ * Registered as a custom admin view at /admin/login.
18
+ */
19
+ export declare function LoginView({ logo, title, afterLoginPath, requiredRole, }: LoginViewProps): import("react/jsx-runtime").JSX.Element;
20
+ export default LoginView;
21
+ //# sourceMappingURL=LoginView.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LoginView.d.ts","sourceRoot":"","sources":["../../src/components/LoginView.tsx"],"names":[],"mappings":"AAKA,MAAM,MAAM,cAAc,GAAG;IAC3B,0BAA0B;IAC1B,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACtB,yCAAyC;IACzC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,iEAAiE;IACjE,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAC7B,CAAA;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,EACxB,IAAI,EACJ,KAAe,EACf,cAAyB,EACzB,YAAsB,GACvB,EAAE,cAAc,2CA8ThB;AAED,eAAe,SAAS,CAAA"}
@@ -0,0 +1,214 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { useState, useEffect } from 'react';
4
+ import { useRouter } from 'next/navigation.js';
5
+ /**
6
+ * Full login page component matching Payload's admin theme.
7
+ * Registered as a custom admin view at /admin/login.
8
+ */
9
+ export function LoginView({ logo, title = 'Login', afterLoginPath = '/admin', requiredRole = 'admin', }) {
10
+ const router = useRouter();
11
+ const [email, setEmail] = useState('');
12
+ const [password, setPassword] = useState('');
13
+ const [error, setError] = useState(null);
14
+ const [loading, setLoading] = useState(false);
15
+ const [checkingSession, setCheckingSession] = useState(true);
16
+ const [accessDenied, setAccessDenied] = useState(false);
17
+ // Check if user is already logged in on mount
18
+ useEffect(() => {
19
+ async function checkSession() {
20
+ try {
21
+ const response = await fetch('/api/auth/get-session', {
22
+ credentials: 'include',
23
+ });
24
+ if (response.ok) {
25
+ const data = await response.json();
26
+ if (data?.user) {
27
+ // User is logged in, check role
28
+ if (!requiredRole || data.user.role === requiredRole) {
29
+ router.push(afterLoginPath);
30
+ return;
31
+ }
32
+ else {
33
+ setAccessDenied(true);
34
+ }
35
+ }
36
+ }
37
+ }
38
+ catch {
39
+ // No session, show login form
40
+ }
41
+ setCheckingSession(false);
42
+ }
43
+ checkSession();
44
+ }, [afterLoginPath, requiredRole, router]);
45
+ async function handleSubmit(e) {
46
+ e.preventDefault();
47
+ setLoading(true);
48
+ setError(null);
49
+ setAccessDenied(false);
50
+ try {
51
+ const response = await fetch('/api/auth/sign-in/email', {
52
+ method: 'POST',
53
+ headers: { 'Content-Type': 'application/json' },
54
+ credentials: 'include',
55
+ body: JSON.stringify({ email, password }),
56
+ });
57
+ if (response.ok) {
58
+ const data = await response.json().catch(() => ({}));
59
+ // Check role if required
60
+ if (requiredRole && data?.user?.role !== requiredRole) {
61
+ setAccessDenied(true);
62
+ setLoading(false);
63
+ return;
64
+ }
65
+ router.push(afterLoginPath);
66
+ router.refresh();
67
+ }
68
+ else {
69
+ const data = await response.json().catch(() => ({}));
70
+ setError(data.message || data.error?.message || 'Invalid credentials');
71
+ setLoading(false);
72
+ }
73
+ }
74
+ catch {
75
+ setError('An error occurred. Please try again.');
76
+ setLoading(false);
77
+ }
78
+ }
79
+ // Loading state while checking session
80
+ if (checkingSession) {
81
+ return (_jsx("div", { style: {
82
+ minHeight: '100vh',
83
+ display: 'flex',
84
+ alignItems: 'center',
85
+ justifyContent: 'center',
86
+ background: 'var(--theme-bg)',
87
+ }, children: _jsx("div", { style: { color: 'var(--theme-text)', opacity: 0.7 }, children: "Loading..." }) }));
88
+ }
89
+ // Access denied state
90
+ if (accessDenied) {
91
+ return (_jsx("div", { style: {
92
+ minHeight: '100vh',
93
+ display: 'flex',
94
+ alignItems: 'center',
95
+ justifyContent: 'center',
96
+ background: 'var(--theme-bg)',
97
+ padding: 'var(--base)',
98
+ }, children: _jsxs("div", { style: {
99
+ background: 'var(--theme-elevation-50)',
100
+ padding: 'calc(var(--base) * 2)',
101
+ borderRadius: 'var(--style-radius-m)',
102
+ boxShadow: '0 2px 20px rgba(0, 0, 0, 0.1)',
103
+ width: '100%',
104
+ maxWidth: '400px',
105
+ textAlign: 'center',
106
+ }, children: [_jsx("h1", { style: {
107
+ color: 'var(--theme-error-500)',
108
+ fontSize: 'var(--font-size-h3)',
109
+ fontWeight: 600,
110
+ margin: '0 0 var(--base) 0',
111
+ }, children: "Access Denied" }), _jsx("p", { style: {
112
+ color: 'var(--theme-text)',
113
+ opacity: 0.8,
114
+ marginBottom: 'calc(var(--base) * 1.5)',
115
+ fontSize: 'var(--font-size-small)',
116
+ }, children: "You don't have permission to access the admin panel. Please contact an administrator if you believe this is an error." }), _jsx("button", { onClick: async () => {
117
+ await fetch('/api/auth/sign-out', {
118
+ method: 'POST',
119
+ credentials: 'include',
120
+ headers: { 'Content-Type': 'application/json' },
121
+ body: JSON.stringify({}),
122
+ });
123
+ setAccessDenied(false);
124
+ router.refresh();
125
+ }, style: {
126
+ padding: 'calc(var(--base) * 0.75) calc(var(--base) * 1.5)',
127
+ background: 'var(--theme-elevation-150)',
128
+ border: 'none',
129
+ borderRadius: 'var(--style-radius-s)',
130
+ color: 'var(--theme-text)',
131
+ fontSize: 'var(--font-size-base)',
132
+ cursor: 'pointer',
133
+ }, children: "Sign out and try again" })] }) }));
134
+ }
135
+ return (_jsx("div", { style: {
136
+ minHeight: '100vh',
137
+ display: 'flex',
138
+ alignItems: 'center',
139
+ justifyContent: 'center',
140
+ background: 'var(--theme-bg)',
141
+ padding: 'var(--base)',
142
+ }, children: _jsxs("div", { style: {
143
+ background: 'var(--theme-elevation-50)',
144
+ padding: 'calc(var(--base) * 2)',
145
+ borderRadius: 'var(--style-radius-m)',
146
+ boxShadow: '0 2px 20px rgba(0, 0, 0, 0.1)',
147
+ width: '100%',
148
+ maxWidth: '400px',
149
+ }, children: [logo && (_jsx("div", { style: {
150
+ textAlign: 'center',
151
+ marginBottom: 'calc(var(--base) * 1.5)',
152
+ }, children: logo })), _jsx("h1", { style: {
153
+ color: 'var(--theme-text)',
154
+ fontSize: 'var(--font-size-h3)',
155
+ fontWeight: 600,
156
+ marginBottom: 'calc(var(--base) * 1.5)',
157
+ textAlign: 'center',
158
+ margin: '0 0 calc(var(--base) * 1.5) 0',
159
+ }, children: title }), _jsxs("form", { onSubmit: handleSubmit, children: [_jsxs("div", { style: { marginBottom: 'var(--base)' }, children: [_jsx("label", { htmlFor: "email", style: {
160
+ display: 'block',
161
+ color: 'var(--theme-text)',
162
+ marginBottom: 'calc(var(--base) * 0.5)',
163
+ fontSize: 'var(--font-size-small)',
164
+ fontWeight: 500,
165
+ }, children: "Email" }), _jsx("input", { id: "email", type: "email", value: email, onChange: (e) => setEmail(e.target.value), required: true, autoComplete: "email", style: {
166
+ width: '100%',
167
+ padding: 'calc(var(--base) * 0.75)',
168
+ background: 'var(--theme-input-bg)',
169
+ border: '1px solid var(--theme-elevation-150)',
170
+ borderRadius: 'var(--style-radius-s)',
171
+ color: 'var(--theme-text)',
172
+ fontSize: 'var(--font-size-base)',
173
+ outline: 'none',
174
+ boxSizing: 'border-box',
175
+ } })] }), _jsxs("div", { style: { marginBottom: 'calc(var(--base) * 1.5)' }, children: [_jsx("label", { htmlFor: "password", style: {
176
+ display: 'block',
177
+ color: 'var(--theme-text)',
178
+ marginBottom: 'calc(var(--base) * 0.5)',
179
+ fontSize: 'var(--font-size-small)',
180
+ fontWeight: 500,
181
+ }, children: "Password" }), _jsx("input", { id: "password", type: "password", value: password, onChange: (e) => setPassword(e.target.value), required: true, autoComplete: "current-password", style: {
182
+ width: '100%',
183
+ padding: 'calc(var(--base) * 0.75)',
184
+ background: 'var(--theme-input-bg)',
185
+ border: '1px solid var(--theme-elevation-150)',
186
+ borderRadius: 'var(--style-radius-s)',
187
+ color: 'var(--theme-text)',
188
+ fontSize: 'var(--font-size-base)',
189
+ outline: 'none',
190
+ boxSizing: 'border-box',
191
+ } })] }), error && (_jsx("div", { style: {
192
+ color: 'var(--theme-error-500)',
193
+ marginBottom: 'var(--base)',
194
+ fontSize: 'var(--font-size-small)',
195
+ padding: 'calc(var(--base) * 0.5)',
196
+ background: 'var(--theme-error-50)',
197
+ borderRadius: 'var(--style-radius-s)',
198
+ border: '1px solid var(--theme-error-200)',
199
+ }, children: error })), _jsx("button", { type: "submit", disabled: loading, style: {
200
+ width: '100%',
201
+ padding: 'calc(var(--base) * 0.75)',
202
+ background: 'var(--theme-elevation-800)',
203
+ border: 'none',
204
+ borderRadius: 'var(--style-radius-s)',
205
+ color: 'var(--theme-elevation-50)',
206
+ fontSize: 'var(--font-size-base)',
207
+ fontWeight: 500,
208
+ cursor: loading ? 'not-allowed' : 'pointer',
209
+ opacity: loading ? 0.7 : 1,
210
+ transition: 'opacity 150ms ease',
211
+ }, children: loading ? 'Signing in...' : 'Sign In' })] })] }) }));
212
+ }
213
+ export default LoginView;
214
+ //# sourceMappingURL=LoginView.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LoginView.js","sourceRoot":"","sources":["../../src/components/LoginView.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Logout button component styled to match Payload's admin nav.
3
+ * Uses Payload's CSS classes and variables for native theme integration.
4
+ */
5
+ export declare function LogoutButton(): import("react/jsx-runtime").JSX.Element;
6
+ export default LogoutButton;
7
+ //# sourceMappingURL=LogoutButton.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LogoutButton.d.ts","sourceRoot":"","sources":["../../src/components/LogoutButton.tsx"],"names":[],"mappings":"AAKA;;;GAGG;AACH,wBAAgB,YAAY,4CA8C3B;AAED,eAAe,YAAY,CAAA"}
@@ -0,0 +1,43 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { useState } from 'react';
4
+ import { useRouter } from 'next/navigation.js';
5
+ /**
6
+ * Logout button component styled to match Payload's admin nav.
7
+ * Uses Payload's CSS classes and variables for native theme integration.
8
+ */
9
+ export function LogoutButton() {
10
+ const router = useRouter();
11
+ const [isLoading, setIsLoading] = useState(false);
12
+ async function handleLogout() {
13
+ if (isLoading)
14
+ return;
15
+ setIsLoading(true);
16
+ try {
17
+ await fetch('/api/auth/sign-out', {
18
+ method: 'POST',
19
+ credentials: 'include',
20
+ headers: {
21
+ 'Content-Type': 'application/json',
22
+ },
23
+ body: JSON.stringify({}),
24
+ });
25
+ router.push('/admin/login');
26
+ }
27
+ catch (error) {
28
+ console.error('[better-auth] Logout error:', error);
29
+ setIsLoading(false);
30
+ }
31
+ }
32
+ return (_jsx("button", { onClick: handleLogout, disabled: isLoading, type: "button", className: "nav__link", style: {
33
+ background: 'none',
34
+ border: 'none',
35
+ cursor: isLoading ? 'not-allowed' : 'pointer',
36
+ opacity: isLoading ? 0.7 : 1,
37
+ width: '100%',
38
+ textAlign: 'left',
39
+ padding: 0,
40
+ }, children: _jsx("span", { className: "nav__link-label", children: isLoading ? 'Logging out...' : 'Log out' }) }));
41
+ }
42
+ export default LogoutButton;
43
+ //# sourceMappingURL=LogoutButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LogoutButton.js","sourceRoot":"","sources":["../../src/components/LogoutButton.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAChC,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAE9C;;;GAGG;AACH,MAAM,UAAU,YAAY;IAC1B,MAAM,MAAM,GAAG,SAAS,EAAE,CAAA;IAC1B,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAEjD,KAAK,UAAU,YAAY;QACzB,IAAI,SAAS;YAAE,OAAM;QACrB,YAAY,CAAC,IAAI,CAAC,CAAA;QAElB,IAAI,CAAC;YACH,MAAM,KAAK,CAAC,oBAAoB,EAAE;gBAChC,MAAM,EAAE,MAAM;gBACd,WAAW,EAAE,SAAS;gBACtB,OAAO,EAAE;oBACP,cAAc,EAAE,kBAAkB;iBACnC;gBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;aACzB,CAAC,CAAA;YAEF,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;QAC7B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,KAAK,CAAC,CAAA;YACnD,YAAY,CAAC,KAAK,CAAC,CAAA;QACrB,CAAC;IACH,CAAC;IAED,OAAO,CACL,iBACE,OAAO,EAAE,YAAY,EACrB,QAAQ,EAAE,SAAS,EACnB,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,WAAW,EACrB,KAAK,EAAE;YACL,UAAU,EAAE,MAAM;YAClB,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS;YAC7C,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC5B,KAAK,EAAE,MAAM;YACb,SAAS,EAAE,MAAM;YACjB,OAAO,EAAE,CAAC;SACX,YAED,eAAM,SAAS,EAAC,iBAAiB,YAC9B,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS,GACpC,GACA,CACV,CAAA;AACH,CAAC;AAED,eAAe,YAAY,CAAA"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Client-side auth utilities
3
+ * Re-exports createAuthClient from better-auth/react
4
+ */
5
+ export { createAuthClient } from 'better-auth/react';
6
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/exports/client.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Client-side auth utilities
3
+ * Re-exports createAuthClient from better-auth/react
4
+ */
5
+ export { createAuthClient } from 'better-auth/react';
6
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/exports/client.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Admin Components for Better Auth
3
+ *
4
+ * These components are auto-injected when disableLocalStrategy is detected.
5
+ * They can also be used standalone or customized.
6
+ */
7
+ export { LogoutButton } from '../components/LogoutButton.js';
8
+ export type { BeforeLoginProps } from '../components/BeforeLogin.js';
9
+ export { BeforeLogin } from '../components/BeforeLogin.js';
10
+ export type { LoginViewProps } from '../components/LoginView.js';
11
+ export { LoginView } from '../components/LoginView.js';
12
+ //# sourceMappingURL=components.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"components.d.ts","sourceRoot":"","sources":["../../src/exports/components.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAA;AAC5D,YAAY,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAA;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAA;AAC1D,YAAY,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAA"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Admin Components for Better Auth
3
+ *
4
+ * These components are auto-injected when disableLocalStrategy is detected.
5
+ * They can also be used standalone or customized.
6
+ */
7
+ export { LogoutButton } from '../components/LogoutButton.js';
8
+ export { BeforeLogin } from '../components/BeforeLogin.js';
9
+ export { LoginView } from '../components/LoginView.js';
10
+ //# sourceMappingURL=components.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"components.js","sourceRoot":"","sources":["../../src/exports/components.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAA;AAE5D,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAA;AAE1D,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAA"}