feat(api,web): support CBR — extraction RAR, scan et lecture d'albums

- api: cbr utilitaire (extraction RAR), scanner/métadonnées (+ tests), books, schéma
- web: ReaderPage/locators (+ tests), mockData, types partagés
- deps: pnpm-lock

Refs: #17
This commit is contained in:
Git Agent
2026-08-23 12:08:05 +02:00
parent de29850c31
commit 369fbb0e07
18 changed files with 174 additions and 43 deletions

View File

@ -94,7 +94,7 @@ export const BookSchema = z.object({
language: z.string().nullable(),
publisher: z.string().nullable(),
publishedDate: z.string().nullable(),
format: z.enum(["epub", "pdf", "cbz"]),
format: z.enum(["epub", "pdf", "cbz", "cbr"]),
filePath: z.string(),
coverPath: z.string().nullable(),
fileSize: z.number().int().nonnegative(),
@ -106,7 +106,7 @@ export type BookDto = z.infer<typeof BookSchema>;
export const BookQuerySchema = z.object({
q: z.string().optional(),
format: z.enum(["epub", "pdf", "cbz"]).optional(),
format: z.enum(["epub", "pdf", "cbz", "cbr"]).optional(),
libraryId: z.coerce.number().int().positive().optional(),
limit: z.coerce.number().int().min(1).max(100).default(50),
offset: z.coerce.number().int().min(0).default(0)