@delmaredigital/payload-better-auth 0.3.7 → 0.3.8
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/README.md +12 -1
- package/dist/adapter/collections.d.ts.map +1 -1
- package/dist/adapter/collections.js +126 -88
- package/dist/adapter/collections.js.map +1 -1
- package/dist/adapter/index.js +197 -150
- package/dist/adapter/index.js.map +1 -1
- package/dist/components/BeforeLogin.d.ts +1 -1
- package/dist/components/BeforeLogin.d.ts.map +1 -1
- package/dist/components/BeforeLogin.js +15 -7
- package/dist/components/BeforeLogin.js.map +1 -1
- package/dist/components/LoginView.d.ts +2 -2
- package/dist/components/LoginView.d.ts.map +1 -1
- package/dist/components/LoginView.js +660 -218
- package/dist/components/LoginView.js.map +1 -1
- package/dist/components/LoginViewWrapper.d.ts +1 -1
- package/dist/components/LoginViewWrapper.d.ts.map +1 -1
- package/dist/components/LoginViewWrapper.js +14 -4
- package/dist/components/LoginViewWrapper.js.map +1 -1
- package/dist/components/LogoutButton.d.ts +1 -1
- package/dist/components/LogoutButton.d.ts.map +1 -1
- package/dist/components/LogoutButton.js +19 -11
- package/dist/components/LogoutButton.js.map +1 -1
- package/dist/components/PasskeyRegisterButton.d.ts +2 -2
- package/dist/components/PasskeyRegisterButton.d.ts.map +1 -1
- package/dist/components/PasskeyRegisterButton.js +20 -16
- package/dist/components/PasskeyRegisterButton.js.map +1 -1
- package/dist/components/PasskeySignInButton.d.ts +2 -2
- package/dist/components/PasskeySignInButton.d.ts.map +1 -1
- package/dist/components/PasskeySignInButton.js +14 -12
- package/dist/components/PasskeySignInButton.js.map +1 -1
- package/dist/components/auth/ForgotPasswordView.d.ts +1 -1
- package/dist/components/auth/ForgotPasswordView.d.ts.map +1 -1
- package/dist/components/auth/ForgotPasswordView.js +133 -43
- package/dist/components/auth/ForgotPasswordView.js.map +1 -1
- package/dist/components/auth/ResetPasswordView.d.ts +1 -1
- package/dist/components/auth/ResetPasswordView.d.ts.map +1 -1
- package/dist/components/auth/ResetPasswordView.js +154 -50
- package/dist/components/auth/ResetPasswordView.js.map +1 -1
- package/dist/components/auth/index.js +2 -2
- package/dist/components/auth/index.js.map +1 -1
- package/dist/components/management/ApiKeysManagementClient.d.ts +2 -2
- package/dist/components/management/ApiKeysManagementClient.d.ts.map +1 -1
- package/dist/components/management/ApiKeysManagementClient.js +539 -222
- package/dist/components/management/ApiKeysManagementClient.js.map +1 -1
- package/dist/components/management/PasskeysManagementClient.d.ts +2 -2
- package/dist/components/management/PasskeysManagementClient.d.ts.map +1 -1
- package/dist/components/management/PasskeysManagementClient.js +215 -92
- package/dist/components/management/PasskeysManagementClient.js.map +1 -1
- package/dist/components/management/SecurityNavLinks.d.ts +1 -1
- package/dist/components/management/SecurityNavLinks.d.ts.map +1 -1
- package/dist/components/management/SecurityNavLinks.js +51 -24
- package/dist/components/management/SecurityNavLinks.js.map +1 -1
- package/dist/components/management/TwoFactorManagementClient.d.ts +2 -2
- package/dist/components/management/TwoFactorManagementClient.d.ts.map +1 -1
- package/dist/components/management/TwoFactorManagementClient.js +270 -111
- package/dist/components/management/TwoFactorManagementClient.js.map +1 -1
- package/dist/components/management/index.js +2 -2
- package/dist/components/management/index.js.map +1 -1
- package/dist/components/management/views/ApiKeysView.d.ts +1 -1
- package/dist/components/management/views/ApiKeysView.d.ts.map +1 -1
- package/dist/components/management/views/ApiKeysView.js +19 -4
- package/dist/components/management/views/ApiKeysView.js.map +1 -1
- package/dist/components/management/views/PasskeysView.d.ts +1 -1
- package/dist/components/management/views/PasskeysView.d.ts.map +1 -1
- package/dist/components/management/views/PasskeysView.js +16 -4
- package/dist/components/management/views/PasskeysView.js.map +1 -1
- package/dist/components/management/views/TwoFactorView.d.ts +1 -1
- package/dist/components/management/views/TwoFactorView.d.ts.map +1 -1
- package/dist/components/management/views/TwoFactorView.js +16 -4
- package/dist/components/management/views/TwoFactorView.js.map +1 -1
- package/dist/components/management/views/index.js +2 -2
- package/dist/components/management/views/index.js.map +1 -1
- package/dist/components/twoFactor/TwoFactorSetupView.d.ts +1 -1
- package/dist/components/twoFactor/TwoFactorSetupView.d.ts.map +1 -1
- package/dist/components/twoFactor/TwoFactorSetupView.js +240 -87
- package/dist/components/twoFactor/TwoFactorSetupView.js.map +1 -1
- package/dist/components/twoFactor/TwoFactorVerifyView.d.ts +1 -1
- package/dist/components/twoFactor/TwoFactorVerifyView.d.ts.map +1 -1
- package/dist/components/twoFactor/TwoFactorVerifyView.js +108 -45
- package/dist/components/twoFactor/TwoFactorVerifyView.js.map +1 -1
- package/dist/components/twoFactor/index.js +2 -2
- package/dist/components/twoFactor/index.js.map +1 -1
- package/dist/exports/client.js +9 -10
- package/dist/exports/client.js.map +1 -1
- package/dist/exports/components.js +2 -2
- package/dist/exports/components.js.map +1 -1
- package/dist/exports/management.js +3 -3
- package/dist/exports/management.js.map +1 -1
- package/dist/exports/rsc.js +2 -2
- package/dist/exports/rsc.js.map +1 -1
- package/dist/generated-types.js +4 -2
- package/dist/generated-types.js.map +1 -1
- package/dist/index.js +6 -6
- package/dist/index.js.map +1 -1
- package/dist/plugin/index.js +198 -162
- package/dist/plugin/index.js.map +1 -1
- package/dist/scripts/generate-types.js +66 -50
- package/dist/scripts/generate-types.js.map +1 -1
- package/dist/types/apiKey.js +7 -2
- package/dist/types/apiKey.js.map +1 -1
- package/dist/types/betterAuth.js +23 -2
- package/dist/types/betterAuth.js.map +1 -1
- package/dist/utils/access.js +78 -81
- package/dist/utils/access.js.map +1 -1
- package/dist/utils/apiKeyAccess.js +65 -72
- package/dist/utils/apiKeyAccess.js.map +1 -1
- package/dist/utils/betterAuthDefaults.js +8 -8
- package/dist/utils/betterAuthDefaults.js.map +1 -1
- package/dist/utils/detectAuthConfig.js +8 -11
- package/dist/utils/detectAuthConfig.js.map +1 -1
- package/dist/utils/detectEnabledPlugins.js +6 -7
- package/dist/utils/detectEnabledPlugins.js.map +1 -1
- package/dist/utils/firstUserAdmin.js +18 -20
- package/dist/utils/firstUserAdmin.js.map +1 -1
- package/dist/utils/generateScopes.js +40 -41
- package/dist/utils/generateScopes.js.map +1 -1
- package/dist/utils/session.js +8 -9
- package/dist/utils/session.js.map +1 -1
- package/package.json +97 -26
- package/src/adapter/collections.ts +621 -0
- package/src/adapter/index.ts +712 -0
- package/src/components/BeforeLogin.tsx +39 -0
- package/src/components/LoginView.tsx +1516 -0
- package/src/components/LoginViewWrapper.tsx +35 -0
- package/src/components/LogoutButton.tsx +58 -0
- package/src/components/PasskeyRegisterButton.tsx +105 -0
- package/src/components/PasskeySignInButton.tsx +96 -0
- package/src/components/auth/ForgotPasswordView.tsx +274 -0
- package/src/components/auth/ResetPasswordView.tsx +331 -0
- package/src/components/auth/index.ts +8 -0
- package/src/components/management/ApiKeysManagementClient.tsx +988 -0
- package/src/components/management/PasskeysManagementClient.tsx +409 -0
- package/src/components/management/SecurityNavLinks.tsx +117 -0
- package/src/components/management/TwoFactorManagementClient.tsx +560 -0
- package/src/components/management/index.ts +20 -0
- package/src/components/management/views/ApiKeysView.tsx +57 -0
- package/src/components/management/views/PasskeysView.tsx +42 -0
- package/src/components/management/views/TwoFactorView.tsx +42 -0
- package/src/components/management/views/index.ts +10 -0
- package/src/components/twoFactor/TwoFactorSetupView.tsx +515 -0
- package/src/components/twoFactor/TwoFactorVerifyView.tsx +238 -0
- package/src/components/twoFactor/index.ts +8 -0
- package/src/exports/client.ts +77 -0
- package/src/exports/components.ts +30 -0
- package/src/exports/management.ts +25 -0
- package/src/exports/rsc.ts +11 -0
- package/src/generated-types.ts +269 -0
- package/src/index.ts +135 -0
- package/src/plugin/index.ts +834 -0
- package/src/scripts/generate-types.ts +269 -0
- package/src/types/apiKey.ts +63 -0
- package/src/types/betterAuth.ts +253 -0
- package/src/utils/access.ts +410 -0
- package/src/utils/apiKeyAccess.ts +443 -0
- package/src/utils/betterAuthDefaults.ts +102 -0
- package/src/utils/detectAuthConfig.ts +47 -0
- package/src/utils/detectEnabledPlugins.ts +69 -0
- package/src/utils/firstUserAdmin.ts +164 -0
- package/src/utils/generateScopes.ts +150 -0
- package/src/utils/session.ts +91 -0
|
@@ -6,62 +6,89 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
6
6
|
* Uses Payload's nav CSS classes for native styling.
|
|
7
7
|
*
|
|
8
8
|
* Links are conditionally shown based on which Better Auth plugins are enabled.
|
|
9
|
-
*/
|
|
10
|
-
export function SecurityNavLinks({ basePath = '/admin/security', showTwoFactor = true, showApiKeys = true, showPasskeys = true, } = {}) {
|
|
9
|
+
*/ export function SecurityNavLinks({ basePath = '/admin/security', showTwoFactor = true, showApiKeys = true, showPasskeys = true } = {}) {
|
|
11
10
|
// Build links based on enabled plugins
|
|
12
11
|
const links = [];
|
|
13
12
|
if (showTwoFactor) {
|
|
14
13
|
links.push({
|
|
15
14
|
href: `${basePath}/two-factor`,
|
|
16
15
|
label: 'Two-Factor Auth',
|
|
17
|
-
icon: '📱'
|
|
16
|
+
icon: '📱'
|
|
18
17
|
});
|
|
19
18
|
}
|
|
20
19
|
if (showApiKeys) {
|
|
21
20
|
links.push({
|
|
22
21
|
href: `${basePath}/api-keys`,
|
|
23
22
|
label: 'API Keys',
|
|
24
|
-
icon: '🔑'
|
|
23
|
+
icon: '🔑'
|
|
25
24
|
});
|
|
26
25
|
}
|
|
27
26
|
if (showPasskeys) {
|
|
28
27
|
links.push({
|
|
29
28
|
href: `${basePath}/passkeys`,
|
|
30
29
|
label: 'Passkeys',
|
|
31
|
-
icon: '🔐'
|
|
30
|
+
icon: '🔐'
|
|
32
31
|
});
|
|
33
32
|
}
|
|
34
33
|
// Don't render anything if no plugins are enabled
|
|
35
34
|
if (links.length === 0) {
|
|
36
35
|
return null;
|
|
37
36
|
}
|
|
38
|
-
return
|
|
37
|
+
return /*#__PURE__*/ _jsxs("div", {
|
|
38
|
+
style: {
|
|
39
39
|
borderTop: '1px solid var(--theme-elevation-100)',
|
|
40
40
|
marginTop: 'var(--base)',
|
|
41
|
-
paddingTop: 'var(--base)'
|
|
42
|
-
},
|
|
41
|
+
paddingTop: 'var(--base)'
|
|
42
|
+
},
|
|
43
|
+
children: [
|
|
44
|
+
/*#__PURE__*/ _jsx("div", {
|
|
45
|
+
style: {
|
|
43
46
|
fontSize: '11px',
|
|
44
47
|
fontWeight: 600,
|
|
45
48
|
color: 'var(--theme-elevation-500)',
|
|
46
49
|
padding: '0 calc(var(--base) * 0.75)',
|
|
47
50
|
marginBottom: 'calc(var(--base) * 0.5)',
|
|
48
51
|
textTransform: 'uppercase',
|
|
49
|
-
letterSpacing: '0.5px'
|
|
50
|
-
},
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
52
|
+
letterSpacing: '0.5px'
|
|
53
|
+
},
|
|
54
|
+
children: "Security"
|
|
55
|
+
}),
|
|
56
|
+
links.map((link)=>/*#__PURE__*/ _jsxs("a", {
|
|
57
|
+
href: link.href,
|
|
58
|
+
className: "nav__link",
|
|
59
|
+
style: {
|
|
60
|
+
display: 'flex',
|
|
61
|
+
alignItems: 'center',
|
|
62
|
+
gap: 'calc(var(--base) * 0.5)',
|
|
63
|
+
padding: 'calc(var(--base) * 0.5) calc(var(--base) * 0.75)',
|
|
64
|
+
color: 'var(--theme-elevation-800)',
|
|
65
|
+
textDecoration: 'none',
|
|
66
|
+
fontSize: 'var(--font-size-small)',
|
|
67
|
+
borderRadius: 'var(--style-radius-s)',
|
|
68
|
+
transition: 'background-color 150ms ease'
|
|
69
|
+
},
|
|
70
|
+
onMouseEnter: (e)=>{
|
|
71
|
+
e.currentTarget.style.backgroundColor = 'var(--theme-elevation-50)';
|
|
72
|
+
},
|
|
73
|
+
onMouseLeave: (e)=>{
|
|
74
|
+
e.currentTarget.style.backgroundColor = 'transparent';
|
|
75
|
+
},
|
|
76
|
+
children: [
|
|
77
|
+
/*#__PURE__*/ _jsx("span", {
|
|
78
|
+
style: {
|
|
79
|
+
fontSize: '14px'
|
|
80
|
+
},
|
|
81
|
+
children: link.icon
|
|
82
|
+
}),
|
|
83
|
+
/*#__PURE__*/ _jsx("span", {
|
|
84
|
+
className: "nav__link-label",
|
|
85
|
+
children: link.label
|
|
86
|
+
})
|
|
87
|
+
]
|
|
88
|
+
}, link.href))
|
|
89
|
+
]
|
|
90
|
+
});
|
|
65
91
|
}
|
|
66
92
|
export default SecurityNavLinks;
|
|
93
|
+
|
|
67
94
|
//# sourceMappingURL=SecurityNavLinks.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../../../src/components/management/SecurityNavLinks.tsx"],"sourcesContent":["'use client'\n\nexport type SecurityNavLinksProps = {\n /** Base path for security views. Default: '/admin/security' */\n basePath?: string\n /** Show Two-Factor Auth link. Default: true */\n showTwoFactor?: boolean\n /** Show API Keys link. Default: true */\n showApiKeys?: boolean\n /** Show Passkeys link. Default: true */\n showPasskeys?: boolean\n}\n\ntype NavLink = {\n href: string\n label: string\n icon: string\n}\n\n/**\n * Navigation links for security management features.\n * Rendered in admin sidebar via afterNavLinks injection.\n * Uses Payload's nav CSS classes for native styling.\n *\n * Links are conditionally shown based on which Better Auth plugins are enabled.\n */\nexport function SecurityNavLinks({\n basePath = '/admin/security',\n showTwoFactor = true,\n showApiKeys = true,\n showPasskeys = true,\n}: SecurityNavLinksProps = {}) {\n // Build links based on enabled plugins\n const links: NavLink[] = []\n\n if (showTwoFactor) {\n links.push({\n href: `${basePath}/two-factor`,\n label: 'Two-Factor Auth',\n icon: '📱',\n })\n }\n\n if (showApiKeys) {\n links.push({\n href: `${basePath}/api-keys`,\n label: 'API Keys',\n icon: '🔑',\n })\n }\n\n if (showPasskeys) {\n links.push({\n href: `${basePath}/passkeys`,\n label: 'Passkeys',\n icon: '🔐',\n })\n }\n\n // Don't render anything if no plugins are enabled\n if (links.length === 0) {\n return null\n }\n\n return (\n <div\n style={{\n borderTop: '1px solid var(--theme-elevation-100)',\n marginTop: 'var(--base)',\n paddingTop: 'var(--base)',\n }}\n >\n <div\n style={{\n fontSize: '11px',\n fontWeight: 600,\n color: 'var(--theme-elevation-500)',\n padding: '0 calc(var(--base) * 0.75)',\n marginBottom: 'calc(var(--base) * 0.5)',\n textTransform: 'uppercase',\n letterSpacing: '0.5px',\n }}\n >\n Security\n </div>\n {links.map((link) => (\n <a\n key={link.href}\n href={link.href}\n className=\"nav__link\"\n style={{\n display: 'flex',\n alignItems: 'center',\n gap: 'calc(var(--base) * 0.5)',\n padding: 'calc(var(--base) * 0.5) calc(var(--base) * 0.75)',\n color: 'var(--theme-elevation-800)',\n textDecoration: 'none',\n fontSize: 'var(--font-size-small)',\n borderRadius: 'var(--style-radius-s)',\n transition: 'background-color 150ms ease',\n }}\n onMouseEnter={(e) => {\n e.currentTarget.style.backgroundColor = 'var(--theme-elevation-50)'\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.backgroundColor = 'transparent'\n }}\n >\n <span style={{ fontSize: '14px' }}>{link.icon}</span>\n <span className=\"nav__link-label\">{link.label}</span>\n </a>\n ))}\n </div>\n )\n}\n\nexport default SecurityNavLinks\n"],"names":["SecurityNavLinks","basePath","showTwoFactor","showApiKeys","showPasskeys","links","push","href","label","icon","length","div","style","borderTop","marginTop","paddingTop","fontSize","fontWeight","color","padding","marginBottom","textTransform","letterSpacing","map","link","a","className","display","alignItems","gap","textDecoration","borderRadius","transition","onMouseEnter","e","currentTarget","backgroundColor","onMouseLeave","span"],"mappings":"AAAA;;AAmBA;;;;;;CAMC,GACD,OAAO,SAASA,iBAAiB,EAC/BC,WAAW,iBAAiB,EAC5BC,gBAAgB,IAAI,EACpBC,cAAc,IAAI,EAClBC,eAAe,IAAI,EACG,GAAG,CAAC,CAAC;IAC3B,uCAAuC;IACvC,MAAMC,QAAmB,EAAE;IAE3B,IAAIH,eAAe;QACjBG,MAAMC,IAAI,CAAC;YACTC,MAAM,GAAGN,SAAS,WAAW,CAAC;YAC9BO,OAAO;YACPC,MAAM;QACR;IACF;IAEA,IAAIN,aAAa;QACfE,MAAMC,IAAI,CAAC;YACTC,MAAM,GAAGN,SAAS,SAAS,CAAC;YAC5BO,OAAO;YACPC,MAAM;QACR;IACF;IAEA,IAAIL,cAAc;QAChBC,MAAMC,IAAI,CAAC;YACTC,MAAM,GAAGN,SAAS,SAAS,CAAC;YAC5BO,OAAO;YACPC,MAAM;QACR;IACF;IAEA,kDAAkD;IAClD,IAAIJ,MAAMK,MAAM,KAAK,GAAG;QACtB,OAAO;IACT;IAEA,qBACE,MAACC;QACCC,OAAO;YACLC,WAAW;YACXC,WAAW;YACXC,YAAY;QACd;;0BAEA,KAACJ;gBACCC,OAAO;oBACLI,UAAU;oBACVC,YAAY;oBACZC,OAAO;oBACPC,SAAS;oBACTC,cAAc;oBACdC,eAAe;oBACfC,eAAe;gBACjB;0BACD;;YAGAjB,MAAMkB,GAAG,CAAC,CAACC,qBACV,MAACC;oBAEClB,MAAMiB,KAAKjB,IAAI;oBACfmB,WAAU;oBACVd,OAAO;wBACLe,SAAS;wBACTC,YAAY;wBACZC,KAAK;wBACLV,SAAS;wBACTD,OAAO;wBACPY,gBAAgB;wBAChBd,UAAU;wBACVe,cAAc;wBACdC,YAAY;oBACd;oBACAC,cAAc,CAACC;wBACbA,EAAEC,aAAa,CAACvB,KAAK,CAACwB,eAAe,GAAG;oBAC1C;oBACAC,cAAc,CAACH;wBACbA,EAAEC,aAAa,CAACvB,KAAK,CAACwB,eAAe,GAAG;oBAC1C;;sCAEA,KAACE;4BAAK1B,OAAO;gCAAEI,UAAU;4BAAO;sCAAIQ,KAAKf,IAAI;;sCAC7C,KAAC6B;4BAAKZ,WAAU;sCAAmBF,KAAKhB,KAAK;;;mBAtBxCgB,KAAKjB,IAAI;;;AA2BxB;AAEA,eAAeP,iBAAgB"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type PayloadAuthClient } from '../../exports/client';
|
|
1
|
+
import { type PayloadAuthClient } from '../../exports/client.js';
|
|
2
2
|
export type TwoFactorManagementClientProps = {
|
|
3
3
|
/** Optional pre-configured auth client */
|
|
4
4
|
authClient?: PayloadAuthClient;
|
|
@@ -9,6 +9,6 @@ export type TwoFactorManagementClientProps = {
|
|
|
9
9
|
* Client component for two-factor authentication management.
|
|
10
10
|
* Shows 2FA status and allows enabling/disabling.
|
|
11
11
|
*/
|
|
12
|
-
export declare function TwoFactorManagementClient({ authClient: providedClient, title, }?: TwoFactorManagementClientProps): import("react
|
|
12
|
+
export declare function TwoFactorManagementClient({ authClient: providedClient, title, }?: TwoFactorManagementClientProps): import("react").JSX.Element;
|
|
13
13
|
export default TwoFactorManagementClient;
|
|
14
14
|
//# sourceMappingURL=TwoFactorManagementClient.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TwoFactorManagementClient.d.ts","sourceRoot":"","sources":["../../../src/components/management/TwoFactorManagementClient.tsx"],"names":[],"mappings":"AAGA,OAAO,EAEL,KAAK,iBAAiB,EACvB,MAAM,
|
|
1
|
+
{"version":3,"file":"TwoFactorManagementClient.d.ts","sourceRoot":"","sources":["../../../src/components/management/TwoFactorManagementClient.tsx"],"names":[],"mappings":"AAGA,OAAO,EAEL,KAAK,iBAAiB,EACvB,MAAM,yBAAyB,CAAA;AAEhC,MAAM,MAAM,8BAA8B,GAAG;IAC3C,0CAA0C;IAC1C,UAAU,CAAC,EAAE,iBAAiB,CAAA;IAC9B,uDAAuD;IACvD,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,EACxC,UAAU,EAAE,cAAc,EAC1B,KAAmC,GACpC,GAAE,8BAAmC,+BAuhBrC;AAED,eAAe,yBAAyB,CAAA"}
|