hazo_auth 7.0.1 → 7.0.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.
- package/README.md +73 -330
- package/SETUP_CHECKLIST.md +28 -248
- package/cli-src/cli/generate.ts +1 -10
- package/cli-src/cli/validate.ts +0 -4
- package/cli-src/lib/auth/auth_types.ts +12 -21
- package/cli-src/lib/auth/hazo_get_tenant_auth.server.ts +24 -25
- package/cli-src/lib/auth/index.ts +2 -2
- package/cli-src/lib/auth/nextauth_config.ts +27 -67
- package/cli-src/lib/auth/with_auth.server.ts +15 -15
- package/cli-src/lib/config/default_config.ts +8 -0
- package/cli-src/lib/cookies_config.server.ts +1 -1
- package/cli-src/lib/email_verification_config.server.ts +34 -0
- package/cli-src/lib/forgot_password_config.server.ts +34 -0
- package/cli-src/lib/login_config.server.ts +29 -14
- package/cli-src/lib/my_settings_config.server.ts +3 -0
- package/cli-src/lib/oauth_config.server.ts +31 -57
- package/cli-src/lib/register_config.server.ts +35 -11
- package/cli-src/lib/reset_password_config.server.ts +31 -0
- package/cli-src/lib/services/email_template_manifest.ts +0 -17
- package/cli-src/lib/services/index.ts +2 -8
- package/cli-src/lib/services/oauth_service.ts +74 -128
- package/cli-src/lib/services/otp_service.ts +7 -2
- package/cli-src/lib/services/session_token_service.ts +0 -2
- package/config/hazo_auth_config.example.ini +41 -76
- package/dist/cli/generate.d.ts.map +1 -1
- package/dist/cli/generate.js +1 -10
- package/dist/cli/validate.d.ts.map +1 -1
- package/dist/cli/validate.js +0 -4
- package/dist/client.d.ts +0 -2
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +0 -1
- package/dist/components/layouts/create_firm/index.d.ts +8 -4
- package/dist/components/layouts/create_firm/index.d.ts.map +1 -1
- package/dist/components/layouts/create_firm/index.js +3 -3
- package/dist/components/layouts/email_verification/index.d.ts +5 -4
- package/dist/components/layouts/email_verification/index.d.ts.map +1 -1
- package/dist/components/layouts/email_verification/index.js +4 -4
- package/dist/components/layouts/forgot_password/index.d.ts +5 -4
- package/dist/components/layouts/forgot_password/index.d.ts.map +1 -1
- package/dist/components/layouts/forgot_password/index.js +2 -2
- package/dist/components/layouts/login/index.d.ts +13 -19
- package/dist/components/layouts/login/index.d.ts.map +1 -1
- package/dist/components/layouts/login/index.js +8 -11
- package/dist/components/layouts/otp/index.d.ts +5 -1
- package/dist/components/layouts/otp/index.d.ts.map +1 -1
- package/dist/components/layouts/otp/index.js +2 -2
- package/dist/components/layouts/register/index.d.ts +11 -11
- package/dist/components/layouts/register/index.d.ts.map +1 -1
- package/dist/components/layouts/register/index.js +6 -7
- package/dist/components/layouts/reset_password/index.d.ts +5 -4
- package/dist/components/layouts/reset_password/index.d.ts.map +1 -1
- package/dist/components/layouts/reset_password/index.js +5 -5
- package/dist/components/layouts/shared/components/already_logged_in_guard.d.ts +5 -3
- package/dist/components/layouts/shared/components/already_logged_in_guard.d.ts.map +1 -1
- package/dist/components/layouts/shared/components/already_logged_in_guard.js +2 -2
- package/dist/components/layouts/shared/components/facebook_sign_in_button.d.ts +2 -6
- package/dist/components/layouts/shared/components/facebook_sign_in_button.d.ts.map +1 -1
- package/dist/components/layouts/shared/components/facebook_sign_in_button.js +11 -13
- package/dist/components/layouts/shared/components/sidebar_layout_wrapper.d.ts.map +1 -1
- package/dist/components/layouts/shared/components/sidebar_layout_wrapper.js +3 -8
- package/dist/components/layouts/shared/components/two_column_auth_layout.d.ts +6 -3
- package/dist/components/layouts/shared/components/two_column_auth_layout.d.ts.map +1 -1
- package/dist/components/layouts/shared/components/two_column_auth_layout.js +5 -8
- package/dist/components/layouts/shared/index.d.ts +2 -0
- package/dist/components/layouts/shared/index.d.ts.map +1 -1
- package/dist/components/layouts/shared/index.js +1 -0
- package/dist/components/layouts/user_management/index.d.ts.map +1 -1
- package/dist/components/layouts/user_management/index.js +39 -2
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/lib/auth/auth_types.d.ts +12 -13
- package/dist/lib/auth/auth_types.d.ts.map +1 -1
- package/dist/lib/auth/auth_types.js +0 -8
- package/dist/lib/auth/hazo_get_tenant_auth.server.d.ts +7 -8
- package/dist/lib/auth/hazo_get_tenant_auth.server.d.ts.map +1 -1
- package/dist/lib/auth/hazo_get_tenant_auth.server.js +22 -23
- package/dist/lib/auth/index.d.ts +2 -2
- package/dist/lib/auth/index.d.ts.map +1 -1
- package/dist/lib/auth/nextauth_config.d.ts +0 -10
- package/dist/lib/auth/nextauth_config.d.ts.map +1 -1
- package/dist/lib/auth/nextauth_config.js +23 -52
- package/dist/lib/auth/with_auth.server.d.ts +13 -13
- package/dist/lib/auth/with_auth.server.d.ts.map +1 -1
- package/dist/lib/auth/with_auth.server.js +2 -2
- package/dist/lib/config/default_config.d.ts +16 -0
- package/dist/lib/config/default_config.d.ts.map +1 -1
- package/dist/lib/config/default_config.js +8 -0
- package/dist/lib/cookies_config.server.d.ts +1 -1
- package/dist/lib/cookies_config.server.js +1 -1
- package/dist/lib/email_verification_config.server.d.ts +3 -0
- package/dist/lib/email_verification_config.server.d.ts.map +1 -1
- package/dist/lib/email_verification_config.server.js +15 -0
- package/dist/lib/forgot_password_config.server.d.ts +3 -0
- package/dist/lib/forgot_password_config.server.d.ts.map +1 -1
- package/dist/lib/forgot_password_config.server.js +15 -0
- package/dist/lib/login_config.server.d.ts +3 -6
- package/dist/lib/login_config.server.d.ts.map +1 -1
- package/dist/lib/login_config.server.js +11 -7
- package/dist/lib/my_settings_config.server.d.ts +1 -0
- package/dist/lib/my_settings_config.server.d.ts.map +1 -1
- package/dist/lib/my_settings_config.server.js +2 -0
- package/dist/lib/oauth_config.server.d.ts +8 -17
- package/dist/lib/oauth_config.server.d.ts.map +1 -1
- package/dist/lib/oauth_config.server.js +10 -25
- package/dist/lib/register_config.server.d.ts +5 -2
- package/dist/lib/register_config.server.d.ts.map +1 -1
- package/dist/lib/register_config.server.js +15 -4
- package/dist/lib/reset_password_config.server.d.ts +3 -0
- package/dist/lib/reset_password_config.server.d.ts.map +1 -1
- package/dist/lib/reset_password_config.server.js +13 -0
- package/dist/lib/services/email_template_manifest.d.ts.map +1 -1
- package/dist/lib/services/email_template_manifest.js +0 -17
- package/dist/lib/services/index.d.ts +0 -2
- package/dist/lib/services/index.d.ts.map +1 -1
- package/dist/lib/services/index.js +0 -1
- package/dist/lib/services/oauth_service.d.ts +11 -22
- package/dist/lib/services/oauth_service.d.ts.map +1 -1
- package/dist/lib/services/oauth_service.js +63 -96
- package/dist/lib/services/otp_service.d.ts +1 -1
- package/dist/lib/services/otp_service.d.ts.map +1 -1
- package/dist/lib/services/otp_service.js +6 -1
- package/dist/lib/services/session_token_service.d.ts +0 -2
- package/dist/lib/services/session_token_service.d.ts.map +1 -1
- package/dist/lib/services/session_token_service.js +0 -2
- package/dist/page_components/create_firm.d.ts +1 -13
- package/dist/page_components/create_firm.d.ts.map +1 -1
- package/dist/page_components/create_firm.js +6 -10
- package/dist/page_components/forgot_password.d.ts +4 -1
- package/dist/page_components/forgot_password.d.ts.map +1 -1
- package/dist/page_components/forgot_password.js +6 -2
- package/dist/page_components/login.d.ts +4 -1
- package/dist/page_components/login.d.ts.map +1 -1
- package/dist/page_components/login.js +6 -2
- package/dist/page_components/register.d.ts +4 -1
- package/dist/page_components/register.d.ts.map +1 -1
- package/dist/page_components/register.js +6 -2
- package/dist/page_components/reset_password.d.ts +4 -1
- package/dist/page_components/reset_password.d.ts.map +1 -1
- package/dist/page_components/reset_password.js +6 -2
- package/dist/page_components/verify_email.d.ts +4 -1
- package/dist/page_components/verify_email.d.ts.map +1 -1
- package/dist/page_components/verify_email.js +6 -2
- package/dist/server/routes/assets.d.ts +8 -0
- package/dist/server/routes/assets.d.ts.map +1 -0
- package/dist/server/routes/assets.js +38 -0
- package/dist/server/routes/consent_me.d.ts +4 -0
- package/dist/server/routes/consent_me.d.ts.map +1 -0
- package/dist/server/routes/consent_me.js +15 -0
- package/dist/server/routes/index.d.ts +6 -4
- package/dist/server/routes/index.d.ts.map +1 -1
- package/dist/server/routes/index.js +9 -5
- package/dist/server/routes/me.d.ts.map +1 -1
- package/dist/server/routes/me.js +1 -43
- package/dist/server/routes/oauth_facebook_callback.d.ts +1 -1
- package/dist/server/routes/oauth_facebook_callback.d.ts.map +1 -1
- package/dist/server/routes/oauth_facebook_callback.js +8 -1
- package/dist/server/routes/oauth_google_callback.js +1 -1
- package/dist/server/routes/otp/verify.js +2 -2
- package/dist/server/routes/strings_defaults.d.ts +4 -0
- package/dist/server/routes/strings_defaults.d.ts.map +1 -0
- package/dist/server/routes/strings_defaults.js +7 -0
- package/dist/server/routes/user_management_users.d.ts +11 -0
- package/dist/server/routes/user_management_users.d.ts.map +1 -1
- package/dist/server/routes/user_management_users.js +50 -0
- package/dist/server-lib.d.ts +0 -3
- package/dist/server-lib.d.ts.map +1 -1
- package/dist/server-lib.js +0 -2
- package/dist/server_pages/forgot_password.d.ts +18 -14
- package/dist/server_pages/forgot_password.d.ts.map +1 -1
- package/dist/server_pages/forgot_password.js +14 -12
- package/dist/server_pages/forgot_password_client_wrapper.d.ts +8 -7
- package/dist/server_pages/forgot_password_client_wrapper.d.ts.map +1 -1
- package/dist/server_pages/forgot_password_client_wrapper.js +2 -2
- package/dist/server_pages/index.d.ts +2 -0
- package/dist/server_pages/index.d.ts.map +1 -1
- package/dist/server_pages/index.js +1 -0
- package/dist/server_pages/login.d.ts +22 -23
- package/dist/server_pages/login.d.ts.map +1 -1
- package/dist/server_pages/login.js +27 -14
- package/dist/server_pages/login_client_wrapper.d.ts +9 -10
- package/dist/server_pages/login_client_wrapper.d.ts.map +1 -1
- package/dist/server_pages/login_client_wrapper.js +2 -2
- package/dist/server_pages/my_settings.d.ts +1 -3
- package/dist/server_pages/my_settings.d.ts.map +1 -1
- package/dist/server_pages/my_settings.js +2 -9
- package/dist/server_pages/register.d.ts +17 -20
- package/dist/server_pages/register.d.ts.map +1 -1
- package/dist/server_pages/register.js +20 -15
- package/dist/server_pages/register_client_wrapper.d.ts +8 -10
- package/dist/server_pages/register_client_wrapper.d.ts.map +1 -1
- package/dist/server_pages/register_client_wrapper.js +2 -2
- package/dist/server_pages/reset_password.d.ts +16 -11
- package/dist/server_pages/reset_password.d.ts.map +1 -1
- package/dist/server_pages/reset_password.js +14 -10
- package/dist/server_pages/reset_password_client_wrapper.d.ts +8 -7
- package/dist/server_pages/reset_password_client_wrapper.d.ts.map +1 -1
- package/dist/server_pages/reset_password_client_wrapper.js +2 -2
- package/dist/server_pages/verify_email.d.ts +18 -12
- package/dist/server_pages/verify_email.d.ts.map +1 -1
- package/dist/server_pages/verify_email.js +13 -11
- package/dist/server_pages/verify_email_client_wrapper.d.ts +8 -7
- package/dist/server_pages/verify_email_client_wrapper.d.ts.map +1 -1
- package/dist/server_pages/verify_email_client_wrapper.js +2 -2
- package/dist/themes/index.d.ts +0 -1
- package/dist/themes/index.d.ts.map +1 -1
- package/dist/themes/index.js +1 -1
- package/package.json +26 -40
- package/dist/themes/preset_indigo_sunset.d.ts +0 -3
- package/dist/themes/preset_indigo_sunset.d.ts.map +0 -1
- package/dist/themes/preset_indigo_sunset.js +0 -20
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
import type { ResetPasswordConfig } from "../lib/reset_password_config.server";
|
|
2
|
-
import type {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
2
|
+
import type { LayoutLabelOverrides } from "../components/layouts/shared/config/layout_customization";
|
|
3
|
+
import type { StaticImageData } from "next/image";
|
|
4
|
+
export type ResetPasswordClientWrapperProps = Omit<ResetPasswordConfig, 'imageSrc' | 'imageAlt' | 'imageBackgroundColor'> & {
|
|
5
|
+
image_src: string | StaticImageData;
|
|
6
|
+
image_alt: string;
|
|
7
|
+
image_background_color: string;
|
|
8
|
+
labels?: LayoutLabelOverrides;
|
|
8
9
|
};
|
|
9
10
|
/**
|
|
10
11
|
* Client wrapper for ResetPasswordLayout
|
|
11
12
|
* Initializes hazo_connect data client on client side and passes config from server
|
|
12
13
|
*/
|
|
13
|
-
export declare function ResetPasswordClientWrapper({ passwordRequirements, errorMessage, successMessage, loginPath, forgotPasswordPath, alreadyLoggedInMessage, showLogoutButton, showReturnHomeButton, returnHomeButtonLabel, returnHomePath,
|
|
14
|
+
export declare function ResetPasswordClientWrapper({ image_src, image_alt, image_background_color, passwordRequirements, errorMessage, successMessage, loginPath, forgotPasswordPath, alreadyLoggedInMessage, showLogoutButton, showReturnHomeButton, returnHomeButtonLabel, returnHomePath, labels, }: ResetPasswordClientWrapperProps): import("react/jsx-runtime").JSX.Element;
|
|
14
15
|
//# sourceMappingURL=reset_password_client_wrapper.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reset_password_client_wrapper.d.ts","sourceRoot":"","sources":["../../src/server_pages/reset_password_client_wrapper.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC/E,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"reset_password_client_wrapper.d.ts","sourceRoot":"","sources":["../../src/server_pages/reset_password_client_wrapper.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC/E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,0DAA0D,CAAC;AAGrG,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,MAAM,MAAM,+BAA+B,GAAG,IAAI,CAAC,mBAAmB,EAAE,UAAU,GAAG,UAAU,GAAG,sBAAsB,CAAC,GAAG;IAC1H,SAAS,EAAE,MAAM,GAAG,eAAe,CAAC;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,MAAM,CAAC,EAAE,oBAAoB,CAAC;CAC/B,CAAC;AAGF;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,EACzC,SAAS,EACT,SAAS,EACT,sBAAsB,EACtB,oBAAoB,EACpB,YAAY,EACZ,cAAc,EACd,SAAS,EACT,kBAAkB,EAClB,sBAAsB,EACtB,gBAAgB,EAChB,oBAAoB,EACpB,qBAAqB,EACrB,cAAc,EACd,MAAM,GACP,EAAE,+BAA+B,2CAuCjC"}
|
|
@@ -11,7 +11,7 @@ import { create_sqlite_hazo_connect } from "../lib/hazo_connect_setup.js";
|
|
|
11
11
|
* Client wrapper for ResetPasswordLayout
|
|
12
12
|
* Initializes hazo_connect data client on client side and passes config from server
|
|
13
13
|
*/
|
|
14
|
-
export function ResetPasswordClientWrapper({ passwordRequirements, errorMessage, successMessage, loginPath, forgotPasswordPath, alreadyLoggedInMessage, showLogoutButton, showReturnHomeButton, returnHomeButtonLabel, returnHomePath,
|
|
14
|
+
export function ResetPasswordClientWrapper({ image_src, image_alt, image_background_color, passwordRequirements, errorMessage, successMessage, loginPath, forgotPasswordPath, alreadyLoggedInMessage, showLogoutButton, showReturnHomeButton, returnHomeButtonLabel, returnHomePath, labels, }) {
|
|
15
15
|
const [dataClient, setDataClient] = useState(null);
|
|
16
16
|
useEffect(() => {
|
|
17
17
|
// Initialize hazo_connect on client side
|
|
@@ -23,5 +23,5 @@ export function ResetPasswordClientWrapper({ passwordRequirements, errorMessage,
|
|
|
23
23
|
if (!dataClient) {
|
|
24
24
|
return (_jsx("div", { className: "cls_reset_password_page_loading flex items-center justify-center min-h-screen", children: _jsx("div", { className: "text-slate-600 animate-pulse", children: "Loading..." }) }));
|
|
25
25
|
}
|
|
26
|
-
return (_jsx(ResetPasswordLayout, { data_client: dataClient, password_requirements: passwordRequirements, errorMessage: errorMessage, successMessage: successMessage, loginPath: loginPath, forgotPasswordPath: forgotPasswordPath, alreadyLoggedInMessage: alreadyLoggedInMessage, showLogoutButton: showLogoutButton, showReturnHomeButton: showReturnHomeButton, returnHomeButtonLabel: returnHomeButtonLabel, returnHomePath: returnHomePath,
|
|
26
|
+
return (_jsx(ResetPasswordLayout, { image_src: image_src, image_alt: image_alt, image_background_color: image_background_color, data_client: dataClient, password_requirements: passwordRequirements, errorMessage: errorMessage, successMessage: successMessage, loginPath: loginPath, forgotPasswordPath: forgotPasswordPath, alreadyLoggedInMessage: alreadyLoggedInMessage, showLogoutButton: showLogoutButton, showReturnHomeButton: showReturnHomeButton, returnHomeButtonLabel: returnHomeButtonLabel, returnHomePath: returnHomePath, labels: labels }));
|
|
27
27
|
}
|
|
@@ -1,5 +1,21 @@
|
|
|
1
1
|
import "server-only";
|
|
2
|
+
import type { StaticImageData } from "next/image";
|
|
2
3
|
export type VerifyEmailPageProps = {
|
|
4
|
+
/**
|
|
5
|
+
* Optional image source for the visual panel
|
|
6
|
+
* Defaults from hazo_auth_config.ini or package default image
|
|
7
|
+
*/
|
|
8
|
+
image_src?: string | StaticImageData;
|
|
9
|
+
/**
|
|
10
|
+
* Optional image alt text
|
|
11
|
+
* Defaults to "Email verification illustration"
|
|
12
|
+
*/
|
|
13
|
+
image_alt?: string;
|
|
14
|
+
/**
|
|
15
|
+
* Optional image background color
|
|
16
|
+
* Defaults to "#f1f5f9"
|
|
17
|
+
*/
|
|
18
|
+
image_background_color?: string;
|
|
3
19
|
/**
|
|
4
20
|
* Optional redirect delay in seconds after successful verification
|
|
5
21
|
* Defaults from DEFAULT_EMAIL_VERIFICATION.redirectDelay
|
|
@@ -10,16 +26,6 @@ export type VerifyEmailPageProps = {
|
|
|
10
26
|
* Defaults from DEFAULT_EMAIL_VERIFICATION.loginPath
|
|
11
27
|
*/
|
|
12
28
|
login_path?: string;
|
|
13
|
-
/**
|
|
14
|
-
* Optional theme that controls visual appearance and layout mode.
|
|
15
|
-
* When `theme.layout` is `"split"`, activates the two-column split layout
|
|
16
|
-
* with the brand panel on the left.
|
|
17
|
-
*/
|
|
18
|
-
theme?: import("../theme/theme_types").HazoAuthTheme;
|
|
19
|
-
/** Override the page heading. Falls back to HazoAuthStringsProvider → DEFAULT_STRINGS. */
|
|
20
|
-
title?: string;
|
|
21
|
-
/** Override the page subtitle. Falls back to HazoAuthStringsProvider → DEFAULT_STRINGS. */
|
|
22
|
-
subtitle?: string;
|
|
23
29
|
};
|
|
24
30
|
/**
|
|
25
31
|
* Zero-config VerifyEmailPage server component
|
|
@@ -41,9 +47,9 @@ export type VerifyEmailPageProps = {
|
|
|
41
47
|
*
|
|
42
48
|
* Zero configuration required - works out of the box!
|
|
43
49
|
*
|
|
44
|
-
* @param props - Optional behavior customization props
|
|
50
|
+
* @param props - Optional visual and behavior customization props
|
|
45
51
|
* @returns Server-rendered email verification page
|
|
46
52
|
*/
|
|
47
|
-
export default function VerifyEmailPage(
|
|
53
|
+
export default function VerifyEmailPage({ image_src, image_alt, image_background_color, redirect_delay, login_path, }?: VerifyEmailPageProps): import("react/jsx-runtime").JSX.Element;
|
|
48
54
|
export { VerifyEmailPage };
|
|
49
55
|
//# sourceMappingURL=verify_email.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verify_email.d.ts","sourceRoot":"","sources":["../../src/server_pages/verify_email.tsx"],"names":[],"mappings":"AAEA,OAAO,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"verify_email.d.ts","sourceRoot":"","sources":["../../src/server_pages/verify_email.tsx"],"names":[],"mappings":"AAEA,OAAO,aAAa,CAAC;AASrB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,MAAM,MAAM,oBAAoB,GAAG;IACjC;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,eAAe,CAAC;IAErC;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAEhC;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAGF;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,EACtC,SAAS,EACT,SAAS,EACT,sBAAsB,EACtB,cAAyD,EACzD,UAAiD,GAClD,GAAE,oBAAyB,2CAiC3B;AAGD,OAAO,EAAE,eAAe,EAAE,CAAC"}
|
|
@@ -5,9 +5,9 @@ import "server-only";
|
|
|
5
5
|
// section: imports
|
|
6
6
|
import { get_email_verification_config } from "../lib/email_verification_config.server.js";
|
|
7
7
|
import { VerifyEmailClientWrapper } from "./verify_email_client_wrapper.js";
|
|
8
|
+
import { readStrings } from "../strings.js";
|
|
8
9
|
import { AuthPageShell } from "../components/layouts/shared/components/auth_page_shell.js";
|
|
9
10
|
import { DEFAULT_EMAIL_VERIFICATION } from "../lib/config/default_config.js";
|
|
10
|
-
import { DEFAULT_STRINGS, readStrings } from "../strings.js";
|
|
11
11
|
// section: component
|
|
12
12
|
/**
|
|
13
13
|
* Zero-config VerifyEmailPage server component
|
|
@@ -29,21 +29,23 @@ import { DEFAULT_STRINGS, readStrings } from "../strings.js";
|
|
|
29
29
|
*
|
|
30
30
|
* Zero configuration required - works out of the box!
|
|
31
31
|
*
|
|
32
|
-
* @param props - Optional behavior customization props
|
|
32
|
+
* @param props - Optional visual and behavior customization props
|
|
33
33
|
* @returns Server-rendered email verification page
|
|
34
34
|
*/
|
|
35
|
-
export default function VerifyEmailPage(
|
|
36
|
-
|
|
37
|
-
const
|
|
38
|
-
// Resolve strings: prop > HazoAuthStringsProvider > DEFAULT_STRINGS
|
|
35
|
+
export default function VerifyEmailPage({ image_src, image_alt, image_background_color, redirect_delay = DEFAULT_EMAIL_VERIFICATION.redirectDelay, login_path = DEFAULT_EMAIL_VERIFICATION.loginPath, } = {}) {
|
|
36
|
+
// Load configuration from INI file (with defaults including asset images)
|
|
37
|
+
const config = get_email_verification_config();
|
|
39
38
|
const strings = readStrings();
|
|
40
39
|
const ve_strings = strings.verify_email;
|
|
41
|
-
|
|
42
|
-
const
|
|
43
|
-
|
|
44
|
-
const
|
|
40
|
+
// Use props if provided, otherwise fall back to config (which includes default asset image)
|
|
41
|
+
const finalImageSrc = image_src || config.imageSrc;
|
|
42
|
+
const finalImageAlt = image_alt || config.imageAlt;
|
|
43
|
+
const finalImageBackgroundColor = image_background_color || config.imageBackgroundColor;
|
|
45
44
|
// Pass serializable config to client wrapper, wrapped in AuthPageShell for navbar support
|
|
46
|
-
return (_jsx(AuthPageShell, { children: _jsx(VerifyEmailClientWrapper, { redirect_delay: redirect_delay, login_path: login_path, alreadyLoggedInMessage: config.alreadyLoggedInMessage, showLogoutButton: config.showLogoutButton, showReturnHomeButton: config.showReturnHomeButton, returnHomeButtonLabel: config.returnHomeButtonLabel, returnHomePath: config.returnHomePath,
|
|
45
|
+
return (_jsx(AuthPageShell, { children: _jsx(VerifyEmailClientWrapper, { image_src: finalImageSrc, image_alt: finalImageAlt, image_background_color: finalImageBackgroundColor, redirect_delay: redirect_delay, login_path: login_path, alreadyLoggedInMessage: config.alreadyLoggedInMessage, showLogoutButton: config.showLogoutButton, showReturnHomeButton: config.showReturnHomeButton, returnHomeButtonLabel: config.returnHomeButtonLabel, returnHomePath: config.returnHomePath, labels: {
|
|
46
|
+
heading: ve_strings.title,
|
|
47
|
+
subHeading: ve_strings.subtitle,
|
|
48
|
+
} }) }));
|
|
47
49
|
}
|
|
48
50
|
// Named export for direct imports
|
|
49
51
|
export { VerifyEmailPage };
|
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
import type { EmailVerificationConfig } from "../lib/email_verification_config.server";
|
|
2
|
-
import type {
|
|
3
|
-
|
|
2
|
+
import type { LayoutLabelOverrides } from "../components/layouts/shared/config/layout_customization";
|
|
3
|
+
import type { StaticImageData } from "next/image";
|
|
4
|
+
export type VerifyEmailClientWrapperProps = Omit<EmailVerificationConfig, 'imageSrc' | 'imageAlt' | 'imageBackgroundColor'> & {
|
|
5
|
+
image_src: string | StaticImageData;
|
|
6
|
+
image_alt: string;
|
|
7
|
+
image_background_color: string;
|
|
4
8
|
redirect_delay: number;
|
|
5
9
|
login_path: string;
|
|
6
|
-
|
|
7
|
-
theme?: HazoAuthTheme;
|
|
8
|
-
/** Optional label overrides (heading, subHeading) */
|
|
9
|
-
labels?: import("../components/layouts/shared/config/layout_customization").LayoutLabelOverrides;
|
|
10
|
+
labels?: LayoutLabelOverrides;
|
|
10
11
|
};
|
|
11
12
|
/**
|
|
12
13
|
* Client wrapper for EmailVerificationLayout
|
|
13
14
|
* Initializes hazo_connect data client on client side and passes config from server
|
|
14
15
|
*/
|
|
15
|
-
export declare function VerifyEmailClientWrapper({ redirect_delay, login_path, alreadyLoggedInMessage, showLogoutButton, showReturnHomeButton, returnHomeButtonLabel, returnHomePath,
|
|
16
|
+
export declare function VerifyEmailClientWrapper({ image_src, image_alt, image_background_color, redirect_delay, login_path, alreadyLoggedInMessage, showLogoutButton, showReturnHomeButton, returnHomeButtonLabel, returnHomePath, labels, }: VerifyEmailClientWrapperProps): import("react/jsx-runtime").JSX.Element;
|
|
16
17
|
//# sourceMappingURL=verify_email_client_wrapper.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verify_email_client_wrapper.d.ts","sourceRoot":"","sources":["../../src/server_pages/verify_email_client_wrapper.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yCAAyC,CAAC;AACvF,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"verify_email_client_wrapper.d.ts","sourceRoot":"","sources":["../../src/server_pages/verify_email_client_wrapper.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yCAAyC,CAAC;AACvF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,0DAA0D,CAAC;AAGrG,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,MAAM,MAAM,6BAA6B,GAAG,IAAI,CAAC,uBAAuB,EAAE,UAAU,GAAG,UAAU,GAAG,sBAAsB,CAAC,GAAG;IAC5H,SAAS,EAAE,MAAM,GAAG,eAAe,CAAC;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,oBAAoB,CAAC;CAC/B,CAAC;AAGF;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,EACvC,SAAS,EACT,SAAS,EACT,sBAAsB,EACtB,cAAc,EACd,UAAU,EACV,sBAAsB,EACtB,gBAAgB,EAChB,oBAAoB,EACpB,qBAAqB,EACrB,cAAc,EACd,MAAM,GACP,EAAE,6BAA6B,2CAqC/B"}
|
|
@@ -11,7 +11,7 @@ import { create_sqlite_hazo_connect } from "../lib/hazo_connect_setup.js";
|
|
|
11
11
|
* Client wrapper for EmailVerificationLayout
|
|
12
12
|
* Initializes hazo_connect data client on client side and passes config from server
|
|
13
13
|
*/
|
|
14
|
-
export function VerifyEmailClientWrapper({ redirect_delay, login_path, alreadyLoggedInMessage, showLogoutButton, showReturnHomeButton, returnHomeButtonLabel, returnHomePath,
|
|
14
|
+
export function VerifyEmailClientWrapper({ image_src, image_alt, image_background_color, redirect_delay, login_path, alreadyLoggedInMessage, showLogoutButton, showReturnHomeButton, returnHomeButtonLabel, returnHomePath, labels, }) {
|
|
15
15
|
const [dataClient, setDataClient] = useState(null);
|
|
16
16
|
useEffect(() => {
|
|
17
17
|
// Initialize hazo_connect on client side
|
|
@@ -23,5 +23,5 @@ export function VerifyEmailClientWrapper({ redirect_delay, login_path, alreadyLo
|
|
|
23
23
|
if (!dataClient) {
|
|
24
24
|
return (_jsx("div", { className: "cls_verify_email_page_loading flex items-center justify-center min-h-screen", children: _jsx("div", { className: "text-slate-600 animate-pulse", children: "Loading..." }) }));
|
|
25
25
|
}
|
|
26
|
-
return (_jsx(EmailVerificationLayout, { data_client: dataClient, redirect_delay: redirect_delay, login_path: login_path, sign_in_label: "Back to login", already_logged_in_message: alreadyLoggedInMessage, showLogoutButton: showLogoutButton, showReturnHomeButton: showReturnHomeButton, returnHomeButtonLabel: returnHomeButtonLabel, returnHomePath: returnHomePath,
|
|
26
|
+
return (_jsx(EmailVerificationLayout, { image_src: image_src, image_alt: image_alt, image_background_color: image_background_color, data_client: dataClient, redirect_delay: redirect_delay, login_path: login_path, sign_in_label: "Back to login", already_logged_in_message: alreadyLoggedInMessage, showLogoutButton: showLogoutButton, showReturnHomeButton: showReturnHomeButton, returnHomeButtonLabel: returnHomeButtonLabel, returnHomePath: returnHomePath, labels: labels }));
|
|
27
27
|
}
|
package/dist/themes/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/themes/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/themes/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC"}
|
package/dist/themes/index.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "hazo_auth",
|
|
3
|
-
"version": "7.0.
|
|
3
|
+
"version": "7.0.2",
|
|
4
4
|
"description": "Zero-config authentication UI components for Next.js with RBAC, OAuth, scope-based multi-tenancy, and invitations",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"authentication",
|
|
@@ -45,22 +45,6 @@
|
|
|
45
45
|
"types": "./dist/server-lib.d.ts",
|
|
46
46
|
"import": "./dist/server-lib.js"
|
|
47
47
|
},
|
|
48
|
-
"./consent": {
|
|
49
|
-
"types": "./dist/consent/index.d.ts",
|
|
50
|
-
"import": "./dist/consent/index.js"
|
|
51
|
-
},
|
|
52
|
-
"./strings": {
|
|
53
|
-
"types": "./dist/strings/index.d.ts",
|
|
54
|
-
"import": "./dist/strings/index.js"
|
|
55
|
-
},
|
|
56
|
-
"./theme": {
|
|
57
|
-
"types": "./dist/theme/index.d.ts",
|
|
58
|
-
"import": "./dist/theme/index.js"
|
|
59
|
-
},
|
|
60
|
-
"./themes": {
|
|
61
|
-
"types": "./dist/themes/index.d.ts",
|
|
62
|
-
"import": "./dist/themes/index.js"
|
|
63
|
-
},
|
|
64
48
|
"./components/layouts/login": {
|
|
65
49
|
"types": "./dist/components/layouts/login/index.d.ts",
|
|
66
50
|
"import": "./dist/components/layouts/login/index.js"
|
|
@@ -97,10 +81,6 @@
|
|
|
97
81
|
"types": "./dist/components/layouts/create_firm/index.d.ts",
|
|
98
82
|
"import": "./dist/components/layouts/create_firm/index.js"
|
|
99
83
|
},
|
|
100
|
-
"./components/layouts/otp": {
|
|
101
|
-
"types": "./dist/components/layouts/otp/index.d.ts",
|
|
102
|
-
"import": "./dist/components/layouts/otp/index.js"
|
|
103
|
-
},
|
|
104
84
|
"./components/layouts/shared": {
|
|
105
85
|
"types": "./dist/components/layouts/shared/index.d.ts",
|
|
106
86
|
"import": "./dist/components/layouts/shared/index.js"
|
|
@@ -125,6 +105,22 @@
|
|
|
125
105
|
"types": "./dist/server/middleware.d.ts",
|
|
126
106
|
"import": "./dist/server/middleware.js"
|
|
127
107
|
},
|
|
108
|
+
"./theme": {
|
|
109
|
+
"types": "./dist/theme/index.d.ts",
|
|
110
|
+
"import": "./dist/theme/index.js"
|
|
111
|
+
},
|
|
112
|
+
"./themes": {
|
|
113
|
+
"types": "./dist/themes/index.d.ts",
|
|
114
|
+
"import": "./dist/themes/index.js"
|
|
115
|
+
},
|
|
116
|
+
"./consent": {
|
|
117
|
+
"types": "./dist/consent/index.d.ts",
|
|
118
|
+
"import": "./dist/consent/index.js"
|
|
119
|
+
},
|
|
120
|
+
"./strings": {
|
|
121
|
+
"types": "./dist/strings/index.d.ts",
|
|
122
|
+
"import": "./dist/strings/index.js"
|
|
123
|
+
},
|
|
128
124
|
"./pages": {
|
|
129
125
|
"types": "./dist/server_pages/index.d.ts",
|
|
130
126
|
"import": "./dist/server_pages/index.js"
|
|
@@ -133,10 +129,6 @@
|
|
|
133
129
|
"types": "./dist/server_pages/login.d.ts",
|
|
134
130
|
"import": "./dist/server_pages/login.js"
|
|
135
131
|
},
|
|
136
|
-
"./pages/otp": {
|
|
137
|
-
"types": "./dist/server_pages/otp.d.ts",
|
|
138
|
-
"import": "./dist/server_pages/otp.js"
|
|
139
|
-
},
|
|
140
132
|
"./pages/register": {
|
|
141
133
|
"types": "./dist/server_pages/register.d.ts",
|
|
142
134
|
"import": "./dist/server_pages/register.js"
|
|
@@ -157,6 +149,10 @@
|
|
|
157
149
|
"types": "./dist/server_pages/my_settings.d.ts",
|
|
158
150
|
"import": "./dist/server_pages/my_settings.js"
|
|
159
151
|
},
|
|
152
|
+
"./pages/otp": {
|
|
153
|
+
"types": "./dist/server_pages/otp.d.ts",
|
|
154
|
+
"import": "./dist/server_pages/otp.js"
|
|
155
|
+
},
|
|
160
156
|
"./page_components": {
|
|
161
157
|
"types": "./dist/page_components/index.d.ts",
|
|
162
158
|
"import": "./dist/page_components/index.js"
|
|
@@ -165,10 +161,6 @@
|
|
|
165
161
|
"types": "./dist/page_components/login.d.ts",
|
|
166
162
|
"import": "./dist/page_components/login.js"
|
|
167
163
|
},
|
|
168
|
-
"./page_components/otp": {
|
|
169
|
-
"types": "./dist/page_components/otp.d.ts",
|
|
170
|
-
"import": "./dist/page_components/otp.js"
|
|
171
|
-
},
|
|
172
164
|
"./page_components/register": {
|
|
173
165
|
"types": "./dist/page_components/register.d.ts",
|
|
174
166
|
"import": "./dist/page_components/register.js"
|
|
@@ -233,8 +225,7 @@
|
|
|
233
225
|
"migrate": "tsx scripts/apply_migration.ts",
|
|
234
226
|
"init-users": "tsx scripts/init_users.ts init_users",
|
|
235
227
|
"test": "cross-env NODE_ENV=test POSTGREST_URL=http://209.38.26.241:4402 POSTGREST_API_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyb2xlIjoiYXBpX3VzZXIifQ.zBoUGymrxTUk1DNYIGUCtQU4HFaWEHlbE9_8Y3hUaTw jest --runInBand",
|
|
236
|
-
"test:watch": "cross-env NODE_ENV=test POSTGREST_URL=http://209.38.26.241:4402 POSTGREST_API_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyb2xlIjoiYXBpX3VzZXIifQ.zBoUGymrxTUk1DNYIGUCtQU4HFaWEHlbE9_8Y3hUaTw jest --watch"
|
|
237
|
-
"autotest:browser": "tsx scripts/autotest_browser.ts"
|
|
228
|
+
"test:watch": "cross-env NODE_ENV=test POSTGREST_URL=http://209.38.26.241:4402 POSTGREST_API_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyb2xlIjoiYXBpX3VzZXIifQ.zBoUGymrxTUk1DNYIGUCtQU4HFaWEHlbE9_8Y3hUaTw jest --watch"
|
|
238
229
|
},
|
|
239
230
|
"dependencies": {
|
|
240
231
|
"axios": "^1.13.2",
|
|
@@ -279,11 +270,10 @@
|
|
|
279
270
|
"@radix-ui/react-tabs": "^1.1.0",
|
|
280
271
|
"@radix-ui/react-tooltip": "^1.2.0",
|
|
281
272
|
"hazo_config": "^2.1.0",
|
|
282
|
-
"hazo_connect": "^2.
|
|
273
|
+
"hazo_connect": "^2.4.0",
|
|
283
274
|
"hazo_logs": "^1.0.13",
|
|
284
275
|
"hazo_notify": "^3.0.0",
|
|
285
|
-
"hazo_ui": "^2.
|
|
286
|
-
"input-otp": "^1.4.0",
|
|
276
|
+
"hazo_ui": "^2.17.0",
|
|
287
277
|
"lucide-react": "^0.553.0",
|
|
288
278
|
"next": ">=14.0.0",
|
|
289
279
|
"next-auth": "^4.24.0",
|
|
@@ -308,9 +298,6 @@
|
|
|
308
298
|
"hazo_ui": {
|
|
309
299
|
"optional": true
|
|
310
300
|
},
|
|
311
|
-
"input-otp": {
|
|
312
|
-
"optional": true
|
|
313
|
-
},
|
|
314
301
|
"next-themes": {
|
|
315
302
|
"optional": true
|
|
316
303
|
},
|
|
@@ -407,13 +394,12 @@
|
|
|
407
394
|
"eslint-plugin-storybook": "^10.0.6",
|
|
408
395
|
"@tailwindcss/postcss": "^4.2.4",
|
|
409
396
|
"hazo_config": "^2.1.0",
|
|
410
|
-
"hazo_connect": "^2.
|
|
397
|
+
"hazo_connect": "^2.4.0",
|
|
411
398
|
"hazo_logs": "^1.0.13",
|
|
412
399
|
"hazo_notify": "^3.0.0",
|
|
413
|
-
"hazo_ui": "^2.
|
|
400
|
+
"hazo_ui": "^2.17.0",
|
|
414
401
|
"jest": "^30.2.0",
|
|
415
402
|
"jest-environment-jsdom": "^30.0.0",
|
|
416
|
-
"input-otp": "^1.4.0",
|
|
417
403
|
"lucide-react": "^0.553.0",
|
|
418
404
|
"next": "^16.0.7",
|
|
419
405
|
"next-auth": "^4.24.13",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"preset_indigo_sunset.d.ts","sourceRoot":"","sources":["../../src/themes/preset_indigo_sunset.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D,eAAO,MAAM,oBAAoB,EAAE,aAmBlC,CAAC"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
export const preset_indigo_sunset = {
|
|
2
|
-
colors: {
|
|
3
|
-
primary: "#3730A3",
|
|
4
|
-
accent: "#F59E0B",
|
|
5
|
-
surface: "#FFFFFF",
|
|
6
|
-
surfaceElevated: "#FAFAFA",
|
|
7
|
-
border: "#E5E7EB",
|
|
8
|
-
textPrimary: "#111827",
|
|
9
|
-
textSecondary: "#374151",
|
|
10
|
-
textMuted: "#6B7280",
|
|
11
|
-
},
|
|
12
|
-
fonts: { display: "var(--font-display)", body: "var(--font-body)" },
|
|
13
|
-
radius: { md: "0.5rem" },
|
|
14
|
-
layout: "split",
|
|
15
|
-
brandPanel: {
|
|
16
|
-
logoSrc: "/hazo_auth/images/preset_indigo_sunset_logo_placeholder.svg",
|
|
17
|
-
tagline: "Welcome.",
|
|
18
|
-
backgroundGradient: "linear-gradient(135deg, #3730A3 0%, #F59E0B 100%)",
|
|
19
|
-
},
|
|
20
|
-
};
|