hazo_auth 1.3.0 → 1.4.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.
- package/README.md +383 -774
- package/dist/components/index.d.ts +3 -0
- package/dist/components/index.d.ts.map +1 -0
- package/dist/components/index.js +5 -0
- package/dist/components/layouts/email_verification/config/email_verification_field_config.d.ts +23 -0
- package/dist/components/layouts/email_verification/config/email_verification_field_config.d.ts.map +1 -0
- package/dist/components/layouts/email_verification/config/email_verification_field_config.js +44 -0
- package/dist/components/layouts/email_verification/hooks/use_email_verification.d.ts +31 -0
- package/dist/components/layouts/email_verification/hooks/use_email_verification.d.ts.map +1 -0
- package/dist/components/layouts/email_verification/hooks/use_email_verification.js +222 -0
- package/dist/components/layouts/email_verification/index.d.ts +23 -0
- package/dist/components/layouts/email_verification/index.d.ts.map +1 -0
- package/dist/components/layouts/email_verification/index.js +61 -0
- package/dist/components/layouts/forgot_password/config/forgot_password_field_config.d.ts +10 -0
- package/dist/components/layouts/forgot_password/config/forgot_password_field_config.d.ts.map +1 -0
- package/dist/components/layouts/forgot_password/config/forgot_password_field_config.js +33 -0
- package/dist/components/layouts/forgot_password/hooks/use_forgot_password_form.d.ts +22 -0
- package/dist/components/layouts/forgot_password/hooks/use_forgot_password_form.d.ts.map +1 -0
- package/dist/components/layouts/forgot_password/hooks/use_forgot_password_form.js +127 -0
- package/dist/components/layouts/forgot_password/index.d.ts +18 -0
- package/dist/components/layouts/forgot_password/index.d.ts.map +1 -0
- package/dist/components/layouts/forgot_password/index.js +43 -0
- package/dist/components/layouts/index.d.ts +16 -0
- package/dist/components/layouts/index.d.ts.map +1 -0
- package/dist/components/layouts/index.js +11 -0
- package/dist/components/layouts/login/config/login_field_config.d.ts +11 -0
- package/dist/components/layouts/login/config/login_field_config.d.ts.map +1 -0
- package/dist/components/layouts/login/config/login_field_config.js +42 -0
- package/dist/components/layouts/login/hooks/use_login_form.d.ts +34 -0
- package/dist/components/layouts/login/hooks/use_login_form.d.ts.map +1 -0
- package/dist/components/layouts/login/hooks/use_login_form.js +196 -0
- package/dist/components/layouts/login/index.d.ts +31 -0
- package/dist/components/layouts/login/index.d.ts.map +1 -0
- package/dist/components/layouts/login/index.js +58 -0
- package/dist/components/layouts/my_settings/components/editable_field.d.ts +19 -0
- package/dist/components/layouts/my_settings/components/editable_field.d.ts.map +1 -0
- package/dist/components/layouts/my_settings/components/editable_field.js +73 -0
- package/dist/components/layouts/my_settings/components/password_change_dialog.d.ts +28 -0
- package/dist/components/layouts/my_settings/components/password_change_dialog.d.ts.map +1 -0
- package/dist/components/layouts/my_settings/components/password_change_dialog.js +138 -0
- package/dist/components/layouts/my_settings/components/profile_picture_dialog.d.ts +42 -0
- package/dist/components/layouts/my_settings/components/profile_picture_dialog.d.ts.map +1 -0
- package/dist/components/layouts/my_settings/components/profile_picture_dialog.js +198 -0
- package/dist/components/layouts/my_settings/components/profile_picture_display.d.ts +16 -0
- package/dist/components/layouts/my_settings/components/profile_picture_display.d.ts.map +1 -0
- package/dist/components/layouts/my_settings/components/profile_picture_display.js +33 -0
- package/dist/components/layouts/my_settings/components/profile_picture_gravatar_tab.d.ts +17 -0
- package/dist/components/layouts/my_settings/components/profile_picture_gravatar_tab.d.ts.map +1 -0
- package/dist/components/layouts/my_settings/components/profile_picture_gravatar_tab.js +48 -0
- package/dist/components/layouts/my_settings/components/profile_picture_library_tab.d.ts +21 -0
- package/dist/components/layouts/my_settings/components/profile_picture_library_tab.d.ts.map +1 -0
- package/dist/components/layouts/my_settings/components/profile_picture_library_tab.js +144 -0
- package/dist/components/layouts/my_settings/components/profile_picture_upload_tab.d.ts +23 -0
- package/dist/components/layouts/my_settings/components/profile_picture_upload_tab.d.ts.map +1 -0
- package/dist/components/layouts/my_settings/components/profile_picture_upload_tab.js +169 -0
- package/dist/components/layouts/my_settings/config/my_settings_field_config.d.ts +19 -0
- package/dist/components/layouts/my_settings/config/my_settings_field_config.d.ts.map +1 -0
- package/dist/components/layouts/my_settings/config/my_settings_field_config.js +26 -0
- package/dist/components/layouts/my_settings/hooks/use_my_settings.d.ts +46 -0
- package/dist/components/layouts/my_settings/hooks/use_my_settings.d.ts.map +1 -0
- package/dist/components/layouts/my_settings/hooks/use_my_settings.js +354 -0
- package/dist/components/layouts/my_settings/index.d.ts +64 -0
- package/dist/components/layouts/my_settings/index.d.ts.map +1 -0
- package/dist/components/layouts/my_settings/index.js +65 -0
- package/dist/components/layouts/register/config/register_field_config.d.ts +14 -0
- package/dist/components/layouts/register/config/register_field_config.d.ts.map +1 -0
- package/dist/components/layouts/register/config/register_field_config.js +69 -0
- package/dist/components/layouts/register/hooks/use_register_form.d.ts +30 -0
- package/dist/components/layouts/register/hooks/use_register_form.d.ts.map +1 -0
- package/dist/components/layouts/register/hooks/use_register_form.js +184 -0
- package/dist/components/layouts/register/index.d.ts +23 -0
- package/dist/components/layouts/register/index.d.ts.map +1 -0
- package/dist/components/layouts/register/index.js +58 -0
- package/dist/components/layouts/reset_password/config/reset_password_field_config.d.ts +13 -0
- package/dist/components/layouts/reset_password/config/reset_password_field_config.d.ts.map +1 -0
- package/dist/components/layouts/reset_password/config/reset_password_field_config.js +53 -0
- package/dist/components/layouts/reset_password/hooks/use_reset_password_form.d.ts +28 -0
- package/dist/components/layouts/reset_password/hooks/use_reset_password_form.d.ts.map +1 -0
- package/dist/components/layouts/reset_password/hooks/use_reset_password_form.js +201 -0
- package/dist/components/layouts/reset_password/index.d.ts +23 -0
- package/dist/components/layouts/reset_password/index.d.ts.map +1 -0
- package/dist/components/layouts/reset_password/index.js +53 -0
- package/dist/components/layouts/shared/components/already_logged_in_guard.d.ts +20 -0
- package/dist/components/layouts/shared/components/already_logged_in_guard.d.ts.map +1 -0
- package/dist/components/layouts/shared/components/already_logged_in_guard.js +32 -0
- package/dist/components/layouts/shared/components/auth_page_shell.d.ts +7 -0
- package/dist/components/layouts/shared/components/auth_page_shell.d.ts.map +1 -0
- package/dist/components/layouts/shared/components/auth_page_shell.js +12 -0
- package/dist/components/layouts/shared/components/field_error_message.d.ts +7 -0
- package/dist/components/layouts/shared/components/field_error_message.d.ts.map +1 -0
- package/dist/components/layouts/shared/components/field_error_message.js +6 -0
- package/dist/components/layouts/shared/components/form_action_buttons.d.ts +14 -0
- package/dist/components/layouts/shared/components/form_action_buttons.d.ts.map +1 -0
- package/dist/components/layouts/shared/components/form_action_buttons.js +15 -0
- package/dist/components/layouts/shared/components/form_field_wrapper.d.ts +11 -0
- package/dist/components/layouts/shared/components/form_field_wrapper.d.ts.map +1 -0
- package/dist/components/layouts/shared/components/form_field_wrapper.js +9 -0
- package/dist/components/layouts/shared/components/form_header.d.ts +10 -0
- package/dist/components/layouts/shared/components/form_header.d.ts.map +1 -0
- package/dist/components/layouts/shared/components/form_header.js +5 -0
- package/dist/components/layouts/shared/components/logout_button.d.ts +7 -0
- package/dist/components/layouts/shared/components/logout_button.d.ts.map +1 -0
- package/dist/components/layouts/shared/components/logout_button.js +44 -0
- package/dist/components/layouts/shared/components/password_field.d.ts +13 -0
- package/dist/components/layouts/shared/components/password_field.d.ts.map +1 -0
- package/dist/components/layouts/shared/components/password_field.js +13 -0
- package/dist/components/layouts/shared/components/profile_pic_menu.d.ts +22 -0
- package/dist/components/layouts/shared/components/profile_pic_menu.d.ts.map +1 -0
- package/dist/components/layouts/shared/components/profile_pic_menu.js +169 -0
- package/dist/components/layouts/shared/components/profile_pic_menu_wrapper.d.ts +12 -0
- package/dist/components/layouts/shared/components/profile_pic_menu_wrapper.d.ts.map +1 -0
- package/dist/components/layouts/shared/components/profile_pic_menu_wrapper.js +16 -0
- package/dist/components/layouts/shared/components/sidebar_layout_wrapper.d.ts +6 -0
- package/dist/components/layouts/shared/components/sidebar_layout_wrapper.d.ts.map +1 -0
- package/dist/components/layouts/shared/components/sidebar_layout_wrapper.js +15 -0
- package/dist/components/layouts/shared/components/standalone_layout_wrapper.d.ts +11 -0
- package/dist/components/layouts/shared/components/standalone_layout_wrapper.d.ts.map +1 -0
- package/dist/components/layouts/shared/components/standalone_layout_wrapper.js +10 -0
- package/dist/components/layouts/shared/components/two_column_auth_layout.d.ts +12 -0
- package/dist/components/layouts/shared/components/two_column_auth_layout.d.ts.map +1 -0
- package/dist/components/layouts/shared/components/two_column_auth_layout.js +8 -0
- package/dist/components/layouts/shared/components/unauthorized_guard.d.ts +14 -0
- package/dist/components/layouts/shared/components/unauthorized_guard.d.ts.map +1 -0
- package/dist/components/layouts/shared/components/unauthorized_guard.js +30 -0
- package/dist/components/layouts/shared/components/visual_panel.d.ts +9 -0
- package/dist/components/layouts/shared/components/visual_panel.d.ts.map +1 -0
- package/dist/components/layouts/shared/components/visual_panel.js +10 -0
- package/dist/components/layouts/shared/config/layout_customization.d.ts +38 -0
- package/dist/components/layouts/shared/config/layout_customization.d.ts.map +1 -0
- package/dist/components/layouts/shared/config/layout_customization.js +19 -0
- package/dist/components/layouts/shared/data/layout_data_client.d.ts +6 -0
- package/dist/components/layouts/shared/data/layout_data_client.d.ts.map +1 -0
- package/dist/components/layouts/shared/data/layout_data_client.js +9 -0
- package/dist/components/layouts/shared/hooks/use_auth_status.d.ts +20 -0
- package/dist/components/layouts/shared/hooks/use_auth_status.d.ts.map +1 -0
- package/dist/components/layouts/shared/hooks/use_auth_status.js +71 -0
- package/dist/components/layouts/shared/hooks/use_hazo_auth.d.ts +48 -0
- package/dist/components/layouts/shared/hooks/use_hazo_auth.d.ts.map +1 -0
- package/dist/components/layouts/shared/hooks/use_hazo_auth.js +90 -0
- package/dist/components/layouts/shared/index.d.ts +24 -0
- package/dist/components/layouts/shared/index.d.ts.map +1 -0
- package/dist/components/layouts/shared/index.js +27 -0
- package/dist/components/layouts/shared/utils/ip_address.d.ts +7 -0
- package/dist/components/layouts/shared/utils/ip_address.d.ts.map +1 -0
- package/dist/components/layouts/shared/utils/ip_address.js +34 -0
- package/dist/components/layouts/shared/utils/validation.d.ts +15 -0
- package/dist/components/layouts/shared/utils/validation.d.ts.map +1 -0
- package/dist/components/layouts/shared/utils/validation.js +45 -0
- package/dist/components/layouts/user_management/components/roles_matrix.d.ts +29 -0
- package/dist/components/layouts/user_management/components/roles_matrix.d.ts.map +1 -0
- package/dist/components/layouts/user_management/components/roles_matrix.js +287 -0
- package/dist/components/layouts/user_management/index.d.ts +13 -0
- package/dist/components/layouts/user_management/index.d.ts.map +1 -0
- package/dist/components/layouts/user_management/index.js +495 -0
- package/dist/components/ui/alert-dialog.d.ts +21 -0
- package/dist/components/ui/alert-dialog.d.ts.map +1 -0
- package/dist/components/ui/alert-dialog.js +62 -0
- package/dist/components/ui/avatar.d.ts +7 -0
- package/dist/components/ui/avatar.d.ts.map +1 -0
- package/dist/components/ui/avatar.js +32 -0
- package/dist/components/ui/button.d.ts +12 -0
- package/dist/components/ui/button.d.ts.map +1 -0
- package/dist/components/ui/button.js +45 -0
- package/dist/components/ui/checkbox.d.ts +5 -0
- package/dist/components/ui/checkbox.d.ts.map +1 -0
- package/dist/components/ui/checkbox.js +23 -0
- package/dist/components/ui/dialog.d.ts +20 -0
- package/dist/components/ui/dialog.d.ts.map +1 -0
- package/dist/components/ui/dialog.js +52 -0
- package/dist/components/ui/dropdown-menu.d.ts +28 -0
- package/dist/components/ui/dropdown-menu.d.ts.map +1 -0
- package/dist/components/ui/dropdown-menu.js +72 -0
- package/dist/components/ui/hazo_ui_tooltip.d.ts +26 -0
- package/dist/components/ui/hazo_ui_tooltip.d.ts.map +1 -0
- package/dist/components/ui/hazo_ui_tooltip.js +17 -0
- package/dist/components/ui/index.d.ts +20 -0
- package/dist/components/ui/index.d.ts.map +1 -0
- package/dist/components/ui/index.js +21 -0
- package/dist/components/ui/input.d.ts +4 -0
- package/dist/components/ui/input.d.ts.map +1 -0
- package/dist/components/ui/input.js +20 -0
- package/dist/components/ui/label.d.ts +6 -0
- package/dist/components/ui/label.d.ts.map +1 -0
- package/dist/components/ui/label.js +24 -0
- package/dist/components/ui/separator.d.ts +5 -0
- package/dist/components/ui/separator.d.ts.map +1 -0
- package/dist/components/ui/separator.js +22 -0
- package/dist/components/ui/sheet.d.ts +23 -0
- package/dist/components/ui/sheet.d.ts.map +1 -0
- package/dist/components/ui/sheet.js +66 -0
- package/dist/components/ui/sidebar.d.ts +66 -0
- package/dist/components/ui/sidebar.d.ts.map +1 -0
- package/dist/components/ui/sidebar.js +267 -0
- package/dist/components/ui/skeleton.d.ts +3 -0
- package/dist/components/ui/skeleton.d.ts.map +1 -0
- package/dist/components/ui/skeleton.js +18 -0
- package/dist/components/ui/sonner.d.ts +5 -0
- package/dist/components/ui/sonner.d.ts.map +1 -0
- package/dist/components/ui/sonner.js +28 -0
- package/dist/components/ui/switch.d.ts +5 -0
- package/dist/components/ui/switch.d.ts.map +1 -0
- package/dist/components/ui/switch.js +22 -0
- package/dist/components/ui/table.d.ts +11 -0
- package/dist/components/ui/table.d.ts.map +1 -0
- package/dist/components/ui/table.js +55 -0
- package/dist/components/ui/tabs.d.ts +8 -0
- package/dist/components/ui/tabs.d.ts.map +1 -0
- package/dist/components/ui/tabs.js +33 -0
- package/dist/components/ui/tooltip.d.ts +8 -0
- package/dist/components/ui/tooltip.d.ts.map +1 -0
- package/dist/components/ui/tooltip.js +25 -0
- package/dist/components/ui/vertical-tabs.d.ts +8 -0
- package/dist/components/ui/vertical-tabs.d.ts.map +1 -0
- package/dist/components/ui/vertical-tabs.js +37 -0
- package/dist/hooks/use-mobile.d.ts +2 -0
- package/dist/hooks/use-mobile.d.ts.map +1 -0
- package/dist/hooks/use-mobile.js +15 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +5 -0
- package/dist/lib/already_logged_in_config.server.d.ts +14 -0
- package/dist/lib/already_logged_in_config.server.d.ts.map +1 -0
- package/dist/lib/already_logged_in_config.server.js +29 -0
- package/dist/lib/app_logger.d.ts +12 -0
- package/dist/lib/app_logger.d.ts.map +1 -0
- package/dist/lib/app_logger.js +14 -0
- package/dist/lib/auth/auth_cache.d.ts +83 -0
- package/dist/lib/auth/auth_cache.d.ts.map +1 -0
- package/dist/lib/auth/auth_cache.js +158 -0
- package/dist/lib/auth/auth_rate_limiter.d.ts +39 -0
- package/dist/lib/auth/auth_rate_limiter.d.ts.map +1 -0
- package/dist/lib/auth/auth_rate_limiter.js +95 -0
- package/dist/lib/auth/auth_types.d.ts +53 -0
- package/dist/lib/auth/auth_types.d.ts.map +1 -0
- package/dist/lib/auth/auth_types.js +16 -0
- package/dist/lib/auth/auth_utils.server.d.ts +47 -0
- package/dist/lib/auth/auth_utils.server.d.ts.map +1 -0
- package/dist/lib/auth/auth_utils.server.js +150 -0
- package/dist/lib/auth/hazo_get_auth.server.d.ts +12 -0
- package/dist/lib/auth/hazo_get_auth.server.d.ts.map +1 -0
- package/dist/lib/auth/hazo_get_auth.server.js +256 -0
- package/dist/lib/auth/index.d.ts +9 -0
- package/dist/lib/auth/index.d.ts.map +1 -0
- package/dist/lib/auth/index.js +12 -0
- package/dist/lib/auth/server_auth.d.ts +26 -0
- package/dist/lib/auth/server_auth.d.ts.map +1 -0
- package/dist/lib/auth/server_auth.js +62 -0
- package/dist/lib/auth_utility_config.server.d.ts +20 -0
- package/dist/lib/auth_utility_config.server.d.ts.map +1 -0
- package/dist/lib/auth_utility_config.server.js +64 -0
- package/dist/lib/config/config_loader.server.d.ts +44 -0
- package/dist/lib/config/config_loader.server.d.ts.map +1 -0
- package/dist/lib/config/config_loader.server.js +122 -0
- package/dist/lib/email_verification_config.server.d.ts +14 -0
- package/dist/lib/email_verification_config.server.d.ts.map +1 -0
- package/dist/lib/email_verification_config.server.js +20 -0
- package/dist/lib/file_types_config.server.d.ts +11 -0
- package/dist/lib/file_types_config.server.d.ts.map +1 -0
- package/dist/lib/file_types_config.server.js +16 -0
- package/dist/lib/forgot_password_config.server.d.ts +14 -0
- package/dist/lib/forgot_password_config.server.d.ts.map +1 -0
- package/dist/lib/forgot_password_config.server.js +20 -0
- package/dist/lib/hazo_connect_instance.server.d.ts +17 -0
- package/dist/lib/hazo_connect_instance.server.d.ts.map +1 -0
- package/dist/lib/hazo_connect_instance.server.js +88 -0
- package/dist/lib/hazo_connect_setup.d.ts +2 -0
- package/dist/lib/hazo_connect_setup.d.ts.map +1 -0
- package/dist/lib/hazo_connect_setup.js +49 -0
- package/dist/lib/hazo_connect_setup.server.d.ts +20 -0
- package/dist/lib/hazo_connect_setup.server.d.ts.map +1 -0
- package/dist/lib/hazo_connect_setup.server.js +138 -0
- package/dist/lib/index.d.ts +28 -0
- package/dist/lib/index.d.ts.map +1 -0
- package/dist/lib/index.js +35 -0
- package/dist/lib/login_config.server.d.ts +20 -0
- package/dist/lib/login_config.server.d.ts.map +1 -0
- package/dist/lib/login_config.server.js +37 -0
- package/dist/lib/messages_config.server.d.ts +13 -0
- package/dist/lib/messages_config.server.d.ts.map +1 -0
- package/dist/lib/messages_config.server.js +18 -0
- package/dist/lib/migrations/apply_migration.d.ts +22 -0
- package/dist/lib/migrations/apply_migration.d.ts.map +1 -0
- package/dist/lib/migrations/apply_migration.js +78 -0
- package/dist/lib/my_settings_config.server.d.ts +65 -0
- package/dist/lib/my_settings_config.server.d.ts.map +1 -0
- package/dist/lib/my_settings_config.server.js +67 -0
- package/dist/lib/password_requirements_config.server.d.ts +15 -0
- package/dist/lib/password_requirements_config.server.d.ts.map +1 -0
- package/dist/lib/password_requirements_config.server.js +26 -0
- package/dist/lib/profile_pic_menu_config.server.d.ts +26 -0
- package/dist/lib/profile_pic_menu_config.server.d.ts.map +1 -0
- package/dist/lib/profile_pic_menu_config.server.js +95 -0
- package/dist/lib/profile_picture_config.server.d.ts +16 -0
- package/dist/lib/profile_picture_config.server.d.ts.map +1 -0
- package/dist/lib/profile_picture_config.server.js +40 -0
- package/dist/lib/register_config.server.d.ts +24 -0
- package/dist/lib/register_config.server.d.ts.map +1 -0
- package/dist/lib/register_config.server.js +39 -0
- package/dist/lib/reset_password_config.server.d.ts +25 -0
- package/dist/lib/reset_password_config.server.d.ts.map +1 -0
- package/dist/lib/reset_password_config.server.js +38 -0
- package/dist/lib/services/email_service.d.ts +44 -0
- package/dist/lib/services/email_service.d.ts.map +1 -0
- package/dist/lib/services/email_service.js +480 -0
- package/dist/lib/services/email_verification_service.d.ts +35 -0
- package/dist/lib/services/email_verification_service.d.ts.map +1 -0
- package/dist/lib/services/email_verification_service.js +208 -0
- package/dist/lib/services/index.d.ts +13 -0
- package/dist/lib/services/index.d.ts.map +1 -0
- package/dist/lib/services/index.js +14 -0
- package/dist/lib/services/login_service.d.ts +20 -0
- package/dist/lib/services/login_service.d.ts.map +1 -0
- package/dist/lib/services/login_service.js +94 -0
- package/dist/lib/services/password_change_service.d.ts +19 -0
- package/dist/lib/services/password_change_service.d.ts.map +1 -0
- package/dist/lib/services/password_change_service.js +118 -0
- package/dist/lib/services/password_reset_service.d.ts +52 -0
- package/dist/lib/services/password_reset_service.d.ts.map +1 -0
- package/dist/lib/services/password_reset_service.js +318 -0
- package/dist/lib/services/profile_picture_remove_service.d.ts +15 -0
- package/dist/lib/services/profile_picture_remove_service.d.ts.map +1 -0
- package/dist/lib/services/profile_picture_remove_service.js +94 -0
- package/dist/lib/services/profile_picture_service.d.ts +45 -0
- package/dist/lib/services/profile_picture_service.d.ts.map +1 -0
- package/dist/lib/services/profile_picture_service.js +183 -0
- package/dist/lib/services/profile_picture_source_mapper.d.ts +23 -0
- package/dist/lib/services/profile_picture_source_mapper.d.ts.map +1 -0
- package/dist/lib/services/profile_picture_source_mapper.js +45 -0
- package/dist/lib/services/registration_service.d.ts +20 -0
- package/dist/lib/services/registration_service.d.ts.map +1 -0
- package/dist/lib/services/registration_service.js +147 -0
- package/dist/lib/services/token_service.d.ts +20 -0
- package/dist/lib/services/token_service.d.ts.map +1 -0
- package/dist/lib/services/token_service.js +201 -0
- package/dist/lib/services/user_profiles_service.d.ts +31 -0
- package/dist/lib/services/user_profiles_service.d.ts.map +1 -0
- package/dist/lib/services/user_profiles_service.js +99 -0
- package/dist/lib/services/user_update_service.d.ts +23 -0
- package/dist/lib/services/user_update_service.d.ts.map +1 -0
- package/dist/lib/services/user_update_service.js +103 -0
- package/dist/lib/ui_shell_config.server.d.ts +16 -0
- package/dist/lib/ui_shell_config.server.d.ts.map +1 -0
- package/dist/lib/ui_shell_config.server.js +28 -0
- package/dist/lib/ui_sizes_config.server.d.ts +17 -0
- package/dist/lib/ui_sizes_config.server.d.ts.map +1 -0
- package/dist/lib/ui_sizes_config.server.js +22 -0
- package/dist/lib/user_fields_config.server.d.ts +13 -0
- package/dist/lib/user_fields_config.server.d.ts.map +1 -0
- package/dist/lib/user_fields_config.server.js +21 -0
- package/dist/lib/user_management_config.server.d.ts +10 -0
- package/dist/lib/user_management_config.server.d.ts.map +1 -0
- package/dist/lib/user_management_config.server.js +26 -0
- package/dist/lib/utils/api_route_helpers.d.ts +13 -0
- package/dist/lib/utils/api_route_helpers.d.ts.map +1 -0
- package/dist/lib/utils/api_route_helpers.js +58 -0
- package/dist/lib/utils/error_sanitizer.d.ts +16 -0
- package/dist/lib/utils/error_sanitizer.d.ts.map +1 -0
- package/dist/lib/utils/error_sanitizer.js +39 -0
- package/dist/lib/utils.d.ts +4 -0
- package/dist/lib/utils.d.ts.map +1 -0
- package/dist/lib/utils.js +9 -0
- package/dist/server/config/config_loader.d.ts +26 -0
- package/dist/server/config/config_loader.d.ts.map +1 -0
- package/dist/server/config/config_loader.js +329 -0
- package/dist/server/index.d.ts +2 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/index.js +32 -0
- package/dist/server/logging/logger_service.d.ts +3 -0
- package/dist/server/logging/logger_service.d.ts.map +1 -0
- package/dist/server/logging/logger_service.js +37 -0
- package/dist/server/routes/root_router.d.ts +3 -0
- package/dist/server/routes/root_router.d.ts.map +1 -0
- package/dist/server/routes/root_router.js +14 -0
- package/dist/server/server.d.ts +3 -0
- package/dist/server/server.d.ts.map +1 -0
- package/dist/server/server.js +25 -0
- package/dist/server/types/app_types.d.ts +53 -0
- package/dist/server/types/app_types.d.ts.map +1 -0
- package/dist/server/types/app_types.js +1 -0
- package/migrations/003_add_url_on_logon_to_hazo_users.sql +8 -0
- package/next.config.mjs +12 -0
- package/package.json +38 -1
- package/src/components/index.ts +7 -0
- package/src/components/layouts/email_verification/config/email_verification_field_config.ts +2 -2
- package/src/components/layouts/email_verification/hooks/use_email_verification.ts +3 -3
- package/src/components/layouts/email_verification/index.tsx +11 -11
- package/src/components/layouts/forgot_password/config/forgot_password_field_config.ts +2 -2
- package/src/components/layouts/forgot_password/hooks/use_forgot_password_form.ts +3 -3
- package/src/components/layouts/forgot_password/index.tsx +10 -10
- package/src/components/layouts/index.ts +26 -0
- package/src/components/layouts/login/config/login_field_config.ts +2 -2
- package/src/components/layouts/login/hooks/use_login_form.ts +5 -5
- package/src/components/layouts/login/index.tsx +11 -11
- package/src/components/layouts/my_settings/components/editable_field.tsx +3 -3
- package/src/components/layouts/my_settings/components/password_change_dialog.tsx +5 -5
- package/src/components/layouts/my_settings/components/profile_picture_dialog.tsx +7 -7
- package/src/components/layouts/my_settings/components/profile_picture_display.tsx +2 -2
- package/src/components/layouts/my_settings/components/profile_picture_gravatar_tab.tsx +3 -3
- package/src/components/layouts/my_settings/components/profile_picture_library_tab.tsx +5 -5
- package/src/components/layouts/my_settings/components/profile_picture_upload_tab.tsx +4 -4
- package/src/components/layouts/my_settings/config/my_settings_field_config.ts +2 -2
- package/src/components/layouts/my_settings/hooks/use_my_settings.ts +2 -2
- package/src/components/layouts/my_settings/index.tsx +10 -10
- package/src/components/layouts/register/config/register_field_config.ts +2 -2
- package/src/components/layouts/register/hooks/use_register_form.ts +4 -4
- package/src/components/layouts/register/index.tsx +11 -11
- package/src/components/layouts/reset_password/config/reset_password_field_config.ts +2 -2
- package/src/components/layouts/reset_password/hooks/use_reset_password_form.ts +4 -4
- package/src/components/layouts/reset_password/index.tsx +10 -10
- package/src/components/layouts/shared/components/already_logged_in_guard.tsx +4 -4
- package/src/components/layouts/shared/components/auth_page_shell.tsx +3 -3
- package/src/components/layouts/shared/components/form_action_buttons.tsx +2 -2
- package/src/components/layouts/shared/components/form_field_wrapper.tsx +2 -2
- package/src/components/layouts/shared/components/logout_button.tsx +2 -2
- package/src/components/layouts/shared/components/password_field.tsx +3 -3
- package/src/components/layouts/shared/components/profile_pic_menu.tsx +5 -5
- package/src/components/layouts/shared/components/profile_pic_menu_wrapper.tsx +2 -2
- package/src/components/layouts/shared/components/sidebar_layout_wrapper.tsx +3 -3
- package/src/components/layouts/shared/components/standalone_layout_wrapper.tsx +1 -1
- package/src/components/layouts/shared/components/two_column_auth_layout.tsx +1 -1
- package/src/components/layouts/shared/components/unauthorized_guard.tsx +2 -2
- package/src/components/layouts/shared/hooks/use_hazo_auth.ts +1 -1
- package/src/components/layouts/shared/index.ts +34 -0
- package/src/components/layouts/shared/utils/validation.ts +1 -1
- package/src/components/layouts/user_management/components/roles_matrix.tsx +7 -7
- package/src/components/layouts/user_management/index.tsx +11 -11
- package/src/components/ui/alert-dialog.tsx +2 -2
- package/src/components/ui/avatar.tsx +1 -1
- package/src/components/ui/button.tsx +1 -1
- package/src/components/ui/checkbox.tsx +1 -1
- package/src/components/ui/dialog.tsx +1 -1
- package/src/components/ui/dropdown-menu.tsx +1 -1
- package/src/components/ui/hazo_ui_tooltip.tsx +1 -1
- package/src/components/ui/index.ts +22 -0
- package/src/components/ui/input.tsx +1 -1
- package/src/components/ui/label.tsx +1 -1
- package/src/components/ui/separator.tsx +1 -1
- package/src/components/ui/sheet.tsx +1 -1
- package/src/components/ui/sidebar.tsx +8 -8
- package/src/components/ui/skeleton.tsx +1 -1
- package/src/components/ui/switch.tsx +1 -1
- package/src/components/ui/table.tsx +1 -1
- package/src/components/ui/tabs.tsx +1 -1
- package/src/components/ui/tooltip.tsx +1 -1
- package/src/components/ui/vertical-tabs.tsx +1 -1
- package/src/index.ts +7 -0
- package/src/lib/already_logged_in_config.server.ts +1 -1
- package/src/lib/app_logger.ts +1 -1
- package/src/lib/auth/auth_cache.ts +1 -1
- package/src/lib/auth/auth_utils.server.ts +2 -2
- package/src/lib/auth/hazo_get_auth.server.ts +8 -8
- package/src/lib/auth/index.ts +23 -0
- package/src/lib/auth/server_auth.ts +2 -2
- package/src/lib/auth_utility_config.server.ts +1 -1
- package/src/lib/config/config_loader.server.ts +1 -1
- package/src/lib/email_verification_config.server.ts +1 -1
- package/src/lib/file_types_config.server.ts +1 -1
- package/src/lib/forgot_password_config.server.ts +1 -1
- package/src/lib/hazo_connect_instance.server.ts +2 -2
- package/src/lib/hazo_connect_setup.server.ts +2 -2
- package/src/lib/index.ts +44 -0
- package/src/lib/login_config.server.ts +2 -2
- package/src/lib/messages_config.server.ts +1 -1
- package/src/lib/my_settings_config.server.ts +7 -7
- package/src/lib/password_requirements_config.server.ts +1 -1
- package/src/lib/profile_pic_menu_config.server.ts +1 -1
- package/src/lib/profile_picture_config.server.ts +2 -2
- package/src/lib/register_config.server.ts +4 -4
- package/src/lib/reset_password_config.server.ts +3 -3
- package/src/lib/services/email_service.ts +2 -2
- package/src/lib/services/email_verification_service.ts +3 -3
- package/src/lib/services/index.ts +15 -0
- package/src/lib/services/login_service.ts +3 -3
- package/src/lib/services/password_change_service.ts +3 -3
- package/src/lib/services/password_reset_service.ts +3 -3
- package/src/lib/services/profile_picture_remove_service.ts +3 -3
- package/src/lib/services/profile_picture_service.ts +5 -5
- package/src/lib/services/registration_service.ts +8 -8
- package/src/lib/services/token_service.ts +2 -2
- package/src/lib/services/user_profiles_service.ts +2 -2
- package/src/lib/services/user_update_service.ts +4 -4
- package/src/lib/ui_shell_config.server.ts +1 -1
- package/src/lib/ui_sizes_config.server.ts +1 -1
- package/src/lib/user_fields_config.server.ts +1 -1
- package/src/lib/user_management_config.server.ts +1 -2
- package/src/lib/utils/error_sanitizer.ts +1 -1
- package/src/routes/index.ts +34 -0
- package/src/server/config/config_loader.ts +2 -2
- package/src/server/index.ts +2 -2
- package/src/server/logging/logger_service.ts +1 -1
- package/src/server/server.ts +2 -2
- package/src/server/types/express.d.ts +1 -1
- package/tsconfig.build.json +39 -0
- package/tsconfig.json +5 -1
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import { createCrudService } from "hazo_connect/server";
|
|
2
|
+
import { map_ui_source_to_db } from "hazo_auth/lib/services/profile_picture_source_mapper";
|
|
3
|
+
import { create_app_logger } from "hazo_auth/lib/app_logger";
|
|
4
|
+
import { sanitize_error_for_user } from "hazo_auth/lib/utils/error_sanitizer";
|
|
5
|
+
import { get_line_number } from "hazo_auth/lib/utils/api_route_helpers";
|
|
6
|
+
// section: helpers
|
|
7
|
+
/**
|
|
8
|
+
* Updates user profile information (name, email)
|
|
9
|
+
* If email is changed, sets email_verified to false
|
|
10
|
+
* @param adapter - The hazo_connect adapter instance
|
|
11
|
+
* @param user_id - The user ID to update
|
|
12
|
+
* @param data - User update data (name, email)
|
|
13
|
+
* @returns User update result with success status, email_changed flag, or error
|
|
14
|
+
*/
|
|
15
|
+
export async function update_user_profile(adapter, user_id, data) {
|
|
16
|
+
try {
|
|
17
|
+
const { name, email } = data;
|
|
18
|
+
// Create CRUD service for hazo_users table
|
|
19
|
+
const users_service = createCrudService(adapter, "hazo_users");
|
|
20
|
+
// Get current user data
|
|
21
|
+
const users = await users_service.findBy({
|
|
22
|
+
id: user_id,
|
|
23
|
+
});
|
|
24
|
+
if (!Array.isArray(users) || users.length === 0) {
|
|
25
|
+
return {
|
|
26
|
+
success: false,
|
|
27
|
+
error: "User not found",
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
const current_user = users[0];
|
|
31
|
+
const current_email = current_user.email_address;
|
|
32
|
+
const email_changed = email !== undefined && email !== current_email;
|
|
33
|
+
// If email is being changed, check if new email already exists
|
|
34
|
+
if (email_changed) {
|
|
35
|
+
const existing_users = await users_service.findBy({
|
|
36
|
+
email_address: email,
|
|
37
|
+
});
|
|
38
|
+
if (Array.isArray(existing_users) && existing_users.length > 0) {
|
|
39
|
+
// Check if it's the same user
|
|
40
|
+
const existing_user = existing_users[0];
|
|
41
|
+
if (existing_user.id !== user_id) {
|
|
42
|
+
return {
|
|
43
|
+
success: false,
|
|
44
|
+
error: "Email address already registered",
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
// Validate email format
|
|
49
|
+
const email_regex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
|
|
50
|
+
if (!email_regex.test(email)) {
|
|
51
|
+
return {
|
|
52
|
+
success: false,
|
|
53
|
+
error: "Invalid email address format",
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
// Prepare update data
|
|
58
|
+
const update_data = {
|
|
59
|
+
changed_at: new Date().toISOString(),
|
|
60
|
+
};
|
|
61
|
+
if (name !== undefined) {
|
|
62
|
+
update_data.name = name;
|
|
63
|
+
}
|
|
64
|
+
if (email !== undefined) {
|
|
65
|
+
update_data.email_address = email;
|
|
66
|
+
}
|
|
67
|
+
if (data.profile_picture_url !== undefined) {
|
|
68
|
+
update_data.profile_picture_url = data.profile_picture_url;
|
|
69
|
+
}
|
|
70
|
+
if (data.profile_source !== undefined) {
|
|
71
|
+
// Map UI source value to database enum value
|
|
72
|
+
update_data.profile_source = map_ui_source_to_db(data.profile_source);
|
|
73
|
+
}
|
|
74
|
+
// If email changed, set email_verified to false
|
|
75
|
+
if (email_changed) {
|
|
76
|
+
update_data.email_verified = false;
|
|
77
|
+
}
|
|
78
|
+
// Update user in database
|
|
79
|
+
await users_service.updateById(user_id, update_data);
|
|
80
|
+
return {
|
|
81
|
+
success: true,
|
|
82
|
+
email_changed,
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
catch (error) {
|
|
86
|
+
const logger = create_app_logger();
|
|
87
|
+
const user_friendly_error = sanitize_error_for_user(error, {
|
|
88
|
+
logToConsole: true,
|
|
89
|
+
logToLogger: true,
|
|
90
|
+
logger,
|
|
91
|
+
context: {
|
|
92
|
+
filename: "user_update_service.ts",
|
|
93
|
+
line_number: get_line_number(),
|
|
94
|
+
user_id,
|
|
95
|
+
operation: "update_user_profile",
|
|
96
|
+
},
|
|
97
|
+
});
|
|
98
|
+
return {
|
|
99
|
+
success: false,
|
|
100
|
+
error: user_friendly_error,
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export type UiShellLayoutMode = "test_sidebar" | "standalone";
|
|
2
|
+
export type UiShellConfig = {
|
|
3
|
+
layout_mode: UiShellLayoutMode;
|
|
4
|
+
standalone_heading: string;
|
|
5
|
+
standalone_description: string;
|
|
6
|
+
standalone_wrapper_class: string;
|
|
7
|
+
standalone_content_class: string;
|
|
8
|
+
standalone_show_heading: boolean;
|
|
9
|
+
standalone_show_description: boolean;
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* Reads ui shell configuration controlling whether pages use the sidebar test shell
|
|
13
|
+
* or a clean standalone wrapper that inherits consumer project styling.
|
|
14
|
+
*/
|
|
15
|
+
export declare function get_ui_shell_config(): UiShellConfig;
|
|
16
|
+
//# sourceMappingURL=ui_shell_config.server.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ui_shell_config.server.d.ts","sourceRoot":"","sources":["../../src/lib/ui_shell_config.server.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,iBAAiB,GAAG,cAAc,GAAG,YAAY,CAAC;AAE9D,MAAM,MAAM,aAAa,GAAG;IAC1B,WAAW,EAAE,iBAAiB,CAAC;IAC/B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,sBAAsB,EAAE,MAAM,CAAC;IAC/B,wBAAwB,EAAE,MAAM,CAAC;IACjC,wBAAwB,EAAE,MAAM,CAAC;IACjC,uBAAuB,EAAE,OAAO,CAAC;IACjC,2BAA2B,EAAE,OAAO,CAAC;CACtC,CAAC;AAGF;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,aAAa,CA+CnD"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
// file_description: load ui shell layout settings from hazo_auth_config.ini
|
|
2
|
+
// section: imports
|
|
3
|
+
import { get_config_value } from "hazo_auth/lib/config/config_loader.server";
|
|
4
|
+
// section: helpers
|
|
5
|
+
/**
|
|
6
|
+
* Reads ui shell configuration controlling whether pages use the sidebar test shell
|
|
7
|
+
* or a clean standalone wrapper that inherits consumer project styling.
|
|
8
|
+
*/
|
|
9
|
+
export function get_ui_shell_config() {
|
|
10
|
+
const section = "hazo_auth__ui_shell";
|
|
11
|
+
const layoutModeValue = get_config_value(section, "layout_mode", "test_sidebar").toLowerCase();
|
|
12
|
+
const layout_mode = layoutModeValue === "standalone" ? "standalone" : "test_sidebar";
|
|
13
|
+
const standalone_heading = get_config_value(section, "standalone_heading", "Welcome to hazo auth");
|
|
14
|
+
const standalone_description = get_config_value(section, "standalone_description", "Reuse the packaged authentication flows while inheriting your existing app shell styles.");
|
|
15
|
+
const standalone_wrapper_class = get_config_value(section, "standalone_wrapper_class", "cls_standalone_shell flex min-h-screen w-full items-center justify-center bg-background px-4 py-10");
|
|
16
|
+
const standalone_content_class = get_config_value(section, "standalone_content_class", "cls_standalone_shell_content w-full max-w-5xl shadow-xl rounded-2xl border bg-card");
|
|
17
|
+
const standalone_show_heading = get_config_value(section, "standalone_show_heading", "true").toLowerCase() === "true";
|
|
18
|
+
const standalone_show_description = get_config_value(section, "standalone_show_description", "true").toLowerCase() === "true";
|
|
19
|
+
return {
|
|
20
|
+
layout_mode,
|
|
21
|
+
standalone_heading,
|
|
22
|
+
standalone_description,
|
|
23
|
+
standalone_wrapper_class,
|
|
24
|
+
standalone_content_class,
|
|
25
|
+
standalone_show_heading,
|
|
26
|
+
standalone_show_description,
|
|
27
|
+
};
|
|
28
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export type UISizesConfig = {
|
|
2
|
+
gravatar_size: number;
|
|
3
|
+
profile_picture_size: number;
|
|
4
|
+
tooltip_icon_size_default: number;
|
|
5
|
+
tooltip_icon_size_small: number;
|
|
6
|
+
library_photo_grid_columns: number;
|
|
7
|
+
library_photo_preview_size: number;
|
|
8
|
+
image_compression_max_dimension: number;
|
|
9
|
+
upload_file_hard_limit_bytes: number;
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* Reads UI size configuration from hazo_auth_config.ini file
|
|
13
|
+
* Falls back to defaults if hazo_auth_config.ini is not found or section is missing
|
|
14
|
+
* @returns UI sizes configuration options
|
|
15
|
+
*/
|
|
16
|
+
export declare function get_ui_sizes_config(): UISizesConfig;
|
|
17
|
+
//# sourceMappingURL=ui_sizes_config.server.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ui_sizes_config.server.d.ts","sourceRoot":"","sources":["../../src/lib/ui_sizes_config.server.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,aAAa,GAAG;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,yBAAyB,EAAE,MAAM,CAAC;IAClC,uBAAuB,EAAE,MAAM,CAAC;IAChC,0BAA0B,EAAE,MAAM,CAAC;IACnC,0BAA0B,EAAE,MAAM,CAAC;IACnC,+BAA+B,EAAE,MAAM,CAAC;IACxC,4BAA4B,EAAE,MAAM,CAAC;CACtC,CAAC;AAGF;;;;GAIG;AACH,wBAAgB,mBAAmB,IAAI,aAAa,CAanD"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
// file_description: server-only helper to read UI size configuration from hazo_auth_config.ini
|
|
2
|
+
// section: imports
|
|
3
|
+
import { get_config_number } from "hazo_auth/lib/config/config_loader.server";
|
|
4
|
+
// section: helpers
|
|
5
|
+
/**
|
|
6
|
+
* Reads UI size configuration from hazo_auth_config.ini file
|
|
7
|
+
* Falls back to defaults if hazo_auth_config.ini is not found or section is missing
|
|
8
|
+
* @returns UI sizes configuration options
|
|
9
|
+
*/
|
|
10
|
+
export function get_ui_sizes_config() {
|
|
11
|
+
const section = "hazo_auth__ui_sizes";
|
|
12
|
+
return {
|
|
13
|
+
gravatar_size: get_config_number(section, "gravatar_size", 200),
|
|
14
|
+
profile_picture_size: get_config_number(section, "profile_picture_size", 200),
|
|
15
|
+
tooltip_icon_size_default: get_config_number(section, "tooltip_icon_size_default", 16),
|
|
16
|
+
tooltip_icon_size_small: get_config_number(section, "tooltip_icon_size_small", 14),
|
|
17
|
+
library_photo_grid_columns: get_config_number(section, "library_photo_grid_columns", 4),
|
|
18
|
+
library_photo_preview_size: get_config_number(section, "library_photo_preview_size", 200),
|
|
19
|
+
image_compression_max_dimension: get_config_number(section, "image_compression_max_dimension", 200),
|
|
20
|
+
upload_file_hard_limit_bytes: get_config_number(section, "upload_file_hard_limit_bytes", 10485760), // 10MB
|
|
21
|
+
};
|
|
22
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export type UserFieldsConfig = {
|
|
2
|
+
show_name_field: boolean;
|
|
3
|
+
show_email_field: boolean;
|
|
4
|
+
show_password_field: boolean;
|
|
5
|
+
};
|
|
6
|
+
/**
|
|
7
|
+
* Reads shared user fields configuration from hazo_auth_config.ini file
|
|
8
|
+
* Falls back to defaults if hazo_auth_config.ini is not found or section is missing
|
|
9
|
+
* This configuration is used by register and my_settings layouts
|
|
10
|
+
* @returns User fields configuration options
|
|
11
|
+
*/
|
|
12
|
+
export declare function get_user_fields_config(): UserFieldsConfig;
|
|
13
|
+
//# sourceMappingURL=user_fields_config.server.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user_fields_config.server.d.ts","sourceRoot":"","sources":["../../src/lib/user_fields_config.server.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,gBAAgB,GAAG;IAC7B,eAAe,EAAE,OAAO,CAAC;IACzB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,mBAAmB,EAAE,OAAO,CAAC;CAC9B,CAAC;AAGF;;;;;GAKG;AACH,wBAAgB,sBAAsB,IAAI,gBAAgB,CAWzD"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
// file_description: server-only helper to read shared user fields configuration from hazo_auth_config.ini
|
|
2
|
+
// section: imports
|
|
3
|
+
import { get_config_boolean } from "hazo_auth/lib/config/config_loader.server";
|
|
4
|
+
// section: helpers
|
|
5
|
+
/**
|
|
6
|
+
* Reads shared user fields configuration from hazo_auth_config.ini file
|
|
7
|
+
* Falls back to defaults if hazo_auth_config.ini is not found or section is missing
|
|
8
|
+
* This configuration is used by register and my_settings layouts
|
|
9
|
+
* @returns User fields configuration options
|
|
10
|
+
*/
|
|
11
|
+
export function get_user_fields_config() {
|
|
12
|
+
// Read field visibility with defaults (all true by default)
|
|
13
|
+
const show_name_field = get_config_boolean("hazo_auth__user_fields", "show_name_field", true);
|
|
14
|
+
const show_email_field = get_config_boolean("hazo_auth__user_fields", "show_email_field", true);
|
|
15
|
+
const show_password_field = get_config_boolean("hazo_auth__user_fields", "show_password_field", true);
|
|
16
|
+
return {
|
|
17
|
+
show_name_field,
|
|
18
|
+
show_email_field,
|
|
19
|
+
show_password_field,
|
|
20
|
+
};
|
|
21
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export type UserManagementConfig = {
|
|
2
|
+
application_permission_list_defaults: string[];
|
|
3
|
+
};
|
|
4
|
+
/**
|
|
5
|
+
* Reads user management configuration from hazo_auth_config.ini file
|
|
6
|
+
* Falls back to defaults if hazo_auth_config.ini is not found or section is missing
|
|
7
|
+
* @returns User management configuration options
|
|
8
|
+
*/
|
|
9
|
+
export declare function get_user_management_config(): UserManagementConfig;
|
|
10
|
+
//# sourceMappingURL=user_management_config.server.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user_management_config.server.d.ts","sourceRoot":"","sources":["../../src/lib/user_management_config.server.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,oBAAoB,GAAG;IACjC,oCAAoC,EAAE,MAAM,EAAE,CAAC;CAChD,CAAC;AAGF;;;;GAIG;AACH,wBAAgB,0BAA0B,IAAI,oBAAoB,CAsBjE"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
// file_description: server-only helper to read user management configuration from hazo_auth_config.ini
|
|
2
|
+
// section: imports
|
|
3
|
+
import { get_config_array, read_config_section } from "hazo_auth/lib/config/config_loader.server";
|
|
4
|
+
// section: helpers
|
|
5
|
+
/**
|
|
6
|
+
* Reads user management configuration from hazo_auth_config.ini file
|
|
7
|
+
* Falls back to defaults if hazo_auth_config.ini is not found or section is missing
|
|
8
|
+
* @returns User management configuration options
|
|
9
|
+
*/
|
|
10
|
+
export function get_user_management_config() {
|
|
11
|
+
// Try to read from hazo_auth__user_management section first
|
|
12
|
+
const user_management_section = read_config_section("hazo_auth__user_management");
|
|
13
|
+
const permissions_section = read_config_section("permissions");
|
|
14
|
+
// Try application_permission_list_defaults from user_management section
|
|
15
|
+
let permission_list = [];
|
|
16
|
+
if (user_management_section === null || user_management_section === void 0 ? void 0 : user_management_section.application_permission_list_defaults) {
|
|
17
|
+
permission_list = get_config_array("hazo_auth__user_management", "application_permission_list_defaults", []);
|
|
18
|
+
}
|
|
19
|
+
else if (permissions_section === null || permissions_section === void 0 ? void 0 : permissions_section.list) {
|
|
20
|
+
// Fallback to permissions section list key
|
|
21
|
+
permission_list = get_config_array("permissions", "list", []);
|
|
22
|
+
}
|
|
23
|
+
return {
|
|
24
|
+
application_permission_list_defaults: permission_list,
|
|
25
|
+
};
|
|
26
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Gets the filename from the call stack
|
|
3
|
+
* This is a simplified version that extracts the filename from the error stack
|
|
4
|
+
* @returns Filename or "route.ts" as default
|
|
5
|
+
*/
|
|
6
|
+
export declare function get_filename(): string;
|
|
7
|
+
/**
|
|
8
|
+
* Gets the line number from the call stack
|
|
9
|
+
* This is a simplified version that extracts the line number from the error stack
|
|
10
|
+
* @returns Line number or 0
|
|
11
|
+
*/
|
|
12
|
+
export declare function get_line_number(): number;
|
|
13
|
+
//# sourceMappingURL=api_route_helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api_route_helpers.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/api_route_helpers.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAsBrC;AAED;;;;GAIG;AACH,wBAAgB,eAAe,IAAI,MAAM,CAsBxC"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
// file_description: shared helper functions for API routes to get filename and line number
|
|
2
|
+
// section: helpers
|
|
3
|
+
/**
|
|
4
|
+
* Gets the filename from the call stack
|
|
5
|
+
* This is a simplified version that extracts the filename from the error stack
|
|
6
|
+
* @returns Filename or "route.ts" as default
|
|
7
|
+
*/
|
|
8
|
+
export function get_filename() {
|
|
9
|
+
try {
|
|
10
|
+
const stack = new Error().stack;
|
|
11
|
+
if (!stack) {
|
|
12
|
+
return "route.ts";
|
|
13
|
+
}
|
|
14
|
+
// Parse stack trace to find the caller's file
|
|
15
|
+
const lines = stack.split("\n");
|
|
16
|
+
// Skip Error line and get_filename line, get the actual caller
|
|
17
|
+
for (let i = 2; i < lines.length; i++) {
|
|
18
|
+
const line = lines[i];
|
|
19
|
+
// Match file paths in stack trace (e.g., "at /path/to/file.ts:123:45")
|
|
20
|
+
const match = line.match(/([^/\\]+\.tsx?):(\d+):(\d+)/);
|
|
21
|
+
if (match) {
|
|
22
|
+
return match[1];
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
return "route.ts";
|
|
26
|
+
}
|
|
27
|
+
catch (_a) {
|
|
28
|
+
return "route.ts";
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Gets the line number from the call stack
|
|
33
|
+
* This is a simplified version that extracts the line number from the error stack
|
|
34
|
+
* @returns Line number or 0
|
|
35
|
+
*/
|
|
36
|
+
export function get_line_number() {
|
|
37
|
+
try {
|
|
38
|
+
const stack = new Error().stack;
|
|
39
|
+
if (!stack) {
|
|
40
|
+
return 0;
|
|
41
|
+
}
|
|
42
|
+
// Parse stack trace to find the caller's line number
|
|
43
|
+
const lines = stack.split("\n");
|
|
44
|
+
// Skip Error line and get_line_number line, get the actual caller
|
|
45
|
+
for (let i = 2; i < lines.length; i++) {
|
|
46
|
+
const line = lines[i];
|
|
47
|
+
// Match line numbers in stack trace (e.g., "at /path/to/file.ts:123:45")
|
|
48
|
+
const match = line.match(/([^/\\]+\.tsx?):(\d+):(\d+)/);
|
|
49
|
+
if (match) {
|
|
50
|
+
return parseInt(match[2], 10) || 0;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
return 0;
|
|
54
|
+
}
|
|
55
|
+
catch (_a) {
|
|
56
|
+
return 0;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { create_app_logger } from "hazo_auth/lib/app_logger";
|
|
2
|
+
export type ErrorSanitizationOptions = {
|
|
3
|
+
logToConsole?: boolean;
|
|
4
|
+
logToLogger?: boolean;
|
|
5
|
+
logger?: ReturnType<typeof create_app_logger>;
|
|
6
|
+
context?: Record<string, unknown>;
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* Sanitizes error messages for user display
|
|
10
|
+
* Replaces technical error messages with user-friendly ones
|
|
11
|
+
* @param error - The error object or message
|
|
12
|
+
* @param options - Options for logging and context
|
|
13
|
+
* @returns User-friendly error message
|
|
14
|
+
*/
|
|
15
|
+
export declare function sanitize_error_for_user(error: unknown, options?: ErrorSanitizationOptions): string;
|
|
16
|
+
//# sourceMappingURL=error_sanitizer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error_sanitizer.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/error_sanitizer.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAM7D,MAAM,MAAM,wBAAwB,GAAG;IACrC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC;IAC9C,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC,CAAC;AAGF;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,OAAO,EACd,OAAO,GAAE,wBAA6B,GACrC,MAAM,CA8CR"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
// section: constants
|
|
2
|
+
const USER_FRIENDLY_ERROR_MESSAGE = "We are facing some issues in our system, please try again later.";
|
|
3
|
+
// section: helpers
|
|
4
|
+
/**
|
|
5
|
+
* Sanitizes error messages for user display
|
|
6
|
+
* Replaces technical error messages with user-friendly ones
|
|
7
|
+
* @param error - The error object or message
|
|
8
|
+
* @param options - Options for logging and context
|
|
9
|
+
* @returns User-friendly error message
|
|
10
|
+
*/
|
|
11
|
+
export function sanitize_error_for_user(error, options = {}) {
|
|
12
|
+
const { logToConsole = true, logToLogger = true, logger, context = {} } = options;
|
|
13
|
+
// Extract detailed error message
|
|
14
|
+
const detailed_error_message = error instanceof Error ? error.message : String(error);
|
|
15
|
+
const error_stack = error instanceof Error ? error.stack : undefined;
|
|
16
|
+
// Log detailed error to console
|
|
17
|
+
if (logToConsole) {
|
|
18
|
+
console.error("Detailed error:", Object.assign({ message: detailed_error_message, stack: error_stack }, context));
|
|
19
|
+
}
|
|
20
|
+
// Log detailed error to logger if provided
|
|
21
|
+
if (logToLogger && logger) {
|
|
22
|
+
logger.error("error_occurred", Object.assign({ filename: context.filename || "unknown", line_number: context.line_number || 0, error_message: detailed_error_message, error_stack }, context));
|
|
23
|
+
}
|
|
24
|
+
// Check if error is a PostgREST or database-related error
|
|
25
|
+
const is_database_error = detailed_error_message.includes("PostgREST") ||
|
|
26
|
+
detailed_error_message.includes("403 Forbidden") ||
|
|
27
|
+
detailed_error_message.includes("404 Not Found") ||
|
|
28
|
+
detailed_error_message.includes("500 Internal Server Error") ||
|
|
29
|
+
detailed_error_message.includes("database") ||
|
|
30
|
+
detailed_error_message.includes("connection") ||
|
|
31
|
+
detailed_error_message.includes("timeout");
|
|
32
|
+
// Return user-friendly message for database/API errors
|
|
33
|
+
if (is_database_error) {
|
|
34
|
+
return USER_FRIENDLY_ERROR_MESSAGE;
|
|
35
|
+
}
|
|
36
|
+
// For other errors, return the original message (could be user-friendly already)
|
|
37
|
+
// But still log the detailed error
|
|
38
|
+
return detailed_error_message;
|
|
39
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/lib/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAQ,KAAK,UAAU,EAAE,MAAM,MAAM,CAAC;AAI7C,wBAAgB,iBAAiB,CAAC,GAAG,MAAM,EAAE,UAAU,EAAE,UAExD;AAGD,eAAO,MAAM,EAAE,GAAI,GAAG,QAAQ,UAAU,EAAE,WAAiC,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
// file_description: provide shared utility helpers for the hazo_auth project
|
|
2
|
+
import { clsx } from "clsx";
|
|
3
|
+
import { twMerge } from "tailwind-merge";
|
|
4
|
+
// section: tailwind_merge_helper
|
|
5
|
+
export function merge_class_names(...inputs) {
|
|
6
|
+
return twMerge(clsx(inputs));
|
|
7
|
+
}
|
|
8
|
+
// section: shadcn_compatibility_helper
|
|
9
|
+
export const cn = (...inputs) => merge_class_names(...inputs);
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { app_context, captcha_settings, logger_service, password_policy, rate_limit_settings, runtime_configuration, token_settings } from "hazo_auth/server/types/app_types";
|
|
2
|
+
type direct_configuration_input = {
|
|
3
|
+
permission_names?: string[];
|
|
4
|
+
templates?: Record<string, string>;
|
|
5
|
+
labels?: Record<string, string>;
|
|
6
|
+
styles?: Record<string, string>;
|
|
7
|
+
emailer?: resolved_emailer_options;
|
|
8
|
+
logger?: logger_service;
|
|
9
|
+
password_policy?: Partial<password_policy>;
|
|
10
|
+
token_settings?: Partial<token_settings>;
|
|
11
|
+
rate_limit?: Partial<rate_limit_settings>;
|
|
12
|
+
captcha?: captcha_settings;
|
|
13
|
+
};
|
|
14
|
+
export type configuration_options = {
|
|
15
|
+
config_file_path?: string;
|
|
16
|
+
direct_configuration?: direct_configuration_input;
|
|
17
|
+
};
|
|
18
|
+
type resolved_emailer_options = {
|
|
19
|
+
base_url: string;
|
|
20
|
+
api_key?: string;
|
|
21
|
+
headers?: Record<string, string>;
|
|
22
|
+
};
|
|
23
|
+
export declare const load_runtime_configuration: (options?: configuration_options) => runtime_configuration;
|
|
24
|
+
export declare const create_app_context: (options?: configuration_options) => app_context;
|
|
25
|
+
export {};
|
|
26
|
+
//# sourceMappingURL=config_loader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config_loader.d.ts","sourceRoot":"","sources":["../../../src/server/config/config_loader.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,WAAW,EACX,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,qBAAqB,EACrB,cAAc,EACf,MAAM,kCAAkC,CAAC;AAG1C,KAAK,0BAA0B,GAAG;IAChC,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,OAAO,CAAC,EAAE,wBAAwB,CAAC;IACnC,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,eAAe,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;IAC3C,cAAc,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;IACzC,UAAU,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAC1C,OAAO,CAAC,EAAE,gBAAgB,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,oBAAoB,CAAC,EAAE,0BAA0B,CAAC;CACnD,CAAC;AAkGF,KAAK,wBAAwB,GAAG;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC,CAAC;AAyQF,eAAO,MAAM,0BAA0B,GACrC,UAAU,qBAAqB,KAC9B,qBAsFF,CAAC;AAGF,eAAO,MAAM,kBAAkB,GAAI,UAAU,qBAAqB,KAAG,WAEnE,CAAC"}
|