hazo_auth 1.4.2 → 1.6.1
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 +65 -19
- package/SETUP_CHECKLIST.md +779 -0
- package/dist/app/api/hazo_auth/change_password/route.d.ts +8 -0
- package/dist/app/api/hazo_auth/change_password/route.d.ts.map +1 -0
- package/dist/app/api/hazo_auth/change_password/route.js +98 -0
- package/dist/app/api/hazo_auth/forgot_password/route.d.ts +8 -0
- package/dist/app/api/hazo_auth/forgot_password/route.d.ts.map +1 -0
- package/dist/app/api/hazo_auth/forgot_password/route.js +78 -0
- package/dist/app/api/hazo_auth/get_auth/route.d.ts +10 -0
- package/dist/app/api/hazo_auth/get_auth/route.d.ts.map +1 -0
- package/dist/app/api/hazo_auth/get_auth/route.js +63 -0
- package/dist/app/api/hazo_auth/invalidate_cache/route.d.ts +14 -0
- package/dist/app/api/hazo_auth/invalidate_cache/route.d.ts.map +1 -0
- package/dist/app/api/hazo_auth/invalidate_cache/route.js +96 -0
- package/dist/app/api/hazo_auth/library_photo/[category]/[filename]/route.d.ts +9 -0
- package/dist/app/api/hazo_auth/library_photo/[category]/[filename]/route.d.ts.map +1 -0
- package/dist/app/api/hazo_auth/library_photo/[category]/[filename]/route.js +82 -0
- package/dist/app/api/hazo_auth/library_photos/route.d.ts +22 -0
- package/dist/app/api/hazo_auth/library_photos/route.d.ts.map +1 -0
- package/dist/app/api/hazo_auth/library_photos/route.js +80 -0
- package/dist/app/api/hazo_auth/login/route.d.ts +12 -0
- package/dist/app/api/hazo_auth/login/route.d.ts.map +1 -0
- package/dist/app/api/hazo_auth/login/route.js +140 -0
- package/dist/app/api/hazo_auth/logout/route.d.ts +8 -0
- package/dist/app/api/hazo_auth/logout/route.d.ts.map +1 -0
- package/dist/app/api/hazo_auth/logout/route.js +71 -0
- package/dist/app/api/hazo_auth/me/route.d.ts +3 -0
- package/dist/app/api/hazo_auth/me/route.d.ts.map +1 -0
- package/dist/app/api/hazo_auth/me/route.js +34 -0
- package/dist/app/api/hazo_auth/profile_picture/[filename]/route.d.ts +7 -0
- package/dist/app/api/hazo_auth/profile_picture/[filename]/route.d.ts.map +1 -0
- package/dist/app/api/hazo_auth/profile_picture/[filename]/route.js +43 -0
- package/dist/app/api/hazo_auth/register/route.d.ts +9 -0
- package/dist/app/api/hazo_auth/register/route.d.ts.map +1 -0
- package/dist/app/api/hazo_auth/register/route.js +80 -0
- package/dist/app/api/hazo_auth/remove_profile_picture/route.d.ts +8 -0
- package/dist/app/api/hazo_auth/remove_profile_picture/route.d.ts.map +1 -0
- package/dist/app/api/hazo_auth/remove_profile_picture/route.js +64 -0
- package/dist/app/api/hazo_auth/resend_verification/route.d.ts +8 -0
- package/dist/app/api/hazo_auth/resend_verification/route.d.ts.map +1 -0
- package/dist/app/api/hazo_auth/resend_verification/route.js +79 -0
- package/dist/app/api/hazo_auth/reset_password/route.d.ts +8 -0
- package/dist/app/api/hazo_auth/reset_password/route.d.ts.map +1 -0
- package/dist/app/api/hazo_auth/reset_password/route.js +76 -0
- package/dist/app/api/hazo_auth/update_user/route.d.ts +9 -0
- package/dist/app/api/hazo_auth/update_user/route.d.ts.map +1 -0
- package/dist/app/api/hazo_auth/update_user/route.js +95 -0
- package/dist/app/api/hazo_auth/upload_profile_picture/route.d.ts +9 -0
- package/dist/app/api/hazo_auth/upload_profile_picture/route.d.ts.map +1 -0
- package/dist/app/api/hazo_auth/upload_profile_picture/route.js +204 -0
- package/dist/app/api/hazo_auth/validate_reset_token/route.d.ts +6 -0
- package/dist/app/api/hazo_auth/validate_reset_token/route.d.ts.map +1 -0
- package/dist/app/api/hazo_auth/validate_reset_token/route.js +58 -0
- package/dist/app/api/hazo_auth/verify_email/route.d.ts +11 -0
- package/dist/app/api/hazo_auth/verify_email/route.d.ts.map +1 -0
- package/dist/app/api/hazo_auth/verify_email/route.js +63 -0
- package/dist/cli/generate.d.ts +7 -0
- package/dist/cli/generate.d.ts.map +1 -0
- package/dist/cli/generate.js +184 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +173 -0
- package/dist/cli/init.d.ts +2 -0
- package/dist/cli/init.d.ts.map +1 -0
- package/dist/cli/init.js +201 -0
- package/dist/cli/validate.d.ts +15 -0
- package/dist/cli/validate.d.ts.map +1 -0
- package/dist/cli/validate.js +509 -0
- package/dist/components/ui/card.d.ts +9 -0
- package/dist/components/ui/card.d.ts.map +1 -0
- package/dist/components/ui/card.js +45 -0
- package/dist/hooks/use-mobile.d.ts.map +1 -1
- package/dist/hooks/use-mobile.js +17 -3
- package/dist/lib/services/profile_picture_service.d.ts +34 -2
- package/dist/lib/services/profile_picture_service.d.ts.map +1 -1
- package/dist/lib/services/profile_picture_service.js +157 -15
- package/dist/page_components/forgot_password.d.ts +19 -0
- package/dist/page_components/forgot_password.d.ts.map +1 -0
- package/dist/page_components/forgot_password.js +36 -0
- package/dist/page_components/index.d.ts +7 -0
- package/dist/page_components/index.d.ts.map +1 -0
- package/dist/page_components/index.js +9 -0
- package/dist/page_components/login.d.ts +26 -0
- package/dist/page_components/login.d.ts.map +1 -0
- package/dist/page_components/login.js +40 -0
- package/dist/page_components/my_settings.d.ts +64 -0
- package/dist/page_components/my_settings.d.ts.map +1 -0
- package/dist/page_components/my_settings.js +67 -0
- package/dist/page_components/register.d.ts +25 -0
- package/dist/page_components/register.d.ts.map +1 -0
- package/dist/page_components/register.js +43 -0
- package/dist/page_components/reset_password.d.ts +25 -0
- package/dist/page_components/reset_password.d.ts.map +1 -0
- package/dist/page_components/reset_password.js +43 -0
- package/dist/page_components/verify_email.d.ts +21 -0
- package/dist/page_components/verify_email.d.ts.map +1 -0
- package/dist/page_components/verify_email.js +36 -0
- package/dist/server/routes/change_password.d.ts +2 -0
- package/dist/server/routes/change_password.d.ts.map +1 -0
- package/dist/server/routes/change_password.js +2 -0
- package/dist/server/routes/forgot_password.d.ts +2 -0
- package/dist/server/routes/forgot_password.d.ts.map +1 -0
- package/dist/server/routes/forgot_password.js +2 -0
- package/dist/server/routes/get_auth.d.ts +2 -0
- package/dist/server/routes/get_auth.d.ts.map +1 -0
- package/dist/server/routes/get_auth.js +2 -0
- package/dist/server/routes/index.d.ts +19 -0
- package/dist/server/routes/index.d.ts.map +1 -0
- package/dist/server/routes/index.js +25 -0
- package/dist/server/routes/invalidate_cache.d.ts +2 -0
- package/dist/server/routes/invalidate_cache.d.ts.map +1 -0
- package/dist/server/routes/invalidate_cache.js +2 -0
- package/dist/server/routes/library_photo.d.ts +2 -0
- package/dist/server/routes/library_photo.d.ts.map +1 -0
- package/dist/server/routes/library_photo.js +3 -0
- package/dist/server/routes/library_photos.d.ts +2 -0
- package/dist/server/routes/library_photos.d.ts.map +1 -0
- package/dist/server/routes/library_photos.js +2 -0
- package/dist/server/routes/login.d.ts +2 -0
- package/dist/server/routes/login.d.ts.map +1 -0
- package/dist/server/routes/login.js +2 -0
- package/dist/server/routes/logout.d.ts +2 -0
- package/dist/server/routes/logout.d.ts.map +1 -0
- package/dist/server/routes/logout.js +2 -0
- package/dist/server/routes/me.d.ts +2 -0
- package/dist/server/routes/me.d.ts.map +1 -0
- package/dist/server/routes/me.js +2 -0
- package/dist/server/routes/profile_picture_filename.d.ts +2 -0
- package/dist/server/routes/profile_picture_filename.d.ts.map +1 -0
- package/dist/server/routes/profile_picture_filename.js +3 -0
- package/dist/server/routes/register.d.ts +2 -0
- package/dist/server/routes/register.d.ts.map +1 -0
- package/dist/server/routes/register.js +2 -0
- package/dist/server/routes/remove_profile_picture.d.ts +2 -0
- package/dist/server/routes/remove_profile_picture.d.ts.map +1 -0
- package/dist/server/routes/remove_profile_picture.js +2 -0
- package/dist/server/routes/resend_verification.d.ts +2 -0
- package/dist/server/routes/resend_verification.d.ts.map +1 -0
- package/dist/server/routes/resend_verification.js +2 -0
- package/dist/server/routes/reset_password.d.ts +2 -0
- package/dist/server/routes/reset_password.d.ts.map +1 -0
- package/dist/server/routes/reset_password.js +2 -0
- package/dist/server/routes/update_user.d.ts +2 -0
- package/dist/server/routes/update_user.d.ts.map +1 -0
- package/dist/server/routes/update_user.js +2 -0
- package/dist/server/routes/upload_profile_picture.d.ts +2 -0
- package/dist/server/routes/upload_profile_picture.d.ts.map +1 -0
- package/dist/server/routes/upload_profile_picture.js +2 -0
- package/dist/server/routes/validate_reset_token.d.ts +2 -0
- package/dist/server/routes/validate_reset_token.d.ts.map +1 -0
- package/dist/server/routes/validate_reset_token.js +2 -0
- package/dist/server/routes/verify_email.d.ts +2 -0
- package/dist/server/routes/verify_email.d.ts.map +1 -0
- package/dist/server/routes/verify_email.js +2 -0
- package/package.json +40 -17
- package/components.json +0 -22
- package/instrumentation.ts +0 -32
- package/migrations/001_add_token_type_to_refresh_tokens.sql +0 -14
- package/migrations/002_add_name_to_hazo_users.sql +0 -7
- package/migrations/003_add_url_on_logon_to_hazo_users.sql +0 -8
- package/next.config.mjs +0 -67
- package/postcss.config.mjs +0 -8
- package/public/file.svg +0 -1
- package/public/globe.svg +0 -1
- package/public/next.svg +0 -1
- package/public/vercel.svg +0 -1
- package/public/window.svg +0 -1
- package/scripts/apply_migration.ts +0 -118
- package/scripts/init_users.ts +0 -378
- package/src/app/api/hazo_auth/auth/upload_profile_picture/route.ts +0 -268
- package/src/app/api/hazo_auth/change_password/route.ts +0 -132
- package/src/app/api/hazo_auth/forgot_password/route.ts +0 -107
- package/src/app/api/hazo_auth/get_auth/route.ts +0 -89
- package/src/app/api/hazo_auth/invalidate_cache/route.ts +0 -139
- package/src/app/api/hazo_auth/library_photos/route.ts +0 -73
- package/src/app/api/hazo_auth/login/route.ts +0 -181
- package/src/app/api/hazo_auth/logout/route.ts +0 -89
- package/src/app/api/hazo_auth/me/route.ts +0 -47
- package/src/app/api/hazo_auth/profile_picture/[filename]/route.ts +0 -67
- package/src/app/api/hazo_auth/register/route.ts +0 -109
- package/src/app/api/hazo_auth/remove_profile_picture/route.ts +0 -86
- package/src/app/api/hazo_auth/resend_verification/route.ts +0 -108
- package/src/app/api/hazo_auth/reset_password/route.ts +0 -107
- package/src/app/api/hazo_auth/update_user/route.ts +0 -126
- package/src/app/api/hazo_auth/upload_profile_picture/route.ts +0 -268
- package/src/app/api/hazo_auth/user_management/permissions/route.ts +0 -367
- package/src/app/api/hazo_auth/user_management/roles/route.ts +0 -442
- package/src/app/api/hazo_auth/user_management/users/roles/route.ts +0 -367
- package/src/app/api/hazo_auth/user_management/users/route.ts +0 -239
- package/src/app/api/hazo_auth/validate_reset_token/route.ts +0 -83
- package/src/app/api/hazo_auth/verify_email/route.ts +0 -88
- package/src/app/api/migrations/apply/route.ts +0 -91
- package/src/app/favicon.ico +0 -0
- package/src/app/fonts/GeistMonoVF.woff +0 -0
- package/src/app/fonts/GeistVF.woff +0 -0
- package/src/app/globals.css +0 -89
- package/src/app/hazo_auth/forgot_password/forgot_password_page_client.tsx +0 -60
- package/src/app/hazo_auth/forgot_password/page.tsx +0 -24
- package/src/app/hazo_auth/login/login_page_client.tsx +0 -86
- package/src/app/hazo_auth/login/page.tsx +0 -38
- package/src/app/hazo_auth/my_settings/my_settings_page_client.tsx +0 -120
- package/src/app/hazo_auth/my_settings/page.tsx +0 -40
- package/src/app/hazo_auth/register/page.tsx +0 -36
- package/src/app/hazo_auth/register/register_page_client.tsx +0 -81
- package/src/app/hazo_auth/reset_password/page.tsx +0 -29
- package/src/app/hazo_auth/reset_password/reset_password_page_client.tsx +0 -81
- package/src/app/hazo_auth/user_management/page.tsx +0 -14
- package/src/app/hazo_auth/user_management/user_management_page_client.tsx +0 -16
- package/src/app/hazo_auth/verify_email/page.tsx +0 -24
- package/src/app/hazo_auth/verify_email/verify_email_page_client.tsx +0 -60
- package/src/app/hazo_connect/api/sqlite/data/route.ts +0 -203
- package/src/app/hazo_connect/api/sqlite/schema/route.ts +0 -45
- package/src/app/hazo_connect/api/sqlite/tables/route.ts +0 -36
- package/src/app/hazo_connect/sqlite_admin/page.tsx +0 -51
- package/src/app/hazo_connect/sqlite_admin/sqlite-admin-client.tsx +0 -984
- package/src/app/layout.tsx +0 -43
- package/src/app/page.tsx +0 -170
- package/src/components/index.ts +0 -7
- package/src/components/layouts/email_verification/config/email_verification_field_config.ts +0 -86
- package/src/components/layouts/email_verification/hooks/use_email_verification.ts +0 -297
- package/src/components/layouts/email_verification/index.tsx +0 -297
- package/src/components/layouts/forgot_password/config/forgot_password_field_config.ts +0 -58
- package/src/components/layouts/forgot_password/hooks/use_forgot_password_form.ts +0 -179
- package/src/components/layouts/forgot_password/index.tsx +0 -168
- package/src/components/layouts/index.ts +0 -26
- package/src/components/layouts/login/config/login_field_config.ts +0 -67
- package/src/components/layouts/login/hooks/use_login_form.ts +0 -286
- package/src/components/layouts/login/index.tsx +0 -252
- package/src/components/layouts/my_settings/components/editable_field.tsx +0 -177
- package/src/components/layouts/my_settings/components/password_change_dialog.tsx +0 -301
- package/src/components/layouts/my_settings/components/profile_picture_dialog.tsx +0 -385
- package/src/components/layouts/my_settings/components/profile_picture_display.tsx +0 -66
- package/src/components/layouts/my_settings/components/profile_picture_gravatar_tab.tsx +0 -143
- package/src/components/layouts/my_settings/components/profile_picture_library_tab.tsx +0 -311
- package/src/components/layouts/my_settings/components/profile_picture_upload_tab.tsx +0 -341
- package/src/components/layouts/my_settings/config/my_settings_field_config.ts +0 -61
- package/src/components/layouts/my_settings/hooks/use_my_settings.ts +0 -458
- package/src/components/layouts/my_settings/index.tsx +0 -351
- package/src/components/layouts/register/config/register_field_config.ts +0 -101
- package/src/components/layouts/register/hooks/use_register_form.ts +0 -275
- package/src/components/layouts/register/index.tsx +0 -226
- package/src/components/layouts/reset_password/config/reset_password_field_config.ts +0 -86
- package/src/components/layouts/reset_password/hooks/use_reset_password_form.ts +0 -276
- package/src/components/layouts/reset_password/index.tsx +0 -294
- package/src/components/layouts/shared/components/already_logged_in_guard.tsx +0 -95
- package/src/components/layouts/shared/components/auth_page_shell.tsx +0 -36
- package/src/components/layouts/shared/components/field_error_message.tsx +0 -29
- package/src/components/layouts/shared/components/form_action_buttons.tsx +0 -64
- package/src/components/layouts/shared/components/form_field_wrapper.tsx +0 -44
- package/src/components/layouts/shared/components/form_header.tsx +0 -36
- package/src/components/layouts/shared/components/logout_button.tsx +0 -76
- package/src/components/layouts/shared/components/password_field.tsx +0 -72
- package/src/components/layouts/shared/components/profile_pic_menu.tsx +0 -321
- package/src/components/layouts/shared/components/profile_pic_menu_wrapper.tsx +0 -40
- package/src/components/layouts/shared/components/sidebar_layout_wrapper.tsx +0 -214
- package/src/components/layouts/shared/components/standalone_layout_wrapper.tsx +0 -53
- package/src/components/layouts/shared/components/two_column_auth_layout.tsx +0 -44
- package/src/components/layouts/shared/components/unauthorized_guard.tsx +0 -78
- package/src/components/layouts/shared/components/visual_panel.tsx +0 -41
- package/src/components/layouts/shared/config/layout_customization.ts +0 -95
- package/src/components/layouts/shared/data/layout_data_client.ts +0 -19
- package/src/components/layouts/shared/hooks/use_auth_status.ts +0 -103
- package/src/components/layouts/shared/hooks/use_hazo_auth.ts +0 -158
- package/src/components/layouts/shared/index.ts +0 -34
- package/src/components/layouts/shared/utils/ip_address.ts +0 -37
- package/src/components/layouts/shared/utils/validation.ts +0 -66
- package/src/components/layouts/user_management/components/roles_matrix.tsx +0 -607
- package/src/components/layouts/user_management/index.tsx +0 -1295
- package/src/components/ui/alert-dialog.tsx +0 -141
- package/src/components/ui/avatar.tsx +0 -50
- package/src/components/ui/button.tsx +0 -57
- package/src/components/ui/checkbox.tsx +0 -30
- package/src/components/ui/dialog.tsx +0 -122
- package/src/components/ui/dropdown-menu.tsx +0 -201
- package/src/components/ui/hazo_ui_tooltip.tsx +0 -67
- package/src/components/ui/index.ts +0 -22
- package/src/components/ui/input.tsx +0 -22
- package/src/components/ui/label.tsx +0 -26
- package/src/components/ui/separator.tsx +0 -31
- package/src/components/ui/sheet.tsx +0 -139
- package/src/components/ui/sidebar.tsx +0 -773
- package/src/components/ui/skeleton.tsx +0 -15
- package/src/components/ui/sonner.tsx +0 -31
- package/src/components/ui/switch.tsx +0 -29
- package/src/components/ui/table.tsx +0 -120
- package/src/components/ui/tabs.tsx +0 -55
- package/src/components/ui/tooltip.tsx +0 -32
- package/src/components/ui/vertical-tabs.tsx +0 -59
- package/src/hooks/use-mobile.tsx +0 -19
- package/src/index.ts +0 -7
- package/src/lib/already_logged_in_config.server.ts +0 -46
- package/src/lib/app_logger.ts +0 -24
- package/src/lib/auth/auth_cache.ts +0 -220
- package/src/lib/auth/auth_rate_limiter.ts +0 -121
- package/src/lib/auth/auth_types.ts +0 -65
- package/src/lib/auth/auth_utils.server.ts +0 -196
- package/src/lib/auth/hazo_get_auth.server.ts +0 -333
- package/src/lib/auth/index.ts +0 -23
- package/src/lib/auth/server_auth.ts +0 -88
- package/src/lib/auth_utility_config.server.ts +0 -136
- package/src/lib/config/config_loader.server.ts +0 -164
- package/src/lib/email_verification_config.server.ts +0 -32
- package/src/lib/file_types_config.server.ts +0 -25
- package/src/lib/forgot_password_config.server.ts +0 -32
- package/src/lib/hazo_connect_instance.server.ts +0 -101
- package/src/lib/hazo_connect_setup.server.ts +0 -194
- package/src/lib/hazo_connect_setup.ts +0 -54
- package/src/lib/index.ts +0 -44
- package/src/lib/login_config.server.ts +0 -71
- package/src/lib/messages_config.server.ts +0 -45
- package/src/lib/migrations/apply_migration.ts +0 -105
- package/src/lib/my_settings_config.server.ts +0 -135
- package/src/lib/password_requirements_config.server.ts +0 -39
- package/src/lib/profile_pic_menu_config.server.ts +0 -138
- package/src/lib/profile_picture_config.server.ts +0 -56
- package/src/lib/register_config.server.ts +0 -73
- package/src/lib/reset_password_config.server.ts +0 -75
- package/src/lib/services/email_service.ts +0 -581
- package/src/lib/services/email_verification_service.ts +0 -270
- package/src/lib/services/index.ts +0 -15
- package/src/lib/services/login_service.ts +0 -134
- package/src/lib/services/password_change_service.ts +0 -154
- package/src/lib/services/password_reset_service.ts +0 -405
- package/src/lib/services/profile_picture_remove_service.ts +0 -120
- package/src/lib/services/profile_picture_service.ts +0 -215
- package/src/lib/services/profile_picture_source_mapper.ts +0 -62
- package/src/lib/services/registration_service.ts +0 -184
- package/src/lib/services/token_service.ts +0 -240
- package/src/lib/services/user_profiles_service.ts +0 -143
- package/src/lib/services/user_update_service.ts +0 -141
- package/src/lib/ui_shell_config.server.ts +0 -73
- package/src/lib/ui_sizes_config.server.ts +0 -37
- package/src/lib/user_fields_config.server.ts +0 -31
- package/src/lib/user_management_config.server.ts +0 -39
- package/src/lib/utils/api_route_helpers.ts +0 -60
- package/src/lib/utils/error_sanitizer.ts +0 -75
- package/src/lib/utils.ts +0 -11
- package/src/middleware.ts +0 -94
- package/src/routes/index.ts +0 -34
- package/src/server/config/config_loader.ts +0 -496
- package/src/server/index.ts +0 -38
- package/src/server/logging/logger_service.ts +0 -56
- package/src/server/routes/root_router.ts +0 -16
- package/src/server/server.ts +0 -28
- package/src/server/types/app_types.ts +0 -74
- package/src/server/types/express.d.ts +0 -16
- package/src/stories/email_verification_layout.stories.tsx +0 -137
- package/src/stories/forgot_password_layout.stories.tsx +0 -85
- package/src/stories/login_layout.stories.tsx +0 -85
- package/src/stories/project_overview.stories.tsx +0 -33
- package/src/stories/register_layout.stories.tsx +0 -107
- package/tailwind.config.ts +0 -77
- package/tsconfig.build.json +0 -36
- package/tsconfig.json +0 -28
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
// file_description: zero-config reset password page component for hazo_auth
|
|
2
|
+
// Consumers can use this directly without needing to configure props
|
|
3
|
+
"use client";
|
|
4
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
5
|
+
// section: imports
|
|
6
|
+
import { useEffect, useState } from "react";
|
|
7
|
+
import reset_password_layout from "../components/layouts/reset_password";
|
|
8
|
+
import { createLayoutDataClient } from "../components/layouts/shared/data/layout_data_client";
|
|
9
|
+
import { create_sqlite_hazo_connect } from "../lib/hazo_connect_setup";
|
|
10
|
+
// section: constants
|
|
11
|
+
const DEFAULT_IMAGE_SRC = "/globe.svg";
|
|
12
|
+
const DEFAULT_IMAGE_ALT = "Illustration of a globe representing secure authentication workflows";
|
|
13
|
+
const DEFAULT_IMAGE_BG = "#e2e8f0";
|
|
14
|
+
const DEFAULT_PASSWORD_REQUIREMENTS = {
|
|
15
|
+
minimum_length: 8,
|
|
16
|
+
require_uppercase: true,
|
|
17
|
+
require_lowercase: true,
|
|
18
|
+
require_number: true,
|
|
19
|
+
require_special: false,
|
|
20
|
+
};
|
|
21
|
+
// section: component
|
|
22
|
+
/**
|
|
23
|
+
* Zero-config reset password page component
|
|
24
|
+
* Uses sensible defaults and can be customized via props
|
|
25
|
+
* @param props - Optional configuration overrides
|
|
26
|
+
* @returns Reset password page component
|
|
27
|
+
*/
|
|
28
|
+
export function ResetPasswordPage({ errorMessage = "Your password reset link has expired or is invalid", successMessage = "Password reset successful! You can now log in with your new password.", loginPath = "/hazo_auth/login", forgotPasswordPath = "/hazo_auth/forgot_password", passwordRequirements = DEFAULT_PASSWORD_REQUIREMENTS, alreadyLoggedInMessage = "You are already logged in", showLogoutButton = true, showReturnHomeButton = false, returnHomeButtonLabel = "Return home", returnHomePath = "/", imageSrc = DEFAULT_IMAGE_SRC, imageAlt = DEFAULT_IMAGE_ALT, imageBackgroundColor = DEFAULT_IMAGE_BG, } = {}) {
|
|
29
|
+
const [dataClient, setDataClient] = useState(null);
|
|
30
|
+
useEffect(() => {
|
|
31
|
+
// Initialize hazo_connect on client side
|
|
32
|
+
const hazoConnect = create_sqlite_hazo_connect();
|
|
33
|
+
const client = createLayoutDataClient(hazoConnect);
|
|
34
|
+
setDataClient(client);
|
|
35
|
+
}, []);
|
|
36
|
+
// Show loading state while initializing
|
|
37
|
+
if (!dataClient) {
|
|
38
|
+
return (_jsx("div", { className: "cls_reset_password_page_loading flex items-center justify-center min-h-screen", children: _jsx("div", { className: "text-slate-600 animate-pulse", children: "Loading..." }) }));
|
|
39
|
+
}
|
|
40
|
+
const ResetPasswordLayout = reset_password_layout;
|
|
41
|
+
return (_jsx(ResetPasswordLayout, { image_src: imageSrc, image_alt: imageAlt, image_background_color: imageBackgroundColor, data_client: dataClient, errorMessage: errorMessage, successMessage: successMessage, password_requirements: passwordRequirements, alreadyLoggedInMessage: alreadyLoggedInMessage, showLogoutButton: showLogoutButton, showReturnHomeButton: showReturnHomeButton, returnHomeButtonLabel: returnHomeButtonLabel, returnHomePath: returnHomePath }));
|
|
42
|
+
}
|
|
43
|
+
export default ResetPasswordPage;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export type VerifyEmailPageProps = {
|
|
2
|
+
alreadyLoggedInMessage?: string;
|
|
3
|
+
showLogoutButton?: boolean;
|
|
4
|
+
showReturnHomeButton?: boolean;
|
|
5
|
+
returnHomeButtonLabel?: string;
|
|
6
|
+
returnHomePath?: string;
|
|
7
|
+
redirectDelay?: number;
|
|
8
|
+
loginPath?: string;
|
|
9
|
+
imageSrc?: string;
|
|
10
|
+
imageAlt?: string;
|
|
11
|
+
imageBackgroundColor?: string;
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Zero-config verify email page component
|
|
15
|
+
* Uses sensible defaults and can be customized via props
|
|
16
|
+
* @param props - Optional configuration overrides
|
|
17
|
+
* @returns Verify email page component
|
|
18
|
+
*/
|
|
19
|
+
export declare function VerifyEmailPage({ alreadyLoggedInMessage, showLogoutButton, showReturnHomeButton, returnHomeButtonLabel, returnHomePath, redirectDelay, loginPath, imageSrc, imageAlt, imageBackgroundColor, }?: VerifyEmailPageProps): import("react/jsx-runtime").JSX.Element;
|
|
20
|
+
export default VerifyEmailPage;
|
|
21
|
+
//# sourceMappingURL=verify_email.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verify_email.d.ts","sourceRoot":"","sources":["../../src/page_components/verify_email.tsx"],"names":[],"mappings":"AAiBA,MAAM,MAAM,oBAAoB,GAAG;IACjC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B,CAAC;AAGF;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,EAC9B,sBAAoD,EACpD,gBAAuB,EACvB,oBAA4B,EAC5B,qBAAqC,EACrC,cAAoB,EACpB,aAAoB,EACpB,SAA8B,EAC9B,QAA4B,EAC5B,QAA4B,EAC5B,oBAAuC,GACxC,GAAE,oBAAyB,2CAqC3B;AAED,eAAe,eAAe,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
// file_description: zero-config verify email page component for hazo_auth
|
|
2
|
+
// Consumers can use this directly without needing to configure props
|
|
3
|
+
"use client";
|
|
4
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
5
|
+
// section: imports
|
|
6
|
+
import { useEffect, useState } from "react";
|
|
7
|
+
import email_verification_layout from "../components/layouts/email_verification";
|
|
8
|
+
import { createLayoutDataClient } from "../components/layouts/shared/data/layout_data_client";
|
|
9
|
+
import { create_sqlite_hazo_connect } from "../lib/hazo_connect_setup";
|
|
10
|
+
// section: constants
|
|
11
|
+
const DEFAULT_IMAGE_SRC = "/globe.svg";
|
|
12
|
+
const DEFAULT_IMAGE_ALT = "Illustration of a globe representing secure authentication workflows";
|
|
13
|
+
const DEFAULT_IMAGE_BG = "#e2e8f0";
|
|
14
|
+
// section: component
|
|
15
|
+
/**
|
|
16
|
+
* Zero-config verify email page component
|
|
17
|
+
* Uses sensible defaults and can be customized via props
|
|
18
|
+
* @param props - Optional configuration overrides
|
|
19
|
+
* @returns Verify email page component
|
|
20
|
+
*/
|
|
21
|
+
export function VerifyEmailPage({ alreadyLoggedInMessage = "You are already logged in", showLogoutButton = true, showReturnHomeButton = false, returnHomeButtonLabel = "Return home", returnHomePath = "/", redirectDelay = 3000, loginPath = "/hazo_auth/login", imageSrc = DEFAULT_IMAGE_SRC, imageAlt = DEFAULT_IMAGE_ALT, imageBackgroundColor = DEFAULT_IMAGE_BG, } = {}) {
|
|
22
|
+
const [dataClient, setDataClient] = useState(null);
|
|
23
|
+
useEffect(() => {
|
|
24
|
+
// Initialize hazo_connect on client side
|
|
25
|
+
const hazoConnect = create_sqlite_hazo_connect();
|
|
26
|
+
const client = createLayoutDataClient(hazoConnect);
|
|
27
|
+
setDataClient(client);
|
|
28
|
+
}, []);
|
|
29
|
+
// Show loading state while initializing
|
|
30
|
+
if (!dataClient) {
|
|
31
|
+
return (_jsx("div", { className: "cls_verify_email_page_loading flex items-center justify-center min-h-screen", children: _jsx("div", { className: "text-slate-600 animate-pulse", children: "Loading..." }) }));
|
|
32
|
+
}
|
|
33
|
+
const EmailVerificationLayout = email_verification_layout;
|
|
34
|
+
return (_jsx(EmailVerificationLayout, { image_src: imageSrc, image_alt: imageAlt, image_background_color: imageBackgroundColor, data_client: dataClient, already_logged_in_message: alreadyLoggedInMessage, showLogoutButton: showLogoutButton, showReturnHomeButton: showReturnHomeButton, returnHomeButtonLabel: returnHomeButtonLabel, returnHomePath: returnHomePath, redirect_delay: redirectDelay, login_path: loginPath }));
|
|
35
|
+
}
|
|
36
|
+
export default VerifyEmailPage;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"change_password.d.ts","sourceRoot":"","sources":["../../../src/server/routes/change_password.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,+CAA+C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"forgot_password.d.ts","sourceRoot":"","sources":["../../../src/server/routes/forgot_password.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,+CAA+C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get_auth.d.ts","sourceRoot":"","sources":["../../../src/server/routes/get_auth.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,wCAAwC,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export { POST as loginPOST } from "./login.js";
|
|
2
|
+
export { POST as registerPOST } from "./register.js";
|
|
3
|
+
export { POST as logoutPOST } from "./logout.js";
|
|
4
|
+
export { GET as meGET } from "./me.js";
|
|
5
|
+
export { POST as forgotPasswordPOST } from "./forgot_password.js";
|
|
6
|
+
export { POST as resetPasswordPOST } from "./reset_password.js";
|
|
7
|
+
export { POST as changePasswordPOST } from "./change_password.js";
|
|
8
|
+
export { GET as validateResetTokenGET } from "./validate_reset_token.js";
|
|
9
|
+
export { GET as verifyEmailGET } from "./verify_email.js";
|
|
10
|
+
export { POST as resendVerificationPOST } from "./resend_verification.js";
|
|
11
|
+
export { PATCH as updateUserPATCH } from "./update_user.js";
|
|
12
|
+
export { POST as uploadProfilePicturePOST } from "./upload_profile_picture.js";
|
|
13
|
+
export { DELETE as removeProfilePictureDELETE } from "./remove_profile_picture.js";
|
|
14
|
+
export { GET as libraryPhotosGET } from "./library_photos.js";
|
|
15
|
+
export { GET as libraryPhotoGET } from "./library_photo.js";
|
|
16
|
+
export { GET as profilePictureFilenameGET } from "./profile_picture_filename.js";
|
|
17
|
+
export { POST as getAuthPOST } from "./get_auth.js";
|
|
18
|
+
export { POST as invalidateCachePOST } from "./invalidate_cache.js";
|
|
19
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/server/routes/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,IAAI,IAAI,SAAS,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,IAAI,IAAI,YAAY,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,IAAI,IAAI,UAAU,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,GAAG,IAAI,KAAK,EAAE,MAAM,SAAS,CAAC;AAGvC,OAAO,EAAE,IAAI,IAAI,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAE,IAAI,IAAI,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,IAAI,IAAI,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAE,GAAG,IAAI,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAGzE,OAAO,EAAE,GAAG,IAAI,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,IAAI,IAAI,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAG1E,OAAO,EAAE,KAAK,IAAI,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,IAAI,IAAI,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AAC/E,OAAO,EAAE,MAAM,IAAI,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AACnF,OAAO,EAAE,GAAG,IAAI,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,GAAG,IAAI,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,GAAG,IAAI,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAGjF,OAAO,EAAE,IAAI,IAAI,WAAW,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,IAAI,IAAI,mBAAmB,EAAE,MAAM,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
// file_description: barrel export for all route handlers
|
|
2
|
+
// These exports allow consuming projects to create thin API route wrappers
|
|
3
|
+
// Authentication routes
|
|
4
|
+
export { POST as loginPOST } from "./login.js";
|
|
5
|
+
export { POST as registerPOST } from "./register.js";
|
|
6
|
+
export { POST as logoutPOST } from "./logout.js";
|
|
7
|
+
export { GET as meGET } from "./me.js";
|
|
8
|
+
// Password management routes
|
|
9
|
+
export { POST as forgotPasswordPOST } from "./forgot_password.js";
|
|
10
|
+
export { POST as resetPasswordPOST } from "./reset_password.js";
|
|
11
|
+
export { POST as changePasswordPOST } from "./change_password.js";
|
|
12
|
+
export { GET as validateResetTokenGET } from "./validate_reset_token.js";
|
|
13
|
+
// Email verification routes
|
|
14
|
+
export { GET as verifyEmailGET } from "./verify_email.js";
|
|
15
|
+
export { POST as resendVerificationPOST } from "./resend_verification.js";
|
|
16
|
+
// User profile routes
|
|
17
|
+
export { PATCH as updateUserPATCH } from "./update_user.js";
|
|
18
|
+
export { POST as uploadProfilePicturePOST } from "./upload_profile_picture.js";
|
|
19
|
+
export { DELETE as removeProfilePictureDELETE } from "./remove_profile_picture.js";
|
|
20
|
+
export { GET as libraryPhotosGET } from "./library_photos.js";
|
|
21
|
+
export { GET as libraryPhotoGET } from "./library_photo.js";
|
|
22
|
+
export { GET as profilePictureFilenameGET } from "./profile_picture_filename.js";
|
|
23
|
+
// Auth utility routes
|
|
24
|
+
export { POST as getAuthPOST } from "./get_auth.js";
|
|
25
|
+
export { POST as invalidateCachePOST } from "./invalidate_cache.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"invalidate_cache.d.ts","sourceRoot":"","sources":["../../../src/server/routes/invalidate_cache.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,gDAAgD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"library_photo.d.ts","sourceRoot":"","sources":["../../../src/server/routes/library_photo.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,GAAG,EAAE,MAAM,mEAAmE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"library_photos.d.ts","sourceRoot":"","sources":["../../../src/server/routes/library_photos.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,MAAM,8CAA8C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../../src/server/routes/login.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,qCAAqC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logout.d.ts","sourceRoot":"","sources":["../../../src/server/routes/logout.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,sCAAsC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"me.d.ts","sourceRoot":"","sources":["../../../src/server/routes/me.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,MAAM,kCAAkC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"profile_picture_filename.d.ts","sourceRoot":"","sources":["../../../src/server/routes/profile_picture_filename.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,GAAG,EAAE,MAAM,0DAA0D,CAAC"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
// file_description: re-export profile_picture/[filename] route handler for use by consuming projects
|
|
2
|
+
// Note: In the consuming project, create this at app/api/hazo_auth/profile_picture/[filename]/route.ts
|
|
3
|
+
export { GET } from "../../app/api/hazo_auth/profile_picture/[filename]/route";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../../src/server/routes/register.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,wCAAwC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"remove_profile_picture.d.ts","sourceRoot":"","sources":["../../../src/server/routes/remove_profile_picture.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,sDAAsD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resend_verification.d.ts","sourceRoot":"","sources":["../../../src/server/routes/resend_verification.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,mDAAmD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reset_password.d.ts","sourceRoot":"","sources":["../../../src/server/routes/reset_password.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,8CAA8C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update_user.d.ts","sourceRoot":"","sources":["../../../src/server/routes/update_user.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,2CAA2C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"upload_profile_picture.d.ts","sourceRoot":"","sources":["../../../src/server/routes/upload_profile_picture.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,sDAAsD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate_reset_token.d.ts","sourceRoot":"","sources":["../../../src/server/routes/validate_reset_token.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,MAAM,oDAAoD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verify_email.d.ts","sourceRoot":"","sources":["../../../src/server/routes/verify_email.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,MAAM,4CAA4C,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "hazo_auth",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.6.1",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"types": "dist/index.d.ts",
|
|
6
6
|
"type": "module",
|
|
7
|
+
"bin": {
|
|
8
|
+
"hazo_auth": "./dist/cli/index.js"
|
|
9
|
+
},
|
|
7
10
|
"exports": {
|
|
8
11
|
".": {
|
|
9
12
|
"types": "./dist/index.d.ts",
|
|
@@ -48,36 +51,56 @@
|
|
|
48
51
|
"./server": {
|
|
49
52
|
"types": "./dist/server/index.d.ts",
|
|
50
53
|
"import": "./dist/server/index.js"
|
|
54
|
+
},
|
|
55
|
+
"./server/routes": {
|
|
56
|
+
"types": "./dist/server/routes/index.d.ts",
|
|
57
|
+
"import": "./dist/server/routes/index.js"
|
|
58
|
+
},
|
|
59
|
+
"./pages": {
|
|
60
|
+
"types": "./dist/page_components/index.d.ts",
|
|
61
|
+
"import": "./dist/page_components/index.js"
|
|
62
|
+
},
|
|
63
|
+
"./pages/login": {
|
|
64
|
+
"types": "./dist/page_components/login.d.ts",
|
|
65
|
+
"import": "./dist/page_components/login.js"
|
|
66
|
+
},
|
|
67
|
+
"./pages/register": {
|
|
68
|
+
"types": "./dist/page_components/register.d.ts",
|
|
69
|
+
"import": "./dist/page_components/register.js"
|
|
70
|
+
},
|
|
71
|
+
"./pages/forgot_password": {
|
|
72
|
+
"types": "./dist/page_components/forgot_password.d.ts",
|
|
73
|
+
"import": "./dist/page_components/forgot_password.js"
|
|
74
|
+
},
|
|
75
|
+
"./pages/reset_password": {
|
|
76
|
+
"types": "./dist/page_components/reset_password.d.ts",
|
|
77
|
+
"import": "./dist/page_components/reset_password.js"
|
|
78
|
+
},
|
|
79
|
+
"./pages/verify_email": {
|
|
80
|
+
"types": "./dist/page_components/verify_email.d.ts",
|
|
81
|
+
"import": "./dist/page_components/verify_email.js"
|
|
82
|
+
},
|
|
83
|
+
"./pages/my_settings": {
|
|
84
|
+
"types": "./dist/page_components/my_settings.d.ts",
|
|
85
|
+
"import": "./dist/page_components/my_settings.js"
|
|
51
86
|
}
|
|
52
87
|
},
|
|
53
88
|
"files": [
|
|
54
89
|
"dist/**/*",
|
|
55
|
-
"src/**/*",
|
|
56
|
-
"public/file.svg",
|
|
57
|
-
"public/globe.svg",
|
|
58
|
-
"public/next.svg",
|
|
59
|
-
"public/vercel.svg",
|
|
60
|
-
"public/window.svg",
|
|
61
90
|
"public/profile_pictures/library/**/*",
|
|
62
91
|
"hazo_auth_config.example.ini",
|
|
63
92
|
"hazo_notify_config.example.ini",
|
|
64
93
|
"README.md",
|
|
65
|
-
"
|
|
66
|
-
"
|
|
67
|
-
"tsconfig.build.json",
|
|
68
|
-
"tailwind.config.ts",
|
|
69
|
-
"postcss.config.mjs",
|
|
70
|
-
"next.config.mjs",
|
|
71
|
-
"components.json",
|
|
72
|
-
"instrumentation.ts",
|
|
73
|
-
"migrations/**/*",
|
|
74
|
-
"scripts/**/*"
|
|
94
|
+
"SETUP_CHECKLIST.md",
|
|
95
|
+
"LICENSE"
|
|
75
96
|
],
|
|
76
97
|
"scripts": {
|
|
77
98
|
"dev": "next dev",
|
|
78
99
|
"build": "next build",
|
|
79
100
|
"build:pkg": "tsc -p tsconfig.build.json",
|
|
80
101
|
"prepublishOnly": "npm run build:pkg",
|
|
102
|
+
"validate": "tsx scripts/validate_setup.ts",
|
|
103
|
+
"generate-routes": "tsx scripts/generate_routes.ts",
|
|
81
104
|
"start": "next start",
|
|
82
105
|
"lint": "next lint",
|
|
83
106
|
"storybook": "storybook dev -p 6006",
|
package/components.json
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "https://ui.shadcn.com/schema.json",
|
|
3
|
-
"style": "new-york",
|
|
4
|
-
"rsc": true,
|
|
5
|
-
"tsx": true,
|
|
6
|
-
"tailwind": {
|
|
7
|
-
"config": "tailwind.config.ts",
|
|
8
|
-
"css": "src/app/globals.css",
|
|
9
|
-
"baseColor": "neutral",
|
|
10
|
-
"cssVariables": true,
|
|
11
|
-
"prefix": ""
|
|
12
|
-
},
|
|
13
|
-
"iconLibrary": "lucide",
|
|
14
|
-
"aliases": {
|
|
15
|
-
"components": "@/components",
|
|
16
|
-
"utils": "@/lib/utils",
|
|
17
|
-
"ui": "@/components/ui",
|
|
18
|
-
"lib": "@/lib",
|
|
19
|
-
"hooks": "@/hooks"
|
|
20
|
-
},
|
|
21
|
-
"registries": {}
|
|
22
|
-
}
|
package/instrumentation.ts
DELETED
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
// file_description: Next.js instrumentation file - runs once when server starts
|
|
2
|
-
// Initializes hazo_notify email service and passes it to hazo_auth email service
|
|
3
|
-
// section: instrumentation
|
|
4
|
-
export async function register() {
|
|
5
|
-
// Only run in server environment
|
|
6
|
-
if (typeof window === "undefined") {
|
|
7
|
-
try {
|
|
8
|
-
// Step 1: Import hazo_notify package
|
|
9
|
-
const hazo_notify_module = await import("hazo_notify");
|
|
10
|
-
|
|
11
|
-
// Step 2: Load hazo_notify emailer configuration
|
|
12
|
-
// This reads from hazo_notify_config.ini in the ui_component directory (same location as hazo_auth_config.ini)
|
|
13
|
-
const { load_emailer_config } = hazo_notify_module;
|
|
14
|
-
const notify_config = load_emailer_config();
|
|
15
|
-
|
|
16
|
-
// Step 3: Pass the initialized configuration to hazo_auth email service
|
|
17
|
-
// This allows the email service to reuse the same configuration instance
|
|
18
|
-
const { set_hazo_notify_instance } = await import("./src/lib/services/email_service");
|
|
19
|
-
set_hazo_notify_instance(notify_config);
|
|
20
|
-
|
|
21
|
-
// Log successful initialization
|
|
22
|
-
console.log("hazo_notify initialized successfully");
|
|
23
|
-
} catch (error) {
|
|
24
|
-
// Log error but don't crash - allows app to run without email functionality
|
|
25
|
-
// The email service will attempt to load config on first use as fallback
|
|
26
|
-
const error_message = error instanceof Error ? error.message : "Unknown error";
|
|
27
|
-
console.warn("Failed to initialize hazo_notify:", error_message);
|
|
28
|
-
console.warn("Email service will attempt to load config on first use as fallback");
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
-- file_description: migration to add token_type column to hazo_refresh_tokens table for password reset functionality
|
|
2
|
-
-- This migration adds a token_type column to distinguish between refresh tokens and password reset tokens
|
|
3
|
-
|
|
4
|
-
-- Add token_type column with CHECK constraint
|
|
5
|
-
ALTER TABLE hazo_refresh_tokens
|
|
6
|
-
ADD COLUMN token_type TEXT NOT NULL DEFAULT 'refresh'
|
|
7
|
-
CHECK (token_type IN ('refresh', 'password_reset', 'email_verification'));
|
|
8
|
-
|
|
9
|
-
-- Create index on token_type for faster queries
|
|
10
|
-
CREATE INDEX IF NOT EXISTS idx_hazo_refresh_tokens_token_type ON hazo_refresh_tokens(token_type);
|
|
11
|
-
|
|
12
|
-
-- Create index on token_type and user_id for password reset token lookups
|
|
13
|
-
CREATE INDEX IF NOT EXISTS idx_hazo_refresh_tokens_user_type ON hazo_refresh_tokens(user_id, token_type);
|
|
14
|
-
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
-- file_description: migration to add url_on_logon column to hazo_users table
|
|
2
|
-
-- This migration adds a url_on_logon text field to store the URL to redirect to after successful login
|
|
3
|
-
|
|
4
|
-
-- Add url_on_logon column (nullable, as this is an optional redirect URL)
|
|
5
|
-
ALTER TABLE hazo_users
|
|
6
|
-
ADD COLUMN url_on_logon TEXT;
|
|
7
|
-
|
|
8
|
-
|