payload-better-auth 1.0.4 → 1.0.6
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.
- package/dist/components/BetterAuthLoginServer.d.ts +7 -5
- package/dist/components/BetterAuthLoginServer.js +2 -2
- package/dist/components/BetterAuthLoginServer.js.map +1 -1
- package/dist/payload/plugin.d.ts +2 -3
- package/dist/payload/plugin.js +4 -2
- package/dist/payload/plugin.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { ClientOptions } from 'better-auth';
|
|
2
2
|
import type React from 'react';
|
|
3
3
|
import type { AuthMethod } from 'src/better-auth/helpers.js';
|
|
4
4
|
export declare function fetchAuthMethods({ betterAuthBaseUrl, }: {
|
|
@@ -10,7 +10,9 @@ export declare function fetchAuthMethods({ betterAuthBaseUrl, }: {
|
|
|
10
10
|
data: null;
|
|
11
11
|
error: Error;
|
|
12
12
|
}>;
|
|
13
|
-
export
|
|
14
|
-
authClientOptions:
|
|
15
|
-
|
|
16
|
-
}
|
|
13
|
+
export type BetterAuthLoginServerProps = {
|
|
14
|
+
authClientOptions: {
|
|
15
|
+
baseURL: string;
|
|
16
|
+
} & Omit<ClientOptions, 'baseURL'>;
|
|
17
|
+
};
|
|
18
|
+
export declare function BetterAuthLoginServer({ authClientOptions }: BetterAuthLoginServerProps): Promise<React.JSX.Element>;
|
|
@@ -24,9 +24,9 @@ export async function fetchAuthMethods({ betterAuthBaseUrl }) {
|
|
|
24
24
|
};
|
|
25
25
|
}
|
|
26
26
|
}
|
|
27
|
-
export async function BetterAuthLoginServer({ authClientOptions
|
|
27
|
+
export async function BetterAuthLoginServer({ authClientOptions }) {
|
|
28
28
|
const authMethods = await fetchAuthMethods({
|
|
29
|
-
betterAuthBaseUrl
|
|
29
|
+
betterAuthBaseUrl: authClientOptions.baseURL
|
|
30
30
|
});
|
|
31
31
|
return /*#__PURE__*/ _jsx("div", {
|
|
32
32
|
style: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/components/BetterAuthLoginServer.tsx"],"sourcesContent":["import type {
|
|
1
|
+
{"version":3,"sources":["../../src/components/BetterAuthLoginServer.tsx"],"sourcesContent":["import type { ClientOptions } from 'better-auth'\nimport type React from 'react'\nimport type { AuthMethod } from 'src/better-auth/helpers.js'\n\nimport { EmailPasswordFormClient } from './EmailPasswordFormClient.js'\n\nexport async function fetchAuthMethods({\n betterAuthBaseUrl,\n}: {\n betterAuthBaseUrl: string\n}): Promise<{ data: AuthMethod[]; error: null } | { data: null; error: Error }> {\n try {\n const response = await fetch(`${betterAuthBaseUrl}/api/auth/auth/methods`, {\n headers: {\n 'Content-Type': 'application/json',\n },\n method: 'GET',\n })\n\n if (!response.ok) {\n throw new Error(`Failed to fetch auth methods: ${response.status}`)\n }\n\n const data = await response.json()\n return { data, error: null } as { data: AuthMethod[]; error: null }\n } catch (error) {\n console.error('Error fetching auth methods:', error)\n return { data: null, error: error as Error }\n }\n}\n\nexport type BetterAuthLoginServerProps = {\n authClientOptions: { baseURL: string } & Omit<ClientOptions, 'baseURL'>\n}\n\nexport async function BetterAuthLoginServer({ authClientOptions }: BetterAuthLoginServerProps) {\n const authMethods = await fetchAuthMethods({ betterAuthBaseUrl: authClientOptions.baseURL })\n\n return (\n <div\n style={{\n alignItems: 'center',\n display: 'flex',\n justifyContent: 'center',\n }}\n >\n <div\n style={{\n background: 'white',\n borderRadius: '8px',\n boxShadow: '0 4px 6px rgba(0, 0, 0, 0.1)',\n maxWidth: '400px',\n padding: '2rem',\n width: '100%',\n }}\n >\n <h2\n style={{\n color: '#333',\n fontSize: '1.5rem',\n fontWeight: '600',\n marginBottom: '2rem',\n textAlign: 'center',\n }}\n >\n Sign In to Admin\n </h2>\n\n {authMethods.data?.some(\n (m) => m.method === 'emailAndPassword' || m.method === 'magicLink',\n ) && (\n <EmailPasswordFormClient\n authClientOptions={authClientOptions}\n authMethods={authMethods.data}\n />\n )}\n {authMethods.data?.length === 0 && (\n <div\n style={{\n color: '#666',\n padding: '2rem',\n textAlign: 'center',\n }}\n >\n <p>No authentication methods are currently available.</p>\n <p style={{ fontSize: '0.875rem', marginTop: '1rem' }}>\n Please contact your administrator.\n </p>\n </div>\n )}\n {authMethods.error && (\n <div\n style={{\n color: '#666',\n padding: '2rem',\n textAlign: 'center',\n }}\n >\n <p>Couldn't fetch authentication methods from better-auth</p>\n <p style={{ fontSize: '0.875rem', marginTop: '1rem' }}>\n Please contact your administrator.\n </p>\n </div>\n )}\n </div>\n </div>\n )\n}\n"],"names":["EmailPasswordFormClient","fetchAuthMethods","betterAuthBaseUrl","response","fetch","headers","method","ok","Error","status","data","json","error","console","BetterAuthLoginServer","authClientOptions","authMethods","baseURL","div","style","alignItems","display","justifyContent","background","borderRadius","boxShadow","maxWidth","padding","width","h2","color","fontSize","fontWeight","marginBottom","textAlign","some","m","length","p","marginTop"],"mappings":";AAIA,SAASA,uBAAuB,QAAQ,+BAA8B;AAEtE,OAAO,eAAeC,iBAAiB,EACrCC,iBAAiB,EAGlB;IACC,IAAI;QACF,MAAMC,WAAW,MAAMC,MAAM,GAAGF,kBAAkB,sBAAsB,CAAC,EAAE;YACzEG,SAAS;gBACP,gBAAgB;YAClB;YACAC,QAAQ;QACV;QAEA,IAAI,CAACH,SAASI,EAAE,EAAE;YAChB,MAAM,IAAIC,MAAM,CAAC,8BAA8B,EAAEL,SAASM,MAAM,EAAE;QACpE;QAEA,MAAMC,OAAO,MAAMP,SAASQ,IAAI;QAChC,OAAO;YAAED;YAAME,OAAO;QAAK;IAC7B,EAAE,OAAOA,OAAO;QACdC,QAAQD,KAAK,CAAC,gCAAgCA;QAC9C,OAAO;YAAEF,MAAM;YAAME,OAAOA;QAAe;IAC7C;AACF;AAMA,OAAO,eAAeE,sBAAsB,EAAEC,iBAAiB,EAA8B;IAC3F,MAAMC,cAAc,MAAMf,iBAAiB;QAAEC,mBAAmBa,kBAAkBE,OAAO;IAAC;IAE1F,qBACE,KAACC;QACCC,OAAO;YACLC,YAAY;YACZC,SAAS;YACTC,gBAAgB;QAClB;kBAEA,cAAA,MAACJ;YACCC,OAAO;gBACLI,YAAY;gBACZC,cAAc;gBACdC,WAAW;gBACXC,UAAU;gBACVC,SAAS;gBACTC,OAAO;YACT;;8BAEA,KAACC;oBACCV,OAAO;wBACLW,OAAO;wBACPC,UAAU;wBACVC,YAAY;wBACZC,cAAc;wBACdC,WAAW;oBACb;8BACD;;gBAIAlB,YAAYN,IAAI,EAAEyB,KACjB,CAACC,IAAMA,EAAE9B,MAAM,KAAK,sBAAsB8B,EAAE9B,MAAM,KAAK,8BAEvD,KAACN;oBACCe,mBAAmBA;oBACnBC,aAAaA,YAAYN,IAAI;;gBAGhCM,YAAYN,IAAI,EAAE2B,WAAW,mBAC5B,MAACnB;oBACCC,OAAO;wBACLW,OAAO;wBACPH,SAAS;wBACTO,WAAW;oBACb;;sCAEA,KAACI;sCAAE;;sCACH,KAACA;4BAAEnB,OAAO;gCAAEY,UAAU;gCAAYQ,WAAW;4BAAO;sCAAG;;;;gBAK1DvB,YAAYJ,KAAK,kBAChB,MAACM;oBACCC,OAAO;wBACLW,OAAO;wBACPH,SAAS;wBACTO,WAAW;oBACb;;sCAEA,KAACI;sCAAE;;sCACH,KAACA;4BAAEnB,OAAO;gCAAEY,UAAU;gCAAYQ,WAAW;4BAAO;sCAAG;;;;;;;AAQnE"}
|
package/dist/payload/plugin.d.ts
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import type { createAuthClient } from 'better-auth/react';
|
|
2
1
|
import type { Config } from 'payload';
|
|
2
|
+
import type { BetterAuthLoginServerProps } from 'src/components/BetterAuthLoginServer.js';
|
|
3
3
|
export type BetterAuthPayloadPluginOptions = {
|
|
4
|
-
|
|
5
|
-
betterAuthBaseUrl: string;
|
|
4
|
+
betterAuthClientOptions: BetterAuthLoginServerProps['authClientOptions'];
|
|
6
5
|
disabled?: boolean;
|
|
7
6
|
};
|
|
8
7
|
export declare const betterAuthPayloadPlugin: (pluginOptions: BetterAuthPayloadPluginOptions) => (config: Config) => Config;
|
package/dist/payload/plugin.js
CHANGED
|
@@ -2,7 +2,7 @@ import { createUsersCollection } from '../collections/Users/index.js';
|
|
|
2
2
|
import { triggerFullReconcile } from '../utils/payload-reconcile.js';
|
|
3
3
|
export const betterAuthPayloadPlugin = (pluginOptions)=>(config)=>{
|
|
4
4
|
const Users = createUsersCollection({
|
|
5
|
-
authClientOptions: pluginOptions.
|
|
5
|
+
authClientOptions: pluginOptions.betterAuthClientOptions
|
|
6
6
|
});
|
|
7
7
|
if (!config.collections) {
|
|
8
8
|
config.collections = [
|
|
@@ -38,7 +38,9 @@ export const betterAuthPayloadPlugin = (pluginOptions)=>(config)=>{
|
|
|
38
38
|
}
|
|
39
39
|
config.admin.components.beforeLogin.push({
|
|
40
40
|
path: `payload-better-auth/rsc#BetterAuthLoginServer`,
|
|
41
|
-
serverProps:
|
|
41
|
+
serverProps: {
|
|
42
|
+
authClientOptions: pluginOptions.betterAuthClientOptions
|
|
43
|
+
}
|
|
42
44
|
});
|
|
43
45
|
if (!config.admin.components.views) {
|
|
44
46
|
config.admin.components.views = {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/payload/plugin.ts"],"sourcesContent":["import type {
|
|
1
|
+
{"version":3,"sources":["../../src/payload/plugin.ts"],"sourcesContent":["import type { Config } from 'payload'\nimport type { BetterAuthLoginServerProps } from 'src/components/BetterAuthLoginServer.js'\n\nimport { createUsersCollection } from '../collections/Users/index.js'\nimport { triggerFullReconcile } from '../utils/payload-reconcile.js'\n\nexport type BetterAuthPayloadPluginOptions = {\n betterAuthClientOptions: BetterAuthLoginServerProps['authClientOptions']\n disabled?: boolean\n}\n\nexport const betterAuthPayloadPlugin =\n (pluginOptions: BetterAuthPayloadPluginOptions) =>\n (config: Config): Config => {\n const Users = createUsersCollection({\n authClientOptions: pluginOptions.betterAuthClientOptions,\n })\n if (!config.collections) {\n config.collections = [Users]\n } else if (config.collections.find((col) => col.slug === 'users')) {\n throw new Error('Payload-better-auth plugin: Users collection already present')\n } else {\n config.collections.push(Users)\n }\n\n /**\n * If the plugin is disabled, we still want to keep added collections/fields so the database schema is consistent which is important for migrations.\n * If your plugin heavily modifies the database schema, you may want to remove this property.\n */\n if (pluginOptions.disabled) {\n return config\n }\n\n if (!config.endpoints) {\n config.endpoints = []\n }\n\n if (!config.admin) {\n config.admin = {}\n }\n\n if (!config.admin.user) {\n config.admin.user = Users.slug\n } else if (config.admin.user !== Users.slug) {\n throw new Error(\n 'Payload-better-auth plugin: admin.user property already set with conflicting value.',\n )\n }\n\n if (!config.admin.components) {\n config.admin.components = {}\n }\n\n if (!config.admin.components.beforeLogin) {\n config.admin.components.beforeLogin = []\n }\n\n config.admin.components.beforeLogin.push({\n path: `payload-better-auth/rsc#BetterAuthLoginServer`,\n serverProps: { authClientOptions: pluginOptions.betterAuthClientOptions },\n })\n\n if (!config.admin.components.views) {\n config.admin.components.views = {}\n }\n\n if (!config.admin.components.views.login) {\n config.admin.components.views.login = {\n Component: 'payload-better-auth/rsc#BetterAuthLoginServer', // RSC or 'use client' component\n exact: true,\n path: '/auth',\n }\n } else {\n throw new Error(\n 'Payload-better-auth plugin: admin.components.views.login property in config already set.',\n )\n }\n\n if (!config.admin.components.views.verifyEmail) {\n config.admin.components.views.verifyEmail = {\n Component: 'payload-better-auth/client#VerifyEmailInfoViewClient', // RSC or 'use client' component\n exact: true,\n path: '/auth/verify-email',\n }\n } else {\n throw new Error(\n 'Payload-better-auth plugin: admin.components.views.verifyEmail property in config already set.',\n )\n }\n\n if (!config.admin.routes) {\n config.admin.routes = {}\n }\n\n if (!config.admin.routes.login) {\n config.admin.routes.login = '/auth'\n } else {\n throw new Error(\n 'Payload-better-auth plugin: admin.routes.login property in config already set.',\n )\n }\n\n const incomingOnInit = config.onInit\n\n config.onInit = async (payload) => {\n // Ensure we are executing any existing onInit functions before running our own.\n if (incomingOnInit) {\n await incomingOnInit(payload)\n }\n await triggerFullReconcile(payload)\n }\n\n return config\n }\n"],"names":["createUsersCollection","triggerFullReconcile","betterAuthPayloadPlugin","pluginOptions","config","Users","authClientOptions","betterAuthClientOptions","collections","find","col","slug","Error","push","disabled","endpoints","admin","user","components","beforeLogin","path","serverProps","views","login","Component","exact","verifyEmail","routes","incomingOnInit","onInit","payload"],"mappings":"AAGA,SAASA,qBAAqB,QAAQ,gCAA+B;AACrE,SAASC,oBAAoB,QAAQ,gCAA+B;AAOpE,OAAO,MAAMC,0BACX,CAACC,gBACD,CAACC;QACC,MAAMC,QAAQL,sBAAsB;YAClCM,mBAAmBH,cAAcI,uBAAuB;QAC1D;QACA,IAAI,CAACH,OAAOI,WAAW,EAAE;YACvBJ,OAAOI,WAAW,GAAG;gBAACH;aAAM;QAC9B,OAAO,IAAID,OAAOI,WAAW,CAACC,IAAI,CAAC,CAACC,MAAQA,IAAIC,IAAI,KAAK,UAAU;YACjE,MAAM,IAAIC,MAAM;QAClB,OAAO;YACLR,OAAOI,WAAW,CAACK,IAAI,CAACR;QAC1B;QAEA;;;KAGC,GACD,IAAIF,cAAcW,QAAQ,EAAE;YAC1B,OAAOV;QACT;QAEA,IAAI,CAACA,OAAOW,SAAS,EAAE;YACrBX,OAAOW,SAAS,GAAG,EAAE;QACvB;QAEA,IAAI,CAACX,OAAOY,KAAK,EAAE;YACjBZ,OAAOY,KAAK,GAAG,CAAC;QAClB;QAEA,IAAI,CAACZ,OAAOY,KAAK,CAACC,IAAI,EAAE;YACtBb,OAAOY,KAAK,CAACC,IAAI,GAAGZ,MAAMM,IAAI;QAChC,OAAO,IAAIP,OAAOY,KAAK,CAACC,IAAI,KAAKZ,MAAMM,IAAI,EAAE;YAC3C,MAAM,IAAIC,MACR;QAEJ;QAEA,IAAI,CAACR,OAAOY,KAAK,CAACE,UAAU,EAAE;YAC5Bd,OAAOY,KAAK,CAACE,UAAU,GAAG,CAAC;QAC7B;QAEA,IAAI,CAACd,OAAOY,KAAK,CAACE,UAAU,CAACC,WAAW,EAAE;YACxCf,OAAOY,KAAK,CAACE,UAAU,CAACC,WAAW,GAAG,EAAE;QAC1C;QAEAf,OAAOY,KAAK,CAACE,UAAU,CAACC,WAAW,CAACN,IAAI,CAAC;YACvCO,MAAM,CAAC,6CAA6C,CAAC;YACrDC,aAAa;gBAAEf,mBAAmBH,cAAcI,uBAAuB;YAAC;QAC1E;QAEA,IAAI,CAACH,OAAOY,KAAK,CAACE,UAAU,CAACI,KAAK,EAAE;YAClClB,OAAOY,KAAK,CAACE,UAAU,CAACI,KAAK,GAAG,CAAC;QACnC;QAEA,IAAI,CAAClB,OAAOY,KAAK,CAACE,UAAU,CAACI,KAAK,CAACC,KAAK,EAAE;YACxCnB,OAAOY,KAAK,CAACE,UAAU,CAACI,KAAK,CAACC,KAAK,GAAG;gBACpCC,WAAW;gBACXC,OAAO;gBACPL,MAAM;YACR;QACF,OAAO;YACL,MAAM,IAAIR,MACR;QAEJ;QAEA,IAAI,CAACR,OAAOY,KAAK,CAACE,UAAU,CAACI,KAAK,CAACI,WAAW,EAAE;YAC9CtB,OAAOY,KAAK,CAACE,UAAU,CAACI,KAAK,CAACI,WAAW,GAAG;gBAC1CF,WAAW;gBACXC,OAAO;gBACPL,MAAM;YACR;QACF,OAAO;YACL,MAAM,IAAIR,MACR;QAEJ;QAEA,IAAI,CAACR,OAAOY,KAAK,CAACW,MAAM,EAAE;YACxBvB,OAAOY,KAAK,CAACW,MAAM,GAAG,CAAC;QACzB;QAEA,IAAI,CAACvB,OAAOY,KAAK,CAACW,MAAM,CAACJ,KAAK,EAAE;YAC9BnB,OAAOY,KAAK,CAACW,MAAM,CAACJ,KAAK,GAAG;QAC9B,OAAO;YACL,MAAM,IAAIX,MACR;QAEJ;QAEA,MAAMgB,iBAAiBxB,OAAOyB,MAAM;QAEpCzB,OAAOyB,MAAM,GAAG,OAAOC;YACrB,gFAAgF;YAChF,IAAIF,gBAAgB;gBAClB,MAAMA,eAAeE;YACvB;YACA,MAAM7B,qBAAqB6B;QAC7B;QAEA,OAAO1B;IACT,EAAC"}
|