hazo_auth 1.4.2 → 1.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (320) hide show
  1. package/SETUP_CHECKLIST.md +708 -0
  2. package/dist/app/api/hazo_auth/change_password/route.d.ts +8 -0
  3. package/dist/app/api/hazo_auth/change_password/route.d.ts.map +1 -0
  4. package/dist/app/api/hazo_auth/change_password/route.js +98 -0
  5. package/dist/app/api/hazo_auth/forgot_password/route.d.ts +8 -0
  6. package/dist/app/api/hazo_auth/forgot_password/route.d.ts.map +1 -0
  7. package/dist/app/api/hazo_auth/forgot_password/route.js +78 -0
  8. package/dist/app/api/hazo_auth/get_auth/route.d.ts +10 -0
  9. package/dist/app/api/hazo_auth/get_auth/route.d.ts.map +1 -0
  10. package/dist/app/api/hazo_auth/get_auth/route.js +63 -0
  11. package/dist/app/api/hazo_auth/invalidate_cache/route.d.ts +14 -0
  12. package/dist/app/api/hazo_auth/invalidate_cache/route.d.ts.map +1 -0
  13. package/dist/app/api/hazo_auth/invalidate_cache/route.js +96 -0
  14. package/dist/app/api/hazo_auth/library_photos/route.d.ts +13 -0
  15. package/dist/app/api/hazo_auth/library_photos/route.d.ts.map +1 -0
  16. package/dist/app/api/hazo_auth/library_photos/route.js +55 -0
  17. package/dist/app/api/hazo_auth/login/route.d.ts +12 -0
  18. package/dist/app/api/hazo_auth/login/route.d.ts.map +1 -0
  19. package/dist/app/api/hazo_auth/login/route.js +140 -0
  20. package/dist/app/api/hazo_auth/logout/route.d.ts +8 -0
  21. package/dist/app/api/hazo_auth/logout/route.d.ts.map +1 -0
  22. package/dist/app/api/hazo_auth/logout/route.js +71 -0
  23. package/dist/app/api/hazo_auth/me/route.d.ts +3 -0
  24. package/dist/app/api/hazo_auth/me/route.d.ts.map +1 -0
  25. package/dist/app/api/hazo_auth/me/route.js +34 -0
  26. package/dist/app/api/hazo_auth/profile_picture/[filename]/route.d.ts +7 -0
  27. package/dist/app/api/hazo_auth/profile_picture/[filename]/route.d.ts.map +1 -0
  28. package/dist/app/api/hazo_auth/profile_picture/[filename]/route.js +43 -0
  29. package/dist/app/api/hazo_auth/register/route.d.ts +9 -0
  30. package/dist/app/api/hazo_auth/register/route.d.ts.map +1 -0
  31. package/dist/app/api/hazo_auth/register/route.js +80 -0
  32. package/dist/app/api/hazo_auth/remove_profile_picture/route.d.ts +8 -0
  33. package/dist/app/api/hazo_auth/remove_profile_picture/route.d.ts.map +1 -0
  34. package/dist/app/api/hazo_auth/remove_profile_picture/route.js +64 -0
  35. package/dist/app/api/hazo_auth/resend_verification/route.d.ts +8 -0
  36. package/dist/app/api/hazo_auth/resend_verification/route.d.ts.map +1 -0
  37. package/dist/app/api/hazo_auth/resend_verification/route.js +79 -0
  38. package/dist/app/api/hazo_auth/reset_password/route.d.ts +8 -0
  39. package/dist/app/api/hazo_auth/reset_password/route.d.ts.map +1 -0
  40. package/dist/app/api/hazo_auth/reset_password/route.js +76 -0
  41. package/dist/app/api/hazo_auth/update_user/route.d.ts +9 -0
  42. package/dist/app/api/hazo_auth/update_user/route.d.ts.map +1 -0
  43. package/dist/app/api/hazo_auth/update_user/route.js +95 -0
  44. package/dist/app/api/hazo_auth/upload_profile_picture/route.d.ts +9 -0
  45. package/dist/app/api/hazo_auth/upload_profile_picture/route.d.ts.map +1 -0
  46. package/dist/app/api/hazo_auth/upload_profile_picture/route.js +204 -0
  47. package/dist/app/api/hazo_auth/validate_reset_token/route.d.ts +6 -0
  48. package/dist/app/api/hazo_auth/validate_reset_token/route.d.ts.map +1 -0
  49. package/dist/app/api/hazo_auth/validate_reset_token/route.js +58 -0
  50. package/dist/app/api/hazo_auth/verify_email/route.d.ts +11 -0
  51. package/dist/app/api/hazo_auth/verify_email/route.d.ts.map +1 -0
  52. package/dist/app/api/hazo_auth/verify_email/route.js +63 -0
  53. package/dist/cli/generate.d.ts +2 -0
  54. package/dist/cli/generate.d.ts.map +1 -0
  55. package/dist/cli/generate.js +117 -0
  56. package/dist/cli/index.d.ts +3 -0
  57. package/dist/cli/index.d.ts.map +1 -0
  58. package/dist/cli/index.js +120 -0
  59. package/dist/cli/validate.d.ts +15 -0
  60. package/dist/cli/validate.d.ts.map +1 -0
  61. package/dist/cli/validate.js +509 -0
  62. package/dist/components/ui/card.d.ts +9 -0
  63. package/dist/components/ui/card.d.ts.map +1 -0
  64. package/dist/components/ui/card.js +45 -0
  65. package/dist/hooks/use-mobile.d.ts.map +1 -1
  66. package/dist/hooks/use-mobile.js +17 -3
  67. package/dist/server/routes/change_password.d.ts +2 -0
  68. package/dist/server/routes/change_password.d.ts.map +1 -0
  69. package/dist/server/routes/change_password.js +2 -0
  70. package/dist/server/routes/forgot_password.d.ts +2 -0
  71. package/dist/server/routes/forgot_password.d.ts.map +1 -0
  72. package/dist/server/routes/forgot_password.js +2 -0
  73. package/dist/server/routes/get_auth.d.ts +2 -0
  74. package/dist/server/routes/get_auth.d.ts.map +1 -0
  75. package/dist/server/routes/get_auth.js +2 -0
  76. package/dist/server/routes/index.d.ts +18 -0
  77. package/dist/server/routes/index.d.ts.map +1 -0
  78. package/dist/server/routes/index.js +24 -0
  79. package/dist/server/routes/invalidate_cache.d.ts +2 -0
  80. package/dist/server/routes/invalidate_cache.d.ts.map +1 -0
  81. package/dist/server/routes/invalidate_cache.js +2 -0
  82. package/dist/server/routes/library_photos.d.ts +2 -0
  83. package/dist/server/routes/library_photos.d.ts.map +1 -0
  84. package/dist/server/routes/library_photos.js +2 -0
  85. package/dist/server/routes/login.d.ts +2 -0
  86. package/dist/server/routes/login.d.ts.map +1 -0
  87. package/dist/server/routes/login.js +2 -0
  88. package/dist/server/routes/logout.d.ts +2 -0
  89. package/dist/server/routes/logout.d.ts.map +1 -0
  90. package/dist/server/routes/logout.js +2 -0
  91. package/dist/server/routes/me.d.ts +2 -0
  92. package/dist/server/routes/me.d.ts.map +1 -0
  93. package/dist/server/routes/me.js +2 -0
  94. package/dist/server/routes/profile_picture_filename.d.ts +2 -0
  95. package/dist/server/routes/profile_picture_filename.d.ts.map +1 -0
  96. package/dist/server/routes/profile_picture_filename.js +3 -0
  97. package/dist/server/routes/register.d.ts +2 -0
  98. package/dist/server/routes/register.d.ts.map +1 -0
  99. package/dist/server/routes/register.js +2 -0
  100. package/dist/server/routes/remove_profile_picture.d.ts +2 -0
  101. package/dist/server/routes/remove_profile_picture.d.ts.map +1 -0
  102. package/dist/server/routes/remove_profile_picture.js +2 -0
  103. package/dist/server/routes/resend_verification.d.ts +2 -0
  104. package/dist/server/routes/resend_verification.d.ts.map +1 -0
  105. package/dist/server/routes/resend_verification.js +2 -0
  106. package/dist/server/routes/reset_password.d.ts +2 -0
  107. package/dist/server/routes/reset_password.d.ts.map +1 -0
  108. package/dist/server/routes/reset_password.js +2 -0
  109. package/dist/server/routes/update_user.d.ts +2 -0
  110. package/dist/server/routes/update_user.d.ts.map +1 -0
  111. package/dist/server/routes/update_user.js +2 -0
  112. package/dist/server/routes/upload_profile_picture.d.ts +2 -0
  113. package/dist/server/routes/upload_profile_picture.d.ts.map +1 -0
  114. package/dist/server/routes/upload_profile_picture.js +2 -0
  115. package/dist/server/routes/validate_reset_token.d.ts +2 -0
  116. package/dist/server/routes/validate_reset_token.d.ts.map +1 -0
  117. package/dist/server/routes/validate_reset_token.js +2 -0
  118. package/dist/server/routes/verify_email.d.ts +2 -0
  119. package/dist/server/routes/verify_email.d.ts.map +1 -0
  120. package/dist/server/routes/verify_email.js +2 -0
  121. package/package.json +12 -17
  122. package/components.json +0 -22
  123. package/instrumentation.ts +0 -32
  124. package/migrations/001_add_token_type_to_refresh_tokens.sql +0 -14
  125. package/migrations/002_add_name_to_hazo_users.sql +0 -7
  126. package/migrations/003_add_url_on_logon_to_hazo_users.sql +0 -8
  127. package/next.config.mjs +0 -67
  128. package/postcss.config.mjs +0 -8
  129. package/public/file.svg +0 -1
  130. package/public/globe.svg +0 -1
  131. package/public/next.svg +0 -1
  132. package/public/vercel.svg +0 -1
  133. package/public/window.svg +0 -1
  134. package/scripts/apply_migration.ts +0 -118
  135. package/scripts/init_users.ts +0 -378
  136. package/src/app/api/hazo_auth/auth/upload_profile_picture/route.ts +0 -268
  137. package/src/app/api/hazo_auth/change_password/route.ts +0 -132
  138. package/src/app/api/hazo_auth/forgot_password/route.ts +0 -107
  139. package/src/app/api/hazo_auth/get_auth/route.ts +0 -89
  140. package/src/app/api/hazo_auth/invalidate_cache/route.ts +0 -139
  141. package/src/app/api/hazo_auth/library_photos/route.ts +0 -73
  142. package/src/app/api/hazo_auth/login/route.ts +0 -181
  143. package/src/app/api/hazo_auth/logout/route.ts +0 -89
  144. package/src/app/api/hazo_auth/me/route.ts +0 -47
  145. package/src/app/api/hazo_auth/profile_picture/[filename]/route.ts +0 -67
  146. package/src/app/api/hazo_auth/register/route.ts +0 -109
  147. package/src/app/api/hazo_auth/remove_profile_picture/route.ts +0 -86
  148. package/src/app/api/hazo_auth/resend_verification/route.ts +0 -108
  149. package/src/app/api/hazo_auth/reset_password/route.ts +0 -107
  150. package/src/app/api/hazo_auth/update_user/route.ts +0 -126
  151. package/src/app/api/hazo_auth/upload_profile_picture/route.ts +0 -268
  152. package/src/app/api/hazo_auth/user_management/permissions/route.ts +0 -367
  153. package/src/app/api/hazo_auth/user_management/roles/route.ts +0 -442
  154. package/src/app/api/hazo_auth/user_management/users/roles/route.ts +0 -367
  155. package/src/app/api/hazo_auth/user_management/users/route.ts +0 -239
  156. package/src/app/api/hazo_auth/validate_reset_token/route.ts +0 -83
  157. package/src/app/api/hazo_auth/verify_email/route.ts +0 -88
  158. package/src/app/api/migrations/apply/route.ts +0 -91
  159. package/src/app/favicon.ico +0 -0
  160. package/src/app/fonts/GeistMonoVF.woff +0 -0
  161. package/src/app/fonts/GeistVF.woff +0 -0
  162. package/src/app/globals.css +0 -89
  163. package/src/app/hazo_auth/forgot_password/forgot_password_page_client.tsx +0 -60
  164. package/src/app/hazo_auth/forgot_password/page.tsx +0 -24
  165. package/src/app/hazo_auth/login/login_page_client.tsx +0 -86
  166. package/src/app/hazo_auth/login/page.tsx +0 -38
  167. package/src/app/hazo_auth/my_settings/my_settings_page_client.tsx +0 -120
  168. package/src/app/hazo_auth/my_settings/page.tsx +0 -40
  169. package/src/app/hazo_auth/register/page.tsx +0 -36
  170. package/src/app/hazo_auth/register/register_page_client.tsx +0 -81
  171. package/src/app/hazo_auth/reset_password/page.tsx +0 -29
  172. package/src/app/hazo_auth/reset_password/reset_password_page_client.tsx +0 -81
  173. package/src/app/hazo_auth/user_management/page.tsx +0 -14
  174. package/src/app/hazo_auth/user_management/user_management_page_client.tsx +0 -16
  175. package/src/app/hazo_auth/verify_email/page.tsx +0 -24
  176. package/src/app/hazo_auth/verify_email/verify_email_page_client.tsx +0 -60
  177. package/src/app/hazo_connect/api/sqlite/data/route.ts +0 -203
  178. package/src/app/hazo_connect/api/sqlite/schema/route.ts +0 -45
  179. package/src/app/hazo_connect/api/sqlite/tables/route.ts +0 -36
  180. package/src/app/hazo_connect/sqlite_admin/page.tsx +0 -51
  181. package/src/app/hazo_connect/sqlite_admin/sqlite-admin-client.tsx +0 -984
  182. package/src/app/layout.tsx +0 -43
  183. package/src/app/page.tsx +0 -170
  184. package/src/components/index.ts +0 -7
  185. package/src/components/layouts/email_verification/config/email_verification_field_config.ts +0 -86
  186. package/src/components/layouts/email_verification/hooks/use_email_verification.ts +0 -297
  187. package/src/components/layouts/email_verification/index.tsx +0 -297
  188. package/src/components/layouts/forgot_password/config/forgot_password_field_config.ts +0 -58
  189. package/src/components/layouts/forgot_password/hooks/use_forgot_password_form.ts +0 -179
  190. package/src/components/layouts/forgot_password/index.tsx +0 -168
  191. package/src/components/layouts/index.ts +0 -26
  192. package/src/components/layouts/login/config/login_field_config.ts +0 -67
  193. package/src/components/layouts/login/hooks/use_login_form.ts +0 -286
  194. package/src/components/layouts/login/index.tsx +0 -252
  195. package/src/components/layouts/my_settings/components/editable_field.tsx +0 -177
  196. package/src/components/layouts/my_settings/components/password_change_dialog.tsx +0 -301
  197. package/src/components/layouts/my_settings/components/profile_picture_dialog.tsx +0 -385
  198. package/src/components/layouts/my_settings/components/profile_picture_display.tsx +0 -66
  199. package/src/components/layouts/my_settings/components/profile_picture_gravatar_tab.tsx +0 -143
  200. package/src/components/layouts/my_settings/components/profile_picture_library_tab.tsx +0 -311
  201. package/src/components/layouts/my_settings/components/profile_picture_upload_tab.tsx +0 -341
  202. package/src/components/layouts/my_settings/config/my_settings_field_config.ts +0 -61
  203. package/src/components/layouts/my_settings/hooks/use_my_settings.ts +0 -458
  204. package/src/components/layouts/my_settings/index.tsx +0 -351
  205. package/src/components/layouts/register/config/register_field_config.ts +0 -101
  206. package/src/components/layouts/register/hooks/use_register_form.ts +0 -275
  207. package/src/components/layouts/register/index.tsx +0 -226
  208. package/src/components/layouts/reset_password/config/reset_password_field_config.ts +0 -86
  209. package/src/components/layouts/reset_password/hooks/use_reset_password_form.ts +0 -276
  210. package/src/components/layouts/reset_password/index.tsx +0 -294
  211. package/src/components/layouts/shared/components/already_logged_in_guard.tsx +0 -95
  212. package/src/components/layouts/shared/components/auth_page_shell.tsx +0 -36
  213. package/src/components/layouts/shared/components/field_error_message.tsx +0 -29
  214. package/src/components/layouts/shared/components/form_action_buttons.tsx +0 -64
  215. package/src/components/layouts/shared/components/form_field_wrapper.tsx +0 -44
  216. package/src/components/layouts/shared/components/form_header.tsx +0 -36
  217. package/src/components/layouts/shared/components/logout_button.tsx +0 -76
  218. package/src/components/layouts/shared/components/password_field.tsx +0 -72
  219. package/src/components/layouts/shared/components/profile_pic_menu.tsx +0 -321
  220. package/src/components/layouts/shared/components/profile_pic_menu_wrapper.tsx +0 -40
  221. package/src/components/layouts/shared/components/sidebar_layout_wrapper.tsx +0 -214
  222. package/src/components/layouts/shared/components/standalone_layout_wrapper.tsx +0 -53
  223. package/src/components/layouts/shared/components/two_column_auth_layout.tsx +0 -44
  224. package/src/components/layouts/shared/components/unauthorized_guard.tsx +0 -78
  225. package/src/components/layouts/shared/components/visual_panel.tsx +0 -41
  226. package/src/components/layouts/shared/config/layout_customization.ts +0 -95
  227. package/src/components/layouts/shared/data/layout_data_client.ts +0 -19
  228. package/src/components/layouts/shared/hooks/use_auth_status.ts +0 -103
  229. package/src/components/layouts/shared/hooks/use_hazo_auth.ts +0 -158
  230. package/src/components/layouts/shared/index.ts +0 -34
  231. package/src/components/layouts/shared/utils/ip_address.ts +0 -37
  232. package/src/components/layouts/shared/utils/validation.ts +0 -66
  233. package/src/components/layouts/user_management/components/roles_matrix.tsx +0 -607
  234. package/src/components/layouts/user_management/index.tsx +0 -1295
  235. package/src/components/ui/alert-dialog.tsx +0 -141
  236. package/src/components/ui/avatar.tsx +0 -50
  237. package/src/components/ui/button.tsx +0 -57
  238. package/src/components/ui/checkbox.tsx +0 -30
  239. package/src/components/ui/dialog.tsx +0 -122
  240. package/src/components/ui/dropdown-menu.tsx +0 -201
  241. package/src/components/ui/hazo_ui_tooltip.tsx +0 -67
  242. package/src/components/ui/index.ts +0 -22
  243. package/src/components/ui/input.tsx +0 -22
  244. package/src/components/ui/label.tsx +0 -26
  245. package/src/components/ui/separator.tsx +0 -31
  246. package/src/components/ui/sheet.tsx +0 -139
  247. package/src/components/ui/sidebar.tsx +0 -773
  248. package/src/components/ui/skeleton.tsx +0 -15
  249. package/src/components/ui/sonner.tsx +0 -31
  250. package/src/components/ui/switch.tsx +0 -29
  251. package/src/components/ui/table.tsx +0 -120
  252. package/src/components/ui/tabs.tsx +0 -55
  253. package/src/components/ui/tooltip.tsx +0 -32
  254. package/src/components/ui/vertical-tabs.tsx +0 -59
  255. package/src/hooks/use-mobile.tsx +0 -19
  256. package/src/index.ts +0 -7
  257. package/src/lib/already_logged_in_config.server.ts +0 -46
  258. package/src/lib/app_logger.ts +0 -24
  259. package/src/lib/auth/auth_cache.ts +0 -220
  260. package/src/lib/auth/auth_rate_limiter.ts +0 -121
  261. package/src/lib/auth/auth_types.ts +0 -65
  262. package/src/lib/auth/auth_utils.server.ts +0 -196
  263. package/src/lib/auth/hazo_get_auth.server.ts +0 -333
  264. package/src/lib/auth/index.ts +0 -23
  265. package/src/lib/auth/server_auth.ts +0 -88
  266. package/src/lib/auth_utility_config.server.ts +0 -136
  267. package/src/lib/config/config_loader.server.ts +0 -164
  268. package/src/lib/email_verification_config.server.ts +0 -32
  269. package/src/lib/file_types_config.server.ts +0 -25
  270. package/src/lib/forgot_password_config.server.ts +0 -32
  271. package/src/lib/hazo_connect_instance.server.ts +0 -101
  272. package/src/lib/hazo_connect_setup.server.ts +0 -194
  273. package/src/lib/hazo_connect_setup.ts +0 -54
  274. package/src/lib/index.ts +0 -44
  275. package/src/lib/login_config.server.ts +0 -71
  276. package/src/lib/messages_config.server.ts +0 -45
  277. package/src/lib/migrations/apply_migration.ts +0 -105
  278. package/src/lib/my_settings_config.server.ts +0 -135
  279. package/src/lib/password_requirements_config.server.ts +0 -39
  280. package/src/lib/profile_pic_menu_config.server.ts +0 -138
  281. package/src/lib/profile_picture_config.server.ts +0 -56
  282. package/src/lib/register_config.server.ts +0 -73
  283. package/src/lib/reset_password_config.server.ts +0 -75
  284. package/src/lib/services/email_service.ts +0 -581
  285. package/src/lib/services/email_verification_service.ts +0 -270
  286. package/src/lib/services/index.ts +0 -15
  287. package/src/lib/services/login_service.ts +0 -134
  288. package/src/lib/services/password_change_service.ts +0 -154
  289. package/src/lib/services/password_reset_service.ts +0 -405
  290. package/src/lib/services/profile_picture_remove_service.ts +0 -120
  291. package/src/lib/services/profile_picture_service.ts +0 -215
  292. package/src/lib/services/profile_picture_source_mapper.ts +0 -62
  293. package/src/lib/services/registration_service.ts +0 -184
  294. package/src/lib/services/token_service.ts +0 -240
  295. package/src/lib/services/user_profiles_service.ts +0 -143
  296. package/src/lib/services/user_update_service.ts +0 -141
  297. package/src/lib/ui_shell_config.server.ts +0 -73
  298. package/src/lib/ui_sizes_config.server.ts +0 -37
  299. package/src/lib/user_fields_config.server.ts +0 -31
  300. package/src/lib/user_management_config.server.ts +0 -39
  301. package/src/lib/utils/api_route_helpers.ts +0 -60
  302. package/src/lib/utils/error_sanitizer.ts +0 -75
  303. package/src/lib/utils.ts +0 -11
  304. package/src/middleware.ts +0 -94
  305. package/src/routes/index.ts +0 -34
  306. package/src/server/config/config_loader.ts +0 -496
  307. package/src/server/index.ts +0 -38
  308. package/src/server/logging/logger_service.ts +0 -56
  309. package/src/server/routes/root_router.ts +0 -16
  310. package/src/server/server.ts +0 -28
  311. package/src/server/types/app_types.ts +0 -74
  312. package/src/server/types/express.d.ts +0 -16
  313. package/src/stories/email_verification_layout.stories.tsx +0 -137
  314. package/src/stories/forgot_password_layout.stories.tsx +0 -85
  315. package/src/stories/login_layout.stories.tsx +0 -85
  316. package/src/stories/project_overview.stories.tsx +0 -33
  317. package/src/stories/register_layout.stories.tsx +0 -107
  318. package/tailwind.config.ts +0 -77
  319. package/tsconfig.build.json +0 -36
  320. package/tsconfig.json +0 -28
@@ -0,0 +1,24 @@
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 profilePictureFilenameGET } from "./profile_picture_filename.js";
22
+ // Auth utility routes
23
+ export { POST as getAuthPOST } from "./get_auth.js";
24
+ export { POST as invalidateCachePOST } from "./invalidate_cache.js";
@@ -0,0 +1,2 @@
1
+ export { POST } from "../../app/api/hazo_auth/invalidate_cache/route";
2
+ //# sourceMappingURL=invalidate_cache.d.ts.map
@@ -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,2 @@
1
+ // file_description: re-export invalidate_cache route handler for use by consuming projects
2
+ export { POST } from "../../app/api/hazo_auth/invalidate_cache/route";
@@ -0,0 +1,2 @@
1
+ export { GET } from "../../app/api/hazo_auth/library_photos/route";
2
+ //# sourceMappingURL=library_photos.d.ts.map
@@ -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,2 @@
1
+ // file_description: re-export library_photos route handler for use by consuming projects
2
+ export { GET } from "../../app/api/hazo_auth/library_photos/route";
@@ -0,0 +1,2 @@
1
+ export { POST } from "../../app/api/hazo_auth/login/route";
2
+ //# sourceMappingURL=login.d.ts.map
@@ -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,2 @@
1
+ // file_description: re-export login route handler for use by consuming projects
2
+ export { POST } from "../../app/api/hazo_auth/login/route";
@@ -0,0 +1,2 @@
1
+ export { POST } from "../../app/api/hazo_auth/logout/route";
2
+ //# sourceMappingURL=logout.d.ts.map
@@ -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,2 @@
1
+ // file_description: re-export logout route handler for use by consuming projects
2
+ export { POST } from "../../app/api/hazo_auth/logout/route";
@@ -0,0 +1,2 @@
1
+ export { GET } from "../../app/api/hazo_auth/me/route";
2
+ //# sourceMappingURL=me.d.ts.map
@@ -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,2 @@
1
+ // file_description: re-export me route handler for use by consuming projects
2
+ export { GET } from "../../app/api/hazo_auth/me/route";
@@ -0,0 +1,2 @@
1
+ export { GET } from "../../app/api/hazo_auth/profile_picture/[filename]/route";
2
+ //# sourceMappingURL=profile_picture_filename.d.ts.map
@@ -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,2 @@
1
+ export { POST } from "../../app/api/hazo_auth/register/route";
2
+ //# sourceMappingURL=register.d.ts.map
@@ -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,2 @@
1
+ // file_description: re-export register route handler for use by consuming projects
2
+ export { POST } from "../../app/api/hazo_auth/register/route";
@@ -0,0 +1,2 @@
1
+ export { DELETE } from "../../app/api/hazo_auth/remove_profile_picture/route";
2
+ //# sourceMappingURL=remove_profile_picture.d.ts.map
@@ -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,2 @@
1
+ // file_description: re-export remove_profile_picture route handler for use by consuming projects
2
+ export { DELETE } from "../../app/api/hazo_auth/remove_profile_picture/route";
@@ -0,0 +1,2 @@
1
+ export { POST } from "../../app/api/hazo_auth/resend_verification/route";
2
+ //# sourceMappingURL=resend_verification.d.ts.map
@@ -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,2 @@
1
+ // file_description: re-export resend_verification route handler for use by consuming projects
2
+ export { POST } from "../../app/api/hazo_auth/resend_verification/route";
@@ -0,0 +1,2 @@
1
+ export { POST } from "../../app/api/hazo_auth/reset_password/route";
2
+ //# sourceMappingURL=reset_password.d.ts.map
@@ -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,2 @@
1
+ // file_description: re-export reset_password route handler for use by consuming projects
2
+ export { POST } from "../../app/api/hazo_auth/reset_password/route";
@@ -0,0 +1,2 @@
1
+ export { PATCH } from "../../app/api/hazo_auth/update_user/route";
2
+ //# sourceMappingURL=update_user.d.ts.map
@@ -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,2 @@
1
+ // file_description: re-export update_user route handler for use by consuming projects
2
+ export { PATCH } from "../../app/api/hazo_auth/update_user/route";
@@ -0,0 +1,2 @@
1
+ export { POST } from "../../app/api/hazo_auth/upload_profile_picture/route";
2
+ //# sourceMappingURL=upload_profile_picture.d.ts.map
@@ -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,2 @@
1
+ // file_description: re-export upload_profile_picture route handler for use by consuming projects
2
+ export { POST } from "../../app/api/hazo_auth/upload_profile_picture/route";
@@ -0,0 +1,2 @@
1
+ export { GET } from "../../app/api/hazo_auth/validate_reset_token/route";
2
+ //# sourceMappingURL=validate_reset_token.d.ts.map
@@ -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,2 @@
1
+ // file_description: re-export validate_reset_token route handler for use by consuming projects
2
+ export { GET } from "../../app/api/hazo_auth/validate_reset_token/route";
@@ -0,0 +1,2 @@
1
+ export { GET } from "../../app/api/hazo_auth/verify_email/route";
2
+ //# sourceMappingURL=verify_email.d.ts.map
@@ -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"}
@@ -0,0 +1,2 @@
1
+ // file_description: re-export verify_email route handler for use by consuming projects
2
+ export { GET } from "../../app/api/hazo_auth/verify_email/route";
package/package.json CHANGED
@@ -1,9 +1,12 @@
1
1
  {
2
2
  "name": "hazo_auth",
3
- "version": "1.4.2",
3
+ "version": "1.6.0",
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,28 @@
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"
51
58
  }
52
59
  },
53
60
  "files": [
54
61
  "dist/**/*",
55
- "src/**/*",
56
- "public/file.svg",
57
- "public/globe.svg",
58
- "public/next.svg",
59
- "public/vercel.svg",
60
- "public/window.svg",
61
62
  "public/profile_pictures/library/**/*",
62
63
  "hazo_auth_config.example.ini",
63
64
  "hazo_notify_config.example.ini",
64
65
  "README.md",
65
- "LICENSE",
66
- "tsconfig.json",
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/**/*"
66
+ "SETUP_CHECKLIST.md",
67
+ "LICENSE"
75
68
  ],
76
69
  "scripts": {
77
70
  "dev": "next dev",
78
71
  "build": "next build",
79
72
  "build:pkg": "tsc -p tsconfig.build.json",
80
73
  "prepublishOnly": "npm run build:pkg",
74
+ "validate": "tsx scripts/validate_setup.ts",
75
+ "generate-routes": "tsx scripts/generate_routes.ts",
81
76
  "start": "next start",
82
77
  "lint": "next lint",
83
78
  "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
- }
@@ -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,7 +0,0 @@
1
- -- file_description: migration to add name column to hazo_users table
2
- -- This migration adds a name text field to store user's full name
3
-
4
- -- Add name column (nullable, as existing users may not have a name)
5
- ALTER TABLE hazo_users
6
- ADD COLUMN name TEXT;
7
-
@@ -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
-
package/next.config.mjs DELETED
@@ -1,67 +0,0 @@
1
- // file_description: configure next.js application settings for the hazo_auth project
2
- // section: imports
3
- import path from "path";
4
- import { fileURLToPath } from "url";
5
-
6
- // section: path_resolution
7
- const __filename = fileURLToPath(import.meta.url);
8
- const __dirname = path.dirname(__filename);
9
-
10
- // section: base_configuration
11
- const next_config = {
12
- /* config options here */
13
- // Note: hazo_connect configuration is now read from hazo_auth_config.ini using hazo_config
14
- // Environment variables are only used as fallback if hazo_auth_config.ini is not found
15
- // See hazo_auth_config.ini for hazo_connect configuration parameters
16
- env: {
17
- // Environment variables can be set here as fallback, but hazo_auth_config.ini is preferred
18
- // HAZO_CONNECT_ENABLE_ADMIN_UI: "true",
19
- // HAZO_CONNECT_SQLITE_PATH: path.resolve(__dirname, "__tests__", "fixtures", "hazo_auth.sqlite"),
20
- },
21
- // Note: serverComponentsExternalPackages is not available in Next.js 14.2
22
- // Using webpack externals configuration instead (see webpack section below)
23
- // section: webpack_configuration
24
- webpack: (config, { isServer }) => {
25
- // section: hazo_auth_alias_resolution
26
- // Add hazo_auth/* alias to resolve to ./src/* during local development
27
- // This allows package-style imports to work during development
28
- config.resolve.alias = {
29
- ...config.resolve.alias,
30
- "hazo_auth/components": path.resolve(__dirname, "src/components"),
31
- "hazo_auth/lib": path.resolve(__dirname, "src/lib"),
32
- "hazo_auth/hooks": path.resolve(__dirname, "src/hooks"),
33
- "hazo_auth/server": path.resolve(__dirname, "src/server"),
34
- "hazo_auth/app": path.resolve(__dirname, "src/app"),
35
- };
36
-
37
- // Exclude sql.js from webpack bundling for API routes
38
- // These packages use Node.js module.exports which doesn't work in webpack context
39
- if (isServer) {
40
- config.externals = config.externals || [];
41
- // Add sql.js as external to prevent webpack from bundling it
42
- if (Array.isArray(config.externals)) {
43
- config.externals.push("sql.js");
44
- // Exclude hazo_notify from Edge runtime bundles (middleware)
45
- // hazo_notify is only available in Node.js runtime (server bundles), not Edge runtime
46
- // This ensures hazo_notify is loaded at runtime for API routes using Node.js runtime
47
- config.externals.push("hazo_notify");
48
- } else {
49
- config.externals = [config.externals, "sql.js", "hazo_notify"];
50
- }
51
- } else {
52
- // Client-side: exclude server-only files from client bundles
53
- config.resolve.alias = {
54
- ...config.resolve.alias,
55
- "@/lib/hazo_connect_setup.server": false,
56
- "@/lib/hazo_connect_instance.server": false,
57
- "@/lib/login_config.server": false,
58
- // Exclude hazo_notify from client bundles
59
- "hazo_notify": false,
60
- };
61
- }
62
- return config;
63
- },
64
- };
65
-
66
- export default next_config;
67
-
@@ -1,8 +0,0 @@
1
- /** @type {import('postcss-load-config').Config} */
2
- const config = {
3
- plugins: {
4
- tailwindcss: {},
5
- },
6
- };
7
-
8
- export default config;
package/public/file.svg DELETED
@@ -1 +0,0 @@
1
- <svg fill="none" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M14.5 13.5V5.41a1 1 0 0 0-.3-.7L9.8.29A1 1 0 0 0 9.08 0H1.5v13.5A2.5 2.5 0 0 0 4 16h8a2.5 2.5 0 0 0 2.5-2.5m-1.5 0v-7H8v-5H3v12a1 1 0 0 0 1 1h8a1 1 0 0 0 1-1M9.5 5V2.12L12.38 5zM5.13 5h-.62v1.25h2.12V5zm-.62 3h7.12v1.25H4.5zm.62 3h-.62v1.25h7.12V11z" clip-rule="evenodd" fill="#666" fill-rule="evenodd"/></svg>
package/public/globe.svg DELETED
@@ -1 +0,0 @@
1
- <svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><g clip-path="url(#a)"><path fill-rule="evenodd" clip-rule="evenodd" d="M10.27 14.1a6.5 6.5 0 0 0 3.67-3.45q-1.24.21-2.7.34-.31 1.83-.97 3.1M8 16A8 8 0 1 0 8 0a8 8 0 0 0 0 16m.48-1.52a7 7 0 0 1-.96 0H7.5a4 4 0 0 1-.84-1.32q-.38-.89-.63-2.08a40 40 0 0 0 3.92 0q-.25 1.2-.63 2.08a4 4 0 0 1-.84 1.31zm2.94-4.76q1.66-.15 2.95-.43a7 7 0 0 0 0-2.58q-1.3-.27-2.95-.43a18 18 0 0 1 0 3.44m-1.27-3.54a17 17 0 0 1 0 3.64 39 39 0 0 1-4.3 0 17 17 0 0 1 0-3.64 39 39 0 0 1 4.3 0m1.1-1.17q1.45.13 2.69.34a6.5 6.5 0 0 0-3.67-3.44q.65 1.26.98 3.1M8.48 1.5l.01.02q.41.37.84 1.31.38.89.63 2.08a40 40 0 0 0-3.92 0q.25-1.2.63-2.08a4 4 0 0 1 .85-1.32 7 7 0 0 1 .96 0m-2.75.4a6.5 6.5 0 0 0-3.67 3.44 29 29 0 0 1 2.7-.34q.31-1.83.97-3.1M4.58 6.28q-1.66.16-2.95.43a7 7 0 0 0 0 2.58q1.3.27 2.95.43a18 18 0 0 1 0-3.44m.17 4.71q-1.45-.12-2.69-.34a6.5 6.5 0 0 0 3.67 3.44q-.65-1.27-.98-3.1" fill="#666"/></g><defs><clipPath id="a"><path fill="#fff" d="M0 0h16v16H0z"/></clipPath></defs></svg>
package/public/next.svg DELETED
@@ -1 +0,0 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 394 80"><path fill="#000" d="M262 0h68.5v12.7h-27.2v66.6h-13.6V12.7H262V0ZM149 0v12.7H94v20.4h44.3v12.6H94v21h55v12.6H80.5V0h68.7zm34.3 0h-17.8l63.8 79.4h17.9l-32-39.7 32-39.6h-17.9l-23 28.6-23-28.6zm18.3 56.7-9-11-27.1 33.7h17.8l18.3-22.7z"/><path fill="#000" d="M81 79.3 17 0H0v79.3h13.6V17l50.2 62.3H81Zm252.6-.4c-1 0-1.8-.4-2.5-1s-1.1-1.6-1.1-2.6.3-1.8 1-2.5 1.6-1 2.6-1 1.8.3 2.5 1a3.4 3.4 0 0 1 .6 4.3 3.7 3.7 0 0 1-3 1.8zm23.2-33.5h6v23.3c0 2.1-.4 4-1.3 5.5a9.1 9.1 0 0 1-3.8 3.5c-1.6.8-3.5 1.3-5.7 1.3-2 0-3.7-.4-5.3-1s-2.8-1.8-3.7-3.2c-.9-1.3-1.4-3-1.4-5h6c.1.8.3 1.6.7 2.2s1 1.2 1.6 1.5c.7.4 1.5.5 2.4.5 1 0 1.8-.2 2.4-.6a4 4 0 0 0 1.6-1.8c.3-.8.5-1.8.5-3V45.5zm30.9 9.1a4.4 4.4 0 0 0-2-3.3 7.5 7.5 0 0 0-4.3-1.1c-1.3 0-2.4.2-3.3.5-.9.4-1.6 1-2 1.6a3.5 3.5 0 0 0-.3 4c.3.5.7.9 1.3 1.2l1.8 1 2 .5 3.2.8c1.3.3 2.5.7 3.7 1.2a13 13 0 0 1 3.2 1.8 8.1 8.1 0 0 1 3 6.5c0 2-.5 3.7-1.5 5.1a10 10 0 0 1-4.4 3.5c-1.8.8-4.1 1.2-6.8 1.2-2.6 0-4.9-.4-6.8-1.2-2-.8-3.4-2-4.5-3.5a10 10 0 0 1-1.7-5.6h6a5 5 0 0 0 3.5 4.6c1 .4 2.2.6 3.4.6 1.3 0 2.5-.2 3.5-.6 1-.4 1.8-1 2.4-1.7a4 4 0 0 0 .8-2.4c0-.9-.2-1.6-.7-2.2a11 11 0 0 0-2.1-1.4l-3.2-1-3.8-1c-2.8-.7-5-1.7-6.6-3.2a7.2 7.2 0 0 1-2.4-5.7 8 8 0 0 1 1.7-5 10 10 0 0 1 4.3-3.5c2-.8 4-1.2 6.4-1.2 2.3 0 4.4.4 6.2 1.2 1.8.8 3.2 2 4.3 3.4 1 1.4 1.5 3 1.5 5h-5.8z"/></svg>
package/public/vercel.svg DELETED
@@ -1 +0,0 @@
1
- <svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1155 1000"><path d="m577.3 0 577.4 1000H0z" fill="#fff"/></svg>
package/public/window.svg DELETED
@@ -1 +0,0 @@
1
- <svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><path fill-rule="evenodd" clip-rule="evenodd" d="M1.5 2.5h13v10a1 1 0 0 1-1 1h-11a1 1 0 0 1-1-1zM0 1h16v11.5a2.5 2.5 0 0 1-2.5 2.5h-11A2.5 2.5 0 0 1 0 12.5zm3.75 4.5a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5M7 4.75a.75.75 0 1 1-1.5 0 .75.75 0 0 1 1.5 0m1.75.75a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5" fill="#666"/></svg>
@@ -1,118 +0,0 @@
1
- // file_description: script to apply database migrations directly to SQLite database
2
- // Run with: npx tsx scripts/apply_migration.ts
3
- // section: imports
4
- import Database from "better-sqlite3";
5
- import path from "path";
6
- import fs from "fs";
7
-
8
- // section: helpers
9
- function get_database_path(): string {
10
- // Read from hazo_auth_config.ini or use default
11
- const config_path = path.resolve(process.cwd(), "hazo_auth_config.ini");
12
- let sqlite_path: string | undefined;
13
-
14
- if (fs.existsSync(config_path)) {
15
- try {
16
- const config_content = fs.readFileSync(config_path, "utf-8");
17
- const sqlite_path_match = config_content.match(/sqlite_path\s*=\s*(.+)/);
18
- if (sqlite_path_match) {
19
- sqlite_path = sqlite_path_match[1].trim();
20
- }
21
- } catch (error) {
22
- console.warn("Could not read hazo_auth_config.ini, using default path");
23
- }
24
- }
25
-
26
- // Default path if not found in config
27
- if (!sqlite_path) {
28
- sqlite_path = "__tests__/fixtures/hazo_auth.sqlite";
29
- }
30
-
31
- // Resolve to absolute path
32
- const resolved_path = path.isAbsolute(sqlite_path)
33
- ? sqlite_path
34
- : path.resolve(process.cwd(), sqlite_path);
35
-
36
- return path.normalize(resolved_path);
37
- }
38
-
39
- function apply_migration_sql(db: Database.Database, sql: string): void {
40
- // Remove comments (lines starting with --)
41
- const sql_without_comments = sql
42
- .split("\n")
43
- .filter((line) => !line.trim().startsWith("--"))
44
- .join("\n");
45
-
46
- // Split by semicolon and execute each statement
47
- const statements = sql_without_comments
48
- .split(";")
49
- .map((stmt) => stmt.trim())
50
- .filter((stmt) => stmt.length > 0);
51
-
52
- console.log(`Found ${statements.length} SQL statement(s) to execute\n`);
53
-
54
- for (let i = 0; i < statements.length; i++) {
55
- const statement = statements[i];
56
- try {
57
- db.exec(statement + ";");
58
- console.log(`✓ [${i + 1}/${statements.length}] Executed:`, statement.substring(0, 100));
59
- } catch (error) {
60
- // Check if error is because column/index already exists
61
- const error_message = error instanceof Error ? error.message : String(error);
62
- if (
63
- error_message.includes("duplicate column") ||
64
- error_message.includes("already exists") ||
65
- error_message.includes("UNIQUE constraint failed") ||
66
- error_message.includes("index already exists")
67
- ) {
68
- console.log(`⚠ [${i + 1}/${statements.length}] Already exists, skipping:`, statement.substring(0, 100));
69
- } else {
70
- console.error(`✗ [${i + 1}/${statements.length}] Error:`, error_message);
71
- throw error;
72
- }
73
- }
74
- }
75
- }
76
-
77
- // section: main
78
- function main() {
79
- const db_path = get_database_path();
80
-
81
- console.log("Applying migration to database:", db_path);
82
-
83
- if (!fs.existsSync(db_path)) {
84
- console.error("Database file not found:", db_path);
85
- process.exit(1);
86
- }
87
-
88
- // Get migration file from command line argument or use default
89
- const migration_file_arg = process.argv[2];
90
- const migration_file = migration_file_arg
91
- ? path.resolve(process.cwd(), migration_file_arg)
92
- : path.resolve(process.cwd(), "migrations", "002_add_name_to_hazo_users.sql");
93
-
94
- if (!fs.existsSync(migration_file)) {
95
- console.error("Migration file not found:", migration_file);
96
- console.error("\nUsage: npx tsx scripts/apply_migration.ts [migration_file_path]");
97
- process.exit(1);
98
- }
99
-
100
- const db = new Database(db_path);
101
-
102
- try {
103
- const migration_sql = fs.readFileSync(migration_file, "utf-8");
104
-
105
- console.log(`\nApplying migration: ${path.basename(migration_file)}`);
106
- apply_migration_sql(db, migration_sql);
107
-
108
- console.log("\n✓ Migration applied successfully!");
109
- } catch (error) {
110
- console.error("Error applying migration:", error);
111
- process.exit(1);
112
- } finally {
113
- db.close();
114
- }
115
- }
116
-
117
- main();
118
-