hazo_auth 1.6.6 → 3.0.0

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 (167) hide show
  1. package/README.md +212 -12
  2. package/SETUP_CHECKLIST.md +81 -1
  3. package/dist/app/api/hazo_auth/login/route.d.ts.map +1 -1
  4. package/dist/app/api/hazo_auth/login/route.js +25 -0
  5. package/dist/app/api/hazo_auth/logout/route.d.ts.map +1 -1
  6. package/dist/app/api/hazo_auth/logout/route.js +5 -0
  7. package/dist/components/layouts/email_verification/hooks/use_email_verification.d.ts.map +1 -1
  8. package/dist/components/layouts/email_verification/hooks/use_email_verification.js +5 -3
  9. package/dist/components/layouts/email_verification/index.d.ts +2 -1
  10. package/dist/components/layouts/email_verification/index.d.ts.map +1 -1
  11. package/dist/components/layouts/forgot_password/hooks/use_forgot_password_form.d.ts.map +1 -1
  12. package/dist/components/layouts/forgot_password/hooks/use_forgot_password_form.js +3 -1
  13. package/dist/components/layouts/forgot_password/index.d.ts +2 -1
  14. package/dist/components/layouts/forgot_password/index.d.ts.map +1 -1
  15. package/dist/components/layouts/login/hooks/use_login_form.d.ts.map +1 -1
  16. package/dist/components/layouts/login/hooks/use_login_form.js +3 -1
  17. package/dist/components/layouts/login/index.d.ts +2 -1
  18. package/dist/components/layouts/login/index.d.ts.map +1 -1
  19. package/dist/components/layouts/my_settings/components/profile_picture_dialog.d.ts.map +1 -1
  20. package/dist/components/layouts/my_settings/components/profile_picture_dialog.js +3 -1
  21. package/dist/components/layouts/my_settings/components/profile_picture_library_tab.d.ts.map +1 -1
  22. package/dist/components/layouts/my_settings/components/profile_picture_library_tab.js +4 -2
  23. package/dist/components/layouts/my_settings/hooks/use_my_settings.d.ts.map +1 -1
  24. package/dist/components/layouts/my_settings/hooks/use_my_settings.js +7 -5
  25. package/dist/components/layouts/my_settings/index.d.ts +2 -1
  26. package/dist/components/layouts/my_settings/index.d.ts.map +1 -1
  27. package/dist/components/layouts/my_settings/index.js +3 -2
  28. package/dist/components/layouts/register/hooks/use_register_form.d.ts.map +1 -1
  29. package/dist/components/layouts/register/hooks/use_register_form.js +37 -7
  30. package/dist/components/layouts/register/index.d.ts +2 -1
  31. package/dist/components/layouts/register/index.d.ts.map +1 -1
  32. package/dist/components/layouts/reset_password/hooks/use_reset_password_form.d.ts.map +1 -1
  33. package/dist/components/layouts/reset_password/hooks/use_reset_password_form.js +4 -2
  34. package/dist/components/layouts/reset_password/index.d.ts +2 -1
  35. package/dist/components/layouts/reset_password/index.d.ts.map +1 -1
  36. package/dist/components/layouts/shared/components/already_logged_in_guard.d.ts +2 -1
  37. package/dist/components/layouts/shared/components/already_logged_in_guard.d.ts.map +1 -1
  38. package/dist/components/layouts/shared/components/logout_button.d.ts.map +1 -1
  39. package/dist/components/layouts/shared/components/logout_button.js +3 -1
  40. package/dist/components/layouts/shared/components/profile_pic_menu.d.ts.map +1 -1
  41. package/dist/components/layouts/shared/components/profile_pic_menu.js +8 -4
  42. package/dist/components/layouts/shared/components/two_column_auth_layout.d.ts +2 -1
  43. package/dist/components/layouts/shared/components/two_column_auth_layout.d.ts.map +1 -1
  44. package/dist/components/layouts/shared/components/visual_panel.d.ts +2 -1
  45. package/dist/components/layouts/shared/components/visual_panel.d.ts.map +1 -1
  46. package/dist/components/layouts/shared/components/visual_panel.js +2 -1
  47. package/dist/components/layouts/shared/hooks/use_auth_status.d.ts.map +1 -1
  48. package/dist/components/layouts/shared/hooks/use_auth_status.js +4 -2
  49. package/dist/components/layouts/shared/hooks/use_hazo_auth.d.ts.map +1 -1
  50. package/dist/components/layouts/shared/hooks/use_hazo_auth.js +4 -2
  51. package/dist/components/layouts/shared/index.d.ts +0 -2
  52. package/dist/components/layouts/shared/index.d.ts.map +1 -1
  53. package/dist/components/layouts/shared/index.js +2 -2
  54. package/dist/components/layouts/user_management/components/roles_matrix.d.ts.map +1 -1
  55. package/dist/components/layouts/user_management/components/roles_matrix.js +8 -6
  56. package/dist/components/layouts/user_management/index.d.ts.map +1 -1
  57. package/dist/components/layouts/user_management/index.js +15 -13
  58. package/dist/contexts/hazo_auth_config.d.ts +18 -0
  59. package/dist/contexts/hazo_auth_config.d.ts.map +1 -0
  60. package/dist/contexts/hazo_auth_config.js +10 -0
  61. package/dist/contexts/hazo_auth_provider.d.ts +73 -0
  62. package/dist/contexts/hazo_auth_provider.d.ts.map +1 -0
  63. package/dist/contexts/hazo_auth_provider.js +82 -0
  64. package/dist/index.d.ts +2 -0
  65. package/dist/index.d.ts.map +1 -1
  66. package/dist/index.js +3 -0
  67. package/dist/lib/auth/hazo_get_auth.server.d.ts.map +1 -1
  68. package/dist/lib/auth/hazo_get_auth.server.js +31 -3
  69. package/dist/lib/auth/session_token_validator.edge.d.ts +15 -0
  70. package/dist/lib/auth/session_token_validator.edge.d.ts.map +1 -0
  71. package/dist/lib/auth/session_token_validator.edge.js +64 -0
  72. package/dist/lib/config/default_config.d.ts +237 -0
  73. package/dist/lib/config/default_config.d.ts.map +1 -0
  74. package/dist/lib/config/default_config.js +159 -0
  75. package/dist/lib/email_verification_config.server.d.ts +4 -0
  76. package/dist/lib/email_verification_config.server.d.ts.map +1 -1
  77. package/dist/lib/email_verification_config.server.js +12 -0
  78. package/dist/lib/forgot_password_config.server.d.ts +4 -0
  79. package/dist/lib/forgot_password_config.server.d.ts.map +1 -1
  80. package/dist/lib/forgot_password_config.server.js +12 -0
  81. package/dist/lib/login_config.server.d.ts +4 -0
  82. package/dist/lib/login_config.server.d.ts.map +1 -1
  83. package/dist/lib/login_config.server.js +10 -0
  84. package/dist/lib/password_requirements_config.server.d.ts +1 -1
  85. package/dist/lib/password_requirements_config.server.d.ts.map +1 -1
  86. package/dist/lib/password_requirements_config.server.js +8 -7
  87. package/dist/lib/register_config.server.d.ts +4 -0
  88. package/dist/lib/register_config.server.d.ts.map +1 -1
  89. package/dist/lib/register_config.server.js +10 -0
  90. package/dist/lib/reset_password_config.server.d.ts +4 -0
  91. package/dist/lib/reset_password_config.server.d.ts.map +1 -1
  92. package/dist/lib/reset_password_config.server.js +10 -0
  93. package/dist/lib/services/session_token_service.d.ts +27 -0
  94. package/dist/lib/services/session_token_service.d.ts.map +1 -0
  95. package/dist/lib/services/session_token_service.js +130 -0
  96. package/dist/page_components/forgot_password.d.ts.map +1 -1
  97. package/dist/page_components/forgot_password.js +14 -0
  98. package/dist/page_components/login.d.ts +4 -0
  99. package/dist/page_components/login.d.ts.map +1 -1
  100. package/dist/page_components/login.js +14 -0
  101. package/dist/page_components/register.d.ts.map +1 -1
  102. package/dist/page_components/register.js +14 -0
  103. package/dist/page_components/reset_password.d.ts.map +1 -1
  104. package/dist/page_components/reset_password.js +14 -0
  105. package/dist/page_components/verify_email.d.ts.map +1 -1
  106. package/dist/page_components/verify_email.js +14 -0
  107. package/dist/pages/forgot_password.d.ts +52 -0
  108. package/dist/pages/forgot_password.d.ts.map +1 -0
  109. package/dist/pages/forgot_password.js +41 -0
  110. package/dist/pages/index.d.ts +33 -0
  111. package/dist/pages/index.d.ts.map +1 -0
  112. package/dist/pages/index.js +28 -0
  113. package/dist/pages/login.d.ts +43 -0
  114. package/dist/pages/login.d.ts.map +1 -0
  115. package/dist/pages/login.js +45 -0
  116. package/dist/pages/my_settings.d.ts +54 -0
  117. package/dist/pages/my_settings.d.ts.map +1 -0
  118. package/dist/pages/my_settings.js +57 -0
  119. package/dist/pages/register.d.ts +44 -0
  120. package/dist/pages/register.d.ts.map +1 -0
  121. package/dist/pages/register.js +46 -0
  122. package/dist/pages/reset_password.d.ts +43 -0
  123. package/dist/pages/reset_password.d.ts.map +1 -0
  124. package/dist/pages/reset_password.js +42 -0
  125. package/dist/pages/verify_email.d.ts +52 -0
  126. package/dist/pages/verify_email.d.ts.map +1 -0
  127. package/dist/pages/verify_email.js +41 -0
  128. package/dist/server/middleware.d.ts +3 -0
  129. package/dist/server/middleware.d.ts.map +1 -0
  130. package/dist/server/middleware.js +5 -0
  131. package/dist/server_pages/forgot_password.d.ts +53 -0
  132. package/dist/server_pages/forgot_password.d.ts.map +1 -0
  133. package/dist/server_pages/forgot_password.js +40 -0
  134. package/dist/server_pages/forgot_password_client_wrapper.d.ts +15 -0
  135. package/dist/server_pages/forgot_password_client_wrapper.d.ts.map +1 -0
  136. package/dist/server_pages/forgot_password_client_wrapper.js +27 -0
  137. package/dist/server_pages/index.d.ts +13 -0
  138. package/dist/server_pages/index.d.ts.map +1 -0
  139. package/dist/server_pages/index.js +7 -0
  140. package/dist/server_pages/login.d.ts +43 -0
  141. package/dist/server_pages/login.d.ts.map +1 -0
  142. package/dist/server_pages/login.js +39 -0
  143. package/dist/server_pages/login_client_wrapper.d.ts +13 -0
  144. package/dist/server_pages/login_client_wrapper.d.ts.map +1 -0
  145. package/dist/server_pages/login_client_wrapper.js +29 -0
  146. package/dist/server_pages/my_settings.d.ts +53 -0
  147. package/dist/server_pages/my_settings.d.ts.map +1 -0
  148. package/dist/server_pages/my_settings.js +57 -0
  149. package/dist/server_pages/register.d.ts +45 -0
  150. package/dist/server_pages/register.d.ts.map +1 -0
  151. package/dist/server_pages/register.js +41 -0
  152. package/dist/server_pages/register_client_wrapper.d.ts +13 -0
  153. package/dist/server_pages/register_client_wrapper.d.ts.map +1 -0
  154. package/dist/server_pages/register_client_wrapper.js +27 -0
  155. package/dist/server_pages/reset_password.d.ts +44 -0
  156. package/dist/server_pages/reset_password.d.ts.map +1 -0
  157. package/dist/server_pages/reset_password.js +40 -0
  158. package/dist/server_pages/reset_password_client_wrapper.d.ts +13 -0
  159. package/dist/server_pages/reset_password_client_wrapper.d.ts.map +1 -0
  160. package/dist/server_pages/reset_password_client_wrapper.js +27 -0
  161. package/dist/server_pages/verify_email.d.ts +53 -0
  162. package/dist/server_pages/verify_email.d.ts.map +1 -0
  163. package/dist/server_pages/verify_email.js +40 -0
  164. package/dist/server_pages/verify_email_client_wrapper.d.ts +15 -0
  165. package/dist/server_pages/verify_email_client_wrapper.d.ts.map +1 -0
  166. package/dist/server_pages/verify_email_client_wrapper.js +27 -0
  167. package/package.json +39 -10
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verify_email.d.ts","sourceRoot":"","sources":["../../src/server_pages/verify_email.tsx"],"names":[],"mappings":"AAMA,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,2CAwB3B"}
@@ -0,0 +1,40 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ // file_description: Zero-config VerifyEmailPage server component - drop in and use with no configuration required
3
+ // section: imports
4
+ import { get_email_verification_config } from "../lib/email_verification_config.server";
5
+ import { VerifyEmailClientWrapper } from "./verify_email_client_wrapper";
6
+ import { DEFAULT_EMAIL_VERIFICATION } from "../lib/config/default_config";
7
+ // section: component
8
+ /**
9
+ * Zero-config VerifyEmailPage server component
10
+ *
11
+ * This component initializes everything server-side:
12
+ * - Configuration from hazo_auth_config.ini (with sensible defaults)
13
+ *
14
+ * The data client is initialized on the client side to avoid serialization issues.
15
+ *
16
+ * Usage in consuming apps:
17
+ * ```tsx
18
+ * // app/verify-email/page.tsx
19
+ * import { VerifyEmailPage } from "hazo_auth/pages/verify_email";
20
+ *
21
+ * export default function Page() {
22
+ * return <VerifyEmailPage />;
23
+ * }
24
+ * ```
25
+ *
26
+ * Zero configuration required - works out of the box!
27
+ *
28
+ * @param props - Optional visual and behavior customization props
29
+ * @returns Server-rendered email verification page
30
+ */
31
+ export default function VerifyEmailPage({ image_src, image_alt, image_background_color, redirect_delay = DEFAULT_EMAIL_VERIFICATION.redirectDelay, login_path = DEFAULT_EMAIL_VERIFICATION.loginPath, } = {}) {
32
+ // Load configuration from INI file (with defaults including asset images)
33
+ const config = get_email_verification_config();
34
+ // Use props if provided, otherwise fall back to config (which includes default asset image)
35
+ const finalImageSrc = image_src || config.imageSrc;
36
+ const finalImageAlt = image_alt || config.imageAlt;
37
+ const finalImageBackgroundColor = image_background_color || config.imageBackgroundColor;
38
+ // Pass serializable config to client wrapper
39
+ return (_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 }));
40
+ }
@@ -0,0 +1,15 @@
1
+ import type { EmailVerificationConfig } from "../lib/email_verification_config.server";
2
+ import type { StaticImageData } from "next/image";
3
+ export type VerifyEmailClientWrapperProps = Omit<EmailVerificationConfig, 'imageSrc' | 'imageAlt' | 'imageBackgroundColor'> & {
4
+ image_src: string | StaticImageData;
5
+ image_alt: string;
6
+ image_background_color: string;
7
+ redirect_delay: number;
8
+ login_path: string;
9
+ };
10
+ /**
11
+ * Client wrapper for EmailVerificationLayout
12
+ * Initializes hazo_connect data client on client side and passes config from server
13
+ */
14
+ export declare function VerifyEmailClientWrapper({ image_src, image_alt, image_background_color, redirect_delay, login_path, alreadyLoggedInMessage, showLogoutButton, showReturnHomeButton, returnHomeButtonLabel, returnHomePath, }: VerifyEmailClientWrapperProps): import("react/jsx-runtime").JSX.Element;
15
+ //# sourceMappingURL=verify_email_client_wrapper.d.ts.map
@@ -0,0 +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;AAGvF,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;CACpB,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,GACf,EAAE,6BAA6B,2CAoC/B"}
@@ -0,0 +1,27 @@
1
+ // file_description: Client wrapper for EmailVerificationLayout - handles data client initialization on client side
2
+ "use client";
3
+ import { jsx as _jsx } from "react/jsx-runtime";
4
+ // section: imports
5
+ import { useEffect, useState } from "react";
6
+ import EmailVerificationLayout from "../components/layouts/email_verification";
7
+ import { createLayoutDataClient } from "../components/layouts/shared/data/layout_data_client";
8
+ import { create_sqlite_hazo_connect } from "../lib/hazo_connect_setup";
9
+ // section: component
10
+ /**
11
+ * Client wrapper for EmailVerificationLayout
12
+ * Initializes hazo_connect data client on client side and passes config from server
13
+ */
14
+ export function VerifyEmailClientWrapper({ image_src, image_alt, image_background_color, redirect_delay, login_path, alreadyLoggedInMessage, showLogoutButton, showReturnHomeButton, returnHomeButtonLabel, returnHomePath, }) {
15
+ const [dataClient, setDataClient] = useState(null);
16
+ useEffect(() => {
17
+ // Initialize hazo_connect on client side
18
+ const hazoConnect = create_sqlite_hazo_connect();
19
+ const client = createLayoutDataClient(hazoConnect);
20
+ setDataClient(client);
21
+ }, []);
22
+ // Show loading state while initializing
23
+ if (!dataClient) {
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
+ }
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 }));
27
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hazo_auth",
3
- "version": "1.6.6",
3
+ "version": "3.0.0",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "type": "module",
@@ -60,33 +60,61 @@
60
60
  "types": "./dist/server/routes/index.d.ts",
61
61
  "import": "./dist/server/routes/index.js"
62
62
  },
63
+ "./server/middleware": {
64
+ "types": "./dist/server/middleware.d.ts",
65
+ "import": "./dist/server/middleware.js"
66
+ },
63
67
  "./pages": {
68
+ "types": "./dist/server_pages/index.d.ts",
69
+ "import": "./dist/server_pages/index.js"
70
+ },
71
+ "./pages/login": {
72
+ "types": "./dist/server_pages/login.d.ts",
73
+ "import": "./dist/server_pages/login.js"
74
+ },
75
+ "./pages/register": {
76
+ "types": "./dist/server_pages/register.d.ts",
77
+ "import": "./dist/server_pages/register.js"
78
+ },
79
+ "./pages/forgot_password": {
80
+ "types": "./dist/server_pages/forgot_password.d.ts",
81
+ "import": "./dist/server_pages/forgot_password.js"
82
+ },
83
+ "./pages/reset_password": {
84
+ "types": "./dist/server_pages/reset_password.d.ts",
85
+ "import": "./dist/server_pages/reset_password.js"
86
+ },
87
+ "./pages/verify_email": {
88
+ "types": "./dist/server_pages/verify_email.d.ts",
89
+ "import": "./dist/server_pages/verify_email.js"
90
+ },
91
+ "./pages/my_settings": {
92
+ "types": "./dist/server_pages/my_settings.d.ts",
93
+ "import": "./dist/server_pages/my_settings.js"
94
+ },
95
+ "./page_components": {
64
96
  "types": "./dist/page_components/index.d.ts",
65
97
  "import": "./dist/page_components/index.js"
66
98
  },
67
- "./pages/login": {
99
+ "./page_components/login": {
68
100
  "types": "./dist/page_components/login.d.ts",
69
101
  "import": "./dist/page_components/login.js"
70
102
  },
71
- "./pages/register": {
103
+ "./page_components/register": {
72
104
  "types": "./dist/page_components/register.d.ts",
73
105
  "import": "./dist/page_components/register.js"
74
106
  },
75
- "./pages/forgot_password": {
107
+ "./page_components/forgot_password": {
76
108
  "types": "./dist/page_components/forgot_password.d.ts",
77
109
  "import": "./dist/page_components/forgot_password.js"
78
110
  },
79
- "./pages/reset_password": {
111
+ "./page_components/reset_password": {
80
112
  "types": "./dist/page_components/reset_password.d.ts",
81
113
  "import": "./dist/page_components/reset_password.js"
82
114
  },
83
- "./pages/verify_email": {
115
+ "./page_components/verify_email": {
84
116
  "types": "./dist/page_components/verify_email.d.ts",
85
117
  "import": "./dist/page_components/verify_email.js"
86
- },
87
- "./pages/my_settings": {
88
- "types": "./dist/page_components/my_settings.d.ts",
89
- "import": "./dist/page_components/my_settings.js"
90
118
  }
91
119
  },
92
120
  "files": [
@@ -145,6 +173,7 @@
145
173
  "hazo_notify": "^1.0.0",
146
174
  "helmet": "^8.1.0",
147
175
  "ini": "^6.0.0",
176
+ "jose": "^5.9.6",
148
177
  "jsonwebtoken": "^9.0.2",
149
178
  "lucide-react": "^0.553.0",
150
179
  "mime-types": "^3.0.1",