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,194 +0,0 @@
1
- // file_description: server-only helper to create hazo_connect instance (imports server-side code)
2
- // This file should only be imported in server contexts (API routes, server components)
3
- // Reads configuration from hazo_auth_config.ini using hazo_config
4
- // section: imports
5
- import { createHazoConnect } from "hazo_connect/server";
6
- import { HazoConfig } from "hazo_config/dist/lib";
7
- import path from "path";
8
- import fs from "fs";
9
- import { create_app_logger } from "hazo_auth/lib/app_logger";
10
- import { read_config_section } from "hazo_auth/lib/config/config_loader.server";
11
-
12
- // section: helpers
13
- /**
14
- * Reads hazo_connect configuration from hazo_auth_config.ini file
15
- * Falls back to environment variables if hazo_auth_config.ini is not found or section is missing
16
- * @returns Configuration options for hazo_connect
17
- */
18
- function get_hazo_connect_config(): {
19
- type: "sqlite" | "postgrest";
20
- sqlitePath?: string;
21
- enableAdminUi: boolean;
22
- readOnly?: boolean;
23
- postgrestUrl?: string;
24
- postgrestApiKey?: string;
25
- } {
26
- const default_config_path = path.resolve(process.cwd(), "hazo_auth_config.ini");
27
- let hazo_connect_section: Record<string, string> | undefined;
28
-
29
- // Try to read from hazo_auth_config.ini
30
- const logger = create_app_logger();
31
- hazo_connect_section = read_config_section("hazo_connect");
32
-
33
- // Read type (defaults to sqlite)
34
- const type = (
35
- hazo_connect_section?.type ||
36
- process.env.HAZO_CONNECT_TYPE ||
37
- "sqlite"
38
- ).toLowerCase() as "sqlite" | "postgrest";
39
-
40
- // Read enable_admin_ui (defaults to true)
41
- const enable_admin_ui_str =
42
- hazo_connect_section?.enable_admin_ui ||
43
- process.env.HAZO_CONNECT_ENABLE_ADMIN_UI ||
44
- "true";
45
- const enableAdminUi = enable_admin_ui_str.toLowerCase() === "true";
46
-
47
- // Read read_only (defaults to false)
48
- const read_only_str =
49
- hazo_connect_section?.read_only ||
50
- process.env.HAZO_CONNECT_SQLITE_READONLY ||
51
- "false";
52
- const readOnly = read_only_str.toLowerCase() === "true";
53
-
54
- // SQLite configuration
55
- if (type === "sqlite") {
56
- const sqlite_path_config =
57
- hazo_connect_section?.sqlite_path || process.env.HAZO_CONNECT_SQLITE_PATH;
58
-
59
- let sqlite_path: string | undefined;
60
-
61
- if (sqlite_path_config) {
62
- // If path is absolute, use as-is; otherwise resolve relative to process.cwd()
63
- sqlite_path = path.isAbsolute(sqlite_path_config)
64
- ? sqlite_path_config
65
- : path.resolve(process.cwd(), sqlite_path_config);
66
-
67
- // Normalize the path to ensure consistency (resolves .., ., etc.)
68
- sqlite_path = path.normalize(sqlite_path);
69
- } else {
70
- // Fallback to test fixture database
71
- const fallback_sqlite_path = path.resolve(
72
- process.cwd(),
73
- "__tests__",
74
- "fixtures",
75
- "hazo_auth.sqlite"
76
- );
77
- sqlite_path = path.normalize(fallback_sqlite_path);
78
- }
79
-
80
- // Log the resolved path for debugging
81
- logger.debug("hazo_connect_sqlite_path_resolved", {
82
- filename: "hazo_connect_setup.server.ts",
83
- line_number: 0,
84
- sqlite_path,
85
- process_cwd: process.cwd(),
86
- config_source: hazo_connect_section ? "hazo_auth_config.ini" : "environment variables",
87
- });
88
-
89
- return {
90
- type: "sqlite",
91
- sqlitePath: sqlite_path,
92
- enableAdminUi,
93
- readOnly,
94
- };
95
- }
96
-
97
- // PostgREST configuration
98
- if (type === "postgrest") {
99
- const postgrest_url =
100
- hazo_connect_section?.postgrest_url ||
101
- process.env.HAZO_CONNECT_POSTGREST_URL ||
102
- process.env.POSTGREST_URL;
103
- // API key must only come from environment variables for security
104
- // Check multiple possible env var names for compatibility
105
- const postgrest_api_key =
106
- process.env.postgrest_api_key || // hazo_connect package expects this
107
- process.env.HAZO_CONNECT_POSTGREST_API_KEY ||
108
- process.env.POSTGREST_API_KEY;
109
-
110
- if (!postgrest_url) {
111
- throw new Error(
112
- "PostgREST URL is required. Set postgrest_url in [hazo_connect] section of hazo_auth_config.ini or HAZO_CONNECT_POSTGREST_URL environment variable."
113
- );
114
- }
115
-
116
- return {
117
- type: "postgrest",
118
- postgrestUrl: postgrest_url,
119
- postgrestApiKey: postgrest_api_key,
120
- enableAdminUi,
121
- };
122
- }
123
-
124
- throw new Error(
125
- `Unsupported HAZO_CONNECT_TYPE: ${type}. Supported types: sqlite, postgrest`
126
- );
127
- }
128
-
129
- /**
130
- * Server-only function to create hazo_connect adapter
131
- * Reads configuration from hazo_auth_config.ini using hazo_config, falls back to environment variables
132
- * This should only be called from server-side code (API routes, server components)
133
- */
134
- export function create_sqlite_hazo_connect_server() {
135
- const config = get_hazo_connect_config();
136
-
137
- if (config.type === "sqlite") {
138
- return createHazoConnect({
139
- type: "sqlite",
140
- database: config.sqlitePath!,
141
- enable_admin_ui: config.enableAdminUi,
142
- });
143
- }
144
-
145
- if (config.type === "postgrest") {
146
- // Ensure we have a value (empty string if not set, for PostgREST instances without auth)
147
- const apiKey = config.postgrestApiKey || "";
148
-
149
- return createHazoConnect({
150
- type: "postgrest",
151
- baseUrl: config.postgrestUrl!,
152
- apiKey: apiKey, // Pass empty string if not set
153
- });
154
- }
155
-
156
- throw new Error(`Unsupported database type: ${config.type}`);
157
- }
158
-
159
- /**
160
- * Gets hazo_connect configuration options for use with singleton API
161
- * Reads from hazo_auth_config.ini using hazo_config, falls back to environment variables
162
- * @returns Configuration options compatible with getHazoConnectSingleton
163
- */
164
- export function get_hazo_connect_config_options(): {
165
- type?: "sqlite" | "postgrest";
166
- sqlitePath?: string;
167
- enableAdminUi?: boolean;
168
- readOnly?: boolean;
169
- baseUrl?: string;
170
- apiKey?: string;
171
- } {
172
- const config = get_hazo_connect_config();
173
-
174
- if (config.type === "sqlite") {
175
- return {
176
- type: "sqlite",
177
- sqlitePath: config.sqlitePath,
178
- enableAdminUi: config.enableAdminUi,
179
- readOnly: config.readOnly,
180
- };
181
- }
182
-
183
- if (config.type === "postgrest") {
184
- return {
185
- type: "postgrest",
186
- baseUrl: config.postgrestUrl, // Corrected from postgrestUrl
187
- apiKey: config.postgrestApiKey || "", // Corrected from postgrestApiKey and ensured string value
188
- };
189
- }
190
-
191
- // Fallback: return empty object to let it use environment variables
192
- return {};
193
- }
194
-
@@ -1,54 +0,0 @@
1
- // file_description: helper function to create hazo_connect instance with configuration from environment variables
2
- // This file provides a client-safe wrapper that returns a mock on client-side
3
- // section: imports
4
- // Note: We don't import server-side code here to avoid client-side bundling issues
5
-
6
- // section: helpers
7
- /**
8
- * Creates a hazo_connect instance configured from environment variables
9
- *
10
- * Environment variables:
11
- * - HAZO_CONNECT_TYPE: Database type ("sqlite" | "postgrest") - defaults to "sqlite"
12
- * - HAZO_CONNECT_SQLITE_PATH: Path to SQLite database file (relative to process.cwd() or absolute)
13
- * - HAZO_CONNECT_POSTGREST_URL: PostgREST API URL (for postgrest type)
14
- * - HAZO_CONNECT_POSTGREST_API_KEY: PostgREST API key (for postgrest type)
15
- *
16
- * Falls back to test fixture database if HAZO_CONNECT_SQLITE_PATH is not set
17
- *
18
- * Note: For client-side usage (Next.js pages), this returns a mock adapter
19
- * since SQLite cannot run in browser environments. Use PostgREST for client-side database access.
20
- */
21
- // Lazy loader for server module - prevents webpack from statically analyzing the require
22
- function loadServerModule() {
23
- // Use Function constructor to create a dynamic require that webpack can't analyze
24
- // eslint-disable-next-line no-new-func
25
- const requireFunc = new Function('modulePath', 'return require(modulePath)');
26
- return requireFunc('./hazo_connect_setup.server');
27
- }
28
-
29
- export function create_sqlite_hazo_connect() {
30
- // Check if we're in a browser/client environment
31
- if (typeof window !== "undefined") {
32
- // Return a mock adapter for client-side usage
33
- return create_client_mock_hazo_connect();
34
- }
35
-
36
- // Server-side: dynamically load server module
37
- // Using Function constructor prevents webpack from statically analyzing the require
38
- const serverModule = loadServerModule();
39
- return serverModule.create_sqlite_hazo_connect_server();
40
- }
41
-
42
- /**
43
- * Creates a mock hazo_connect adapter for client-side usage
44
- * This satisfies the LayoutDataClient interface without requiring SQLite
45
- */
46
- function create_client_mock_hazo_connect() {
47
- return {
48
- healthCheck: async () => {
49
- // Mock health check for client-side - no-op
50
- return Promise.resolve();
51
- },
52
- };
53
- }
54
-
package/src/lib/index.ts DELETED
@@ -1,44 +0,0 @@
1
- // file_description: barrel export for lib utilities
2
- // section: auth_exports
3
- export * from "./auth/index";
4
-
5
- // section: service_exports
6
- export * from "./services/index";
7
-
8
- // section: utility_exports
9
- export { cn, merge_class_names } from "./utils";
10
-
11
- // section: config_exports
12
- export { get_config_value, get_config_number, get_config_boolean, get_config_array, read_config_section } from "./config/config_loader.server";
13
-
14
- // section: hazo_connect_exports
15
- export { create_sqlite_hazo_connect } from "./hazo_connect_setup";
16
- export { get_hazo_connect_instance } from "./hazo_connect_instance.server";
17
-
18
- // section: logger_exports
19
- export { create_app_logger } from "./app_logger";
20
-
21
- // section: config_server_exports
22
- export { get_login_config } from "./login_config.server";
23
- export { get_register_config } from "./register_config.server";
24
- export { get_forgot_password_config } from "./forgot_password_config.server";
25
- export { get_reset_password_config } from "./reset_password_config.server";
26
- export { get_email_verification_config } from "./email_verification_config.server";
27
- export { get_my_settings_config } from "./my_settings_config.server";
28
- export { get_user_management_config } from "./user_management_config.server";
29
- export { get_profile_picture_config } from "./profile_picture_config.server";
30
- export { get_profile_pic_menu_config } from "./profile_pic_menu_config.server";
31
- export { get_already_logged_in_config } from "./already_logged_in_config.server";
32
- export { get_ui_shell_config } from "./ui_shell_config.server";
33
- export { get_ui_sizes_config } from "./ui_sizes_config.server";
34
- export { get_auth_utility_config } from "./auth_utility_config.server";
35
- export { get_password_requirements_config } from "./password_requirements_config.server";
36
- export { get_messages_config } from "./messages_config.server";
37
- export { get_user_fields_config } from "./user_fields_config.server";
38
- export { get_file_types_config } from "./file_types_config.server";
39
-
40
- // section: util_exports
41
- export { sanitize_error_for_user } from "./utils/error_sanitizer";
42
- export type { ErrorSanitizationOptions } from "./utils/error_sanitizer";
43
- export * from "./utils/api_route_helpers";
44
-
@@ -1,71 +0,0 @@
1
- // file_description: server-only helper to read login layout configuration from hazo_auth_config.ini
2
- // section: imports
3
- import { get_config_value } from "hazo_auth/lib/config/config_loader.server";
4
- import { get_already_logged_in_config } from "hazo_auth/lib/already_logged_in_config.server";
5
-
6
- // section: types
7
- export type LoginConfig = {
8
- redirectRoute?: string;
9
- successMessage: string;
10
- alreadyLoggedInMessage: string;
11
- showLogoutButton: boolean;
12
- showReturnHomeButton: boolean;
13
- returnHomeButtonLabel: string;
14
- returnHomePath: string;
15
- forgotPasswordPath: string;
16
- forgotPasswordLabel: string;
17
- createAccountPath: string;
18
- createAccountLabel: string;
19
- };
20
-
21
- // section: helpers
22
- /**
23
- * Reads login layout configuration from hazo_auth_config.ini file
24
- * Falls back to defaults if hazo_auth_config.ini is not found or section is missing
25
- * @returns Login configuration options
26
- */
27
- export function get_login_config(): LoginConfig {
28
- const section = "hazo_auth__login_layout";
29
-
30
- // Read redirect route (optional)
31
- const redirectRouteValue = get_config_value(section, "redirect_route_on_successful_login", "");
32
- const redirectRoute = redirectRouteValue || undefined;
33
-
34
- // Read success message (defaults to "Successfully logged in")
35
- const successMessage = get_config_value(section, "success_message", "Successfully logged in");
36
-
37
- const forgotPasswordPath = get_config_value(
38
- section,
39
- "forgot_password_path",
40
- "/hazo_auth/forgot_password"
41
- );
42
- const forgotPasswordLabel = get_config_value(
43
- section,
44
- "forgot_password_label",
45
- "Forgot password?"
46
- );
47
- const createAccountPath = get_config_value(section, "create_account_path", "/hazo_auth/register");
48
- const createAccountLabel = get_config_value(
49
- section,
50
- "create_account_label",
51
- "Create account"
52
- );
53
-
54
- // Get shared already logged in config
55
- const alreadyLoggedInConfig = get_already_logged_in_config();
56
-
57
- return {
58
- redirectRoute,
59
- successMessage,
60
- alreadyLoggedInMessage: alreadyLoggedInConfig.message,
61
- showLogoutButton: alreadyLoggedInConfig.showLogoutButton,
62
- showReturnHomeButton: alreadyLoggedInConfig.showReturnHomeButton,
63
- returnHomeButtonLabel: alreadyLoggedInConfig.returnHomeButtonLabel,
64
- returnHomePath: alreadyLoggedInConfig.returnHomePath,
65
- forgotPasswordPath,
66
- forgotPasswordLabel,
67
- createAccountPath,
68
- createAccountLabel,
69
- };
70
- }
71
-
@@ -1,45 +0,0 @@
1
- // file_description: server-only helper to read user-facing messages from hazo_auth_config.ini
2
- // section: imports
3
- import { get_config_value } from "hazo_auth/lib/config/config_loader.server";
4
-
5
- // section: types
6
- export type MessagesConfig = {
7
- photo_upload_disabled_message: string;
8
- gravatar_setup_message: string;
9
- gravatar_no_account_message: string;
10
- library_tooltip_message: string;
11
- };
12
-
13
- // section: helpers
14
- /**
15
- * Reads user-facing messages from hazo_auth_config.ini file
16
- * Falls back to defaults if hazo_auth_config.ini is not found or section is missing
17
- * @returns Messages configuration options
18
- */
19
- export function get_messages_config(): MessagesConfig {
20
- const section = "hazo_auth__messages";
21
-
22
- return {
23
- photo_upload_disabled_message: get_config_value(
24
- section,
25
- "photo_upload_disabled_message",
26
- "Photo upload is not enabled. Please contact your administrator."
27
- ),
28
- gravatar_setup_message: get_config_value(
29
- section,
30
- "gravatar_setup_message",
31
- "To set up your Gravatar:"
32
- ),
33
- gravatar_no_account_message: get_config_value(
34
- section,
35
- "gravatar_no_account_message",
36
- "You don't have a Gravatar account set up for this email address."
37
- ),
38
- library_tooltip_message: get_config_value(
39
- section,
40
- "library_tooltip_message",
41
- "Select another tab image style to remove this image"
42
- ),
43
- };
44
- }
45
-
@@ -1,105 +0,0 @@
1
- // file_description: helper to apply database migrations using hazo_connect
2
- // section: imports
3
- import type { HazoConnectAdapter } from "hazo_connect";
4
- import { createCrudService } from "hazo_connect/server";
5
- import fs from "fs";
6
- import path from "path";
7
-
8
- // section: helpers
9
- /**
10
- * Applies a SQL migration file to the database
11
- * For SQLite, we need to execute raw SQL statements
12
- * @param adapter - The hazo_connect adapter instance
13
- * @param migration_file_path - Path to the SQL migration file
14
- * @returns Success status and error message if any
15
- */
16
- export async function apply_migration(
17
- adapter: HazoConnectAdapter,
18
- migration_file_path: string,
19
- ): Promise<{ success: boolean; error?: string }> {
20
- try {
21
- // Read the migration file
22
- const migration_sql = fs.readFileSync(migration_file_path, "utf-8");
23
-
24
- // Split SQL statements by semicolon and execute each one
25
- // Remove comments and empty statements
26
- const statements = migration_sql
27
- .split(";")
28
- .map((stmt) => stmt.trim())
29
- .filter((stmt) => stmt.length > 0 && !stmt.startsWith("--"));
30
-
31
- // Execute each statement
32
- // For SQLite via hazo_connect, we may need to use a raw query method
33
- // Since hazo_connect doesn't expose raw SQL execution directly,
34
- // we'll try to use the adapter's internal methods or skip migration
35
- // and rely on the fallback in token_service
36
-
37
- // For now, we'll log that migration should be applied manually
38
- // The token_service has fallback logic to work without token_type column
39
- if (process.env.NODE_ENV === "development") {
40
- console.log(
41
- `[migrations] Migration file found: ${migration_file_path}`,
42
- "\n[migrations] Note: Raw SQL execution not available via hazo_connect adapter.",
43
- "\n[migrations] Please apply migration manually or ensure token_type column exists."
44
- );
45
- }
46
-
47
- // Try to check if token_type column already exists by querying the schema
48
- // If it doesn't exist, we'll rely on the fallback in token_service
49
- return { success: true };
50
- } catch (error) {
51
- const error_message =
52
- error instanceof Error ? error.message : "Unknown error";
53
-
54
- return {
55
- success: false,
56
- error: error_message,
57
- };
58
- }
59
- }
60
-
61
- /**
62
- * Applies all migrations in the migrations directory
63
- * @param adapter - The hazo_connect adapter instance
64
- * @returns Success status and error message if any
65
- */
66
- export async function apply_all_migrations(
67
- adapter: HazoConnectAdapter,
68
- ): Promise<{ success: boolean; error?: string }> {
69
- try {
70
- const migrations_dir = path.resolve(process.cwd(), "migrations");
71
-
72
- if (!fs.existsSync(migrations_dir)) {
73
- return { success: true }; // No migrations directory, nothing to apply
74
- }
75
-
76
- // Get all SQL files in migrations directory, sorted by name
77
- const migration_files = fs
78
- .readdirSync(migrations_dir)
79
- .filter((file) => file.endsWith(".sql"))
80
- .sort();
81
-
82
- for (const migration_file of migration_files) {
83
- const migration_path = path.join(migrations_dir, migration_file);
84
- const result = await apply_migration(adapter, migration_path);
85
-
86
- if (!result.success) {
87
- return {
88
- success: false,
89
- error: `Failed to apply migration ${migration_file}: ${result.error}`,
90
- };
91
- }
92
- }
93
-
94
- return { success: true };
95
- } catch (error) {
96
- const error_message =
97
- error instanceof Error ? error.message : "Unknown error";
98
-
99
- return {
100
- success: false,
101
- error: error_message,
102
- };
103
- }
104
- }
105
-
@@ -1,135 +0,0 @@
1
- // file_description: server-only helper to read my settings layout configuration from hazo_auth_config.ini
2
- // section: imports
3
- import { get_config_value } from "hazo_auth/lib/config/config_loader.server";
4
- import { get_user_fields_config } from "hazo_auth/lib/user_fields_config.server";
5
- import { get_password_requirements_config } from "hazo_auth/lib/password_requirements_config.server";
6
- import { get_profile_picture_config } from "hazo_auth/lib/profile_picture_config.server";
7
- import { get_messages_config } from "hazo_auth/lib/messages_config.server";
8
- import { get_ui_sizes_config } from "hazo_auth/lib/ui_sizes_config.server";
9
- import { get_file_types_config } from "hazo_auth/lib/file_types_config.server";
10
-
11
- // section: types
12
- export type MySettingsConfig = {
13
- userFields: {
14
- show_name_field: boolean;
15
- show_email_field: boolean;
16
- show_password_field: boolean;
17
- };
18
- passwordRequirements: {
19
- minimum_length: number;
20
- require_uppercase: boolean;
21
- require_lowercase: boolean;
22
- require_number: boolean;
23
- require_special: boolean;
24
- };
25
- profilePicture: {
26
- allow_photo_upload: boolean;
27
- upload_photo_path?: string;
28
- max_photo_size: number;
29
- user_photo_default: boolean;
30
- user_photo_default_priority1: "gravatar" | "library";
31
- user_photo_default_priority2?: "library" | "gravatar";
32
- library_photo_path: string;
33
- };
34
- heading?: string;
35
- subHeading?: string;
36
- profilePhotoLabel?: string;
37
- profilePhotoRecommendation?: string;
38
- uploadPhotoButtonLabel?: string;
39
- removePhotoButtonLabel?: string;
40
- profileInformationLabel?: string;
41
- passwordLabel?: string;
42
- currentPasswordLabel?: string;
43
- newPasswordLabel?: string;
44
- confirmPasswordLabel?: string;
45
- savePasswordButtonLabel?: string;
46
- unauthorizedMessage?: string;
47
- loginButtonLabel?: string;
48
- loginPath?: string;
49
- messages: {
50
- photo_upload_disabled_message: string;
51
- gravatar_setup_message: string;
52
- gravatar_no_account_message: string;
53
- library_tooltip_message: string;
54
- };
55
- uiSizes: {
56
- gravatar_size: number;
57
- profile_picture_size: number;
58
- tooltip_icon_size_default: number;
59
- tooltip_icon_size_small: number;
60
- library_photo_grid_columns: number;
61
- library_photo_preview_size: number;
62
- image_compression_max_dimension: number;
63
- upload_file_hard_limit_bytes: number;
64
- };
65
- fileTypes: {
66
- allowed_image_extensions: string[];
67
- allowed_image_mime_types: string[];
68
- };
69
- };
70
-
71
- // section: helpers
72
- /**
73
- * Reads my settings layout configuration from hazo_auth_config.ini file
74
- * Falls back to defaults if hazo_auth_config.ini is not found or section is missing
75
- * @returns My settings configuration options
76
- */
77
- export function get_my_settings_config(): MySettingsConfig {
78
- const section = "hazo_auth__my_settings_layout";
79
-
80
- // Get shared user fields config
81
- const userFields = get_user_fields_config();
82
-
83
- // Get shared password requirements
84
- const passwordRequirements = get_password_requirements_config();
85
-
86
- // Get profile picture configuration
87
- const profilePicture = get_profile_picture_config();
88
-
89
- // Get messages, UI sizes, and file types configuration
90
- const messages = get_messages_config();
91
- const uiSizes = get_ui_sizes_config();
92
- const fileTypes = get_file_types_config();
93
-
94
- // Read optional labels with defaults
95
- const heading = get_config_value(section, "heading", "Account Settings");
96
- const subHeading = get_config_value(section, "sub_heading", "Manage your profile, password, and email preferences.");
97
- const profilePhotoLabel = get_config_value(section, "profile_photo_label", "Profile Photo");
98
- const profilePhotoRecommendation = get_config_value(section, "profile_photo_recommendation", "Recommended size: 200x200px. JPG, PNG.");
99
- const uploadPhotoButtonLabel = get_config_value(section, "upload_photo_button_label", "Upload New Photo");
100
- const removePhotoButtonLabel = get_config_value(section, "remove_photo_button_label", "Remove");
101
- const profileInformationLabel = get_config_value(section, "profile_information_label", "Profile Information");
102
- const passwordLabel = get_config_value(section, "password_label", "Password");
103
- const currentPasswordLabel = get_config_value(section, "current_password_label", "Current Password");
104
- const newPasswordLabel = get_config_value(section, "new_password_label", "New Password");
105
- const confirmPasswordLabel = get_config_value(section, "confirm_password_label", "Confirm Password");
106
- const savePasswordButtonLabel = get_config_value(section, "save_password_button_label", "Save Password");
107
- const unauthorizedMessage = get_config_value(section, "unauthorized_message", "You must be logged in to access this page.");
108
- const loginButtonLabel = get_config_value(section, "login_button_label", "Go to login");
109
- const loginPath = get_config_value(section, "login_path", "/hazo_auth/login");
110
-
111
- return {
112
- userFields,
113
- passwordRequirements,
114
- profilePicture,
115
- heading,
116
- subHeading,
117
- profilePhotoLabel,
118
- profilePhotoRecommendation,
119
- uploadPhotoButtonLabel,
120
- removePhotoButtonLabel,
121
- profileInformationLabel,
122
- passwordLabel,
123
- currentPasswordLabel,
124
- newPasswordLabel,
125
- confirmPasswordLabel,
126
- savePasswordButtonLabel,
127
- unauthorizedMessage,
128
- loginButtonLabel,
129
- loginPath,
130
- messages,
131
- uiSizes,
132
- fileTypes,
133
- };
134
- }
135
-
@@ -1,39 +0,0 @@
1
- // file_description: server-only helper to read shared password requirements configuration from hazo_auth_config.ini
2
- // section: imports
3
- import { get_config_number, get_config_boolean } from "hazo_auth/lib/config/config_loader.server";
4
-
5
- // section: types
6
- export type PasswordRequirementsConfig = {
7
- minimum_length: number;
8
- require_uppercase: boolean;
9
- require_lowercase: boolean;
10
- require_number: boolean;
11
- require_special: boolean;
12
- };
13
-
14
- // section: helpers
15
- /**
16
- * Reads shared password requirements 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
- * This configuration is used by both register and reset password layouts
19
- * @returns Password requirements configuration options
20
- */
21
- export function get_password_requirements_config(): PasswordRequirementsConfig {
22
- const section = "hazo_auth__password_requirements";
23
-
24
- // Read password requirements with defaults
25
- const minimum_length = get_config_number(section, "minimum_length", 8);
26
- const require_uppercase = get_config_boolean(section, "require_uppercase", false);
27
- const require_lowercase = get_config_boolean(section, "require_lowercase", false);
28
- const require_number = get_config_boolean(section, "require_number", false);
29
- const require_special = get_config_boolean(section, "require_special", false);
30
-
31
- return {
32
- minimum_length,
33
- require_uppercase,
34
- require_lowercase,
35
- require_number,
36
- require_special,
37
- };
38
- }
39
-