adds agents.md, splits zip-processing.ts

This commit is contained in:
2026-06-15 20:13:39 +02:00
parent ef96f523e3
commit 8a5ee9fe20
6 changed files with 209 additions and 155 deletions
+50
View File
@@ -0,0 +1,50 @@
# Scout findings
## Project snapshot
- **Tech stack:** SvelteKit + TypeScript + Vite + Tailwind v4.
- **App name/branding:** `beA-Edit`.
- **Core purpose:** upload one or more ZIP files, extract relevant PDFs/images, preview them, optionally reorder attachments, and download a merged PDF.
## Main user flow
1. User adds ZIP files via drag/drop or file picker (`ZipDropzone`).
2. `+page.svelte` starts async extraction for each file.
3. Each ZIP is processed into one or more `ProcessedZipArchive` entries.
4. `ProcessedZipArchiveEditor` shows thumbnails, allows reordering, and can download the merged PDF.
5. `AttachmentPreview` renders image previews directly and PDF previews via `pdfjs-dist`.
## Important source files
- `src/routes/+page.svelte` — top-level page state, file selection, localStorage-backed thumbnail width setting, async ZIP processing.
- `src/lib/zip-processing.ts` — archive extraction, recursive nested ZIP handling, metadata ordering, PDF merge/export, image conversion.
- `src/lib/services/zip-inflating.service.ts` — thin wrapper around `fflate` unzip.
- `src/lib/services/xml-reading.service.ts` — parses XJustiz XML metadata (`sender`, `receiver`, `documentNames`).
- `src/lib/components/ZipDropzone.svelte` — file picker + drag/drop ZIP intake.
- `src/lib/components/ProcessedZipArchiveEditor.svelte` — archive editor, drag reordering, download button.
- `src/lib/components/AttachmentPreview.svelte` — preview generation for images/PDFs.
- `src/lib/components/Card.svelte` — generic page container.
## ZIP/PDF processing details
- ZIP entries are filtered to ignore macOS metadata (`__MACOSX`, `.DS_Store`, `._*`).
- Relevant attachments are PDFs and common image formats.
- Nested ZIP archives are processed recursively.
- `xjustiz_nachricht.xml` is used to derive archive naming and ordering.
- Ordering prefers document names from metadata before falling back to original attachment order.
- PDF merging uses `pdf-lib`; images are embedded as PNG/JPG, with browser-side canvas conversion for other image types.
## UI/state details
- Thumbnail width is stored in `localStorage` under `thumbnailWidth` and clamped to `100..400`.
- Processing progress is shown as a count of pending ZIP files.
- The editor supports manual attachment reordering via drag-and-drop.
## Dependencies worth noting
- `fflate` for ZIP extraction
- `pdf-lib` for PDF generation/merging
- `pdfjs-dist` for PDF thumbnail previews
- `@skeletonlabs/skeleton` / `@skeletonlabs/skeleton-svelte` for styling components
## Current working tree observations
- `agents.md` is newly created.
- Existing local changes are present in:
- `src/lib/zip-processing.ts`
- `src/routes/+page.svelte`
- New/untracked directory present:
- `src/lib/services/`