feat: Landing Page and Login/Register Modal

This commit is contained in:
OpenVelo Agent
2026-07-21 18:34:42 +00:00
parent 09856ccf8e
commit 0126f6ad39
37 changed files with 1791 additions and 210 deletions
+16
View File
@@ -16,6 +16,22 @@ export const CsrfResponseDtoSchema = z.object({
});
export type CsrfResponseDto = z.infer<typeof CsrfResponseDtoSchema>;
export const RegisterDtoSchema = z
.object({
username: z
.string()
.min(3)
.max(32)
.regex(/^[a-zA-Z0-9_.-]+$/, 'Username may only contain letters, digits, dot, dash and underscore'),
password: z.string().min(1).max(256),
passwordConfirm: z.string().min(1).max(256),
})
.refine((d) => d.password === d.passwordConfirm, {
path: ['passwordConfirm'],
message: 'Passwords do not match',
});
export type RegisterDto = z.infer<typeof RegisterDtoSchema>;
export interface LoginResponse {
accessToken: string;
refreshToken: string;