diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 9bc90879c..ba290dcd5 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -10,21 +10,21 @@ "license": "SEE LICENSE IN https://raw.githubusercontent.com/Stirling-Tools/Stirling-PDF/refs/heads/main/proprietary/LICENSE", "dependencies": { "@atlaskit/pragmatic-drag-and-drop": "^1.7.7", - "@embedpdf/core": "^1.3.0", - "@embedpdf/engines": "^1.3.0", - "@embedpdf/plugin-interaction-manager": "^1.3.0", - "@embedpdf/plugin-loader": "^1.3.0", - "@embedpdf/plugin-pan": "^1.3.0", - "@embedpdf/plugin-render": "^1.3.0", - "@embedpdf/plugin-rotate": "^1.3.0", - "@embedpdf/plugin-scroll": "^1.3.0", - "@embedpdf/plugin-search": "^1.3.0", - "@embedpdf/plugin-selection": "^1.3.0", - "@embedpdf/plugin-spread": "^1.3.0", - "@embedpdf/plugin-thumbnail": "^1.3.0", - "@embedpdf/plugin-tiling": "^1.3.0", - "@embedpdf/plugin-viewport": "^1.3.0", - "@embedpdf/plugin-zoom": "^1.3.0", + "@embedpdf/core": "^1.3.1", + "@embedpdf/engines": "^1.3.1", + "@embedpdf/plugin-interaction-manager": "^1.3.1", + "@embedpdf/plugin-loader": "^1.3.1", + "@embedpdf/plugin-pan": "^1.3.1", + "@embedpdf/plugin-render": "^1.3.1", + "@embedpdf/plugin-rotate": "^1.3.1", + "@embedpdf/plugin-scroll": "^1.3.1", + "@embedpdf/plugin-search": "^1.3.1", + "@embedpdf/plugin-selection": "^1.3.1", + "@embedpdf/plugin-spread": "^1.3.1", + "@embedpdf/plugin-thumbnail": "^1.3.1", + "@embedpdf/plugin-tiling": "^1.3.1", + "@embedpdf/plugin-viewport": "^1.3.1", + "@embedpdf/plugin-zoom": "^1.3.1", "@emotion/react": "^11.14.0", "@emotion/styled": "^11.14.1", "@iconify/react": "^6.0.2", @@ -495,13 +495,13 @@ } }, "node_modules/@embedpdf/core": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@embedpdf/core/-/core-1.3.0.tgz", - "integrity": "sha512-KEic1NA9JrtNRoTq3O3m93YTglRKweR6uqjzX3sLGCmy+LsUjiH5WOCJAztlSlmZEXysAlZlyzG/09gz4tpBAg==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@embedpdf/core/-/core-1.3.1.tgz", + "integrity": "sha512-2Az6trhiMMBIv+GFvV8H8UOS1gwQn7NK0KaJMcdsZbUHYLO0P95aVd6Pi/GRzEH4XyF51TDIoTOAUtf07TQ5dQ==", "license": "MIT", "dependencies": { - "@embedpdf/engines": "1.3.0", - "@embedpdf/models": "1.3.0" + "@embedpdf/engines": "1.3.1", + "@embedpdf/models": "1.3.1" }, "peerDependencies": { "preact": "^10.26.4", @@ -511,13 +511,13 @@ } }, "node_modules/@embedpdf/engines": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@embedpdf/engines/-/engines-1.3.0.tgz", - "integrity": "sha512-6WbYwxtCCjOazEMGKbhKRkos6S1VkzI4R2u6dUuIsUw9G2HLP4bwJCBKj9A0FuMAJkKQ3VL5eVCSGfqaCaRoyQ==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@embedpdf/engines/-/engines-1.3.1.tgz", + "integrity": "sha512-G3pI+18la7spviUMuA5s9/hV95jlfkA2+CNxqlHBO5ocw3641E3d36Lv+mx+6yU7k0B5vEOQPZDGRMg7KFziBQ==", "license": "MIT", "dependencies": { - "@embedpdf/models": "1.3.0", - "@embedpdf/pdfium": "1.3.0" + "@embedpdf/models": "1.3.1", + "@embedpdf/pdfium": "1.3.1" }, "peerDependencies": { "preact": "^10.26.4", @@ -527,27 +527,27 @@ } }, "node_modules/@embedpdf/models": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@embedpdf/models/-/models-1.3.0.tgz", - "integrity": "sha512-LIY6T+nQoc1hi6nq1NlH6sR43J3PYOg9Bux8ouEnKjEGiZMgyd1cMxhBfrrY+Ft6DsSkqqujFOVEwjeYQYy3dg==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@embedpdf/models/-/models-1.3.1.tgz", + "integrity": "sha512-OzmO1rQAuOP/Y3aYXmW21dPNAx49olhr9ZO2hDdI0fbNBHTVGxnaKqOISxVmUz7TmhTwVBljERACnaA8Ib4b4Q==", "license": "MIT" }, "node_modules/@embedpdf/pdfium": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@embedpdf/pdfium/-/pdfium-1.3.0.tgz", - "integrity": "sha512-rSBFYjxwQ58L/HcqR0l5Vv4G5t+CCOKlFYrDReTZYNN7fhzKPUWbXUn4ARahZWCNmF8svHumV2P4ArakJJviuw==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@embedpdf/pdfium/-/pdfium-1.3.1.tgz", + "integrity": "sha512-qYGSS5ntz6DSY9Cxw/aigvHqGB+AKJLEcymNTZOL0GdlBzZpL++dOIYNEYHO2Tm/lOQVpE7I0e+Xh2TvD8O1zQ==", "license": "MIT" }, "node_modules/@embedpdf/plugin-interaction-manager": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@embedpdf/plugin-interaction-manager/-/plugin-interaction-manager-1.3.0.tgz", - "integrity": "sha512-iMG7mW+4YpNjBeSAcC5kK9VnjwmNu71HTxVtKnN73t3EBfukbMH4y7Tp2ds+4I97H6vc18RK5xuUCSesEOBgww==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@embedpdf/plugin-interaction-manager/-/plugin-interaction-manager-1.3.1.tgz", + "integrity": "sha512-8h3y5a9tQ1fZlc4mP1/+XKyuHWwcQEm9AujKxy+6f6omtCBzpnKrH95bURgYOzQEBGY7d5C3HvG6JOlh0o1x3A==", "license": "MIT", "dependencies": { - "@embedpdf/models": "1.3.0" + "@embedpdf/models": "1.3.1" }, "peerDependencies": { - "@embedpdf/core": "1.3.0", + "@embedpdf/core": "1.3.1", "preact": "^10.26.4", "react": ">=16.8.0", "react-dom": ">=16.8.0", @@ -555,15 +555,15 @@ } }, "node_modules/@embedpdf/plugin-loader": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@embedpdf/plugin-loader/-/plugin-loader-1.3.0.tgz", - "integrity": "sha512-tkOa1UwFOimueSxxm2hRAAh64K75itDvUO6wHjb5X5s0Hx4DccfrJ7KusDhxBkeQLFXtZknPG0Q2/9T+joAqeQ==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@embedpdf/plugin-loader/-/plugin-loader-1.3.1.tgz", + "integrity": "sha512-NjNmA7TOs3E/zwb9I+YohzyGkxq8y5NUGu0MKgh2g41lZoFvyqTAjFPar+RjEiLX8iiJiwNZswyJsNrytmS3Xg==", "license": "MIT", "dependencies": { - "@embedpdf/models": "1.3.0" + "@embedpdf/models": "1.3.1" }, "peerDependencies": { - "@embedpdf/core": "1.3.0", + "@embedpdf/core": "1.3.1", "preact": "^10.26.4", "react": ">=16.8.0", "react-dom": ">=16.8.0", @@ -571,17 +571,17 @@ } }, "node_modules/@embedpdf/plugin-pan": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@embedpdf/plugin-pan/-/plugin-pan-1.3.0.tgz", - "integrity": "sha512-tZxUpX9dvd/VDHCTqM9Yjss4M8pkJWFUA5GDNmPkExRXIASuB98wEP8fh0rQt13TEZ30rV77cEsNXngju56kjg==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@embedpdf/plugin-pan/-/plugin-pan-1.3.1.tgz", + "integrity": "sha512-lF1gkz/a77G3+Rr8MOefkGnPJ1i5xWnClXm2ZzYAl7PbOScp59/PaP7qeU7eMPC4FHQM81ZhCgVYGXogbaB8ww==", "license": "MIT", "dependencies": { - "@embedpdf/models": "1.3.0" + "@embedpdf/models": "1.3.1" }, "peerDependencies": { - "@embedpdf/core": "1.3.0", - "@embedpdf/plugin-interaction-manager": "1.3.0", - "@embedpdf/plugin-viewport": "1.3.0", + "@embedpdf/core": "1.3.1", + "@embedpdf/plugin-interaction-manager": "1.3.1", + "@embedpdf/plugin-viewport": "1.3.1", "preact": "^10.26.4", "react": ">=16.8.0", "react-dom": ">=16.8.0", @@ -589,15 +589,15 @@ } }, "node_modules/@embedpdf/plugin-render": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@embedpdf/plugin-render/-/plugin-render-1.3.0.tgz", - "integrity": "sha512-ZyxoGIIUa2HBLt1IB64EdWqBxHh01AX/1HJ7/cnoQK1h/oKXRbMAX6Mb23JCh2PGa4sGeyV3psoFMt037Eew3g==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@embedpdf/plugin-render/-/plugin-render-1.3.1.tgz", + "integrity": "sha512-c9oH097e1CVUpYF9RgZRfV/7XCJ0pf+svdT1wyM2MbWby06ti20oCwT9wf7BLY0hPQ7+eO3wunr1I1/y3MnVrw==", "license": "MIT", "dependencies": { - "@embedpdf/models": "1.3.0" + "@embedpdf/models": "1.3.1" }, "peerDependencies": { - "@embedpdf/core": "1.3.0", + "@embedpdf/core": "1.3.1", "preact": "^10.26.4", "react": ">=16.8.0", "react-dom": ">=16.8.0", @@ -605,15 +605,15 @@ } }, "node_modules/@embedpdf/plugin-rotate": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@embedpdf/plugin-rotate/-/plugin-rotate-1.3.0.tgz", - "integrity": "sha512-EyLLwf9VKQCsMRTe0KwGe+ZAaFqmcYS5WW/qqPBNfvSuBaybNpdI+C72IQFr41X7cYQV58OgEL3bfDb1MBPGHQ==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@embedpdf/plugin-rotate/-/plugin-rotate-1.3.1.tgz", + "integrity": "sha512-mRAlIW7IZAnCyDuYqN13yDc6yoNIYLUB4uYTUAR7vTIt021C8H5jDHk9TmLwcH0tQ8/R3yHuDm/XPAe0zfs81g==", "license": "MIT", "dependencies": { - "@embedpdf/models": "1.3.0" + "@embedpdf/models": "1.3.1" }, "peerDependencies": { - "@embedpdf/core": "1.3.0", + "@embedpdf/core": "1.3.1", "preact": "^10.26.4", "react": ">=16.8.0", "react-dom": ">=16.8.0", @@ -621,16 +621,16 @@ } }, "node_modules/@embedpdf/plugin-scroll": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@embedpdf/plugin-scroll/-/plugin-scroll-1.3.0.tgz", - "integrity": "sha512-o1n6Mkoc92BHAkoCX0mSLXgOj4uAkokNbvP+2QMijShzTsl95gU5UzK6siZ5o6WgZBznJcceYmLuPR5ODqZDWg==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@embedpdf/plugin-scroll/-/plugin-scroll-1.3.1.tgz", + "integrity": "sha512-mDvK3DyBZC8/8pOEdJsWtSjCmV2ZuZJJ6xfspJpsaDVywo1Vq6M55BtKThkhqED6mqbFWTN9rP9cbWG8KDBWVA==", "license": "MIT", "dependencies": { - "@embedpdf/models": "1.3.0" + "@embedpdf/models": "1.3.1" }, "peerDependencies": { - "@embedpdf/core": "1.3.0", - "@embedpdf/plugin-viewport": "1.3.0", + "@embedpdf/core": "1.3.1", + "@embedpdf/plugin-viewport": "1.3.1", "preact": "^10.26.4", "react": ">=16.8.0", "react-dom": ">=16.8.0", @@ -638,16 +638,16 @@ } }, "node_modules/@embedpdf/plugin-search": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@embedpdf/plugin-search/-/plugin-search-1.3.0.tgz", - "integrity": "sha512-DilSRfPQR38picjx7eyyuXNeduD7hcW/PjT9DZrjXxfLrAQtd17CXJs7HtJevl1wErh/CCSvZlHhjp1++O6GAg==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@embedpdf/plugin-search/-/plugin-search-1.3.1.tgz", + "integrity": "sha512-SLwYPQg1NJWytq2sd4MnWFmRVGgzwbohBedB2kH0ALsvdnoRYqgjR5HqAsKgoRJO/pphQhHlk3L1gLW62r6hqQ==", "license": "MIT", "dependencies": { - "@embedpdf/models": "1.3.0" + "@embedpdf/models": "1.3.1" }, "peerDependencies": { - "@embedpdf/core": "1.3.0", - "@embedpdf/plugin-loader": "1.3.0", + "@embedpdf/core": "1.3.1", + "@embedpdf/plugin-loader": "1.3.1", "preact": "^10.26.4", "react": ">=16.8.0", "react-dom": ">=16.8.0", @@ -655,17 +655,17 @@ } }, "node_modules/@embedpdf/plugin-selection": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@embedpdf/plugin-selection/-/plugin-selection-1.3.0.tgz", - "integrity": "sha512-1PEtreNofysaLxZvgO2CSNCxXhevjYnBdu4IHTFeJKXoq3ckKwkX8fJjyyN4D6+6uXZsnFkHhewl1yKCfKWAWw==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@embedpdf/plugin-selection/-/plugin-selection-1.3.1.tgz", + "integrity": "sha512-yef2XB/zR7zjyeUB3Ul0SbTcXqu5isR0GtINkFwL7bJMok6HpYNDnMXSuo55BaxI0dOCnnCSZfoRkAgosnZ1uQ==", "license": "MIT", "dependencies": { - "@embedpdf/models": "1.3.0" + "@embedpdf/models": "1.3.1" }, "peerDependencies": { - "@embedpdf/core": "1.3.0", - "@embedpdf/plugin-interaction-manager": "1.3.0", - "@embedpdf/plugin-viewport": "1.3.0", + "@embedpdf/core": "1.3.1", + "@embedpdf/plugin-interaction-manager": "1.3.1", + "@embedpdf/plugin-viewport": "1.3.1", "preact": "^10.26.4", "react": ">=16.8.0", "react-dom": ">=16.8.0", @@ -673,16 +673,16 @@ } }, "node_modules/@embedpdf/plugin-spread": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@embedpdf/plugin-spread/-/plugin-spread-1.3.0.tgz", - "integrity": "sha512-oRLimcod8RhdknN94CQeG+0QndQeiZKIhFUCXDIGxN1Z/qvspZCUty2TC+1kc3G318nZi55pWWphq9sB7ZpqEw==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@embedpdf/plugin-spread/-/plugin-spread-1.3.1.tgz", + "integrity": "sha512-RJ/kgJsFRdtWlPMXTW1feUSb6WHIvxtNRLgqzX8dlFIoyc4oZex2Vw+URo/VZuWSe/NvCIihQ20rkNAQJMnNMQ==", "license": "MIT", "dependencies": { - "@embedpdf/models": "1.3.0" + "@embedpdf/models": "1.3.1" }, "peerDependencies": { - "@embedpdf/core": "1.3.0", - "@embedpdf/plugin-loader": "1.3.0", + "@embedpdf/core": "1.3.1", + "@embedpdf/plugin-loader": "1.3.1", "preact": "^10.26.4", "react": ">=16.8.0", "react-dom": ">=16.8.0", @@ -690,34 +690,34 @@ } }, "node_modules/@embedpdf/plugin-thumbnail": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@embedpdf/plugin-thumbnail/-/plugin-thumbnail-1.3.0.tgz", - "integrity": "sha512-w2wzL7m6/sUF54sMVEi8Y8+7VE3BcZqI8THDqobkEkno4Dgmb77FHNPFD6YtAhaRmIoyPnlZf05RDd6Z8ohhkQ==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@embedpdf/plugin-thumbnail/-/plugin-thumbnail-1.3.1.tgz", + "integrity": "sha512-xv96ESa7JgD5z+TzcOK18/u0gq3d9v7QPv2wpr0ZhcnwLwf4sH0eUJZIsv7z7DMOpBNz7o7jJbrtxDUdCEHGhg==", "license": "MIT", "dependencies": { - "@embedpdf/models": "1.3.0" + "@embedpdf/models": "1.3.1" }, "peerDependencies": { - "@embedpdf/core": "1.3.0", - "@embedpdf/plugin-render": "1.3.0", + "@embedpdf/core": "1.3.1", + "@embedpdf/plugin-render": "1.3.1", "preact": "^10.26.4", "react": ">=16.8.0", "react-dom": ">=16.8.0" } }, "node_modules/@embedpdf/plugin-tiling": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@embedpdf/plugin-tiling/-/plugin-tiling-1.3.0.tgz", - "integrity": "sha512-huYi4BJa9KSfqC424bEHw72KBLCR2rfApMeKnpUzAFSdWA6MSYmVBSk8ghnU7XbcLuL6fFBarNsziNrSSnVWTw==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@embedpdf/plugin-tiling/-/plugin-tiling-1.3.1.tgz", + "integrity": "sha512-Q8RF80fb6y9GDAKwvgsu0BsWJlQuhNCtSKWwp3YcZJtIBFm94DVcg0zTgvDmE9/WNOmn4Z1Edt86usmYauHolw==", "license": "MIT", "dependencies": { - "@embedpdf/models": "1.3.0" + "@embedpdf/models": "1.3.1" }, "peerDependencies": { - "@embedpdf/core": "1.3.0", - "@embedpdf/plugin-render": "1.3.0", - "@embedpdf/plugin-scroll": "1.3.0", - "@embedpdf/plugin-viewport": "1.3.0", + "@embedpdf/core": "1.3.1", + "@embedpdf/plugin-render": "1.3.1", + "@embedpdf/plugin-scroll": "1.3.1", + "@embedpdf/plugin-viewport": "1.3.1", "preact": "^10.26.4", "react": ">=16.8.0", "react-dom": ">=16.8.0", @@ -725,15 +725,15 @@ } }, "node_modules/@embedpdf/plugin-viewport": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@embedpdf/plugin-viewport/-/plugin-viewport-1.3.0.tgz", - "integrity": "sha512-AZ7U8DEgEQ8nK5kdrqtukLl5au9NE3mIlFmloyo6Ddrt2rN/Jw1Lt9dsl6wU20GcFQX+hWsg9uAJboLq6AdOCA==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@embedpdf/plugin-viewport/-/plugin-viewport-1.3.1.tgz", + "integrity": "sha512-gzosrWL18ZhN175Kxocf/p7uqYBhNHvEuV1CpJQmN7ys48aew6Qq8z7MjAsCnJBANXk/8syNdo3qWwBriyjQNg==", "license": "MIT", "dependencies": { - "@embedpdf/models": "1.3.0" + "@embedpdf/models": "1.3.1" }, "peerDependencies": { - "@embedpdf/core": "1.3.0", + "@embedpdf/core": "1.3.1", "preact": "^10.26.4", "react": ">=16.8.0", "react-dom": ">=16.8.0", @@ -741,19 +741,19 @@ } }, "node_modules/@embedpdf/plugin-zoom": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@embedpdf/plugin-zoom/-/plugin-zoom-1.3.0.tgz", - "integrity": "sha512-1VA9aFxoP+BoEpwlR0//jtlD9ESS8nhU8OGGHBRu7IgoWzIx4GqOHgpgXVxzFl9IaLOv69E9DVmwe/yaC6F+0g==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@embedpdf/plugin-zoom/-/plugin-zoom-1.3.1.tgz", + "integrity": "sha512-3GXpgv6XmZiQnjaPbsxblTqUn84ALFiyONh2gwrEU9apB6STT3TQiY0QRindwrUXdQLpCSjRSB9PpDBCtTww7w==", "license": "MIT", "dependencies": { - "@embedpdf/models": "1.3.0", + "@embedpdf/models": "1.3.1", "hammerjs": "^2.0.8" }, "peerDependencies": { - "@embedpdf/core": "1.3.0", - "@embedpdf/plugin-interaction-manager": "1.3.0", - "@embedpdf/plugin-scroll": "1.3.0", - "@embedpdf/plugin-viewport": "1.3.0", + "@embedpdf/core": "1.3.1", + "@embedpdf/plugin-interaction-manager": "1.3.1", + "@embedpdf/plugin-scroll": "1.3.1", + "@embedpdf/plugin-viewport": "1.3.1", "preact": "^10.26.4", "react": ">=16.8.0", "react-dom": ">=16.8.0", @@ -2799,15 +2799,15 @@ } }, "node_modules/@swc/core": { - "version": "1.13.5", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.13.5.tgz", - "integrity": "sha512-WezcBo8a0Dg2rnR82zhwoR6aRNxeTGfK5QCD6TQ+kg3xx/zNT02s/0o+81h/3zhvFSB24NtqEr8FTw88O5W/JQ==", + "version": "1.13.19", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.13.19.tgz", + "integrity": "sha512-V1r4wFdjaZIUIZZrV2Mb/prEeu03xvSm6oatPxsvnXKF9lNh5Jtk9QvUdiVfD9rrvi7bXrAVhg9Wpbmv/2Fl1g==", "dev": true, "hasInstallScript": true, "license": "Apache-2.0", "dependencies": { "@swc/counter": "^0.1.3", - "@swc/types": "^0.1.24" + "@swc/types": "^0.1.25" }, "engines": { "node": ">=10" @@ -2817,16 +2817,16 @@ "url": "https://opencollective.com/swc" }, "optionalDependencies": { - "@swc/core-darwin-arm64": "1.13.5", - "@swc/core-darwin-x64": "1.13.5", - "@swc/core-linux-arm-gnueabihf": "1.13.5", - "@swc/core-linux-arm64-gnu": "1.13.5", - "@swc/core-linux-arm64-musl": "1.13.5", - "@swc/core-linux-x64-gnu": "1.13.5", - "@swc/core-linux-x64-musl": "1.13.5", - "@swc/core-win32-arm64-msvc": "1.13.5", - "@swc/core-win32-ia32-msvc": "1.13.5", - "@swc/core-win32-x64-msvc": "1.13.5" + "@swc/core-darwin-arm64": "1.13.19", + "@swc/core-darwin-x64": "1.13.19", + "@swc/core-linux-arm-gnueabihf": "1.13.19", + "@swc/core-linux-arm64-gnu": "1.13.19", + "@swc/core-linux-arm64-musl": "1.13.19", + "@swc/core-linux-x64-gnu": "1.13.19", + "@swc/core-linux-x64-musl": "1.13.19", + "@swc/core-win32-arm64-msvc": "1.13.19", + "@swc/core-win32-ia32-msvc": "1.13.19", + "@swc/core-win32-x64-msvc": "1.13.19" }, "peerDependencies": { "@swc/helpers": ">=0.5.17" @@ -2838,9 +2838,9 @@ } }, "node_modules/@swc/core-darwin-arm64": { - "version": "1.13.5", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.13.5.tgz", - "integrity": "sha512-lKNv7SujeXvKn16gvQqUQI5DdyY8v7xcoO3k06/FJbHJS90zEwZdQiMNRiqpYw/orU543tPaWgz7cIYWhbopiQ==", + "version": "1.13.19", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.13.19.tgz", + "integrity": "sha512-NxDyte9tCJSJ8+R62WDtqwg8eI57lubD52sHyGOfezpJBOPr36bUSGGLyO3Vod9zTGlOu2CpkuzA/2iVw92u1g==", "cpu": [ "arm64" ], @@ -2855,9 +2855,9 @@ } }, "node_modules/@swc/core-darwin-x64": { - "version": "1.13.5", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.13.5.tgz", - "integrity": "sha512-ILd38Fg/w23vHb0yVjlWvQBoE37ZJTdlLHa8LRCFDdX4WKfnVBiblsCU9ar4QTMNdeTBEX9iUF4IrbNWhaF1Ng==", + "version": "1.13.19", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.13.19.tgz", + "integrity": "sha512-+w5DYrJndSygFFRDcuPYmx5BljD6oYnAohZ15K1L6SfORHp/BTSIbgSFRKPoyhjuIkDiq3W0um8RoMTOBAcQjQ==", "cpu": [ "x64" ], @@ -2872,9 +2872,9 @@ } }, "node_modules/@swc/core-linux-arm-gnueabihf": { - "version": "1.13.5", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.13.5.tgz", - "integrity": "sha512-Q6eS3Pt8GLkXxqz9TAw+AUk9HpVJt8Uzm54MvPsqp2yuGmY0/sNaPPNVqctCX9fu/Nu8eaWUen0si6iEiCsazQ==", + "version": "1.13.19", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.13.19.tgz", + "integrity": "sha512-7LlfgpdwwYq2q7himNkAAFo4q6jysMLFNoBH6GRP7WL29NcSsl5mPMJjmYZymK+sYq/9MTVieDTQvChzYDsapw==", "cpu": [ "arm" ], @@ -2889,9 +2889,9 @@ } }, "node_modules/@swc/core-linux-arm64-gnu": { - "version": "1.13.5", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.13.5.tgz", - "integrity": "sha512-aNDfeN+9af+y+M2MYfxCzCy/VDq7Z5YIbMqRI739o8Ganz6ST+27kjQFd8Y/57JN/hcnUEa9xqdS3XY7WaVtSw==", + "version": "1.13.19", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.13.19.tgz", + "integrity": "sha512-ml3I6Lm2marAQ3UC/TS9t/yILBh/eDSVHAdPpikp652xouWAVW1znUeV6bBSxe1sSZIenv+p55ubKAWq/u84sQ==", "cpu": [ "arm64" ], @@ -2906,9 +2906,9 @@ } }, "node_modules/@swc/core-linux-arm64-musl": { - "version": "1.13.5", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.13.5.tgz", - "integrity": "sha512-9+ZxFN5GJag4CnYnq6apKTnnezpfJhCumyz0504/JbHLo+Ue+ZtJnf3RhyA9W9TINtLE0bC4hKpWi8ZKoETyOQ==", + "version": "1.13.19", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.13.19.tgz", + "integrity": "sha512-M/otFc3/rWWkbF6VgbOXVzUKVoE7MFcphTaStxJp4bwb7oP5slYlxMZN51Dk/OTOfvCDo9pTAFDKNyixbkXMDQ==", "cpu": [ "arm64" ], @@ -2923,9 +2923,9 @@ } }, "node_modules/@swc/core-linux-x64-gnu": { - "version": "1.13.5", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.13.5.tgz", - "integrity": "sha512-WD530qvHrki8Ywt/PloKUjaRKgstQqNGvmZl54g06kA+hqtSE2FTG9gngXr3UJxYu/cNAjJYiBifm7+w4nbHbA==", + "version": "1.13.19", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.13.19.tgz", + "integrity": "sha512-NoMUKaOJEdouU4tKF88ggdDHFiRRING+gYLxDqnTfm+sUXaizB5OGBRzvSVDYSXQb1SuUuChnXFPFzwTWbt3ZQ==", "cpu": [ "x64" ], @@ -2940,9 +2940,9 @@ } }, "node_modules/@swc/core-linux-x64-musl": { - "version": "1.13.5", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.13.5.tgz", - "integrity": "sha512-Luj8y4OFYx4DHNQTWjdIuKTq2f5k6uSXICqx+FSabnXptaOBAbJHNbHT/06JZh6NRUouaf0mYXN0mcsqvkhd7Q==", + "version": "1.13.19", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.13.19.tgz", + "integrity": "sha512-r6krlZwyu8SBaw24QuS1lau2I9q8M+eJV6ITz0rpb6P1Bx0elf9ii5Bhh8ddmIqXXH8kOGSjC/dwcdHbZqAhgw==", "cpu": [ "x64" ], @@ -2957,9 +2957,9 @@ } }, "node_modules/@swc/core-win32-arm64-msvc": { - "version": "1.13.5", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.13.5.tgz", - "integrity": "sha512-cZ6UpumhF9SDJvv4DA2fo9WIzlNFuKSkZpZmPG1c+4PFSEMy5DFOjBSllCvnqihCabzXzpn6ykCwBmHpy31vQw==", + "version": "1.13.19", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.13.19.tgz", + "integrity": "sha512-awcZSIuxyVn0Dw28VjMvgk1qiDJ6CeQwHkZNUjg2UxVlq23zE01NMMp+zkoGFypmLG9gaGmJSzuoqvk/WCQ5tw==", "cpu": [ "arm64" ], @@ -2974,9 +2974,9 @@ } }, "node_modules/@swc/core-win32-ia32-msvc": { - "version": "1.13.5", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.13.5.tgz", - "integrity": "sha512-C5Yi/xIikrFUzZcyGj9L3RpKljFvKiDMtyDzPKzlsDrKIw2EYY+bF88gB6oGY5RGmv4DAX8dbnpRAqgFD0FMEw==", + "version": "1.13.19", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.13.19.tgz", + "integrity": "sha512-H5d+KO7ISoLNgYvTbOcCQjJZNM3R7yaYlrMAF13lUr6GSiOUX+92xtM31B+HvzAWI7HtvVe74d29aC1b1TpXFA==", "cpu": [ "ia32" ], @@ -2991,9 +2991,9 @@ } }, "node_modules/@swc/core-win32-x64-msvc": { - "version": "1.13.5", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.13.5.tgz", - "integrity": "sha512-YrKdMVxbYmlfybCSbRtrilc6UA8GF5aPmGKBdPvjrarvsmf4i7ZHGCEnLtfOMd3Lwbs2WUZq3WdMbozYeLU93Q==", + "version": "1.13.19", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.13.19.tgz", + "integrity": "sha512-qNoyCpXvv2O3JqXKanRIeoMn03Fho/As+N4Fhe7u0FsYh4VYqGQah4DGDzEP/yjl4Gx1IElhqLGDhCCGMwWaDw==", "cpu": [ "x64" ], @@ -3999,13 +3999,13 @@ } }, "node_modules/@vue/compiler-core": { - "version": "3.5.21", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.21.tgz", - "integrity": "sha512-8i+LZ0vf6ZgII5Z9XmUvrCyEzocvWT+TeR2VBUVlzIH6Tyv57E20mPZ1bCS+tbejgUgmjrEh7q/0F0bibskAmw==", + "version": "3.5.22", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.22.tgz", + "integrity": "sha512-jQ0pFPmZwTEiRNSb+i9Ow/I/cHv2tXYqsnHKKyCQ08irI2kdF5qmYedmF8si8mA7zepUFmJ2hqzS8CQmNOWOkQ==", "license": "MIT", "dependencies": { - "@babel/parser": "^7.28.3", - "@vue/shared": "3.5.21", + "@babel/parser": "^7.28.4", + "@vue/shared": "3.5.22", "entities": "^4.5.0", "estree-walker": "^2.0.2", "source-map-js": "^1.2.1" @@ -4030,28 +4030,28 @@ "license": "MIT" }, "node_modules/@vue/compiler-dom": { - "version": "3.5.21", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.21.tgz", - "integrity": "sha512-jNtbu/u97wiyEBJlJ9kmdw7tAr5Vy0Aj5CgQmo+6pxWNQhXZDPsRr1UWPN4v3Zf82s2H3kF51IbzZ4jMWAgPlQ==", + "version": "3.5.22", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.22.tgz", + "integrity": "sha512-W8RknzUM1BLkypvdz10OVsGxnMAuSIZs9Wdx1vzA3mL5fNMN15rhrSCLiTm6blWeACwUwizzPVqGJgOGBEN/hA==", "license": "MIT", "dependencies": { - "@vue/compiler-core": "3.5.21", - "@vue/shared": "3.5.21" + "@vue/compiler-core": "3.5.22", + "@vue/shared": "3.5.22" } }, "node_modules/@vue/compiler-sfc": { - "version": "3.5.21", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.21.tgz", - "integrity": "sha512-SXlyk6I5eUGBd2v8Ie7tF6ADHE9kCR6mBEuPyH1nUZ0h6Xx6nZI29i12sJKQmzbDyr2tUHMhhTt51Z6blbkTTQ==", + "version": "3.5.22", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.22.tgz", + "integrity": "sha512-tbTR1zKGce4Lj+JLzFXDq36K4vcSZbJ1RBu8FxcDv1IGRz//Dh2EBqksyGVypz3kXpshIfWKGOCcqpSbyGWRJQ==", "license": "MIT", "dependencies": { - "@babel/parser": "^7.28.3", - "@vue/compiler-core": "3.5.21", - "@vue/compiler-dom": "3.5.21", - "@vue/compiler-ssr": "3.5.21", - "@vue/shared": "3.5.21", + "@babel/parser": "^7.28.4", + "@vue/compiler-core": "3.5.22", + "@vue/compiler-dom": "3.5.22", + "@vue/compiler-ssr": "3.5.22", + "@vue/shared": "3.5.22", "estree-walker": "^2.0.2", - "magic-string": "^0.30.18", + "magic-string": "^0.30.19", "postcss": "^8.5.6", "source-map-js": "^1.2.1" } @@ -4063,67 +4063,67 @@ "license": "MIT" }, "node_modules/@vue/compiler-ssr": { - "version": "3.5.21", - "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.21.tgz", - "integrity": "sha512-vKQ5olH5edFZdf5ZrlEgSO1j1DMA4u23TVK5XR1uMhvwnYvVdDF0nHXJUblL/GvzlShQbjhZZ2uvYmDlAbgo9w==", + "version": "3.5.22", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.22.tgz", + "integrity": "sha512-GdgyLvg4R+7T8Nk2Mlighx7XGxq/fJf9jaVofc3IL0EPesTE86cP/8DD1lT3h1JeZr2ySBvyqKQJgbS54IX1Ww==", "license": "MIT", "dependencies": { - "@vue/compiler-dom": "3.5.21", - "@vue/shared": "3.5.21" + "@vue/compiler-dom": "3.5.22", + "@vue/shared": "3.5.22" } }, "node_modules/@vue/reactivity": { - "version": "3.5.21", - "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.21.tgz", - "integrity": "sha512-3ah7sa+Cwr9iiYEERt9JfZKPw4A2UlbY8RbbnH2mGCE8NwHkhmlZt2VsH0oDA3P08X3jJd29ohBDtX+TbD9AsA==", + "version": "3.5.22", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.22.tgz", + "integrity": "sha512-f2Wux4v/Z2pqc9+4SmgZC1p73Z53fyD90NFWXiX9AKVnVBEvLFOWCEgJD3GdGnlxPZt01PSlfmLqbLYzY/Fw4A==", "license": "MIT", "peer": true, "dependencies": { - "@vue/shared": "3.5.21" + "@vue/shared": "3.5.22" } }, "node_modules/@vue/runtime-core": { - "version": "3.5.21", - "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.21.tgz", - "integrity": "sha512-+DplQlRS4MXfIf9gfD1BOJpk5RSyGgGXD/R+cumhe8jdjUcq/qlxDawQlSI8hCKupBlvM+3eS1se5xW+SuNAwA==", + "version": "3.5.22", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.22.tgz", + "integrity": "sha512-EHo4W/eiYeAzRTN5PCextDUZ0dMs9I8mQ2Fy+OkzvRPUYQEyK9yAjbasrMCXbLNhF7P0OUyivLjIy0yc6VrLJQ==", "license": "MIT", "peer": true, "dependencies": { - "@vue/reactivity": "3.5.21", - "@vue/shared": "3.5.21" + "@vue/reactivity": "3.5.22", + "@vue/shared": "3.5.22" } }, "node_modules/@vue/runtime-dom": { - "version": "3.5.21", - "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.21.tgz", - "integrity": "sha512-3M2DZsOFwM5qI15wrMmNF5RJe1+ARijt2HM3TbzBbPSuBHOQpoidE+Pa+XEaVN+czbHf81ETRoG1ltztP2em8w==", + "version": "3.5.22", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.22.tgz", + "integrity": "sha512-Av60jsryAkI023PlN7LsqrfPvwfxOd2yAwtReCjeuugTJTkgrksYJJstg1e12qle0NarkfhfFu1ox2D+cQotww==", "license": "MIT", "peer": true, "dependencies": { - "@vue/reactivity": "3.5.21", - "@vue/runtime-core": "3.5.21", - "@vue/shared": "3.5.21", + "@vue/reactivity": "3.5.22", + "@vue/runtime-core": "3.5.22", + "@vue/shared": "3.5.22", "csstype": "^3.1.3" } }, "node_modules/@vue/server-renderer": { - "version": "3.5.21", - "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.21.tgz", - "integrity": "sha512-qr8AqgD3DJPJcGvLcJKQo2tAc8OnXRcfxhOJCPF+fcfn5bBGz7VCcO7t+qETOPxpWK1mgysXvVT/j+xWaHeMWA==", + "version": "3.5.22", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.22.tgz", + "integrity": "sha512-gXjo+ao0oHYTSswF+a3KRHZ1WszxIqO7u6XwNHqcqb9JfyIL/pbWrrh/xLv7jeDqla9u+LK7yfZKHih1e1RKAQ==", "license": "MIT", "peer": true, "dependencies": { - "@vue/compiler-ssr": "3.5.21", - "@vue/shared": "3.5.21" + "@vue/compiler-ssr": "3.5.22", + "@vue/shared": "3.5.22" }, "peerDependencies": { - "vue": "3.5.21" + "vue": "3.5.22" } }, "node_modules/@vue/shared": { - "version": "3.5.21", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.21.tgz", - "integrity": "sha512-+2k1EQpnYuVuu3N7atWyG3/xoFWIVJZq4Mz8XNOdScFI0etES75fbny/oU4lKWk/577P1zmg0ioYvpGEDZ3DLw==", + "version": "3.5.22", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.22.tgz", + "integrity": "sha512-F4yc6palwq3TT0u+FYf0Ns4Tfl9GRFURDN2gWG7L1ecIaS/4fCIuFOjMTnCyjsu/OK6vaDKLCrGAa+KvvH+h4w==", "license": "MIT" }, "node_modules/abbrev": { @@ -4832,9 +4832,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001743", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001743.tgz", - "integrity": "sha512-e6Ojr7RV14Un7dz6ASD0aZDmQPT/A+eZU+nuTNfjqmRrmkmQlnTNWH0SKmqagx9PeW87UVqapSurtAXifmtdmw==", + "version": "1.0.30001745", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001745.tgz", + "integrity": "sha512-ywt6i8FzvdgrrrGbr1jZVObnVv6adj+0if2/omv9cmR2oiZs30zL4DIyaptKcbOrBdOIc74QTMoJvSE2QHh5UQ==", "funding": [ { "type": "opencollective", @@ -12675,17 +12675,17 @@ } }, "node_modules/vue": { - "version": "3.5.21", - "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.21.tgz", - "integrity": "sha512-xxf9rum9KtOdwdRkiApWL+9hZEMWE90FHh8yS1+KJAiWYh+iGWV1FquPjoO9VUHQ+VIhsCXNNyZ5Sf4++RVZBA==", + "version": "3.5.22", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.22.tgz", + "integrity": "sha512-toaZjQ3a/G/mYaLSbV+QsQhIdMo9x5rrqIpYRObsJ6T/J+RyCSFwN2LHNVH9v8uIcljDNa3QzPVdv3Y6b9hAJQ==", "license": "MIT", "peer": true, "dependencies": { - "@vue/compiler-dom": "3.5.21", - "@vue/compiler-sfc": "3.5.21", - "@vue/runtime-dom": "3.5.21", - "@vue/server-renderer": "3.5.21", - "@vue/shared": "3.5.21" + "@vue/compiler-dom": "3.5.22", + "@vue/compiler-sfc": "3.5.22", + "@vue/runtime-dom": "3.5.22", + "@vue/server-renderer": "3.5.22", + "@vue/shared": "3.5.22" }, "peerDependencies": { "typescript": "*" diff --git a/frontend/package.json b/frontend/package.json index 4712635df..f0822d047 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -6,21 +6,21 @@ "proxy": "http://localhost:8080", "dependencies": { "@atlaskit/pragmatic-drag-and-drop": "^1.7.7", - "@embedpdf/core": "^1.3.0", - "@embedpdf/engines": "^1.3.0", - "@embedpdf/plugin-interaction-manager": "^1.3.0", - "@embedpdf/plugin-loader": "^1.3.0", - "@embedpdf/plugin-pan": "^1.3.0", - "@embedpdf/plugin-render": "^1.3.0", - "@embedpdf/plugin-rotate": "^1.3.0", - "@embedpdf/plugin-scroll": "^1.3.0", - "@embedpdf/plugin-search": "^1.3.0", - "@embedpdf/plugin-selection": "^1.3.0", - "@embedpdf/plugin-spread": "^1.3.0", - "@embedpdf/plugin-thumbnail": "^1.3.0", - "@embedpdf/plugin-tiling": "^1.3.0", - "@embedpdf/plugin-viewport": "^1.3.0", - "@embedpdf/plugin-zoom": "^1.3.0", + "@embedpdf/core": "^1.3.1", + "@embedpdf/engines": "^1.3.1", + "@embedpdf/plugin-interaction-manager": "^1.3.1", + "@embedpdf/plugin-loader": "^1.3.1", + "@embedpdf/plugin-pan": "^1.3.1", + "@embedpdf/plugin-render": "^1.3.1", + "@embedpdf/plugin-rotate": "^1.3.1", + "@embedpdf/plugin-scroll": "^1.3.1", + "@embedpdf/plugin-search": "^1.3.1", + "@embedpdf/plugin-selection": "^1.3.1", + "@embedpdf/plugin-spread": "^1.3.1", + "@embedpdf/plugin-thumbnail": "^1.3.1", + "@embedpdf/plugin-tiling": "^1.3.1", + "@embedpdf/plugin-viewport": "^1.3.1", + "@embedpdf/plugin-zoom": "^1.3.1", "@emotion/react": "^11.14.0", "@emotion/styled": "^11.14.1", "@iconify/react": "^6.0.2", diff --git a/frontend/src/components/pageEditor/PageThumbnail.tsx b/frontend/src/components/pageEditor/PageThumbnail.tsx index ec93f02c5..e3e951a9d 100644 --- a/frontend/src/components/pageEditor/PageThumbnail.tsx +++ b/frontend/src/components/pageEditor/PageThumbnail.tsx @@ -65,7 +65,7 @@ const PageThumbnail: React.FC = ({ const [isDragging, setIsDragging] = useState(false); const [isMouseDown, setIsMouseDown] = useState(false); const [mouseStartPos, setMouseStartPos] = useState<{x: number, y: number} | null>(null); - const dragElementRef = useRef(null); + const dragElementRef = useRef void } | null>(null); const [thumbnailUrl, setThumbnailUrl] = useState(page.thumbnail); const { getThumbnailFromCache, requestThumbnail } = useThumbnailGeneration(); const { openFilesModal } = useFilesModalContext(); @@ -128,7 +128,9 @@ const PageThumbnail: React.FC = ({ const pageElementRef = useCallback((element: HTMLDivElement | null) => { if (element) { - pageRefs.current.set(page.id, element); + if (pageRefs && 'current' in pageRefs && pageRefs.current) { + pageRefs.current.set(page.id, element); + } dragElementRef.current = element; const dragCleanup = draggable({ @@ -172,14 +174,16 @@ const PageThumbnail: React.FC = ({ onDrop: (_) => {} }); - (element as any).__dragCleanup = () => { + dragElementRef.current.__dragCleanup = () => { dragCleanup(); dropCleanup(); }; } else { - pageRefs.current.delete(page.id); + if (pageRefs && 'current' in pageRefs && pageRefs.current) { + pageRefs.current.delete(page.id); + } if (dragElementRef.current && (dragElementRef.current as any).__dragCleanup) { - (dragElementRef.current as any).__dragCleanup(); + dragElementRef.current.__dragCleanup?.(); } } }, [page.id, page.pageNumber, pageRefs, selectionMode, selectedPageIds, pdfDocument.pages, onReorderPages]); diff --git a/frontend/src/components/pageEditor/hooks/usePageDocument.ts b/frontend/src/components/pageEditor/hooks/usePageDocument.ts index 0b7aa00b4..76be1b0aa 100644 --- a/frontend/src/components/pageEditor/hooks/usePageDocument.ts +++ b/frontend/src/components/pageEditor/hooks/usePageDocument.ts @@ -84,11 +84,11 @@ export function usePageDocument(): PageDocumentHook { filePages = processedFile.pages.map((page, pageIndex) => ({ id: `${fileId}-${page.pageNumber}`, pageNumber: startPageNumber + pageIndex, - thumbnail: page.thumbnail || null, - rotation: page.rotation || 0, + thumbnail: page.thumbnail ?? null, + rotation: page.rotation ?? 0, selected: false, - splitAfter: page.splitAfter || false, - originalPageNumber: page.originalPageNumber || page.pageNumber || pageIndex + 1, + splitAfter: typeof page.splitAfter === 'boolean' ? page.splitAfter : false, + originalPageNumber: typeof page.originalPageNumber === 'number' ? page.originalPageNumber : (page.pageNumber ?? pageIndex + 1), originalFileId: fileId, })); } else if (processedFile?.totalPages) { diff --git a/frontend/src/components/shared/filePreview/HoverOverlay.tsx b/frontend/src/components/shared/filePreview/HoverOverlay.tsx index d8f5ebd80..6400e98c6 100644 --- a/frontend/src/components/shared/filePreview/HoverOverlay.tsx +++ b/frontend/src/components/shared/filePreview/HoverOverlay.tsx @@ -15,12 +15,12 @@ const HoverOverlay: React.FC = ({ }) => { const defaultMouseEnter = (e: React.MouseEvent) => { const overlay = e.currentTarget.querySelector('.hover-overlay')!; - if (overlay) overlay.style.opacity = '1'; + if (overlay instanceof HTMLElement) overlay.style.opacity = '1'; }; const defaultMouseLeave = (e: React.MouseEvent) => { const overlay = e.currentTarget.querySelector('.hover-overlay')!; - if (overlay) overlay.style.opacity = '0'; + if (overlay instanceof HTMLElement) overlay.style.opacity = '0'; }; return ( @@ -30,11 +30,11 @@ const HoverOverlay: React.FC = ({ width: '100%', height: '100%' }} - onMouseEnter={onMouseEnter || defaultMouseEnter} - onMouseLeave={onMouseLeave || defaultMouseLeave} + onMouseEnter={onMouseEnter ?? defaultMouseEnter} + onMouseLeave={onMouseLeave ?? defaultMouseLeave} > {children} - + {/* Hover overlay */} = ({ ); }; -export default HoverOverlay; \ No newline at end of file +export default HoverOverlay; diff --git a/frontend/src/components/tools/shared/ToolWorkflowTitle.tsx b/frontend/src/components/tools/shared/ToolWorkflowTitle.tsx index e7680a958..a7b4ddb6c 100644 --- a/frontend/src/components/tools/shared/ToolWorkflowTitle.tsx +++ b/frontend/src/components/tools/shared/ToolWorkflowTitle.tsx @@ -2,6 +2,7 @@ import React from 'react'; import { Flex, Text, Divider } from '@mantine/core'; import LocalIcon from '../../shared/LocalIcon'; import { Tooltip } from '../../shared/Tooltip'; +import { TooltipTip } from 'src/types/tips'; export interface ToolWorkflowTitleProps { title: string; @@ -32,7 +33,7 @@ export function ToolWorkflowTitle({ title, tooltip, description }: ToolWorkflowT diff --git a/frontend/src/components/tools/shared/createToolFlow.tsx b/frontend/src/components/tools/shared/createToolFlow.tsx index ea2f851e2..564563e94 100644 --- a/frontend/src/components/tools/shared/createToolFlow.tsx +++ b/frontend/src/components/tools/shared/createToolFlow.tsx @@ -8,6 +8,9 @@ import { StirlingFile } from '../../../types/fileContext'; import { SplitParameters } from 'src/hooks/tools/split/useSplitParameters'; import { CompressParameters } from 'src/hooks/tools/compress/useCompressParameters'; import { ChangeMetadataParameters } from 'src/hooks/tools/changeMetadata/useChangeMetadataParameters'; +import { OCRParameters } from 'src/hooks/tools/ocr/useOCRParameters'; +import { TooltipTip } from 'src/types/tips'; +import { RemovePasswordParameters } from 'src/hooks/tools/removePassword/useRemovePasswordParameters'; export interface FilesStepConfig { selectedFiles: StirlingFile[]; @@ -25,7 +28,7 @@ export interface MiddleStepConfig { content: React.ReactNode; tooltip?: { content?: React.ReactNode; - tips?: unknown[]; + tips?: TooltipTip[]; header?: { title: string; logo?: React.ReactNode; @@ -44,14 +47,14 @@ export interface ExecuteButtonConfig { export interface ReviewStepConfig { isVisible: boolean; - operation: ToolOperationHook | ToolOperationHook | ToolOperationHook; + operation: ToolOperationHook | ToolOperationHook | ToolOperationHook | ToolOperationHook | ToolOperationHook; title: string; onFileClick?: (file: File) => void; onUndo: () => void; testId?: string; } -export interface TitleConfig extends ToolWorkflowTitleProps {} +export interface TitleConfig extends ToolWorkflowTitleProps { } export interface ToolFlowConfig { title?: TitleConfig; @@ -71,7 +74,7 @@ export function createToolFlow(config: ToolFlowConfig) { return ( - {/* */} + {/* */} {config.title && } diff --git a/frontend/src/contexts/SidebarContext.tsx b/frontend/src/contexts/SidebarContext.tsx index 0158801ec..246e7e9a0 100644 --- a/frontend/src/contexts/SidebarContext.tsx +++ b/frontend/src/contexts/SidebarContext.tsx @@ -5,8 +5,8 @@ const SidebarContext = createContext(undefined) export function SidebarProvider({ children }: SidebarProviderProps) { // All sidebar state management - const quickAccessRef = useRef(null); - const toolPanelRef = useRef(null); + const quickAccessRef = useRef(null); + const toolPanelRef = useRef(null); const [sidebarsVisible, setSidebarsVisible] = useState(true); const [leftPanelView, setLeftPanelView] = useState<'toolPicker' | 'toolContent'>('toolPicker'); diff --git a/frontend/src/utils/toolErrorHandler.ts b/frontend/src/utils/toolErrorHandler.ts index d984ed288..1d987a66c 100644 --- a/frontend/src/utils/toolErrorHandler.ts +++ b/frontend/src/utils/toolErrorHandler.ts @@ -2,15 +2,50 @@ * Standardized error handling utilities for tool operations */ +interface ErrorWithResponseData { + response?: { + data?: unknown; + }; +} + +interface ErrorWithMessage { + message?: unknown; +} + +const hasResponseData = (error: unknown): error is ErrorWithResponseData => { + if (typeof error !== 'object' || error === null) { + return false; + } + + if (!('response' in error)) { + return false; + } + + const response = (error as ErrorWithResponseData).response; + return typeof response === 'object' && response !== null && 'data' in response; +}; + +const hasMessage = (error: unknown): error is { message: string } => { + if (typeof error === 'string') { + return true; + } + + if (typeof error !== 'object' || error === null || !('message' in error)) { + return false; + } + + return typeof (error as ErrorWithMessage).message === 'string'; +}; + /** * Default error extractor that follows the standard pattern */ -export const extractErrorMessage = (error: any): string => { - if (error.response?.data && typeof error.response.data === 'string') { +export const extractErrorMessage = (error: unknown): string => { + if (hasResponseData(error) && typeof error.response?.data === 'string') { return error.response.data; } - if (error.message) { - return error.message; + if (hasMessage(error)) { + return typeof error === 'string' ? error : error.message; } return 'Operation failed'; }; @@ -22,11 +57,11 @@ export const extractErrorMessage = (error: any): string => { */ export const createStandardErrorHandler = (fallbackMessage: string) => { return (error: unknown): string => { - if (error.response?.data && typeof error.response.data === 'string') { + if (hasResponseData(error) && typeof error.response?.data === 'string') { return error.response.data; } - if (error.message) { - return error.message; + if (hasMessage(error)) { + return typeof error === 'string' ? error : error.message; } return fallbackMessage; };