From ad1f1a81d39bfa3eb7dd2699beeb2c7a721088de Mon Sep 17 00:00:00 2001 From: pjmalandrino Date: Fri, 20 Mar 2026 12:36:26 +0100 Subject: [PATCH] Mke some fixes and refacto --- document-parser/api/documents.py | 4 +- document-parser/api/schemas.py | 16 ++++- document-parser/data/docling_studio.db | Bin 622592 -> 622592 bytes document-parser/domain/parsing.py | 32 ++++----- document-parser/persistence/analysis_repo.py | 37 +++------- document-parser/persistence/database.py | 13 +++- document-parser/persistence/document_repo.py | 32 +++------ document-parser/services/analysis_service.py | 63 +++++++++++++----- document-parser/services/document_service.py | 7 ++ document-parser/tests/test_schemas.py | 26 +++++++- frontend/package-lock.json | 15 +++++ frontend/package.json | 7 +- frontend/src/app/router/index.js | 5 ++ .../src/features/analysis/ui/ImageGallery.vue | 4 +- .../features/analysis/ui/MarkdownViewer.vue | 3 +- .../src/features/analysis/ui/ResultTabs.vue | 2 +- .../src/features/document/ui/DocumentList.vue | 7 +- frontend/src/pages/HistoryPage.vue | 7 +- frontend/src/pages/StudioPage.vue | 6 +- frontend/src/shared/format.js | 10 +++ 20 files changed, 189 insertions(+), 107 deletions(-) create mode 100644 frontend/src/shared/format.js diff --git a/document-parser/api/documents.py b/document-parser/api/documents.py index 2e94c0b..32e2dc3 100644 --- a/document-parser/api/documents.py +++ b/document-parser/api/documents.py @@ -87,6 +87,6 @@ async def preview( return Response(content=png_bytes, media_type="image/png") except ValueError as e: raise HTTPException(status_code=404, detail=str(e)) - except Exception as e: + except Exception: logger.exception("Failed to generate preview") - raise HTTPException(status_code=422, detail=f"Failed to generate preview: {e}") + raise HTTPException(status_code=422, detail="Failed to generate preview") diff --git a/document-parser/api/schemas.py b/document-parser/api/schemas.py index 2030bfa..4e30153 100644 --- a/document-parser/api/schemas.py +++ b/document-parser/api/schemas.py @@ -8,7 +8,7 @@ from __future__ import annotations from datetime import datetime -from pydantic import BaseModel, ConfigDict +from pydantic import BaseModel, ConfigDict, field_validator def _to_camel(name: str) -> str: @@ -61,6 +61,20 @@ class PipelineOptionsRequest(BaseModel): generate_page_images: bool = False images_scale: float = 1.0 + @field_validator("table_mode") + @classmethod + def validate_table_mode(cls, v: str) -> str: + if v not in ("accurate", "fast"): + raise ValueError('table_mode must be "accurate" or "fast"') + return v + + @field_validator("images_scale") + @classmethod + def validate_images_scale(cls, v: float) -> float: + if v <= 0 or v > 10: + raise ValueError("images_scale must be between 0 (exclusive) and 10") + return v + class CreateAnalysisRequest(BaseModel): documentId: str # camelCase to match existing frontend contract diff --git a/document-parser/data/docling_studio.db b/document-parser/data/docling_studio.db index 3b36468f97a19cc8076496d70a74825c82f317f9..e08b47d81dc0a96191d1cb6d4dbce50452412a65 100644 GIT binary patch literal 622592 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�{F3+3A{HwkyjZSuY-gK%+3{zB&wMOx4ck9T5ykb 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%0Aa?C3L7Wm(>c22pN02o^m^eja8#dd34)=+i$nbf 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

    xqvp;1l4ENa+lTJAS{ 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∈)|r}osa1khVntPAB)GE$tsUXzBvIR@cnM`- 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 z1QLNnAQ4Ce5`jb@5l93QfkYq?NCXmrL?97J1QLNnAQ4Ce5`jb@5l93QfkYq?NCXmr zL?97J1QLNnAQ4Ce5`jb@5l93QfkYq?NCXmrL?97J1QLNnAQ4Ce5`jb@5l93QfkYq? zNCXmrL?97J1QLNnAQ4Ce5`jb@5l93QfkYq?NCXmrL?97J1QLNnAQ4Ce5`jb@5l93Q zfkYq?NCXmrL?97J1QLNnAQ4Ce5`jb@5l93QfkYq?NCXmrL?97J1QLNnAQ4Ce5`jb@ z5l93QfkYq?NCXmrL?97J1QLNnAQ4Ce5`jb@5l93QfkYq?NCXmrL?97J1QLNnAQ4Ce z5`jb@5l93QfkYq?NCXmrL?97J1QLNnAQ4Ce5`jb@5l93QfkYq?NCXmrL?97J1QLNn zAQ4Ce5`jb@5l93QfkYq?NCXmrL?97J1QLNnAQ4Ce5`jb@5l93QfkYq?NCXmrL?97J z1QLNnAQ4Ce5`jb@5l93QfkYq?NCXmrL?97J1QLNnAQ4Ce5`jb@5l93QfkYq?NCXmr zL?97J1QLNnAQ4Ce5`jb@5l93QfkYq?NCXmrL?97J1QLNnAQ4Ce5`jb@5l93QfkYq? zNCXmrL?97J1QLNnAQ4Ce5`jb@5l93QfkYq?NCXmrL?97J1QLNnAQ4Ce5`jb@5l93Q zfkYq?NCXmrL?97J1QLNnAQ4Ce5`jb@5l93QfkYq?NCXmrL?97J1QLNnAQ4Ce5`jb@ z5l93QfkYq?NCXmrL?97J1QLNnAQ4Ce5`jb@5l93QfkYq?NCXmrL?97J1QLNnAQ4Ce z5`jb@5l93QfkYq?NCXmrL?97J1QLNnAQ4Ce5`jb@5l93QfkYq?NCXmrL?97J1QLNn zAQ4Ce5`jb@5l93QfkYq?NCXmrL?97J1QLNnAQ4Ce5`jb@5l93QfkYq?NCXmrL?97J z1QLNnAQ4Ce5`jb@5l93QfkYq?NCXmrL?97J1QLNnAQ4Ce5`jb@5l93QfkYq?NCXmr zL?97J1QLNnAQ4Ce5`jb@5l93QfkYq?NCXmrL?97J1QLNnAQ4Ce5`jb@5l93QfkYq? zNCXmrL?97J1QLNnAQ4Ce5`jb@5l93QfkYq?NCXmrL?97J1QLNnAQ4Ce5`jb@5l93Q zfkYq?NCXmrL?97J1QLNnAQ4Ce5`jb@5l93QfkYq?NCXmrL?97J1QLNnAQ4Ce5`jb@ z5l93QfkYq?NCXmrL?97J1QLNnAQ4Ce5`jb@5l93QfkYq?NCXmrL?97J1QLNnAQ4Ce z5`jb@5l93QfkYq?NCXmrL?97J1QLNnAQ4Ce5`jb@5l93QfkYq?NCXmrL?97J1QLNn zAQ4Ce5`jb@5l93QfkYq?NCXmrL?97J1QLNnAQ4Ce5`jb@5l93QfkYq?NCXmrL?97J z1QLNnAQ4Ce5`jb@5l93QfkYq?NCXmrL?97J1QLNnAQ4Ce5`jb@5l93QfkYq?NCXmr zL?97J1QLNnAQ4Ce5`jb@5l93QfkYq?NCXmrL?97J1QLNnAQ4Ce5`jb@5l93QfkYq? zNCXmrL?97J1QLNnAQ4Ce5`jb@5l93QfkYq?NCXmrL?97J1QLNnAQ4Ce5`jb@5l93Q zfkYq?NCXmrL?97J1QLNnAQ4Ce5`jb@5l93QfkYq?NCXmrL?97J1QLNnAQ4Ce5`jb@ z5l93QfkYq?NCXmrL?97J1QLNnAQ4Ce5`jb@5l93QfkYq?NCXmrL?97J1QLNnAQ4Ce z5`jb@5l93QfkYq?NCXmrL?97J1QLNnAQ4Ce5`jb@5l93QfkYq?NCXmrL?97J1QLNn zAQ4Ce5`jb@5l93QfkYq?NCXmrL?97J1QLNnAQ4Ce5`jb@5l93QfkYq?NCXmrL?97J z1QLNnAQ4Ce5`jb@5l93QfkYq?NCXmrL?97J1QLNnAQ4Ce5`jb@5l93QfkYq?NCXmr zL?97J1QLNnAQ4Ce5`jb@5l93QfkYq?NCXmrL?97J1QLNnAQ4Ce5`jeE|Mv*|KiTHJ A;Q#;t literal 622592 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 diff --git a/document-parser/domain/parsing.py b/document-parser/domain/parsing.py index 8177cc2..30366e3 100644 --- a/document-parser/domain/parsing.py +++ b/document-parser/domain/parsing.py @@ -255,23 +255,23 @@ def convert_document( and images_scale == 1.0 ) - if is_default: - conv = get_default_converter() - else: - conv = build_converter( - do_ocr=do_ocr, - do_table_structure=do_table_structure, - table_mode=table_mode, - do_code_enrichment=do_code_enrichment, - do_formula_enrichment=do_formula_enrichment, - do_picture_classification=do_picture_classification, - do_picture_description=do_picture_description, - generate_picture_images=generate_picture_images, - generate_page_images=generate_page_images, - images_scale=images_scale, - ) - with _converter_lock: + if is_default: + conv = get_default_converter() + else: + conv = build_converter( + do_ocr=do_ocr, + do_table_structure=do_table_structure, + table_mode=table_mode, + do_code_enrichment=do_code_enrichment, + do_formula_enrichment=do_formula_enrichment, + do_picture_classification=do_picture_classification, + do_picture_description=do_picture_description, + generate_picture_images=generate_picture_images, + generate_page_images=generate_page_images, + images_scale=images_scale, + ) + result = conv.convert(file_path) doc = result.document diff --git a/document-parser/persistence/analysis_repo.py b/document-parser/persistence/analysis_repo.py index fa3202e..2277744 100644 --- a/document-parser/persistence/analysis_repo.py +++ b/document-parser/persistence/analysis_repo.py @@ -3,7 +3,7 @@ from __future__ import annotations from domain.models import AnalysisJob, AnalysisStatus -from persistence.database import get_db +from persistence.database import get_connection def _row_to_job(row) -> AnalysisJob: @@ -30,45 +30,36 @@ _SELECT_WITH_DOC = """ async def insert(job: AnalysisJob) -> None: - db = await get_db() - try: + async with get_connection() as db: await db.execute( """INSERT INTO analysis_jobs (id, document_id, status, created_at) VALUES (?, ?, ?, ?)""", (job.id, job.document_id, job.status.value, str(job.created_at)), ) await db.commit() - finally: - await db.close() -async def find_all() -> list[AnalysisJob]: - db = await get_db() - try: +async def find_all(*, limit: int = 200, offset: int = 0) -> list[AnalysisJob]: + async with get_connection() as db: cursor = await db.execute( - f"{_SELECT_WITH_DOC} ORDER BY aj.created_at DESC" + f"{_SELECT_WITH_DOC} ORDER BY aj.created_at DESC LIMIT ? OFFSET ?", + (limit, offset), ) rows = await cursor.fetchall() return [_row_to_job(r) for r in rows] - finally: - await db.close() async def find_by_id(job_id: str) -> AnalysisJob | None: - db = await get_db() - try: + async with get_connection() as db: cursor = await db.execute( f"{_SELECT_WITH_DOC} WHERE aj.id = ?", (job_id,) ) row = await cursor.fetchone() return _row_to_job(row) if row else None - finally: - await db.close() async def update_status(job: AnalysisJob) -> None: - db = await get_db() - try: + async with get_connection() as db: await db.execute( """UPDATE analysis_jobs SET status = ?, content_markdown = ?, content_html = ?, @@ -81,28 +72,20 @@ async def update_status(job: AnalysisJob) -> None: job.id), ) await db.commit() - finally: - await db.close() async def delete(job_id: str) -> bool: - db = await get_db() - try: + async with get_connection() as db: cursor = await db.execute("DELETE FROM analysis_jobs WHERE id = ?", (job_id,)) await db.commit() return cursor.rowcount > 0 - finally: - await db.close() async def delete_by_document(document_id: str) -> int: """Delete all analysis jobs for a given document. Returns count deleted.""" - db = await get_db() - try: + async with get_connection() as db: cursor = await db.execute( "DELETE FROM analysis_jobs WHERE document_id = ?", (document_id,) ) await db.commit() return cursor.rowcount - finally: - await db.close() diff --git a/document-parser/persistence/database.py b/document-parser/persistence/database.py index fa7f154..dc8d95d 100644 --- a/document-parser/persistence/database.py +++ b/document-parser/persistence/database.py @@ -4,6 +4,7 @@ from __future__ import annotations import logging import os +from contextlib import asynccontextmanager import aiosqlite @@ -24,7 +25,7 @@ CREATE TABLE IF NOT EXISTS documents ( CREATE TABLE IF NOT EXISTS analysis_jobs ( id TEXT PRIMARY KEY, - document_id TEXT NOT NULL REFERENCES documents(id), + document_id TEXT NOT NULL REFERENCES documents(id) ON DELETE CASCADE, status TEXT NOT NULL DEFAULT 'PENDING', content_markdown TEXT, content_html TEXT, @@ -52,3 +53,13 @@ async def get_db() -> aiosqlite.Connection: db.row_factory = aiosqlite.Row await db.execute("PRAGMA foreign_keys = ON") return db + + +@asynccontextmanager +async def get_connection(): + """Context manager that opens and auto-closes a database connection.""" + db = await get_db() + try: + yield db + finally: + await db.close() diff --git a/document-parser/persistence/document_repo.py b/document-parser/persistence/document_repo.py index 94a91f3..3649dc1 100644 --- a/document-parser/persistence/document_repo.py +++ b/document-parser/persistence/document_repo.py @@ -3,7 +3,7 @@ from __future__ import annotations from domain.models import Document -from persistence.database import get_db +from persistence.database import get_connection def _row_to_document(row) -> Document: @@ -19,8 +19,7 @@ def _row_to_document(row) -> Document: async def insert(doc: Document) -> None: - db = await get_db() - try: + async with get_connection() as db: await db.execute( """INSERT INTO documents (id, filename, content_type, file_size, page_count, storage_path, created_at) VALUES (?, ?, ?, ?, ?, ?, ?)""", @@ -28,49 +27,36 @@ async def insert(doc: Document) -> None: doc.page_count, doc.storage_path, str(doc.created_at)), ) await db.commit() - finally: - await db.close() -async def find_all() -> list[Document]: - db = await get_db() - try: +async def find_all(*, limit: int = 200, offset: int = 0) -> list[Document]: + async with get_connection() as db: cursor = await db.execute( - "SELECT * FROM documents ORDER BY created_at DESC" + "SELECT * FROM documents ORDER BY created_at DESC LIMIT ? OFFSET ?", + (limit, offset), ) rows = await cursor.fetchall() return [_row_to_document(r) for r in rows] - finally: - await db.close() async def find_by_id(doc_id: str) -> Document | None: - db = await get_db() - try: + async with get_connection() as db: cursor = await db.execute("SELECT * FROM documents WHERE id = ?", (doc_id,)) row = await cursor.fetchone() return _row_to_document(row) if row else None - finally: - await db.close() async def update_page_count(doc_id: str, page_count: int) -> None: - db = await get_db() - try: + async with get_connection() as db: await db.execute( "UPDATE documents SET page_count = ? WHERE id = ?", (page_count, doc_id), ) await db.commit() - finally: - await db.close() async def delete(doc_id: str) -> bool: - db = await get_db() - try: + async with get_connection() as db: cursor = await db.execute("DELETE FROM documents WHERE id = ?", (doc_id,)) await db.commit() return cursor.rowcount > 0 - finally: - await db.close() diff --git a/document-parser/services/analysis_service.py b/document-parser/services/analysis_service.py index 4f2612f..f061980 100644 --- a/document-parser/services/analysis_service.py +++ b/document-parser/services/analysis_service.py @@ -13,6 +13,9 @@ from persistence import analysis_repo, document_repo logger = logging.getLogger(__name__) +# Maximum time (seconds) allowed for a single document conversion. +CONVERSION_TIMEOUT = int(__import__("os").environ.get("CONVERSION_TIMEOUT", "600")) + async def create(document_id: str, *, pipeline_options: dict | None = None) -> AnalysisJob: """Create a new analysis job and launch background processing.""" @@ -24,12 +27,25 @@ async def create(document_id: str, *, pipeline_options: dict | None = None) -> A job.document_filename = doc.filename await analysis_repo.insert(job) - # Fire-and-forget background task - asyncio.create_task(_run_analysis(job.id, doc.storage_path, doc.filename, pipeline_options)) + # Fire background task with error logging callback + task = asyncio.create_task( + _run_analysis(job.id, doc.storage_path, doc.filename, pipeline_options) + ) + task.add_done_callback(_on_task_done) return job +def _on_task_done(task: asyncio.Task) -> None: + """Log unhandled exceptions from background analysis tasks.""" + if task.cancelled(): + logger.warning("Analysis task was cancelled") + return + exc = task.exception() + if exc: + logger.error("Unhandled exception in analysis task: %s", exc, exc_info=exc) + + async def find_all() -> list[AnalysisJob]: return await analysis_repo.find_all() @@ -46,22 +62,23 @@ async def _run_analysis( job_id: str, file_path: str, filename: str, pipeline_options: dict | None = None, ) -> None: """Background task: run Docling conversion and update job status.""" - job = await analysis_repo.find_by_id(job_id) - if not job: - logger.error("Analysis job %s not found", job_id) - return - - job.mark_running() - await analysis_repo.update_status(job) - logger.info("Analysis started: %s (file: %s)", job_id, filename) - try: + job = await analysis_repo.find_by_id(job_id) + if not job: + logger.error("Analysis job %s not found", job_id) + return + + job.mark_running() + await analysis_repo.update_status(job) + logger.info("Analysis started: %s (file: %s)", job_id, filename) + # Build kwargs from pipeline options convert_kwargs = pipeline_options or {} - # Run blocking Docling conversion in a thread - result: ConversionResult = await asyncio.to_thread( - convert_document, file_path, **convert_kwargs, + # Run blocking Docling conversion in a thread with timeout + result: ConversionResult = await asyncio.wait_for( + asyncio.to_thread(convert_document, file_path, **convert_kwargs), + timeout=CONVERSION_TIMEOUT, ) pages_json = json.dumps([asdict(p) for p in result.pages]) @@ -79,7 +96,21 @@ async def _run_analysis( logger.info("Analysis completed: %s (%d pages)", job_id, result.page_count) + except asyncio.TimeoutError: + logger.error("Analysis timed out after %ds: %s", CONVERSION_TIMEOUT, job_id) + await _mark_failed(job_id, f"Conversion timed out after {CONVERSION_TIMEOUT}s") + except Exception as e: logger.exception("Analysis failed: %s", job_id) - job.mark_failed(str(e)) - await analysis_repo.update_status(job) + await _mark_failed(job_id, str(e)) + + +async def _mark_failed(job_id: str, error: str) -> None: + """Safely mark a job as failed, handling DB errors gracefully.""" + try: + job = await analysis_repo.find_by_id(job_id) + if job: + job.mark_failed(error) + await analysis_repo.update_status(job) + except Exception: + logger.exception("Could not mark job %s as failed", job_id) diff --git a/document-parser/services/document_service.py b/document-parser/services/document_service.py index d1bdeba..dd3b6c4 100644 --- a/document-parser/services/document_service.py +++ b/document-parser/services/document_service.py @@ -18,11 +18,18 @@ UPLOAD_DIR = os.environ.get("UPLOAD_DIR", "./uploads") MAX_FILE_SIZE = 50 * 1024 * 1024 # 50 MB +# PDF magic bytes: %PDF +_PDF_MAGIC = b"%PDF" + + async def upload(filename: str, content_type: str, file_content: bytes) -> Document: """Save uploaded file to disk and persist metadata.""" if len(file_content) > MAX_FILE_SIZE: raise ValueError("File too large (max 50 MB)") + if not file_content[:4].startswith(_PDF_MAGIC): + raise ValueError("Invalid file: not a PDF document") + os.makedirs(UPLOAD_DIR, exist_ok=True) safe_name = f"{uuid.uuid4()}_{filename}" diff --git a/document-parser/tests/test_schemas.py b/document-parser/tests/test_schemas.py index 1a79c6a..b59c170 100644 --- a/document-parser/tests/test_schemas.py +++ b/document-parser/tests/test_schemas.py @@ -1,7 +1,9 @@ -"""Tests for API schemas — camelCase serialization.""" +"""Tests for API schemas — camelCase serialization and validation.""" from datetime import datetime +import pytest + from api.schemas import ( AnalysisResponse, CreateAnalysisRequest, @@ -109,6 +111,28 @@ class TestPipelineOptionsRequest: assert data["do_ocr"] is False assert data["do_table_structure"] is True # default preserved + def test_invalid_table_mode_rejected(self): + with pytest.raises(ValueError, match='table_mode must be "accurate" or "fast"'): + PipelineOptionsRequest(table_mode="invalid") + + def test_negative_images_scale_rejected(self): + with pytest.raises(ValueError, match="images_scale must be between"): + PipelineOptionsRequest(images_scale=-1.0) + + def test_zero_images_scale_rejected(self): + with pytest.raises(ValueError, match="images_scale must be between"): + PipelineOptionsRequest(images_scale=0) + + def test_excessive_images_scale_rejected(self): + with pytest.raises(ValueError, match="images_scale must be between"): + PipelineOptionsRequest(images_scale=11.0) + + def test_boundary_images_scale_accepted(self): + opts = PipelineOptionsRequest(images_scale=0.1) + assert opts.images_scale == 0.1 + opts2 = PipelineOptionsRequest(images_scale=10.0) + assert opts2.images_scale == 10.0 + class TestCreateAnalysisRequest: def test_parses_document_id(self): diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 79887c8..1fd0de5 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -8,6 +8,7 @@ "name": "docling-studio", "version": "0.1.0", "dependencies": { + "dompurify": "^3.3.3", "marked": "^17.0.4", "pinia": "^2.3.0", "vue": "^3.4.0", @@ -765,6 +766,12 @@ "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", "dev": true }, + "node_modules/@types/trusted-types": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", + "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==", + "optional": true + }, "node_modules/@vitejs/plugin-vue": { "version": "5.2.4", "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-5.2.4.tgz", @@ -1064,6 +1071,14 @@ "node": ">=6" } }, + "node_modules/dompurify": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.3.3.tgz", + "integrity": "sha512-Oj6pzI2+RqBfFG+qOaOLbFXLQ90ARpcGG6UePL82bJLtdsa6CYJD7nmiU8MW9nQNOtCHV3lZ/Bzq1X0QYbBZCA==", + "optionalDependencies": { + "@types/trusted-types": "^2.0.7" + } + }, "node_modules/entities": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/entities/-/entities-7.0.1.tgz", diff --git a/frontend/package.json b/frontend/package.json index e297ee5..6440716 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -11,10 +11,11 @@ "test:run": "vitest run" }, "dependencies": { - "vue": "^3.4.0", - "vue-router": "^4.6.4", + "dompurify": "^3.3.3", + "marked": "^17.0.4", "pinia": "^2.3.0", - "marked": "^17.0.4" + "vue": "^3.4.0", + "vue-router": "^4.6.4" }, "devDependencies": { "@vitejs/plugin-vue": "^5.2.0", diff --git a/frontend/src/app/router/index.js b/frontend/src/app/router/index.js index 610e825..c7140e2 100644 --- a/frontend/src/app/router/index.js +++ b/frontend/src/app/router/index.js @@ -15,6 +15,11 @@ const routes = [ path: '/settings', name: 'settings', component: () => import('../../pages/SettingsPage.vue') + }, + { + path: '/:pathMatch(.*)*', + name: 'not-found', + redirect: '/' } ] diff --git a/frontend/src/features/analysis/ui/ImageGallery.vue b/frontend/src/features/analysis/ui/ImageGallery.vue index 9e57560..d82c55d 100644 --- a/frontend/src/features/analysis/ui/ImageGallery.vue +++ b/frontend/src/features/analysis/ui/ImageGallery.vue @@ -38,7 +38,7 @@ const props = defineProps({ const images = computed(() => { const result = [] for (const page of props.pages) { - for (const el of page.elements) { + for (const el of (page.elements || [])) { if (el.type === 'picture') { result.push({ ...el, page: page.page_number }) } @@ -86,7 +86,7 @@ const images = computed(() => { .card-type { font-size: 12px; font-weight: 600; - color: #22C55E; + color: var(--success); text-transform: uppercase; } diff --git a/frontend/src/features/analysis/ui/MarkdownViewer.vue b/frontend/src/features/analysis/ui/MarkdownViewer.vue index e3301cf..83c7647 100644 --- a/frontend/src/features/analysis/ui/MarkdownViewer.vue +++ b/frontend/src/features/analysis/ui/MarkdownViewer.vue @@ -5,6 +5,7 @@ diff --git a/frontend/src/features/analysis/ui/ResultTabs.vue b/frontend/src/features/analysis/ui/ResultTabs.vue index 13bf849..3a0ed8f 100644 --- a/frontend/src/features/analysis/ui/ResultTabs.vue +++ b/frontend/src/features/analysis/ui/ResultTabs.vue @@ -77,7 +77,7 @@ const pageMarkdown = computed(() => { const page = currentPageData.value if (!page) return '' - return page.elements + return (page.elements || []) .map(el => formatElement(el)) .filter(Boolean) .join('\n\n') diff --git a/frontend/src/features/document/ui/DocumentList.vue b/frontend/src/features/document/ui/DocumentList.vue index 12f526b..28b2c56 100644 --- a/frontend/src/features/document/ui/DocumentList.vue +++ b/frontend/src/features/document/ui/DocumentList.vue @@ -25,13 +25,8 @@