hazo_auth 1.4.1 → 1.6.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 (478) hide show
  1. package/README.md +25 -38
  2. package/SETUP_CHECKLIST.md +708 -0
  3. package/dist/app/api/hazo_auth/change_password/route.d.ts +8 -0
  4. package/dist/app/api/hazo_auth/change_password/route.d.ts.map +1 -0
  5. package/dist/app/api/hazo_auth/change_password/route.js +98 -0
  6. package/dist/app/api/hazo_auth/forgot_password/route.d.ts +8 -0
  7. package/dist/app/api/hazo_auth/forgot_password/route.d.ts.map +1 -0
  8. package/dist/app/api/hazo_auth/forgot_password/route.js +78 -0
  9. package/dist/app/api/hazo_auth/get_auth/route.d.ts +10 -0
  10. package/dist/app/api/hazo_auth/get_auth/route.d.ts.map +1 -0
  11. package/dist/app/api/hazo_auth/get_auth/route.js +63 -0
  12. package/dist/app/api/hazo_auth/invalidate_cache/route.d.ts +14 -0
  13. package/dist/app/api/hazo_auth/invalidate_cache/route.d.ts.map +1 -0
  14. package/dist/app/api/hazo_auth/invalidate_cache/route.js +96 -0
  15. package/dist/app/api/hazo_auth/library_photos/route.d.ts +13 -0
  16. package/dist/app/api/hazo_auth/library_photos/route.d.ts.map +1 -0
  17. package/dist/app/api/hazo_auth/library_photos/route.js +55 -0
  18. package/dist/app/api/hazo_auth/login/route.d.ts +12 -0
  19. package/dist/app/api/hazo_auth/login/route.d.ts.map +1 -0
  20. package/dist/app/api/hazo_auth/login/route.js +140 -0
  21. package/dist/app/api/hazo_auth/logout/route.d.ts +8 -0
  22. package/dist/app/api/hazo_auth/logout/route.d.ts.map +1 -0
  23. package/dist/app/api/hazo_auth/logout/route.js +71 -0
  24. package/dist/app/api/hazo_auth/me/route.d.ts +3 -0
  25. package/dist/app/api/hazo_auth/me/route.d.ts.map +1 -0
  26. package/dist/app/api/hazo_auth/me/route.js +34 -0
  27. package/dist/app/api/hazo_auth/profile_picture/[filename]/route.d.ts +7 -0
  28. package/dist/app/api/hazo_auth/profile_picture/[filename]/route.d.ts.map +1 -0
  29. package/dist/app/api/hazo_auth/profile_picture/[filename]/route.js +43 -0
  30. package/dist/app/api/hazo_auth/register/route.d.ts +9 -0
  31. package/dist/app/api/hazo_auth/register/route.d.ts.map +1 -0
  32. package/dist/app/api/hazo_auth/register/route.js +80 -0
  33. package/dist/app/api/hazo_auth/remove_profile_picture/route.d.ts +8 -0
  34. package/dist/app/api/hazo_auth/remove_profile_picture/route.d.ts.map +1 -0
  35. package/dist/app/api/hazo_auth/remove_profile_picture/route.js +64 -0
  36. package/dist/app/api/hazo_auth/resend_verification/route.d.ts +8 -0
  37. package/dist/app/api/hazo_auth/resend_verification/route.d.ts.map +1 -0
  38. package/dist/app/api/hazo_auth/resend_verification/route.js +79 -0
  39. package/dist/app/api/hazo_auth/reset_password/route.d.ts +8 -0
  40. package/dist/app/api/hazo_auth/reset_password/route.d.ts.map +1 -0
  41. package/dist/app/api/hazo_auth/reset_password/route.js +76 -0
  42. package/dist/app/api/hazo_auth/update_user/route.d.ts +9 -0
  43. package/dist/app/api/hazo_auth/update_user/route.d.ts.map +1 -0
  44. package/dist/app/api/hazo_auth/update_user/route.js +95 -0
  45. package/dist/app/api/hazo_auth/upload_profile_picture/route.d.ts +9 -0
  46. package/dist/app/api/hazo_auth/upload_profile_picture/route.d.ts.map +1 -0
  47. package/dist/app/api/hazo_auth/upload_profile_picture/route.js +204 -0
  48. package/dist/app/api/hazo_auth/validate_reset_token/route.d.ts +6 -0
  49. package/dist/app/api/hazo_auth/validate_reset_token/route.d.ts.map +1 -0
  50. package/dist/app/api/hazo_auth/validate_reset_token/route.js +58 -0
  51. package/dist/app/api/hazo_auth/verify_email/route.d.ts +11 -0
  52. package/dist/app/api/hazo_auth/verify_email/route.d.ts.map +1 -0
  53. package/dist/app/api/hazo_auth/verify_email/route.js +63 -0
  54. package/dist/cli/generate.d.ts +2 -0
  55. package/dist/cli/generate.d.ts.map +1 -0
  56. package/dist/cli/generate.js +117 -0
  57. package/dist/cli/index.d.ts +3 -0
  58. package/dist/cli/index.d.ts.map +1 -0
  59. package/dist/cli/index.js +120 -0
  60. package/dist/cli/validate.d.ts +15 -0
  61. package/dist/cli/validate.d.ts.map +1 -0
  62. package/dist/cli/validate.js +509 -0
  63. package/dist/components/layouts/email_verification/config/email_verification_field_config.d.ts +2 -2
  64. package/dist/components/layouts/email_verification/config/email_verification_field_config.d.ts.map +1 -1
  65. package/dist/components/layouts/email_verification/config/email_verification_field_config.js +1 -1
  66. package/dist/components/layouts/email_verification/hooks/use_email_verification.d.ts +2 -2
  67. package/dist/components/layouts/email_verification/hooks/use_email_verification.d.ts.map +1 -1
  68. package/dist/components/layouts/email_verification/hooks/use_email_verification.js +2 -2
  69. package/dist/components/layouts/email_verification/index.d.ts +3 -3
  70. package/dist/components/layouts/email_verification/index.d.ts.map +1 -1
  71. package/dist/components/layouts/email_verification/index.js +9 -9
  72. package/dist/components/layouts/forgot_password/config/forgot_password_field_config.d.ts +2 -2
  73. package/dist/components/layouts/forgot_password/config/forgot_password_field_config.d.ts.map +1 -1
  74. package/dist/components/layouts/forgot_password/config/forgot_password_field_config.js +1 -1
  75. package/dist/components/layouts/forgot_password/hooks/use_forgot_password_form.d.ts +2 -2
  76. package/dist/components/layouts/forgot_password/hooks/use_forgot_password_form.d.ts.map +1 -1
  77. package/dist/components/layouts/forgot_password/hooks/use_forgot_password_form.js +2 -2
  78. package/dist/components/layouts/forgot_password/index.d.ts +2 -2
  79. package/dist/components/layouts/forgot_password/index.d.ts.map +1 -1
  80. package/dist/components/layouts/forgot_password/index.js +8 -8
  81. package/dist/components/layouts/login/config/login_field_config.d.ts +2 -2
  82. package/dist/components/layouts/login/config/login_field_config.d.ts.map +1 -1
  83. package/dist/components/layouts/login/config/login_field_config.js +1 -1
  84. package/dist/components/layouts/login/hooks/use_login_form.d.ts +2 -2
  85. package/dist/components/layouts/login/hooks/use_login_form.d.ts.map +1 -1
  86. package/dist/components/layouts/login/hooks/use_login_form.js +4 -4
  87. package/dist/components/layouts/login/index.d.ts +2 -2
  88. package/dist/components/layouts/login/index.d.ts.map +1 -1
  89. package/dist/components/layouts/login/index.js +9 -9
  90. package/dist/components/layouts/my_settings/components/editable_field.js +3 -3
  91. package/dist/components/layouts/my_settings/components/password_change_dialog.d.ts +1 -1
  92. package/dist/components/layouts/my_settings/components/password_change_dialog.d.ts.map +1 -1
  93. package/dist/components/layouts/my_settings/components/password_change_dialog.js +4 -4
  94. package/dist/components/layouts/my_settings/components/profile_picture_dialog.js +7 -7
  95. package/dist/components/layouts/my_settings/components/profile_picture_display.js +1 -1
  96. package/dist/components/layouts/my_settings/components/profile_picture_gravatar_tab.js +3 -3
  97. package/dist/components/layouts/my_settings/components/profile_picture_library_tab.js +5 -5
  98. package/dist/components/layouts/my_settings/components/profile_picture_upload_tab.js +4 -4
  99. package/dist/components/layouts/my_settings/config/my_settings_field_config.d.ts +1 -1
  100. package/dist/components/layouts/my_settings/config/my_settings_field_config.d.ts.map +1 -1
  101. package/dist/components/layouts/my_settings/config/my_settings_field_config.js +1 -1
  102. package/dist/components/layouts/my_settings/hooks/use_my_settings.d.ts +1 -1
  103. package/dist/components/layouts/my_settings/hooks/use_my_settings.d.ts.map +1 -1
  104. package/dist/components/layouts/my_settings/hooks/use_my_settings.js +1 -1
  105. package/dist/components/layouts/my_settings/index.d.ts +2 -2
  106. package/dist/components/layouts/my_settings/index.d.ts.map +1 -1
  107. package/dist/components/layouts/my_settings/index.js +9 -9
  108. package/dist/components/layouts/register/config/register_field_config.d.ts +2 -2
  109. package/dist/components/layouts/register/config/register_field_config.d.ts.map +1 -1
  110. package/dist/components/layouts/register/config/register_field_config.js +1 -1
  111. package/dist/components/layouts/register/hooks/use_register_form.d.ts +3 -3
  112. package/dist/components/layouts/register/hooks/use_register_form.d.ts.map +1 -1
  113. package/dist/components/layouts/register/hooks/use_register_form.js +2 -2
  114. package/dist/components/layouts/register/index.d.ts +2 -2
  115. package/dist/components/layouts/register/index.d.ts.map +1 -1
  116. package/dist/components/layouts/register/index.js +9 -9
  117. package/dist/components/layouts/reset_password/config/reset_password_field_config.d.ts +2 -2
  118. package/dist/components/layouts/reset_password/config/reset_password_field_config.d.ts.map +1 -1
  119. package/dist/components/layouts/reset_password/config/reset_password_field_config.js +1 -1
  120. package/dist/components/layouts/reset_password/hooks/use_reset_password_form.d.ts +3 -3
  121. package/dist/components/layouts/reset_password/hooks/use_reset_password_form.d.ts.map +1 -1
  122. package/dist/components/layouts/reset_password/hooks/use_reset_password_form.js +2 -2
  123. package/dist/components/layouts/reset_password/index.d.ts +2 -2
  124. package/dist/components/layouts/reset_password/index.d.ts.map +1 -1
  125. package/dist/components/layouts/reset_password/index.js +8 -8
  126. package/dist/components/layouts/shared/components/already_logged_in_guard.js +4 -4
  127. package/dist/components/layouts/shared/components/auth_page_shell.js +3 -3
  128. package/dist/components/layouts/shared/components/form_action_buttons.d.ts +1 -1
  129. package/dist/components/layouts/shared/components/form_action_buttons.d.ts.map +1 -1
  130. package/dist/components/layouts/shared/components/form_action_buttons.js +1 -1
  131. package/dist/components/layouts/shared/components/form_field_wrapper.js +2 -2
  132. package/dist/components/layouts/shared/components/logout_button.js +2 -2
  133. package/dist/components/layouts/shared/components/password_field.js +3 -3
  134. package/dist/components/layouts/shared/components/profile_pic_menu.d.ts +1 -1
  135. package/dist/components/layouts/shared/components/profile_pic_menu.d.ts.map +1 -1
  136. package/dist/components/layouts/shared/components/profile_pic_menu.js +4 -4
  137. package/dist/components/layouts/shared/components/profile_pic_menu_wrapper.js +2 -2
  138. package/dist/components/layouts/shared/components/sidebar_layout_wrapper.js +3 -3
  139. package/dist/components/layouts/shared/components/standalone_layout_wrapper.js +1 -1
  140. package/dist/components/layouts/shared/components/two_column_auth_layout.js +1 -1
  141. package/dist/components/layouts/shared/components/unauthorized_guard.js +2 -2
  142. package/dist/components/layouts/shared/hooks/use_hazo_auth.d.ts +1 -1
  143. package/dist/components/layouts/shared/hooks/use_hazo_auth.d.ts.map +1 -1
  144. package/dist/components/layouts/shared/utils/validation.d.ts +1 -1
  145. package/dist/components/layouts/shared/utils/validation.d.ts.map +1 -1
  146. package/dist/components/layouts/user_management/components/roles_matrix.js +7 -7
  147. package/dist/components/layouts/user_management/index.js +11 -11
  148. package/dist/components/ui/alert-dialog.js +2 -2
  149. package/dist/components/ui/avatar.js +1 -1
  150. package/dist/components/ui/button.js +1 -1
  151. package/dist/components/ui/card.d.ts +9 -0
  152. package/dist/components/ui/card.d.ts.map +1 -0
  153. package/dist/components/ui/card.js +45 -0
  154. package/dist/components/ui/checkbox.js +1 -1
  155. package/dist/components/ui/dialog.js +1 -1
  156. package/dist/components/ui/dropdown-menu.js +1 -1
  157. package/dist/components/ui/hazo_ui_tooltip.js +1 -1
  158. package/dist/components/ui/input.js +1 -1
  159. package/dist/components/ui/label.js +1 -1
  160. package/dist/components/ui/separator.js +1 -1
  161. package/dist/components/ui/sheet.js +1 -1
  162. package/dist/components/ui/sidebar.d.ts +2 -2
  163. package/dist/components/ui/sidebar.d.ts.map +1 -1
  164. package/dist/components/ui/sidebar.js +8 -8
  165. package/dist/components/ui/skeleton.js +1 -1
  166. package/dist/components/ui/switch.js +1 -1
  167. package/dist/components/ui/table.js +1 -1
  168. package/dist/components/ui/tabs.js +1 -1
  169. package/dist/components/ui/tooltip.js +1 -1
  170. package/dist/components/ui/vertical-tabs.js +1 -1
  171. package/dist/hooks/use-mobile.d.ts.map +1 -1
  172. package/dist/hooks/use-mobile.js +17 -3
  173. package/dist/lib/already_logged_in_config.server.js +1 -1
  174. package/dist/lib/app_logger.js +1 -1
  175. package/dist/lib/auth/auth_cache.d.ts +1 -1
  176. package/dist/lib/auth/auth_cache.d.ts.map +1 -1
  177. package/dist/lib/auth/auth_utils.server.js +2 -2
  178. package/dist/lib/auth/hazo_get_auth.server.d.ts +1 -1
  179. package/dist/lib/auth/hazo_get_auth.server.d.ts.map +1 -1
  180. package/dist/lib/auth/hazo_get_auth.server.js +7 -7
  181. package/dist/lib/auth/server_auth.js +2 -2
  182. package/dist/lib/auth_utility_config.server.js +1 -1
  183. package/dist/lib/config/config_loader.server.js +1 -1
  184. package/dist/lib/email_verification_config.server.js +1 -1
  185. package/dist/lib/file_types_config.server.js +1 -1
  186. package/dist/lib/forgot_password_config.server.js +1 -1
  187. package/dist/lib/hazo_connect_instance.server.js +2 -2
  188. package/dist/lib/hazo_connect_setup.server.js +2 -2
  189. package/dist/lib/login_config.server.js +2 -2
  190. package/dist/lib/messages_config.server.js +1 -1
  191. package/dist/lib/my_settings_config.server.js +7 -7
  192. package/dist/lib/password_requirements_config.server.js +1 -1
  193. package/dist/lib/profile_pic_menu_config.server.js +1 -1
  194. package/dist/lib/profile_picture_config.server.js +2 -2
  195. package/dist/lib/register_config.server.js +4 -4
  196. package/dist/lib/reset_password_config.server.js +3 -3
  197. package/dist/lib/services/email_service.js +2 -2
  198. package/dist/lib/services/email_verification_service.js +3 -3
  199. package/dist/lib/services/login_service.js +3 -3
  200. package/dist/lib/services/password_change_service.js +3 -3
  201. package/dist/lib/services/password_reset_service.js +3 -3
  202. package/dist/lib/services/profile_picture_remove_service.js +3 -3
  203. package/dist/lib/services/profile_picture_service.d.ts +1 -1
  204. package/dist/lib/services/profile_picture_service.d.ts.map +1 -1
  205. package/dist/lib/services/profile_picture_service.js +5 -5
  206. package/dist/lib/services/registration_service.js +8 -8
  207. package/dist/lib/services/token_service.js +2 -2
  208. package/dist/lib/services/user_profiles_service.js +2 -2
  209. package/dist/lib/services/user_update_service.d.ts +1 -1
  210. package/dist/lib/services/user_update_service.d.ts.map +1 -1
  211. package/dist/lib/services/user_update_service.js +4 -4
  212. package/dist/lib/ui_shell_config.server.js +1 -1
  213. package/dist/lib/ui_sizes_config.server.js +1 -1
  214. package/dist/lib/user_fields_config.server.js +1 -1
  215. package/dist/lib/user_management_config.server.js +1 -1
  216. package/dist/lib/utils/error_sanitizer.d.ts +1 -1
  217. package/dist/lib/utils/error_sanitizer.d.ts.map +1 -1
  218. package/dist/server/config/config_loader.d.ts +1 -1
  219. package/dist/server/config/config_loader.d.ts.map +1 -1
  220. package/dist/server/config/config_loader.js +1 -1
  221. package/dist/server/index.js +2 -2
  222. package/dist/server/logging/logger_service.d.ts +1 -1
  223. package/dist/server/logging/logger_service.d.ts.map +1 -1
  224. package/dist/server/routes/change_password.d.ts +2 -0
  225. package/dist/server/routes/change_password.d.ts.map +1 -0
  226. package/dist/server/routes/change_password.js +2 -0
  227. package/dist/server/routes/forgot_password.d.ts +2 -0
  228. package/dist/server/routes/forgot_password.d.ts.map +1 -0
  229. package/dist/server/routes/forgot_password.js +2 -0
  230. package/dist/server/routes/get_auth.d.ts +2 -0
  231. package/dist/server/routes/get_auth.d.ts.map +1 -0
  232. package/dist/server/routes/get_auth.js +2 -0
  233. package/dist/server/routes/index.d.ts +18 -0
  234. package/dist/server/routes/index.d.ts.map +1 -0
  235. package/dist/server/routes/index.js +24 -0
  236. package/dist/server/routes/invalidate_cache.d.ts +2 -0
  237. package/dist/server/routes/invalidate_cache.d.ts.map +1 -0
  238. package/dist/server/routes/invalidate_cache.js +2 -0
  239. package/dist/server/routes/library_photos.d.ts +2 -0
  240. package/dist/server/routes/library_photos.d.ts.map +1 -0
  241. package/dist/server/routes/library_photos.js +2 -0
  242. package/dist/server/routes/login.d.ts +2 -0
  243. package/dist/server/routes/login.d.ts.map +1 -0
  244. package/dist/server/routes/login.js +2 -0
  245. package/dist/server/routes/logout.d.ts +2 -0
  246. package/dist/server/routes/logout.d.ts.map +1 -0
  247. package/dist/server/routes/logout.js +2 -0
  248. package/dist/server/routes/me.d.ts +2 -0
  249. package/dist/server/routes/me.d.ts.map +1 -0
  250. package/dist/server/routes/me.js +2 -0
  251. package/dist/server/routes/profile_picture_filename.d.ts +2 -0
  252. package/dist/server/routes/profile_picture_filename.d.ts.map +1 -0
  253. package/dist/server/routes/profile_picture_filename.js +3 -0
  254. package/dist/server/routes/register.d.ts +2 -0
  255. package/dist/server/routes/register.d.ts.map +1 -0
  256. package/dist/server/routes/register.js +2 -0
  257. package/dist/server/routes/remove_profile_picture.d.ts +2 -0
  258. package/dist/server/routes/remove_profile_picture.d.ts.map +1 -0
  259. package/dist/server/routes/remove_profile_picture.js +2 -0
  260. package/dist/server/routes/resend_verification.d.ts +2 -0
  261. package/dist/server/routes/resend_verification.d.ts.map +1 -0
  262. package/dist/server/routes/resend_verification.js +2 -0
  263. package/dist/server/routes/reset_password.d.ts +2 -0
  264. package/dist/server/routes/reset_password.d.ts.map +1 -0
  265. package/dist/server/routes/reset_password.js +2 -0
  266. package/dist/server/routes/update_user.d.ts +2 -0
  267. package/dist/server/routes/update_user.d.ts.map +1 -0
  268. package/dist/server/routes/update_user.js +2 -0
  269. package/dist/server/routes/upload_profile_picture.d.ts +2 -0
  270. package/dist/server/routes/upload_profile_picture.d.ts.map +1 -0
  271. package/dist/server/routes/upload_profile_picture.js +2 -0
  272. package/dist/server/routes/validate_reset_token.d.ts +2 -0
  273. package/dist/server/routes/validate_reset_token.d.ts.map +1 -0
  274. package/dist/server/routes/validate_reset_token.js +2 -0
  275. package/dist/server/routes/verify_email.d.ts +2 -0
  276. package/dist/server/routes/verify_email.d.ts.map +1 -0
  277. package/dist/server/routes/verify_email.js +2 -0
  278. package/dist/server/server.js +2 -2
  279. package/package.json +14 -115
  280. package/components.json +0 -22
  281. package/instrumentation.ts +0 -32
  282. package/migrations/001_add_token_type_to_refresh_tokens.sql +0 -14
  283. package/migrations/002_add_name_to_hazo_users.sql +0 -7
  284. package/migrations/003_add_url_on_logon_to_hazo_users.sql +0 -8
  285. package/next.config.mjs +0 -67
  286. package/postcss.config.mjs +0 -8
  287. package/public/file.svg +0 -1
  288. package/public/globe.svg +0 -1
  289. package/public/next.svg +0 -1
  290. package/public/vercel.svg +0 -1
  291. package/public/window.svg +0 -1
  292. package/scripts/apply_migration.ts +0 -118
  293. package/scripts/init_users.ts +0 -378
  294. package/src/app/api/hazo_auth/auth/upload_profile_picture/route.ts +0 -268
  295. package/src/app/api/hazo_auth/change_password/route.ts +0 -132
  296. package/src/app/api/hazo_auth/forgot_password/route.ts +0 -107
  297. package/src/app/api/hazo_auth/get_auth/route.ts +0 -89
  298. package/src/app/api/hazo_auth/invalidate_cache/route.ts +0 -139
  299. package/src/app/api/hazo_auth/library_photos/route.ts +0 -73
  300. package/src/app/api/hazo_auth/login/route.ts +0 -181
  301. package/src/app/api/hazo_auth/logout/route.ts +0 -89
  302. package/src/app/api/hazo_auth/me/route.ts +0 -47
  303. package/src/app/api/hazo_auth/profile_picture/[filename]/route.ts +0 -67
  304. package/src/app/api/hazo_auth/register/route.ts +0 -109
  305. package/src/app/api/hazo_auth/remove_profile_picture/route.ts +0 -86
  306. package/src/app/api/hazo_auth/resend_verification/route.ts +0 -108
  307. package/src/app/api/hazo_auth/reset_password/route.ts +0 -107
  308. package/src/app/api/hazo_auth/update_user/route.ts +0 -126
  309. package/src/app/api/hazo_auth/upload_profile_picture/route.ts +0 -268
  310. package/src/app/api/hazo_auth/user_management/permissions/route.ts +0 -367
  311. package/src/app/api/hazo_auth/user_management/roles/route.ts +0 -442
  312. package/src/app/api/hazo_auth/user_management/users/roles/route.ts +0 -367
  313. package/src/app/api/hazo_auth/user_management/users/route.ts +0 -239
  314. package/src/app/api/hazo_auth/validate_reset_token/route.ts +0 -83
  315. package/src/app/api/hazo_auth/verify_email/route.ts +0 -88
  316. package/src/app/api/migrations/apply/route.ts +0 -91
  317. package/src/app/favicon.ico +0 -0
  318. package/src/app/fonts/GeistMonoVF.woff +0 -0
  319. package/src/app/fonts/GeistVF.woff +0 -0
  320. package/src/app/globals.css +0 -89
  321. package/src/app/hazo_auth/forgot_password/forgot_password_page_client.tsx +0 -60
  322. package/src/app/hazo_auth/forgot_password/page.tsx +0 -24
  323. package/src/app/hazo_auth/login/login_page_client.tsx +0 -86
  324. package/src/app/hazo_auth/login/page.tsx +0 -38
  325. package/src/app/hazo_auth/my_settings/my_settings_page_client.tsx +0 -120
  326. package/src/app/hazo_auth/my_settings/page.tsx +0 -40
  327. package/src/app/hazo_auth/register/page.tsx +0 -36
  328. package/src/app/hazo_auth/register/register_page_client.tsx +0 -81
  329. package/src/app/hazo_auth/reset_password/page.tsx +0 -29
  330. package/src/app/hazo_auth/reset_password/reset_password_page_client.tsx +0 -81
  331. package/src/app/hazo_auth/user_management/page.tsx +0 -14
  332. package/src/app/hazo_auth/user_management/user_management_page_client.tsx +0 -16
  333. package/src/app/hazo_auth/verify_email/page.tsx +0 -24
  334. package/src/app/hazo_auth/verify_email/verify_email_page_client.tsx +0 -60
  335. package/src/app/hazo_connect/api/sqlite/data/route.ts +0 -203
  336. package/src/app/hazo_connect/api/sqlite/schema/route.ts +0 -45
  337. package/src/app/hazo_connect/api/sqlite/tables/route.ts +0 -36
  338. package/src/app/hazo_connect/sqlite_admin/page.tsx +0 -51
  339. package/src/app/hazo_connect/sqlite_admin/sqlite-admin-client.tsx +0 -984
  340. package/src/app/layout.tsx +0 -43
  341. package/src/app/page.tsx +0 -170
  342. package/src/components/index.ts +0 -7
  343. package/src/components/layouts/email_verification/config/email_verification_field_config.ts +0 -86
  344. package/src/components/layouts/email_verification/hooks/use_email_verification.ts +0 -297
  345. package/src/components/layouts/email_verification/index.tsx +0 -297
  346. package/src/components/layouts/forgot_password/config/forgot_password_field_config.ts +0 -58
  347. package/src/components/layouts/forgot_password/hooks/use_forgot_password_form.ts +0 -179
  348. package/src/components/layouts/forgot_password/index.tsx +0 -168
  349. package/src/components/layouts/index.ts +0 -26
  350. package/src/components/layouts/login/config/login_field_config.ts +0 -67
  351. package/src/components/layouts/login/hooks/use_login_form.ts +0 -286
  352. package/src/components/layouts/login/index.tsx +0 -252
  353. package/src/components/layouts/my_settings/components/editable_field.tsx +0 -177
  354. package/src/components/layouts/my_settings/components/password_change_dialog.tsx +0 -301
  355. package/src/components/layouts/my_settings/components/profile_picture_dialog.tsx +0 -385
  356. package/src/components/layouts/my_settings/components/profile_picture_display.tsx +0 -66
  357. package/src/components/layouts/my_settings/components/profile_picture_gravatar_tab.tsx +0 -143
  358. package/src/components/layouts/my_settings/components/profile_picture_library_tab.tsx +0 -311
  359. package/src/components/layouts/my_settings/components/profile_picture_upload_tab.tsx +0 -341
  360. package/src/components/layouts/my_settings/config/my_settings_field_config.ts +0 -61
  361. package/src/components/layouts/my_settings/hooks/use_my_settings.ts +0 -458
  362. package/src/components/layouts/my_settings/index.tsx +0 -351
  363. package/src/components/layouts/register/config/register_field_config.ts +0 -101
  364. package/src/components/layouts/register/hooks/use_register_form.ts +0 -275
  365. package/src/components/layouts/register/index.tsx +0 -226
  366. package/src/components/layouts/reset_password/config/reset_password_field_config.ts +0 -86
  367. package/src/components/layouts/reset_password/hooks/use_reset_password_form.ts +0 -276
  368. package/src/components/layouts/reset_password/index.tsx +0 -294
  369. package/src/components/layouts/shared/components/already_logged_in_guard.tsx +0 -95
  370. package/src/components/layouts/shared/components/auth_page_shell.tsx +0 -36
  371. package/src/components/layouts/shared/components/field_error_message.tsx +0 -29
  372. package/src/components/layouts/shared/components/form_action_buttons.tsx +0 -64
  373. package/src/components/layouts/shared/components/form_field_wrapper.tsx +0 -44
  374. package/src/components/layouts/shared/components/form_header.tsx +0 -36
  375. package/src/components/layouts/shared/components/logout_button.tsx +0 -76
  376. package/src/components/layouts/shared/components/password_field.tsx +0 -72
  377. package/src/components/layouts/shared/components/profile_pic_menu.tsx +0 -321
  378. package/src/components/layouts/shared/components/profile_pic_menu_wrapper.tsx +0 -40
  379. package/src/components/layouts/shared/components/sidebar_layout_wrapper.tsx +0 -214
  380. package/src/components/layouts/shared/components/standalone_layout_wrapper.tsx +0 -53
  381. package/src/components/layouts/shared/components/two_column_auth_layout.tsx +0 -44
  382. package/src/components/layouts/shared/components/unauthorized_guard.tsx +0 -78
  383. package/src/components/layouts/shared/components/visual_panel.tsx +0 -41
  384. package/src/components/layouts/shared/config/layout_customization.ts +0 -95
  385. package/src/components/layouts/shared/data/layout_data_client.ts +0 -19
  386. package/src/components/layouts/shared/hooks/use_auth_status.ts +0 -103
  387. package/src/components/layouts/shared/hooks/use_hazo_auth.ts +0 -158
  388. package/src/components/layouts/shared/index.ts +0 -34
  389. package/src/components/layouts/shared/utils/ip_address.ts +0 -37
  390. package/src/components/layouts/shared/utils/validation.ts +0 -66
  391. package/src/components/layouts/user_management/components/roles_matrix.tsx +0 -607
  392. package/src/components/layouts/user_management/index.tsx +0 -1295
  393. package/src/components/ui/alert-dialog.tsx +0 -141
  394. package/src/components/ui/avatar.tsx +0 -50
  395. package/src/components/ui/button.tsx +0 -57
  396. package/src/components/ui/checkbox.tsx +0 -30
  397. package/src/components/ui/dialog.tsx +0 -122
  398. package/src/components/ui/dropdown-menu.tsx +0 -201
  399. package/src/components/ui/hazo_ui_tooltip.tsx +0 -67
  400. package/src/components/ui/index.ts +0 -22
  401. package/src/components/ui/input.tsx +0 -22
  402. package/src/components/ui/label.tsx +0 -26
  403. package/src/components/ui/separator.tsx +0 -31
  404. package/src/components/ui/sheet.tsx +0 -139
  405. package/src/components/ui/sidebar.tsx +0 -773
  406. package/src/components/ui/skeleton.tsx +0 -15
  407. package/src/components/ui/sonner.tsx +0 -31
  408. package/src/components/ui/switch.tsx +0 -29
  409. package/src/components/ui/table.tsx +0 -120
  410. package/src/components/ui/tabs.tsx +0 -55
  411. package/src/components/ui/tooltip.tsx +0 -32
  412. package/src/components/ui/vertical-tabs.tsx +0 -59
  413. package/src/hooks/use-mobile.tsx +0 -19
  414. package/src/index.ts +0 -7
  415. package/src/lib/already_logged_in_config.server.ts +0 -46
  416. package/src/lib/app_logger.ts +0 -24
  417. package/src/lib/auth/auth_cache.ts +0 -220
  418. package/src/lib/auth/auth_rate_limiter.ts +0 -121
  419. package/src/lib/auth/auth_types.ts +0 -65
  420. package/src/lib/auth/auth_utils.server.ts +0 -196
  421. package/src/lib/auth/hazo_get_auth.server.ts +0 -333
  422. package/src/lib/auth/index.ts +0 -23
  423. package/src/lib/auth/server_auth.ts +0 -88
  424. package/src/lib/auth_utility_config.server.ts +0 -136
  425. package/src/lib/config/config_loader.server.ts +0 -164
  426. package/src/lib/email_verification_config.server.ts +0 -32
  427. package/src/lib/file_types_config.server.ts +0 -25
  428. package/src/lib/forgot_password_config.server.ts +0 -32
  429. package/src/lib/hazo_connect_instance.server.ts +0 -101
  430. package/src/lib/hazo_connect_setup.server.ts +0 -194
  431. package/src/lib/hazo_connect_setup.ts +0 -54
  432. package/src/lib/index.ts +0 -44
  433. package/src/lib/login_config.server.ts +0 -71
  434. package/src/lib/messages_config.server.ts +0 -45
  435. package/src/lib/migrations/apply_migration.ts +0 -105
  436. package/src/lib/my_settings_config.server.ts +0 -135
  437. package/src/lib/password_requirements_config.server.ts +0 -39
  438. package/src/lib/profile_pic_menu_config.server.ts +0 -138
  439. package/src/lib/profile_picture_config.server.ts +0 -56
  440. package/src/lib/register_config.server.ts +0 -73
  441. package/src/lib/reset_password_config.server.ts +0 -75
  442. package/src/lib/services/email_service.ts +0 -581
  443. package/src/lib/services/email_verification_service.ts +0 -270
  444. package/src/lib/services/index.ts +0 -15
  445. package/src/lib/services/login_service.ts +0 -134
  446. package/src/lib/services/password_change_service.ts +0 -154
  447. package/src/lib/services/password_reset_service.ts +0 -405
  448. package/src/lib/services/profile_picture_remove_service.ts +0 -120
  449. package/src/lib/services/profile_picture_service.ts +0 -215
  450. package/src/lib/services/profile_picture_source_mapper.ts +0 -62
  451. package/src/lib/services/registration_service.ts +0 -184
  452. package/src/lib/services/token_service.ts +0 -240
  453. package/src/lib/services/user_profiles_service.ts +0 -143
  454. package/src/lib/services/user_update_service.ts +0 -141
  455. package/src/lib/ui_shell_config.server.ts +0 -73
  456. package/src/lib/ui_sizes_config.server.ts +0 -37
  457. package/src/lib/user_fields_config.server.ts +0 -31
  458. package/src/lib/user_management_config.server.ts +0 -39
  459. package/src/lib/utils/api_route_helpers.ts +0 -60
  460. package/src/lib/utils/error_sanitizer.ts +0 -75
  461. package/src/lib/utils.ts +0 -11
  462. package/src/middleware.ts +0 -94
  463. package/src/routes/index.ts +0 -34
  464. package/src/server/config/config_loader.ts +0 -496
  465. package/src/server/index.ts +0 -38
  466. package/src/server/logging/logger_service.ts +0 -56
  467. package/src/server/routes/root_router.ts +0 -16
  468. package/src/server/server.ts +0 -28
  469. package/src/server/types/app_types.ts +0 -74
  470. package/src/server/types/express.d.ts +0 -16
  471. package/src/stories/email_verification_layout.stories.tsx +0 -137
  472. package/src/stories/forgot_password_layout.stories.tsx +0 -85
  473. package/src/stories/login_layout.stories.tsx +0 -85
  474. package/src/stories/project_overview.stories.tsx +0 -33
  475. package/src/stories/register_layout.stories.tsx +0 -107
  476. package/tailwind.config.ts +0 -77
  477. package/tsconfig.build.json +0 -39
  478. package/tsconfig.json +0 -28
@@ -1,23 +0,0 @@
1
- // file_description: barrel export for auth utilities
2
- // section: type_exports
3
- export * from "./auth_types";
4
-
5
- // section: server_exports
6
- export { hazo_get_auth } from "./hazo_get_auth.server";
7
- export {
8
- get_authenticated_user,
9
- require_auth,
10
- is_authenticated,
11
- } from "./auth_utils.server";
12
- export type { AuthResult, AuthUser } from "./auth_utils.server";
13
-
14
- // section: client_exports
15
- export { get_server_auth_user } from "./server_auth";
16
- export type { ServerAuthResult } from "./server_auth";
17
-
18
- // section: cache_exports
19
- export { get_auth_cache, reset_auth_cache } from "./auth_cache";
20
-
21
- // section: rate_limiter_exports
22
- export { get_rate_limiter, reset_rate_limiter } from "./auth_rate_limiter";
23
-
@@ -1,88 +0,0 @@
1
- // file_description: server-side auth utilities for server components and pages
2
- // section: imports
3
- import { cookies } from "next/headers";
4
- import { get_hazo_connect_instance } from "hazo_auth/lib/hazo_connect_instance.server";
5
- import { createCrudService } from "hazo_connect/server";
6
- import { map_db_source_to_ui } from "hazo_auth/lib/services/profile_picture_source_mapper";
7
-
8
- // section: types
9
- export type ServerAuthUser = {
10
- authenticated: true;
11
- user_id: string;
12
- email: string;
13
- name?: string;
14
- email_verified: boolean;
15
- is_active: boolean;
16
- last_logon?: string;
17
- profile_picture_url?: string;
18
- profile_source?: "upload" | "library" | "gravatar" | "custom";
19
- };
20
-
21
- export type ServerAuthResult =
22
- | ServerAuthUser
23
- | { authenticated: false };
24
-
25
- // section: functions
26
- /**
27
- * Gets authenticated user in server components/pages
28
- * Uses Next.js cookies() function to read authentication cookies
29
- * @returns ServerAuthResult with user info or authenticated: false
30
- */
31
- export async function get_server_auth_user(): Promise<ServerAuthResult> {
32
- const cookie_store = await cookies();
33
- const user_id = cookie_store.get("hazo_auth_user_id")?.value;
34
- const user_email = cookie_store.get("hazo_auth_user_email")?.value;
35
-
36
- if (!user_id || !user_email) {
37
- return { authenticated: false };
38
- }
39
-
40
- try {
41
- const hazoConnect = get_hazo_connect_instance();
42
- const users_service = createCrudService(hazoConnect, "hazo_users");
43
-
44
- const users = await users_service.findBy({
45
- id: user_id,
46
- email_address: user_email,
47
- });
48
-
49
- if (!Array.isArray(users) || users.length === 0) {
50
- return { authenticated: false };
51
- }
52
-
53
- const user = users[0];
54
-
55
- // Check if user is active
56
- if (user.is_active === false) {
57
- return { authenticated: false };
58
- }
59
-
60
- // Map database profile_source to UI representation
61
- const profile_source_db = user.profile_source as string | null | undefined;
62
- const profile_source_ui = profile_source_db ? map_db_source_to_ui(profile_source_db) : undefined;
63
-
64
- return {
65
- authenticated: true,
66
- user_id: user.id as string,
67
- email: user.email_address as string,
68
- name: (user.name as string | null | undefined) || undefined,
69
- email_verified: user.email_verified === true,
70
- is_active: user.is_active === true,
71
- last_logon: (user.last_logon as string | null | undefined) || undefined,
72
- profile_picture_url: (user.profile_picture_url as string | null | undefined) || undefined,
73
- profile_source: profile_source_ui,
74
- };
75
- } catch (error) {
76
- return { authenticated: false };
77
- }
78
- }
79
-
80
- /**
81
- * Checks if user is authenticated in server components/pages (simple boolean check)
82
- * @returns true if authenticated, false otherwise
83
- */
84
- export async function is_server_authenticated(): Promise<boolean> {
85
- const result = await get_server_auth_user();
86
- return result.authenticated;
87
- }
88
-
@@ -1,136 +0,0 @@
1
- // file_description: server-only helper to read auth utility configuration from hazo_auth_config.ini
2
- // section: imports
3
- import {
4
- get_config_value,
5
- get_config_number,
6
- get_config_boolean,
7
- get_config_array,
8
- } from "hazo_auth/lib/config/config_loader.server";
9
-
10
- // section: types
11
-
12
- /**
13
- * Auth utility configuration options
14
- */
15
- export type AuthUtilityConfig = {
16
- cache_max_users: number;
17
- cache_ttl_minutes: number;
18
- cache_max_age_minutes: number;
19
- rate_limit_per_user: number;
20
- rate_limit_per_ip: number;
21
- log_permission_denials: boolean;
22
- enable_friendly_error_messages: boolean;
23
- permission_error_messages: Map<string, string>; // permission -> user-friendly message
24
- };
25
-
26
- // section: helpers
27
-
28
- /**
29
- * Parses permission error messages from config string
30
- * Format: "permission1:message1,permission2:message2"
31
- * @param config_value - Config string value
32
- * @returns Map of permission to user-friendly message
33
- */
34
- function parse_permission_messages(
35
- config_value: string,
36
- ): Map<string, string> {
37
- const messages = new Map<string, string>();
38
-
39
- if (!config_value || config_value.trim().length === 0) {
40
- return messages;
41
- }
42
-
43
- const pairs = config_value.split(",");
44
- for (const pair of pairs) {
45
- const trimmed = pair.trim();
46
- if (trimmed.length === 0) {
47
- continue;
48
- }
49
-
50
- const colon_index = trimmed.indexOf(":");
51
- if (colon_index === -1) {
52
- continue; // Skip invalid format
53
- }
54
-
55
- const permission = trimmed.substring(0, colon_index).trim();
56
- const message = trimmed.substring(colon_index + 1).trim();
57
-
58
- if (permission.length > 0 && message.length > 0) {
59
- messages.set(permission, message);
60
- }
61
- }
62
-
63
- return messages;
64
- }
65
-
66
- /**
67
- * Reads auth utility configuration from hazo_auth_config.ini file
68
- * Falls back to defaults if hazo_auth_config.ini is not found or section is missing
69
- * @returns Auth utility configuration options
70
- */
71
- export function get_auth_utility_config(): AuthUtilityConfig {
72
- const section_name = "hazo_auth__auth_utility";
73
-
74
- // Cache settings
75
- const cache_max_users = get_config_number(
76
- section_name,
77
- "cache_max_users",
78
- 10000,
79
- );
80
- const cache_ttl_minutes = get_config_number(
81
- section_name,
82
- "cache_ttl_minutes",
83
- 15,
84
- );
85
- const cache_max_age_minutes = get_config_number(
86
- section_name,
87
- "cache_max_age_minutes",
88
- 30,
89
- );
90
-
91
- // Rate limiting
92
- const rate_limit_per_user = get_config_number(
93
- section_name,
94
- "rate_limit_per_user",
95
- 100,
96
- );
97
- const rate_limit_per_ip = get_config_number(
98
- section_name,
99
- "rate_limit_per_ip",
100
- 200,
101
- );
102
-
103
- // Permission check behavior
104
- const log_permission_denials = get_config_boolean(
105
- section_name,
106
- "log_permission_denials",
107
- true,
108
- );
109
- const enable_friendly_error_messages = get_config_boolean(
110
- section_name,
111
- "enable_friendly_error_messages",
112
- true,
113
- );
114
-
115
- // Permission message mappings
116
- const permission_messages_str = get_config_value(
117
- section_name,
118
- "permission_error_messages",
119
- "",
120
- );
121
- const permission_error_messages = parse_permission_messages(
122
- permission_messages_str,
123
- );
124
-
125
- return {
126
- cache_max_users,
127
- cache_ttl_minutes,
128
- cache_max_age_minutes,
129
- rate_limit_per_user,
130
- rate_limit_per_ip,
131
- log_permission_denials,
132
- enable_friendly_error_messages,
133
- permission_error_messages,
134
- };
135
- }
136
-
@@ -1,164 +0,0 @@
1
- // file_description: shared utility for reading configuration from hazo_auth_config.ini using hazo_config
2
- // section: imports
3
- import { HazoConfig } from "hazo_config/dist/lib";
4
- import path from "path";
5
- import fs from "fs";
6
- import { create_app_logger } from "hazo_auth/lib/app_logger";
7
-
8
- // section: constants
9
- const DEFAULT_CONFIG_FILE = "hazo_auth_config.ini";
10
-
11
- // section: helpers
12
- /**
13
- * Gets the default config file path
14
- * @param custom_path - Optional custom config file path
15
- * @returns Resolved config file path
16
- */
17
- function get_config_file_path(custom_path?: string): string {
18
- if (custom_path) {
19
- return path.isAbsolute(custom_path) ? custom_path : path.resolve(process.cwd(), custom_path);
20
- }
21
- return path.resolve(process.cwd(), DEFAULT_CONFIG_FILE);
22
- }
23
-
24
- /**
25
- * Reads a section from the config file
26
- * @param section_name - Name of the section to read (e.g., "hazo_auth__register_layout")
27
- * @param file_path - Optional custom config file path (defaults to hazo_auth_config.ini)
28
- * @returns Section data as Record<string, string> or undefined if not found
29
- */
30
- export function read_config_section(
31
- section_name: string,
32
- file_path?: string,
33
- ): Record<string, string> | undefined {
34
- const config_path = get_config_file_path(file_path);
35
- const logger = create_app_logger();
36
-
37
- if (!fs.existsSync(config_path)) {
38
- return undefined;
39
- }
40
-
41
- try {
42
- const hazo_config = new HazoConfig({
43
- filePath: config_path,
44
- });
45
- return hazo_config.getSection(section_name);
46
- } catch (error) {
47
- const error_message = error instanceof Error ? error.message : "Unknown error";
48
- logger.warn("config_loader_read_section_failed", {
49
- filename: "config_loader.server.ts",
50
- line_number: 0,
51
- section_name,
52
- config_path,
53
- error: error_message,
54
- });
55
- return undefined;
56
- }
57
- }
58
-
59
- /**
60
- * Gets a single config value from a section
61
- * @param section_name - Name of the section
62
- * @param key - Key name within the section
63
- * @param default_value - Default value if key is not found
64
- * @param file_path - Optional custom config file path
65
- * @returns Config value as string or default value
66
- */
67
- export function get_config_value(
68
- section_name: string,
69
- key: string,
70
- default_value: string,
71
- file_path?: string,
72
- ): string {
73
- const section = read_config_section(section_name, file_path);
74
- // Optional chaining on section and section[key]
75
- // If section is undefined, or key is undefined, fall back to default
76
- if (!section || section[key] === undefined) {
77
- return default_value;
78
- }
79
- return section[key].trim() || default_value;
80
- }
81
-
82
- /**
83
- * Gets a boolean config value from a section
84
- * @param section_name - Name of the section
85
- * @param key - Key name within the section
86
- * @param default_value - Default boolean value if key is not found
87
- * @param file_path - Optional custom config file path
88
- * @returns Config value as boolean
89
- */
90
- export function get_config_boolean(
91
- section_name: string,
92
- key: string,
93
- default_value: boolean,
94
- file_path?: string,
95
- ): boolean {
96
- const section = read_config_section(section_name, file_path);
97
-
98
- if (!section || section[key] === undefined) {
99
- return default_value;
100
- }
101
-
102
- const value = section[key].trim().toLowerCase();
103
- return value !== "false" && value !== "0" && value !== "";
104
- }
105
-
106
- /**
107
- * Gets a number config value from a section
108
- * @param section_name - Name of the section
109
- * @param key - Key name within the section
110
- * @param default_value - Default number value if key is not found or invalid
111
- * @param file_path - Optional custom config file path
112
- * @returns Config value as number
113
- */
114
- export function get_config_number(
115
- section_name: string,
116
- key: string,
117
- default_value: number,
118
- file_path?: string,
119
- ): number {
120
- const section = read_config_section(section_name, file_path);
121
-
122
- if (!section || section[key] === undefined) {
123
- return default_value;
124
- }
125
-
126
- const value = section[key].trim();
127
-
128
- if (!value) {
129
- return default_value;
130
- }
131
-
132
- const parsed = parseFloat(value);
133
- return isNaN(parsed) ? default_value : parsed;
134
- }
135
-
136
- /**
137
- * Gets a comma-separated list config value from a section
138
- * @param section_name - Name of the section
139
- * @param key - Key name within the section
140
- * @param default_value - Default array value if key is not found
141
- * @param file_path - Optional custom config file path
142
- * @returns Config value as array of strings
143
- */
144
- export function get_config_array(
145
- section_name: string,
146
- key: string,
147
- default_value: string[],
148
- file_path?: string,
149
- ): string[] {
150
- const section = read_config_section(section_name, file_path);
151
-
152
- if (!section || section[key] === undefined) {
153
- return default_value;
154
- }
155
-
156
- const value = section[key].trim();
157
-
158
- if (!value) {
159
- return default_value;
160
- }
161
-
162
- return value.split(",").map((item) => item.trim()).filter((item) => item.length > 0);
163
- }
164
-
@@ -1,32 +0,0 @@
1
- // file_description: server-only helper to read email verification layout configuration from hazo_auth_config.ini
2
- // section: imports
3
- import { get_already_logged_in_config } from "hazo_auth/lib/already_logged_in_config.server";
4
-
5
- // section: types
6
- export type EmailVerificationConfig = {
7
- alreadyLoggedInMessage: string;
8
- showLogoutButton: boolean;
9
- showReturnHomeButton: boolean;
10
- returnHomeButtonLabel: string;
11
- returnHomePath: string;
12
- };
13
-
14
- // section: helpers
15
- /**
16
- * Reads email verification layout configuration from hazo_auth_config.ini file
17
- * Falls back to defaults if hazo_auth_config.ini is not found or section is missing
18
- * @returns Email verification configuration options
19
- */
20
- export function get_email_verification_config(): EmailVerificationConfig {
21
- // Get shared already logged in config
22
- const alreadyLoggedInConfig = get_already_logged_in_config();
23
-
24
- return {
25
- alreadyLoggedInMessage: alreadyLoggedInConfig.message,
26
- showLogoutButton: alreadyLoggedInConfig.showLogoutButton,
27
- showReturnHomeButton: alreadyLoggedInConfig.showReturnHomeButton,
28
- returnHomeButtonLabel: alreadyLoggedInConfig.returnHomeButtonLabel,
29
- returnHomePath: alreadyLoggedInConfig.returnHomePath,
30
- };
31
- }
32
-
@@ -1,25 +0,0 @@
1
- // file_description: server-only helper to read file type configuration from hazo_auth_config.ini
2
- // section: imports
3
- import { get_config_array } from "hazo_auth/lib/config/config_loader.server";
4
-
5
- // section: types
6
- export type FileTypesConfig = {
7
- allowed_image_extensions: string[];
8
- allowed_image_mime_types: string[];
9
- };
10
-
11
- // section: helpers
12
- /**
13
- * Reads file type configuration from hazo_auth_config.ini file
14
- * Falls back to defaults if hazo_auth_config.ini is not found or section is missing
15
- * @returns File types configuration options
16
- */
17
- export function get_file_types_config(): FileTypesConfig {
18
- const section = "hazo_auth__file_types";
19
-
20
- return {
21
- allowed_image_extensions: get_config_array(section, "allowed_image_extensions", ["jpg", "jpeg", "png"]),
22
- allowed_image_mime_types: get_config_array(section, "allowed_image_mime_types", ["image/jpeg", "image/jpg", "image/png"]),
23
- };
24
- }
25
-
@@ -1,32 +0,0 @@
1
- // file_description: server-only helper to read forgot password layout configuration from hazo_auth_config.ini
2
- // section: imports
3
- import { get_already_logged_in_config } from "hazo_auth/lib/already_logged_in_config.server";
4
-
5
- // section: types
6
- export type ForgotPasswordConfig = {
7
- alreadyLoggedInMessage: string;
8
- showLogoutButton: boolean;
9
- showReturnHomeButton: boolean;
10
- returnHomeButtonLabel: string;
11
- returnHomePath: string;
12
- };
13
-
14
- // section: helpers
15
- /**
16
- * Reads forgot password layout configuration from hazo_auth_config.ini file
17
- * Falls back to defaults if hazo_auth_config.ini is not found or section is missing
18
- * @returns Forgot password configuration options
19
- */
20
- export function get_forgot_password_config(): ForgotPasswordConfig {
21
- // Get shared already logged in config
22
- const alreadyLoggedInConfig = get_already_logged_in_config();
23
-
24
- return {
25
- alreadyLoggedInMessage: alreadyLoggedInConfig.message,
26
- showLogoutButton: alreadyLoggedInConfig.showLogoutButton,
27
- showReturnHomeButton: alreadyLoggedInConfig.showReturnHomeButton,
28
- returnHomeButtonLabel: alreadyLoggedInConfig.returnHomeButtonLabel,
29
- returnHomePath: alreadyLoggedInConfig.returnHomePath,
30
- };
31
- }
32
-
@@ -1,101 +0,0 @@
1
- // file_description: singleton instance of hazo_connect adapter - initialized once and reused across all routes
2
- // This ensures all routes/components use the same database connection
3
- // Uses the new hazo_connect singleton API from hazo_connect/nextjs/setup
4
- // Reads configuration from hazo_auth_config.ini using hazo_config
5
- // section: imports
6
- import type { HazoConnectAdapter } from "hazo_connect";
7
- import { getHazoConnectSingleton } from "hazo_connect/nextjs/setup";
8
- import { create_sqlite_hazo_connect_server, get_hazo_connect_config_options } from "hazo_auth/lib/hazo_connect_setup.server";
9
- import { initializeAdminService, getSqliteAdminService } from "hazo_connect/server";
10
- import { create_app_logger } from "hazo_auth/lib/app_logger";
11
-
12
- // section: singleton_state
13
- let hazoConnectInstance: HazoConnectAdapter | null = null;
14
- let isInitialized = false;
15
-
16
- // section: helpers
17
- /**
18
- * Gets or creates the singleton hazo_connect adapter instance
19
- * This ensures all routes/components use the same database connection
20
- *
21
- * Uses the new hazo_connect singleton API which:
22
- * - Automatically reuses the adapter instance
23
- * - Automatically registers SQLite adapters with the admin service
24
- * - Is thread-safe for Next.js serverless environments
25
- * - Reads configuration from hazo_auth_config.ini using hazo_config (falls back to environment variables)
26
- *
27
- * Falls back to manual singleton if the new API is not available
28
- *
29
- * @returns The singleton HazoConnectAdapter instance
30
- */
31
- export function get_hazo_connect_instance(): HazoConnectAdapter {
32
- // Use the new singleton API from hazo_connect
33
- // This automatically handles:
34
- // - Instance reuse
35
- // - Admin service registration (via registerSqliteAdapter)
36
- // - Thread-safety for Next.js serverless
37
- // - Configuration from hazo_auth_config.ini (via hazo_config) or environment variables
38
- try {
39
- // Get configuration from hazo_auth_config.ini (falls back to environment variables)
40
- const config_options = get_hazo_connect_config_options();
41
- const logger = create_app_logger();
42
- logger.debug("hazo_connect_singleton_attempt", {
43
- filename: "hazo_connect_instance.server.ts",
44
- line_number: 38,
45
- config_options,
46
- note: "Attempting to get singleton with these options",
47
- });
48
- return getHazoConnectSingleton(config_options);
49
- } catch (error) {
50
- const logger = create_app_logger();
51
- const error_message = error instanceof Error ? error.message : "Unknown error";
52
- logger.error("hazo_connect_singleton_failed", {
53
- filename: "hazo_connect_instance.server.ts",
54
- line_number: 45,
55
- error: error_message,
56
- error_stack: error instanceof Error ? error.stack : undefined,
57
- note: "Falling back to manual singleton implementation",
58
- });
59
-
60
- // Fallback: Manual singleton implementation if new API fails
61
- // This should not happen with the updated package, but kept for safety
62
- if (!hazoConnectInstance) {
63
- // Get config options to determine database type
64
- const config_options = get_hazo_connect_config_options();
65
- const db_type = config_options.type;
66
-
67
- // Only initialize SQLite admin service for SQLite databases
68
- if (db_type === "sqlite" && !isInitialized) {
69
- initializeAdminService({ enable_admin_ui: true });
70
- isInitialized = true;
71
- }
72
-
73
- // Create the adapter instance (reads from hazo_auth_config.ini)
74
- // Note: Despite the name, this function supports both SQLite and PostgREST
75
- hazoConnectInstance = create_sqlite_hazo_connect_server();
76
-
77
- // Note: Database migrations should be applied manually via SQLite Admin UI
78
- // or through a separate migration script. The token_service has fallback
79
- // logic to work without the token_type column if migration hasn't been applied.
80
-
81
- // Finalize initialization by getting the admin service (only for SQLite)
82
- if (db_type === "sqlite") {
83
- try {
84
- getSqliteAdminService();
85
- } catch (adminError) {
86
- const logger = create_app_logger();
87
- const error_message = adminError instanceof Error ? adminError.message : "Unknown error";
88
- logger.warn("hazo_connect_instance_admin_service_init_failed", {
89
- filename: "hazo_connect_instance.server.ts",
90
- line_number: 0,
91
- error: error_message,
92
- note: "Could not get SqliteAdminService during initialization, continuing...",
93
- });
94
- }
95
- }
96
- }
97
-
98
- return hazoConnectInstance;
99
- }
100
- }
101
-