From d4e5d95383db2aa42b31828deae098ec1075631d Mon Sep 17 00:00:00 2001
From: 0verwrite <31691645+overwrite00@users.noreply.github.com>
Date: Sat, 13 Jun 2026 19:54:15 +0200
Subject: [PATCH 01/19] fix: resolve 30 CodeQL alerts - Remove unused
imports/variables, fix empty excepts, improve file permissions
- Remove unused global variable (PathT) in path_security.py
- Remove abstract method ellipsis statements in base_handler.py
- Remove unused imports: Path from diff.py, struct from ole_handler.py, Any from office_handler.py, io from image_handler.py, os/Any from routes.py, tempfile from test_path_security.py, io/tempfile from test_handlers.py, pytest from test_registry.py, pytest from conftest.py
- Replace empty except blocks with continue statements in office_handler.py, filesystem_handler.py, routes.py
- Fix overly permissive file in test_path_security.py by using mode=0o700 for directory creation
- Fix unused local variables: captured_temp_path in test_path_security.py, useCallback from App.jsx, useCallback from FilePanel.jsx, SortIcon component in FilePanel.jsx
---
frontend/src/App.jsx | 2 +-
frontend/src/components/FilePanel.jsx | 6 +-----
python/api/routes.py | 6 ++----
python/core/base_handler.py | 3 ---
python/core/diff.py | 1 -
python/core/handlers/filesystem_handler.py | 6 +++---
python/core/handlers/image_handler.py | 1 -
python/core/handlers/office_handler.py | 5 ++---
python/core/handlers/ole_handler.py | 1 -
python/core/path_security.py | 2 --
python/tests/conftest.py | 1 -
python/tests/test_handlers.py | 1 -
python/tests/test_path_security.py | 11 +++++------
python/tests/test_registry.py | 1 -
14 files changed, 14 insertions(+), 33 deletions(-)
diff --git a/frontend/src/App.jsx b/frontend/src/App.jsx
index 4addc6e..fa6cd27 100644
--- a/frontend/src/App.jsx
+++ b/frontend/src/App.jsx
@@ -1,4 +1,4 @@
-import { useState, useEffect, useCallback, useRef } from 'react'
+import { useState, useEffect, useRef } from 'react'
import { FolderPanel } from './components/FolderPanel'
import { FilePanel } from './components/FilePanel'
import { DetailPanel } from './components/DetailPanel'
diff --git a/frontend/src/components/FilePanel.jsx b/frontend/src/components/FilePanel.jsx
index 3593356..aba1787 100644
--- a/frontend/src/components/FilePanel.jsx
+++ b/frontend/src/components/FilePanel.jsx
@@ -1,4 +1,4 @@
-import { useState, useEffect, useCallback } from 'react'
+import { useState, useEffect } from 'react'
import { File, Image, Music, Film, FileText, FileCode, Archive, Aperture, Sheet, Presentation, AlertCircle } from 'lucide-react'
import { Spinner } from './ui/Spinner'
import { metalens } from '../api/client'
@@ -94,10 +94,6 @@ export function FilePanel({ currentPath, onSelectFile, onSelectTwo }) {
})
}
- const SortIcon = ({ col }) => sortKey === col
- ? {sortAsc ? '↑' : '↓'}
- : null
-
return (
{/* Header */}
diff --git a/python/api/routes.py b/python/api/routes.py
index 6ada278..a885f7b 100644
--- a/python/api/routes.py
+++ b/python/api/routes.py
@@ -1,8 +1,6 @@
from __future__ import annotations
import hashlib
-import os
from pathlib import Path
-from typing import Any
from fastapi import APIRouter, HTTPException, Query
from pydantic import BaseModel
@@ -88,7 +86,7 @@ def list_directory(path: str = Query(..., description="Absolute directory path")
try:
handler_name = HandlerRegistry.get(entry).NAME
except ValueError:
- pass
+ continue
items.append({
"name": entry.name,
"path": str(entry),
@@ -99,7 +97,7 @@ def list_directory(path: str = Query(..., description="Absolute directory path")
"handler": handler_name,
})
except OSError:
- pass
+ continue
return {"path": str(dirpath), "items": items}
diff --git a/python/core/base_handler.py b/python/core/base_handler.py
index eeb33f8..e6191ff 100644
--- a/python/core/base_handler.py
+++ b/python/core/base_handler.py
@@ -14,17 +14,14 @@ class BaseMetadataHandler(ABC):
@abstractmethod
def read(self, path: Path) -> MetadataRecord:
"""Read all metadata. Never raises — errors go to record.read_errors."""
- ...
@abstractmethod
def write(self, path: Path, fields: list[MetadataField]) -> None:
"""Atomically write changed fields back to file."""
- ...
@abstractmethod
def delete(self, path: Path, keys: list[str]) -> None:
"""Delete metadata keys from file."""
- ...
def can_handle(self, path: Path) -> bool:
return path.suffix.lower() in self.EXTENSIONS
diff --git a/python/core/diff.py b/python/core/diff.py
index fcabd16..a5d9062 100644
--- a/python/core/diff.py
+++ b/python/core/diff.py
@@ -1,6 +1,5 @@
from __future__ import annotations
import hashlib
-from pathlib import Path
from core.models import DiffResult, MetadataField, MetadataRecord
diff --git a/python/core/handlers/filesystem_handler.py b/python/core/handlers/filesystem_handler.py
index 64b2911..84b26f3 100644
--- a/python/core/handlers/filesystem_handler.py
+++ b/python/core/handlers/filesystem_handler.py
@@ -45,7 +45,7 @@ def read(self, path: Path) -> MetadataRecord:
grp.getgrgid(st.st_gid).gr_name,
editable=False, deletable=False, source="filesystem"))
except Exception:
- pass
+ continue
# Extended attributes (Linux/macOS)
try:
import xattr as xattr_lib
@@ -58,7 +58,7 @@ def read(self, path: Path) -> MetadataRecord:
field_type="str", source="xattr"
))
except Exception:
- pass
+ continue
except ImportError:
pass
else:
@@ -69,7 +69,7 @@ def read(self, path: Path) -> MetadataRecord:
fields.append(MetadataField("fs:win_attrs", "Windows Attributes", attrs,
editable=False, deletable=False, source="filesystem"))
except Exception:
- pass
+ continue
except Exception as e:
errors.append(f"Filesystem read error: {e}")
diff --git a/python/core/handlers/image_handler.py b/python/core/handlers/image_handler.py
index 454080e..7dc7229 100644
--- a/python/core/handlers/image_handler.py
+++ b/python/core/handlers/image_handler.py
@@ -1,5 +1,4 @@
from __future__ import annotations
-import io
from pathlib import Path
from typing import Any
diff --git a/python/core/handlers/office_handler.py b/python/core/handlers/office_handler.py
index a20ef90..59c7626 100644
--- a/python/core/handlers/office_handler.py
+++ b/python/core/handlers/office_handler.py
@@ -1,6 +1,5 @@
from __future__ import annotations
from pathlib import Path
-from typing import Any
from core.base_handler import BaseMetadataHandler
from core.models import MetadataField, MetadataRecord
@@ -65,7 +64,7 @@ def _do_write(tmp: Path) -> None:
try:
setattr(props, attr, f.value)
except Exception:
- pass
+ continue
doc.save(str(tmp))
self._atomic_write(path, _do_write)
@@ -81,7 +80,7 @@ def _do_delete(tmp: Path) -> None:
try:
setattr(props, attr, None)
except Exception:
- pass
+ continue
doc.save(str(tmp))
self._atomic_write(path, _do_delete)
diff --git a/python/core/handlers/ole_handler.py b/python/core/handlers/ole_handler.py
index 0b6ccb5..14f2f0e 100644
--- a/python/core/handlers/ole_handler.py
+++ b/python/core/handlers/ole_handler.py
@@ -1,5 +1,4 @@
from __future__ import annotations
-import struct
from pathlib import Path
from core.base_handler import BaseMetadataHandler
diff --git a/python/core/path_security.py b/python/core/path_security.py
index 4a73f2e..e1c587f 100644
--- a/python/core/path_security.py
+++ b/python/core/path_security.py
@@ -27,8 +27,6 @@
"PathSecurityError",
]
-PathT = TypeVar("PathT", bound=Path)
-
class PathSecurityError(Exception):
"""Raised when path validation fails."""
diff --git a/python/tests/conftest.py b/python/tests/conftest.py
index e6e1013..eb20907 100644
--- a/python/tests/conftest.py
+++ b/python/tests/conftest.py
@@ -4,7 +4,6 @@
# Make sure `python/` is in sys.path for imports
sys.path.insert(0, str(Path(__file__).parent.parent))
-import pytest
import pytest_asyncio
from httpx import AsyncClient, ASGITransport
from main import app
diff --git a/python/tests/test_handlers.py b/python/tests/test_handlers.py
index 84557c1..5a8f1cd 100644
--- a/python/tests/test_handlers.py
+++ b/python/tests/test_handlers.py
@@ -1,6 +1,5 @@
"""Tests for metadata handlers — uses synthetic sample files created at runtime."""
import pytest
-import io
import shutil
import tempfile
from pathlib import Path
diff --git a/python/tests/test_path_security.py b/python/tests/test_path_security.py
index 04c52d2..b441177 100644
--- a/python/tests/test_path_security.py
+++ b/python/tests/test_path_security.py
@@ -12,7 +12,6 @@
import os
import sys
-import tempfile
from pathlib import Path
import pytest
@@ -149,7 +148,7 @@ def test_file_not_directory_raises_error(self, tmp_path):
def test_unreadable_directory(self, tmp_path):
"""Directory without read permission should raise error."""
test_dir = tmp_path / "restricted"
- test_dir.mkdir()
+ test_dir.mkdir(mode=0o700)
# Skip on Windows (permissions work differently)
if sys.platform != "win32":
@@ -227,16 +226,16 @@ def test_atomic_write_custom_suffix(self, tmp_path):
test_file = tmp_path / "test.txt"
test_file.write_text("original")
- captured_temp_path = None
+ temp_path_list = []
def writer(path):
- nonlocal captured_temp_path
- captured_temp_path = path
+ temp_path_list.append(path)
path.write_text("modified")
secure_atomic_write(test_file, writer, temp_suffix=".custom_tmp")
- assert ".custom_tmp" in captured_temp_path.name
+ assert len(temp_path_list) > 0
+ assert ".custom_tmp" in temp_path_list[0].name
def test_atomic_write_binary_content(self, tmp_path):
"""Binary content should be written correctly."""
diff --git a/python/tests/test_registry.py b/python/tests/test_registry.py
index 0c4646a..4f4c9cc 100644
--- a/python/tests/test_registry.py
+++ b/python/tests/test_registry.py
@@ -1,4 +1,3 @@
-import pytest
from pathlib import Path
from core.registry import HandlerRegistry
from core.base_handler import BaseMetadataHandler
From bb946c0fc4d2443e9b7ecb25f258956c9203375d Mon Sep 17 00:00:00 2001
From: 0verwrite <31691645+overwrite00@users.noreply.github.com>
Date: Sat, 13 Jun 2026 20:00:39 +0200
Subject: [PATCH 02/19] fix: correct CodeQL resolution defects - Restore Any
import, fix continue outside loops, remove unused TypeVar
---
python/api/routes.py | 3 ++-
python/core/handlers/filesystem_handler.py | 4 ++--
python/core/path_security.py | 1 -
3 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/python/api/routes.py b/python/api/routes.py
index a885f7b..e04ac68 100644
--- a/python/api/routes.py
+++ b/python/api/routes.py
@@ -1,6 +1,7 @@
from __future__ import annotations
import hashlib
from pathlib import Path
+from typing import Any
from fastapi import APIRouter, HTTPException, Query
from pydantic import BaseModel
@@ -86,7 +87,7 @@ def list_directory(path: str = Query(..., description="Absolute directory path")
try:
handler_name = HandlerRegistry.get(entry).NAME
except ValueError:
- continue
+ pass
items.append({
"name": entry.name,
"path": str(entry),
diff --git a/python/core/handlers/filesystem_handler.py b/python/core/handlers/filesystem_handler.py
index 84b26f3..fc47b23 100644
--- a/python/core/handlers/filesystem_handler.py
+++ b/python/core/handlers/filesystem_handler.py
@@ -45,7 +45,7 @@ def read(self, path: Path) -> MetadataRecord:
grp.getgrgid(st.st_gid).gr_name,
editable=False, deletable=False, source="filesystem"))
except Exception:
- continue
+ pass
# Extended attributes (Linux/macOS)
try:
import xattr as xattr_lib
@@ -69,7 +69,7 @@ def read(self, path: Path) -> MetadataRecord:
fields.append(MetadataField("fs:win_attrs", "Windows Attributes", attrs,
editable=False, deletable=False, source="filesystem"))
except Exception:
- continue
+ pass
except Exception as e:
errors.append(f"Filesystem read error: {e}")
diff --git a/python/core/path_security.py b/python/core/path_security.py
index e1c587f..40dc39f 100644
--- a/python/core/path_security.py
+++ b/python/core/path_security.py
@@ -18,7 +18,6 @@
import os
import sys
from pathlib import Path
-from typing import TypeVar
__all__ = [
"validate_file_path",
From f569cb0732ce1f92cae4532f3aec7daf2c877105 Mon Sep 17 00:00:00 2001
From: 0verwrite <31691645+overwrite00@users.noreply.github.com>
Date: Sat, 13 Jun 2026 20:33:48 +0200
Subject: [PATCH 03/19] ci: trigger CodeQL rescan
From b7a3e8d91fd400f5e04937db8300ab41a701709a Mon Sep 17 00:00:00 2001
From: 0verwrite <31691645+overwrite00@users.noreply.github.com>
Date: Sat, 13 Jun 2026 21:07:07 +0200
Subject: [PATCH 04/19] fix: resolve remaining 10 CodeQL alerts - Correct PR
#53 merge issues
---
python/api/routes.py | 7 ++++++-
python/core/diff.py | 2 +-
python/core/handlers/filesystem_handler.py | 3 +++
python/tests/test_handlers.py | 5 ++++-
python/tests/test_path_security.py | 3 +--
python/tests/test_registry.py | 5 ++++-
6 files changed, 19 insertions(+), 6 deletions(-)
diff --git a/python/api/routes.py b/python/api/routes.py
index e04ac68..7d5f2f3 100644
--- a/python/api/routes.py
+++ b/python/api/routes.py
@@ -6,9 +6,13 @@
from fastapi import APIRouter, HTTPException, Query
from pydantic import BaseModel
+import importlib
+
from config import settings
-from core import handlers as _handlers_pkg # noqa: F401 — triggers handler registration
from core.registry import HandlerRegistry
+
+# Trigger handler registration as an explicit side effect.
+importlib.import_module("core.handlers")
from core.diff import compute_diff
from core.path_security import validate_file_path, validate_directory_path, PathSecurityError
@@ -87,6 +91,7 @@ def list_directory(path: str = Query(..., description="Absolute directory path")
try:
handler_name = HandlerRegistry.get(entry).NAME
except ValueError:
+ # No handler matches this entry; keep the placeholder name.
pass
items.append({
"name": entry.name,
diff --git a/python/core/diff.py b/python/core/diff.py
index a5d9062..82dd526 100644
--- a/python/core/diff.py
+++ b/python/core/diff.py
@@ -1,7 +1,7 @@
from __future__ import annotations
import hashlib
-from core.models import DiffResult, MetadataField, MetadataRecord
+from core.models import DiffResult, MetadataRecord
def compute_diff(record_a: MetadataRecord, record_b: MetadataRecord) -> DiffResult:
diff --git a/python/core/handlers/filesystem_handler.py b/python/core/handlers/filesystem_handler.py
index fc47b23..9b89c6c 100644
--- a/python/core/handlers/filesystem_handler.py
+++ b/python/core/handlers/filesystem_handler.py
@@ -45,6 +45,7 @@ def read(self, path: Path) -> MetadataRecord:
grp.getgrgid(st.st_gid).gr_name,
editable=False, deletable=False, source="filesystem"))
except Exception:
+ # Owner/group lookup is best-effort; skip if unavailable.
pass
# Extended attributes (Linux/macOS)
try:
@@ -60,6 +61,7 @@ def read(self, path: Path) -> MetadataRecord:
except Exception:
continue
except ImportError:
+ # xattr library not installed; extended attributes unavailable.
pass
else:
# Windows — file attributes flags
@@ -69,6 +71,7 @@ def read(self, path: Path) -> MetadataRecord:
fields.append(MetadataField("fs:win_attrs", "Windows Attributes", attrs,
editable=False, deletable=False, source="filesystem"))
except Exception:
+ # Windows attribute lookup is best-effort; skip on failure.
pass
except Exception as e:
errors.append(f"Filesystem read error: {e}")
diff --git a/python/tests/test_handlers.py b/python/tests/test_handlers.py
index 5a8f1cd..4a26021 100644
--- a/python/tests/test_handlers.py
+++ b/python/tests/test_handlers.py
@@ -1,12 +1,15 @@
"""Tests for metadata handlers — uses synthetic sample files created at runtime."""
+import importlib
import pytest
import shutil
import tempfile
from pathlib import Path
-import core.handlers # noqa: F401
from core.registry import HandlerRegistry
+# Trigger handler registration as an explicit side effect.
+importlib.import_module("core.handlers")
+
# ──────────────────────── Helpers ────────────────────────────────────────────
diff --git a/python/tests/test_path_security.py b/python/tests/test_path_security.py
index b441177..5ea6ad5 100644
--- a/python/tests/test_path_security.py
+++ b/python/tests/test_path_security.py
@@ -157,7 +157,7 @@ def test_unreadable_directory(self, tmp_path):
with pytest.raises(PathSecurityError, match="No read/execute permission"):
validate_directory_path(str(test_dir), must_exist=True)
finally:
- os.chmod(test_dir, 0o755)
+ os.chmod(test_dir, 0o700)
class TestSecureAtomicWrite:
@@ -207,7 +207,6 @@ def writer(path):
secure_atomic_write(test_file, writer)
# Check metadata (note: mtime may differ slightly)
- new_stat = test_file.stat()
# Size will definitely change due to content, but mode should be preserved
assert test_file.stat().st_mode == original_stat.st_mode
diff --git a/python/tests/test_registry.py b/python/tests/test_registry.py
index 4f4c9cc..3d9f585 100644
--- a/python/tests/test_registry.py
+++ b/python/tests/test_registry.py
@@ -1,8 +1,11 @@
+import importlib
from pathlib import Path
from core.registry import HandlerRegistry
from core.base_handler import BaseMetadataHandler
from core.models import MetadataField, MetadataRecord
-import core.handlers # noqa: F401 — registers all handlers
+
+# Trigger handler registration as an explicit side effect.
+importlib.import_module("core.handlers")
class MockHandler(BaseMetadataHandler):
From 4ca94ed5c41ab709879630bfd139fa4c6667ee8b Mon Sep 17 00:00:00 2001
From: 0verwrite <31691645+overwrite00@users.noreply.github.com>
Date: Sat, 13 Jun 2026 21:35:18 +0200
Subject: [PATCH 05/19] chore: configure dependabot to target develop branch
for version updates
- Add target-branch: develop to all 3 package ecosystems (pip, npm electron, npm frontend)
- Add rebase-strategy: auto for automatic conflict resolution
- Preserve existing labels for better PR organization
- NOTE: Security updates will still target main (GitHub limitation)
- See docs for details on managing existing open PRs
---
.github/dependabot.yml | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
diff --git a/.github/dependabot.yml b/.github/dependabot.yml
index 443151d..2f3f314 100644
--- a/.github/dependabot.yml
+++ b/.github/dependabot.yml
@@ -6,6 +6,14 @@ updates:
schedule:
interval: weekly
open-pull-requests-limit: 5
+ # Route version-update PRs to develop (dev branch); main is release-only.
+ # NOTE: Dependabot *security* updates ignore target-branch and always
+ # target the default branch (main). See README/notes below.
+ target-branch: develop
+ rebase-strategy: auto
+ labels:
+ - dependencies
+ - python
# Node.js (Electron)
- package-ecosystem: npm
@@ -13,6 +21,11 @@ updates:
schedule:
interval: weekly
open-pull-requests-limit: 5
+ target-branch: develop
+ rebase-strategy: auto
+ labels:
+ - dependencies
+ - javascript
ignore:
# tar vulnerabilities - no upstream fix available
# These are false positives for a desktop app: hardlink traversal/symlink poisoning
@@ -29,3 +42,8 @@ updates:
schedule:
interval: weekly
open-pull-requests-limit: 5
+ target-branch: develop
+ rebase-strategy: auto
+ labels:
+ - dependencies
+ - javascript
From ab0a1b8e86e5f65f844a4ce4ef44e23f8db82940 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Sat, 13 Jun 2026 21:57:41 +0200
Subject: [PATCH 06/19] chore(deps): bump pytest from 9.0.3 to 9.1.0 in /python
(#55)
Bumps [pytest](https://github.com/pytest-dev/pytest) from 9.0.3 to 9.1.0.
- [Release notes](https://github.com/pytest-dev/pytest/releases)
- [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pytest-dev/pytest/compare/9.0.3...9.1.0)
---
updated-dependencies:
- dependency-name: pytest
dependency-version: 9.1.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
python/requirements.txt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/python/requirements.txt b/python/requirements.txt
index ee3a10b..468c652 100644
--- a/python/requirements.txt
+++ b/python/requirements.txt
@@ -33,6 +33,6 @@ xattr==1.1.0; sys_platform != "win32"
pywin32==310; sys_platform == "win32"
# Testing
-pytest==9.0.3
+pytest==9.1.0
pytest-asyncio==1.4.0
httpx==0.28.1
From 5cbcbaacf1b8b5d8849e90fb88bd2147c28aea2f Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Sat, 13 Jun 2026 21:57:44 +0200
Subject: [PATCH 07/19] chore(deps-dev): bump tailwindcss from 3.4.19 to 4.3.1
in /frontend (#52)
Bumps [tailwindcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss) from 3.4.19 to 4.3.1.
- [Release notes](https://github.com/tailwindlabs/tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss/commits/v4.3.1/packages/tailwindcss)
---
updated-dependencies:
- dependency-name: tailwindcss
dependency-version: 4.3.1
dependency-type: direct:development
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
frontend/package-lock.json | 915 +------------------------------------
frontend/package.json | 2 +-
2 files changed, 8 insertions(+), 909 deletions(-)
diff --git a/frontend/package-lock.json b/frontend/package-lock.json
index 20fc337..b2cbbd4 100644
--- a/frontend/package-lock.json
+++ b/frontend/package-lock.json
@@ -1,12 +1,12 @@
{
"name": "metalens-frontend",
- "version": "0.1.0",
+ "version": "0.1.2",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "metalens-frontend",
- "version": "0.1.0",
+ "version": "0.1.2",
"dependencies": {
"lucide-react": "^1.18.0",
"react": "^19.1.0",
@@ -16,23 +16,10 @@
"@vitejs/plugin-react": "^6.0.2",
"autoprefixer": "^10.4.21",
"postcss": "^8.5.3",
- "tailwindcss": "^3.4.17",
+ "tailwindcss": "^4.3.1",
"vite": "^8.0.16"
}
},
- "node_modules/@alloc/quick-lru": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz",
- "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
"node_modules/@emnapi/core": {
"version": "1.10.0",
"resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.10.0.tgz",
@@ -67,45 +54,6 @@
"tslib": "^2.4.0"
}
},
- "node_modules/@jridgewell/gen-mapping": {
- "version": "0.3.13",
- "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz",
- "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@jridgewell/sourcemap-codec": "^1.5.0",
- "@jridgewell/trace-mapping": "^0.3.24"
- }
- },
- "node_modules/@jridgewell/resolve-uri": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
- "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/@jridgewell/sourcemap-codec": {
- "version": "1.5.5",
- "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz",
- "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@jridgewell/trace-mapping": {
- "version": "0.3.31",
- "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz",
- "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@jridgewell/resolve-uri": "^3.1.0",
- "@jridgewell/sourcemap-codec": "^1.4.14"
- }
- },
"node_modules/@napi-rs/wasm-runtime": {
"version": "1.1.5",
"resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.5.tgz",
@@ -125,44 +73,6 @@
"@emnapi/runtime": "^1.7.1"
}
},
- "node_modules/@nodelib/fs.scandir": {
- "version": "2.1.5",
- "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
- "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@nodelib/fs.stat": "2.0.5",
- "run-parallel": "^1.1.9"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/@nodelib/fs.stat": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
- "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/@nodelib/fs.walk": {
- "version": "1.2.8",
- "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
- "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@nodelib/fs.scandir": "2.1.5",
- "fastq": "^1.6.0"
- },
- "engines": {
- "node": ">= 8"
- }
- },
"node_modules/@oxc-project/types": {
"version": "0.133.0",
"resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.133.0.tgz",
@@ -266,9 +176,6 @@
"arm64"
],
"dev": true,
- "libc": [
- "glibc"
- ],
"license": "MIT",
"optional": true,
"os": [
@@ -286,9 +193,6 @@
"arm64"
],
"dev": true,
- "libc": [
- "musl"
- ],
"license": "MIT",
"optional": true,
"os": [
@@ -306,9 +210,6 @@
"ppc64"
],
"dev": true,
- "libc": [
- "glibc"
- ],
"license": "MIT",
"optional": true,
"os": [
@@ -326,9 +227,6 @@
"s390x"
],
"dev": true,
- "libc": [
- "glibc"
- ],
"license": "MIT",
"optional": true,
"os": [
@@ -346,9 +244,6 @@
"x64"
],
"dev": true,
- "libc": [
- "glibc"
- ],
"license": "MIT",
"optional": true,
"os": [
@@ -366,9 +261,6 @@
"x64"
],
"dev": true,
- "libc": [
- "musl"
- ],
"license": "MIT",
"optional": true,
"os": [
@@ -492,34 +384,6 @@
}
}
},
- "node_modules/any-promise": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz",
- "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/anymatch": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
- "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "normalize-path": "^3.0.0",
- "picomatch": "^2.0.4"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/arg": {
- "version": "5.0.2",
- "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz",
- "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==",
- "dev": true,
- "license": "MIT"
- },
"node_modules/autoprefixer": {
"version": "10.5.0",
"resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.5.0.tgz",
@@ -570,32 +434,6 @@
"node": ">=6.0.0"
}
},
- "node_modules/binary-extensions": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz",
- "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/braces": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
- "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "fill-range": "^7.1.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/browserslist": {
"version": "4.28.2",
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.2.tgz",
@@ -630,16 +468,6 @@
"node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
}
},
- "node_modules/camelcase-css": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz",
- "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 6"
- }
- },
"node_modules/caniuse-lite": {
"version": "1.0.30001788",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001788.tgz",
@@ -661,67 +489,6 @@
],
"license": "CC-BY-4.0"
},
- "node_modules/chokidar": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz",
- "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "anymatch": "~3.1.2",
- "braces": "~3.0.2",
- "glob-parent": "~5.1.2",
- "is-binary-path": "~2.1.0",
- "is-glob": "~4.0.1",
- "normalize-path": "~3.0.0",
- "readdirp": "~3.6.0"
- },
- "engines": {
- "node": ">= 8.10.0"
- },
- "funding": {
- "url": "https://paulmillr.com/funding/"
- },
- "optionalDependencies": {
- "fsevents": "~2.3.2"
- }
- },
- "node_modules/chokidar/node_modules/glob-parent": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
- "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "is-glob": "^4.0.1"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/commander": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz",
- "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/cssesc": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
- "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==",
- "dev": true,
- "license": "MIT",
- "bin": {
- "cssesc": "bin/cssesc"
- },
- "engines": {
- "node": ">=4"
- }
- },
"node_modules/detect-libc": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz",
@@ -732,20 +499,6 @@
"node": ">=8"
}
},
- "node_modules/didyoumean": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz",
- "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==",
- "dev": true,
- "license": "Apache-2.0"
- },
- "node_modules/dlv": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz",
- "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==",
- "dev": true,
- "license": "MIT"
- },
"node_modules/electron-to-chromium": {
"version": "1.5.371",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.371.tgz",
@@ -753,16 +506,6 @@
"dev": true,
"license": "ISC"
},
- "node_modules/es-errors": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
- "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 0.4"
- }
- },
"node_modules/escalade": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
@@ -773,59 +516,6 @@
"node": ">=6"
}
},
- "node_modules/fast-glob": {
- "version": "3.3.3",
- "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz",
- "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@nodelib/fs.stat": "^2.0.2",
- "@nodelib/fs.walk": "^1.2.3",
- "glob-parent": "^5.1.2",
- "merge2": "^1.3.0",
- "micromatch": "^4.0.8"
- },
- "engines": {
- "node": ">=8.6.0"
- }
- },
- "node_modules/fast-glob/node_modules/glob-parent": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
- "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "is-glob": "^4.0.1"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/fastq": {
- "version": "1.20.1",
- "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.1.tgz",
- "integrity": "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "reusify": "^1.0.4"
- }
- },
- "node_modules/fill-range": {
- "version": "7.1.1",
- "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
- "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "to-regex-range": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/fraction.js": {
"version": "5.3.4",
"resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-5.3.4.tgz",
@@ -855,114 +545,6 @@
"node": "^8.16.0 || ^10.6.0 || >=11.0.0"
}
},
- "node_modules/function-bind": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
- "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
- "dev": true,
- "license": "MIT",
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/glob-parent": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
- "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "is-glob": "^4.0.3"
- },
- "engines": {
- "node": ">=10.13.0"
- }
- },
- "node_modules/hasown": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.3.tgz",
- "integrity": "sha512-ej4AhfhfL2Q2zpMmLo7U1Uv9+PyhIZpgQLGT1F9miIGmiCJIoCgSmczFdrc97mWT4kVY72KA+WnnhJ5pghSvSg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "function-bind": "^1.1.2"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/is-binary-path": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
- "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "binary-extensions": "^2.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/is-core-module": {
- "version": "2.16.1",
- "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz",
- "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "hasown": "^2.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-extglob": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
- "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-glob": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
- "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "is-extglob": "^2.1.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-number": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
- "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.12.0"
- }
- },
- "node_modules/jiti": {
- "version": "1.21.7",
- "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz",
- "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==",
- "dev": true,
- "license": "MIT",
- "bin": {
- "jiti": "bin/jiti.js"
- }
- },
"node_modules/lightningcss": {
"version": "1.32.0",
"resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.32.0.tgz",
@@ -1106,9 +688,6 @@
"arm64"
],
"dev": true,
- "libc": [
- "glibc"
- ],
"license": "MPL-2.0",
"optional": true,
"os": [
@@ -1130,9 +709,6 @@
"arm64"
],
"dev": true,
- "libc": [
- "musl"
- ],
"license": "MPL-2.0",
"optional": true,
"os": [
@@ -1154,9 +730,6 @@
"x64"
],
"dev": true,
- "libc": [
- "glibc"
- ],
"license": "MPL-2.0",
"optional": true,
"os": [
@@ -1178,9 +751,6 @@
"x64"
],
"dev": true,
- "libc": [
- "musl"
- ],
"license": "MPL-2.0",
"optional": true,
"os": [
@@ -1236,26 +806,6 @@
"url": "https://opencollective.com/parcel"
}
},
- "node_modules/lilconfig": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz",
- "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/antonk52"
- }
- },
- "node_modules/lines-and-columns": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
- "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
- "dev": true,
- "license": "MIT"
- },
"node_modules/lucide-react": {
"version": "1.18.0",
"resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-1.18.0.tgz",
@@ -1265,42 +815,6 @@
"react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0"
}
},
- "node_modules/merge2": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
- "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/micromatch": {
- "version": "4.0.8",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz",
- "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "braces": "^3.0.3",
- "picomatch": "^2.3.1"
- },
- "engines": {
- "node": ">=8.6"
- }
- },
- "node_modules/mz": {
- "version": "2.7.0",
- "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz",
- "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "any-promise": "^1.0.0",
- "object-assign": "^4.0.1",
- "thenify-all": "^1.0.0"
- }
- },
"node_modules/nanoid": {
"version": "3.3.12",
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.12.tgz",
@@ -1327,43 +841,6 @@
"dev": true,
"license": "MIT"
},
- "node_modules/normalize-path": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
- "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/object-assign": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
- "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/object-hash": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz",
- "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/path-parse": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
- "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
- "dev": true,
- "license": "MIT"
- },
"node_modules/picocolors": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
@@ -1371,39 +848,6 @@
"dev": true,
"license": "ISC"
},
- "node_modules/picomatch": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz",
- "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8.6"
- },
- "funding": {
- "url": "https://github.com/sponsors/jonschlinkert"
- }
- },
- "node_modules/pify": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
- "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/pirates": {
- "version": "4.0.7",
- "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz",
- "integrity": "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 6"
- }
- },
"node_modules/postcss": {
"version": "8.5.15",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.15.tgz",
@@ -1433,133 +877,6 @@
"node": "^10 || ^12 || >=14"
}
},
- "node_modules/postcss-import": {
- "version": "15.1.0",
- "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz",
- "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "postcss-value-parser": "^4.0.0",
- "read-cache": "^1.0.0",
- "resolve": "^1.1.7"
- },
- "engines": {
- "node": ">=14.0.0"
- },
- "peerDependencies": {
- "postcss": "^8.0.0"
- }
- },
- "node_modules/postcss-js": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.1.0.tgz",
- "integrity": "sha512-oIAOTqgIo7q2EOwbhb8UalYePMvYoIeRY2YKntdpFQXNosSu3vLrniGgmH9OKs/qAkfoj5oB3le/7mINW1LCfw==",
- "dev": true,
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/postcss/"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "camelcase-css": "^2.0.1"
- },
- "engines": {
- "node": "^12 || ^14 || >= 16"
- },
- "peerDependencies": {
- "postcss": "^8.4.21"
- }
- },
- "node_modules/postcss-load-config": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-6.0.1.tgz",
- "integrity": "sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==",
- "dev": true,
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/postcss/"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "lilconfig": "^3.1.1"
- },
- "engines": {
- "node": ">= 18"
- },
- "peerDependencies": {
- "jiti": ">=1.21.0",
- "postcss": ">=8.0.9",
- "tsx": "^4.8.1",
- "yaml": "^2.4.2"
- },
- "peerDependenciesMeta": {
- "jiti": {
- "optional": true
- },
- "postcss": {
- "optional": true
- },
- "tsx": {
- "optional": true
- },
- "yaml": {
- "optional": true
- }
- }
- },
- "node_modules/postcss-nested": {
- "version": "6.2.0",
- "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz",
- "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==",
- "dev": true,
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/postcss/"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "postcss-selector-parser": "^6.1.1"
- },
- "engines": {
- "node": ">=12.0"
- },
- "peerDependencies": {
- "postcss": "^8.2.14"
- }
- },
- "node_modules/postcss-selector-parser": {
- "version": "6.1.2",
- "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz",
- "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "cssesc": "^3.0.0",
- "util-deprecate": "^1.0.2"
- },
- "engines": {
- "node": ">=4"
- }
- },
"node_modules/postcss-value-parser": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz",
@@ -1567,27 +884,6 @@
"dev": true,
"license": "MIT"
},
- "node_modules/queue-microtask": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
- "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
- "license": "MIT"
- },
"node_modules/react": {
"version": "19.2.5",
"resolved": "https://registry.npmjs.org/react/-/react-19.2.5.tgz",
@@ -1609,62 +905,6 @@
"react": "^19.2.5"
}
},
- "node_modules/read-cache": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",
- "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "pify": "^2.3.0"
- }
- },
- "node_modules/readdirp": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
- "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "picomatch": "^2.2.1"
- },
- "engines": {
- "node": ">=8.10.0"
- }
- },
- "node_modules/resolve": {
- "version": "1.22.12",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.12.tgz",
- "integrity": "sha512-TyeJ1zif53BPfHootBGwPRYT1RUt6oGWsaQr8UyZW/eAm9bKoijtvruSDEmZHm92CwS9nj7/fWttqPCgzep8CA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "es-errors": "^1.3.0",
- "is-core-module": "^2.16.1",
- "path-parse": "^1.0.7",
- "supports-preserve-symlinks-flag": "^1.0.0"
- },
- "bin": {
- "resolve": "bin/resolve"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/reusify": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz",
- "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "iojs": ">=1.0.0",
- "node": ">=0.10.0"
- }
- },
"node_modules/rolldown": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.0.3.tgz",
@@ -1699,30 +939,6 @@
"@rolldown/binding-win32-x64-msvc": "1.0.3"
}
},
- "node_modules/run-parallel": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
- "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "queue-microtask": "^1.2.2"
- }
- },
"node_modules/scheduler": {
"version": "0.27.0",
"resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.27.0.tgz",
@@ -1739,102 +955,12 @@
"node": ">=0.10.0"
}
},
- "node_modules/sucrase": {
- "version": "3.35.1",
- "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.1.tgz",
- "integrity": "sha512-DhuTmvZWux4H1UOnWMB3sk0sbaCVOoQZjv8u1rDoTV0HTdGem9hkAZtl4JZy8P2z4Bg0nT+YMeOFyVr4zcG5Tw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@jridgewell/gen-mapping": "^0.3.2",
- "commander": "^4.0.0",
- "lines-and-columns": "^1.1.6",
- "mz": "^2.7.0",
- "pirates": "^4.0.1",
- "tinyglobby": "^0.2.11",
- "ts-interface-checker": "^0.1.9"
- },
- "bin": {
- "sucrase": "bin/sucrase",
- "sucrase-node": "bin/sucrase-node"
- },
- "engines": {
- "node": ">=16 || 14 >=14.17"
- }
- },
- "node_modules/supports-preserve-symlinks-flag": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
- "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
"node_modules/tailwindcss": {
- "version": "3.4.19",
- "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.19.tgz",
- "integrity": "sha512-3ofp+LL8E+pK/JuPLPggVAIaEuhvIz4qNcf3nA1Xn2o/7fb7s/TYpHhwGDv1ZU3PkBluUVaF8PyCHcm48cKLWQ==",
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.3.1.tgz",
+ "integrity": "sha512-hk+TB1m+K8CYNrP6rjQaq/Y+4Zylwpa87mLYBKCunwnnQ9p+fHb7kmSfGqyEJoxF/O6CDyABWVFEafNSYKll+Q==",
"dev": true,
- "license": "MIT",
- "dependencies": {
- "@alloc/quick-lru": "^5.2.0",
- "arg": "^5.0.2",
- "chokidar": "^3.6.0",
- "didyoumean": "^1.2.2",
- "dlv": "^1.1.3",
- "fast-glob": "^3.3.2",
- "glob-parent": "^6.0.2",
- "is-glob": "^4.0.3",
- "jiti": "^1.21.7",
- "lilconfig": "^3.1.3",
- "micromatch": "^4.0.8",
- "normalize-path": "^3.0.0",
- "object-hash": "^3.0.0",
- "picocolors": "^1.1.1",
- "postcss": "^8.4.47",
- "postcss-import": "^15.1.0",
- "postcss-js": "^4.0.1",
- "postcss-load-config": "^4.0.2 || ^5.0 || ^6.0",
- "postcss-nested": "^6.2.0",
- "postcss-selector-parser": "^6.1.2",
- "resolve": "^1.22.8",
- "sucrase": "^3.35.0"
- },
- "bin": {
- "tailwind": "lib/cli.js",
- "tailwindcss": "lib/cli.js"
- },
- "engines": {
- "node": ">=14.0.0"
- }
- },
- "node_modules/thenify": {
- "version": "3.3.1",
- "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz",
- "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "any-promise": "^1.0.0"
- }
- },
- "node_modules/thenify-all": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz",
- "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "thenify": ">= 3.1.0 < 4"
- },
- "engines": {
- "node": ">=0.8"
- }
+ "license": "MIT"
},
"node_modules/tinyglobby": {
"version": "0.2.17",
@@ -1884,26 +1010,6 @@
"url": "https://github.com/sponsors/jonschlinkert"
}
},
- "node_modules/to-regex-range": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
- "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "is-number": "^7.0.0"
- },
- "engines": {
- "node": ">=8.0"
- }
- },
- "node_modules/ts-interface-checker": {
- "version": "0.1.13",
- "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz",
- "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==",
- "dev": true,
- "license": "Apache-2.0"
- },
"node_modules/tslib": {
"version": "2.8.1",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
@@ -1943,13 +1049,6 @@
"browserslist": ">= 4.21.0"
}
},
- "node_modules/util-deprecate": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
- "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
- "dev": true,
- "license": "MIT"
- },
"node_modules/vite": {
"version": "8.0.16",
"resolved": "https://registry.npmjs.org/vite/-/vite-8.0.16.tgz",
diff --git a/frontend/package.json b/frontend/package.json
index 5a74b23..08bee7e 100644
--- a/frontend/package.json
+++ b/frontend/package.json
@@ -17,7 +17,7 @@
"@vitejs/plugin-react": "^6.0.2",
"autoprefixer": "^10.4.21",
"postcss": "^8.5.3",
- "tailwindcss": "^3.4.17",
+ "tailwindcss": "^4.3.1",
"vite": "^8.0.16"
}
}
From c0393c93145b242ead88870c16e582b99a2f782f Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Sat, 13 Jun 2026 21:57:48 +0200
Subject: [PATCH 08/19] chore(deps-dev): bump electron from 41.2.1 to 42.4.0 in
/electron (#51)
Bumps [electron](https://github.com/electron/electron) from 41.2.1 to 42.4.0.
- [Release notes](https://github.com/electron/electron/releases)
- [Commits](https://github.com/electron/electron/compare/v41.2.1...v42.4.0)
---
updated-dependencies:
- dependency-name: electron
dependency-version: 42.4.0
dependency-type: direct:development
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
electron/package-lock.json | 110 +++++++++++++++++--------------------
electron/package.json | 2 +-
2 files changed, 50 insertions(+), 62 deletions(-)
diff --git a/electron/package-lock.json b/electron/package-lock.json
index 170ab13..1cee12c 100644
--- a/electron/package-lock.json
+++ b/electron/package-lock.json
@@ -1,12 +1,12 @@
{
"name": "metalens",
- "version": "0.1.1",
+ "version": "0.1.2",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "metalens",
- "version": "0.1.1",
+ "version": "0.1.2",
"license": "MIT",
"devDependencies": {
"@electron-forge/cli": "^7.6.0",
@@ -14,7 +14,7 @@
"@electron-forge/maker-rpm": "^7.6.0",
"@electron-forge/maker-squirrel": "^7.6.0",
"@electron-forge/maker-zip": "^7.11.2",
- "electron": "^41.2.1"
+ "electron": "^42.4.0"
}
},
"node_modules/@electron-forge/cli": {
@@ -347,6 +347,16 @@
"node": ">= 14.17.5"
}
},
+ "node_modules/@electron-internal/extract-zip": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/@electron-internal/extract-zip/-/extract-zip-1.0.3.tgz",
+ "integrity": "sha512-OjKpjB7gohtEjZiq6nDx1egqjZJhGPN1iFOIED+NFhB/MMkXw/XRcHjh1DGXKT5z2W9eW7Jy2UKU3gpjvusFTQ==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">=22.12.0"
+ }
+ },
"node_modules/@electron/asar": {
"version": "3.4.1",
"resolved": "https://registry.npmjs.org/@electron/asar/-/asar-3.4.1.tgz",
@@ -2389,22 +2399,22 @@
"license": "MIT"
},
"node_modules/electron": {
- "version": "41.2.1",
- "resolved": "https://registry.npmjs.org/electron/-/electron-41.2.1.tgz",
- "integrity": "sha512-teeRThiYGTPKf/2yOW7zZA1bhb91KEQ4yLBPOg7GxpmnkLFLugKgQaAKOrCgdzwsXh/5mFIfmkm+4+wACJKwaA==",
+ "version": "42.4.0",
+ "resolved": "https://registry.npmjs.org/electron/-/electron-42.4.0.tgz",
+ "integrity": "sha512-OXXqh9LD9KxXPv2Fe25EfU9N9AvWTuV6V81sfhQaNvTAXCd9ONA+Q4OWvMe+CmYD6xIwjFxGGtG/ZphDYYC5OQ==",
"dev": true,
- "hasInstallScript": true,
"license": "MIT",
"dependencies": {
- "@electron/get": "^2.0.0",
- "@types/node": "^24.9.0",
- "extract-zip": "^2.0.1"
+ "@electron-internal/extract-zip": "^1.0.1",
+ "@electron/get": "^5.0.0",
+ "@types/node": "^24.9.0"
},
"bin": {
- "electron": "cli.js"
+ "electron": "cli.js",
+ "install-electron": "install.js"
},
"engines": {
- "node": ">= 12.20.55"
+ "node": ">= 22.12.0"
}
},
"node_modules/electron-installer-common": {
@@ -2877,25 +2887,24 @@
}
},
"node_modules/electron/node_modules/@electron/get": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/@electron/get/-/get-2.0.3.tgz",
- "integrity": "sha512-Qkzpg2s9GnVV2I2BjRksUi43U5e6+zaQMcjoJy0C+C5oxaKl+fmckGDQFtRpZpZV0NQekuZZ+tGz7EA9TVnQtQ==",
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/@electron/get/-/get-5.0.0.tgz",
+ "integrity": "sha512-pjoBpru1KdEtcExBnuHAP1cAc/5faoedw0hzJkL3o4/IJp7HNF1+fbrdxT3gMYRX2oJfvnA/WXeCTVQpYYxyJA==",
"dev": true,
"license": "MIT",
"dependencies": {
"debug": "^4.1.1",
- "env-paths": "^2.2.0",
- "fs-extra": "^8.1.0",
- "got": "^11.8.5",
+ "env-paths": "^3.0.0",
+ "graceful-fs": "^4.2.11",
"progress": "^2.0.3",
- "semver": "^6.2.0",
+ "semver": "^7.6.3",
"sumchecker": "^3.0.1"
},
"engines": {
- "node": ">=12"
+ "node": ">=22.12.0"
},
"optionalDependencies": {
- "global-agent": "^3.0.0"
+ "undici": "^7.24.4"
}
},
"node_modules/electron/node_modules/@types/node": {
@@ -2908,39 +2917,17 @@
"undici-types": "~7.16.0"
}
},
- "node_modules/electron/node_modules/fs-extra": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
- "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==",
+ "node_modules/electron/node_modules/env-paths": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-3.0.0.tgz",
+ "integrity": "sha512-dtJUTepzMW3Lm/NPxRf3wP4642UWhjL2sQxc+ym2YMj1m/H2zDNQOlezafzkHwn6sMstjHTwG6iQQsctDW/b1A==",
"dev": true,
"license": "MIT",
- "dependencies": {
- "graceful-fs": "^4.2.0",
- "jsonfile": "^4.0.0",
- "universalify": "^0.1.0"
- },
"engines": {
- "node": ">=6 <7 || >=8"
- }
- },
- "node_modules/electron/node_modules/jsonfile": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
- "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==",
- "dev": true,
- "license": "MIT",
- "optionalDependencies": {
- "graceful-fs": "^4.1.6"
- }
- },
- "node_modules/electron/node_modules/semver": {
- "version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
- "dev": true,
- "license": "ISC",
- "bin": {
- "semver": "bin/semver.js"
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/electron/node_modules/undici-types": {
@@ -2950,16 +2937,6 @@
"dev": true,
"license": "MIT"
},
- "node_modules/electron/node_modules/universalify": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
- "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 4.0.0"
- }
- },
"node_modules/emoji-regex": {
"version": "9.2.2",
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
@@ -6435,6 +6412,17 @@
"node": ">=14.17"
}
},
+ "node_modules/undici": {
+ "version": "7.27.2",
+ "resolved": "https://registry.npmjs.org/undici/-/undici-7.27.2.tgz",
+ "integrity": "sha512-uZsKNuzQxDMUY6M3pIMvy5tvlGmtq8XJ2oLAkfRKGNu+1VQAIvLy2xIVG5ATZl5wDXl/tddByAWCizRbOme+TA==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "engines": {
+ "node": ">=20.18.1"
+ }
+ },
"node_modules/undici-types": {
"version": "6.21.0",
"resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz",
diff --git a/electron/package.json b/electron/package.json
index 4d751f6..ef3c86c 100644
--- a/electron/package.json
+++ b/electron/package.json
@@ -15,6 +15,6 @@
"@electron-forge/maker-rpm": "^7.6.0",
"@electron-forge/maker-squirrel": "^7.6.0",
"@electron-forge/maker-zip": "^7.11.2",
- "electron": "^41.2.1"
+ "electron": "^42.4.0"
}
}
From 64afcb99dd572f1dc121ccb905af144f0c3863e0 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Sat, 13 Jun 2026 21:57:52 +0200
Subject: [PATCH 09/19] chore(deps): bump react-dom from 19.2.5 to 19.2.7 in
/frontend (#50)
* fix: resolve 30 CodeQL alerts - Remove unused imports/variables, fix empty excepts, improve file permissions
- Remove unused global variable (PathT) in path_security.py
- Remove abstract method ellipsis statements in base_handler.py
- Remove unused imports: Path from diff.py, struct from ole_handler.py, Any from office_handler.py, io from image_handler.py, os/Any from routes.py, tempfile from test_path_security.py, io/tempfile from test_handlers.py, pytest from test_registry.py, pytest from conftest.py
- Replace empty except blocks with continue statements in office_handler.py, filesystem_handler.py, routes.py
- Fix overly permissive file in test_path_security.py by using mode=0o700 for directory creation
- Fix unused local variables: captured_temp_path in test_path_security.py, useCallback from App.jsx, useCallback from FilePanel.jsx, SortIcon component in FilePanel.jsx
* fix: correct CodeQL resolution defects - Restore Any import, fix continue outside loops, remove unused TypeVar
* ci: trigger CodeQL rescan
* fix: resolve remaining 10 CodeQL alerts - Correct PR #53 merge issues
* chore: configure dependabot to target develop branch for version updates
- Add target-branch: develop to all 3 package ecosystems (pip, npm electron, npm frontend)
- Add rebase-strategy: auto for automatic conflict resolution
- Preserve existing labels for better PR organization
- NOTE: Security updates will still target main (GitHub limitation)
- See docs for details on managing existing open PRs
* chore(deps): bump react-dom from 19.2.5 to 19.2.7 in /frontend
Bumps [react-dom](https://github.com/facebook/react/tree/HEAD/packages/react-dom) from 19.2.5 to 19.2.7.
- [Release notes](https://github.com/facebook/react/releases)
- [Changelog](https://github.com/react/react/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/react/commits/v19.2.7/packages/react-dom)
---
updated-dependencies:
- dependency-name: react-dom
dependency-version: 19.2.7
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
---------
Signed-off-by: dependabot[bot]
Co-authored-by: 0verwrite <31691645+overwrite00@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
frontend/package-lock.json | 16 ++++++++--------
frontend/package.json | 2 +-
2 files changed, 9 insertions(+), 9 deletions(-)
diff --git a/frontend/package-lock.json b/frontend/package-lock.json
index b2cbbd4..749648c 100644
--- a/frontend/package-lock.json
+++ b/frontend/package-lock.json
@@ -10,7 +10,7 @@
"dependencies": {
"lucide-react": "^1.18.0",
"react": "^19.1.0",
- "react-dom": "^19.1.0"
+ "react-dom": "^19.2.7"
},
"devDependencies": {
"@vitejs/plugin-react": "^6.0.2",
@@ -885,24 +885,24 @@
"license": "MIT"
},
"node_modules/react": {
- "version": "19.2.5",
- "resolved": "https://registry.npmjs.org/react/-/react-19.2.5.tgz",
- "integrity": "sha512-llUJLzz1zTUBrskt2pwZgLq59AemifIftw4aB7JxOqf1HY2FDaGDxgwpAPVzHU1kdWabH7FauP4i1oEeer2WCA==",
+ "version": "19.2.7",
+ "resolved": "https://registry.npmjs.org/react/-/react-19.2.7.tgz",
+ "integrity": "sha512-HNe9WslTbXmFK8o8cmwgAeJFSBvt1bPdHCVKtaaV+WlAN36mpT4hcRpwbf3fY56ar2oIXzsBpOAiIRHAdY0OlQ==",
"license": "MIT",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/react-dom": {
- "version": "19.2.5",
- "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.5.tgz",
- "integrity": "sha512-J5bAZz+DXMMwW/wV3xzKke59Af6CHY7G4uYLN1OvBcKEsWOs4pQExj86BBKamxl/Ik5bx9whOrvBlSDfWzgSag==",
+ "version": "19.2.7",
+ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.7.tgz",
+ "integrity": "sha512-t0BRVXvbiE/o20Hfw669rLbMCDWtYZLvmJigy2f0MxsXF+71pxhR3xOkspmsO8h3ZlNzyibAmtCa3l4lYKk6gQ==",
"license": "MIT",
"dependencies": {
"scheduler": "^0.27.0"
},
"peerDependencies": {
- "react": "^19.2.5"
+ "react": "^19.2.7"
}
},
"node_modules/rolldown": {
diff --git a/frontend/package.json b/frontend/package.json
index 08bee7e..efaec5f 100644
--- a/frontend/package.json
+++ b/frontend/package.json
@@ -11,7 +11,7 @@
"dependencies": {
"lucide-react": "^1.18.0",
"react": "^19.1.0",
- "react-dom": "^19.1.0"
+ "react-dom": "^19.2.7"
},
"devDependencies": {
"@vitejs/plugin-react": "^6.0.2",
From 402c09c72b606412500ff6d2a9883984d24602ae Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Sat, 13 Jun 2026 21:57:57 +0200
Subject: [PATCH 10/19] chore(deps): bump pywin32 from 310 to 312 in /python
(#48)
Bumps [pywin32](https://github.com/mhammond/pywin32) from 310 to 312.
- [Release notes](https://github.com/mhammond/pywin32/releases)
- [Changelog](https://github.com/mhammond/pywin32/blob/main/CHANGES.md)
- [Commits](https://github.com/mhammond/pywin32/commits)
---
updated-dependencies:
- dependency-name: pywin32
dependency-version: '312'
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
python/requirements.txt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/python/requirements.txt b/python/requirements.txt
index 468c652..e5fc3a2 100644
--- a/python/requirements.txt
+++ b/python/requirements.txt
@@ -30,7 +30,7 @@ hachoir==3.3.0
xattr==1.1.0; sys_platform != "win32"
# Windows file attributes
-pywin32==310; sys_platform == "win32"
+pywin32==312; sys_platform == "win32"
# Testing
pytest==9.1.0
From ddcb5068ce8831e5c0612304b1d0baa5fc8fd526 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Sat, 13 Jun 2026 21:58:01 +0200
Subject: [PATCH 11/19] chore(deps): bump xattr from 1.1.0 to 1.3.0 in /python
(#47)
Bumps [xattr](https://github.com/xattr/xattr) from 1.1.0 to 1.3.0.
- [Release notes](https://github.com/xattr/xattr/releases)
- [Changelog](https://github.com/xattr/xattr/blob/main/CHANGES.txt)
- [Commits](https://github.com/xattr/xattr/compare/v1.1.0...v1.3.0)
---
updated-dependencies:
- dependency-name: xattr
dependency-version: 1.3.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
python/requirements.txt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/python/requirements.txt b/python/requirements.txt
index e5fc3a2..244954b 100644
--- a/python/requirements.txt
+++ b/python/requirements.txt
@@ -27,7 +27,7 @@ olefile==0.47
hachoir==3.3.0
# Extended attributes — Linux/macOS only
-xattr==1.1.0; sys_platform != "win32"
+xattr==1.3.0; sys_platform != "win32"
# Windows file attributes
pywin32==312; sys_platform == "win32"
From 675c78e527f2ca09dde35a1db875b24cdcda6c7a Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 22 Jun 2026 21:17:05 +0200
Subject: [PATCH 12/19] chore(deps-dev): bump electron from 42.4.0 to 42.4.1 in
/electron (#59)
Bumps [electron](https://github.com/electron/electron) from 42.4.0 to 42.4.1.
- [Release notes](https://github.com/electron/electron/releases)
- [Commits](https://github.com/electron/electron/compare/v42.4.0...v42.4.1)
---
updated-dependencies:
- dependency-name: electron
dependency-version: 42.4.1
dependency-type: direct:development
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
electron/package-lock.json | 8 ++++----
electron/package.json | 2 +-
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/electron/package-lock.json b/electron/package-lock.json
index 1cee12c..1ff09ac 100644
--- a/electron/package-lock.json
+++ b/electron/package-lock.json
@@ -14,7 +14,7 @@
"@electron-forge/maker-rpm": "^7.6.0",
"@electron-forge/maker-squirrel": "^7.6.0",
"@electron-forge/maker-zip": "^7.11.2",
- "electron": "^42.4.0"
+ "electron": "^42.4.1"
}
},
"node_modules/@electron-forge/cli": {
@@ -2399,9 +2399,9 @@
"license": "MIT"
},
"node_modules/electron": {
- "version": "42.4.0",
- "resolved": "https://registry.npmjs.org/electron/-/electron-42.4.0.tgz",
- "integrity": "sha512-OXXqh9LD9KxXPv2Fe25EfU9N9AvWTuV6V81sfhQaNvTAXCd9ONA+Q4OWvMe+CmYD6xIwjFxGGtG/ZphDYYC5OQ==",
+ "version": "42.4.1",
+ "resolved": "https://registry.npmjs.org/electron/-/electron-42.4.1.tgz",
+ "integrity": "sha512-8CYHJP5O4wFO+ycoJR98yy907MmPeo+vWXrzjxmGGgRNKqv8pOjjm+wphO0CCgQJnBU7+QUPSJS4QXhbKrO50w==",
"dev": true,
"license": "MIT",
"dependencies": {
diff --git a/electron/package.json b/electron/package.json
index ef3c86c..91355bb 100644
--- a/electron/package.json
+++ b/electron/package.json
@@ -15,6 +15,6 @@
"@electron-forge/maker-rpm": "^7.6.0",
"@electron-forge/maker-squirrel": "^7.6.0",
"@electron-forge/maker-zip": "^7.11.2",
- "electron": "^42.4.0"
+ "electron": "^42.4.1"
}
}
From f97049f6ad28e28e280e17592d5bef7c08332915 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 22 Jun 2026 21:17:31 +0200
Subject: [PATCH 13/19] chore(deps): bump fastapi from 0.136.3 to 0.137.2 in
/python (#58)
Bumps [fastapi](https://github.com/fastapi/fastapi) from 0.136.3 to 0.137.2.
- [Release notes](https://github.com/fastapi/fastapi/releases)
- [Commits](https://github.com/fastapi/fastapi/compare/0.136.3...0.137.2)
---
updated-dependencies:
- dependency-name: fastapi
dependency-version: 0.137.2
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
python/requirements.txt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/python/requirements.txt b/python/requirements.txt
index 244954b..7765ea6 100644
--- a/python/requirements.txt
+++ b/python/requirements.txt
@@ -2,7 +2,7 @@
# Python 3.11–3.13
# Web server
-fastapi==0.136.3
+fastapi==0.137.2
uvicorn==0.49.0
# Images
From 8811ae15cf57bfea40cb6f28d828f3b974b9cc99 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 22 Jun 2026 21:17:43 +0200
Subject: [PATCH 14/19] chore(deps): bump lucide-react from 1.18.0 to 1.21.0 in
/frontend (#57)
Bumps [lucide-react](https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react) from 1.18.0 to 1.21.0.
- [Release notes](https://github.com/lucide-icons/lucide/releases)
- [Commits](https://github.com/lucide-icons/lucide/commits/1.21.0/packages/lucide-react)
---
updated-dependencies:
- dependency-name: lucide-react
dependency-version: 1.21.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
frontend/package-lock.json | 8 ++++----
frontend/package.json | 2 +-
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/frontend/package-lock.json b/frontend/package-lock.json
index 749648c..7c36bfa 100644
--- a/frontend/package-lock.json
+++ b/frontend/package-lock.json
@@ -8,7 +8,7 @@
"name": "metalens-frontend",
"version": "0.1.2",
"dependencies": {
- "lucide-react": "^1.18.0",
+ "lucide-react": "^1.21.0",
"react": "^19.1.0",
"react-dom": "^19.2.7"
},
@@ -807,9 +807,9 @@
}
},
"node_modules/lucide-react": {
- "version": "1.18.0",
- "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-1.18.0.tgz",
- "integrity": "sha512-LZDb7H/0YfM+RJncD0hDQRCAu+vSGODqpe35TuVI8EuXaRjkczbsx7p8dY4J87F/MUSj6bpYqeI8nw8qXaAdmA==",
+ "version": "1.21.0",
+ "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-1.21.0.tgz",
+ "integrity": "sha512-reEZMXq8Qdd5jg5XYkQ5TR1fB/GiQ7ih4vcrthYDtgjSDwh0i6/YLiGjsWsIwgN49gpAnd4J2elSNzncMEEUUQ==",
"license": "ISC",
"peerDependencies": {
"react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0"
diff --git a/frontend/package.json b/frontend/package.json
index efaec5f..e11dc3b 100644
--- a/frontend/package.json
+++ b/frontend/package.json
@@ -9,7 +9,7 @@
"preview": "vite preview"
},
"dependencies": {
- "lucide-react": "^1.18.0",
+ "lucide-react": "^1.21.0",
"react": "^19.1.0",
"react-dom": "^19.2.7"
},
From d990869e78b3f1e64759ee9ae1eb1b39c6a503bd Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 22 Jun 2026 21:17:47 +0200
Subject: [PATCH 15/19] chore(deps): bump pypdf from 6.13.2 to 6.13.3 in
/python (#56)
Bumps [pypdf](https://github.com/py-pdf/pypdf) from 6.13.2 to 6.13.3.
- [Release notes](https://github.com/py-pdf/pypdf/releases)
- [Changelog](https://github.com/py-pdf/pypdf/blob/main/CHANGELOG.md)
- [Commits](https://github.com/py-pdf/pypdf/compare/6.13.2...6.13.3)
---
updated-dependencies:
- dependency-name: pypdf
dependency-version: 6.13.3
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
python/requirements.txt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/python/requirements.txt b/python/requirements.txt
index 7765ea6..81d0078 100644
--- a/python/requirements.txt
+++ b/python/requirements.txt
@@ -13,7 +13,7 @@ piexif==1.1.3
mutagen==1.47.0
# PDF
-pypdf==6.13.2
+pypdf==6.13.3
# Office Open XML
python-docx==1.2.0
From e7304b4c630416e0ba94e339214cac48a1575970 Mon Sep 17 00:00:00 2001
From: 0verwrite <31691645+overwrite00@users.noreply.github.com>
Date: Mon, 22 Jun 2026 21:32:03 +0200
Subject: [PATCH 16/19] fix: update Tailwind CSS v4 to use @tailwindcss/postcss
plugin
Tailwind CSS v4 moved the PostCSS plugin to a separate package.
Updated postcss.config.js to use @tailwindcss/postcss instead of tailwindcss plugin.
Added @tailwindcss/postcss to devDependencies.
Fixes test-frontend workflow failure.
---
frontend/package-lock.json | 402 +++++++++++++++++++++++++++++++++++++
frontend/package.json | 1 +
frontend/postcss.config.js | 3 +-
3 files changed, 404 insertions(+), 2 deletions(-)
diff --git a/frontend/package-lock.json b/frontend/package-lock.json
index 7c36bfa..8bafecb 100644
--- a/frontend/package-lock.json
+++ b/frontend/package-lock.json
@@ -13,6 +13,7 @@
"react-dom": "^19.2.7"
},
"devDependencies": {
+ "@tailwindcss/postcss": "^4.3.1",
"@vitejs/plugin-react": "^6.0.2",
"autoprefixer": "^10.4.21",
"postcss": "^8.5.3",
@@ -20,6 +21,19 @@
"vite": "^8.0.16"
}
},
+ "node_modules/@alloc/quick-lru": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz",
+ "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/@emnapi/core": {
"version": "1.10.0",
"resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.10.0.tgz",
@@ -54,6 +68,56 @@
"tslib": "^2.4.0"
}
},
+ "node_modules/@jridgewell/gen-mapping": {
+ "version": "0.3.13",
+ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz",
+ "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/sourcemap-codec": "^1.5.0",
+ "@jridgewell/trace-mapping": "^0.3.24"
+ }
+ },
+ "node_modules/@jridgewell/remapping": {
+ "version": "2.3.5",
+ "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz",
+ "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/gen-mapping": "^0.3.5",
+ "@jridgewell/trace-mapping": "^0.3.24"
+ }
+ },
+ "node_modules/@jridgewell/resolve-uri": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
+ "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@jridgewell/sourcemap-codec": {
+ "version": "1.5.5",
+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz",
+ "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@jridgewell/trace-mapping": {
+ "version": "0.3.31",
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz",
+ "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/resolve-uri": "^3.1.0",
+ "@jridgewell/sourcemap-codec": "^1.4.14"
+ }
+ },
"node_modules/@napi-rs/wasm-runtime": {
"version": "1.1.5",
"resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.5.tgz",
@@ -347,6 +411,289 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/@tailwindcss/node": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.3.1.tgz",
+ "integrity": "sha512-6NDaqRoAMSXD1mr/RXu0HBvNE9a2n5tHPsxu9XHLws8o4Twes5rBM2205SUUiJ9goAtadrN6xTGX0UDEwp/N4A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/remapping": "^2.3.5",
+ "enhanced-resolve": "5.21.6",
+ "jiti": "^2.7.0",
+ "lightningcss": "1.32.0",
+ "magic-string": "^0.30.21",
+ "source-map-js": "^1.2.1",
+ "tailwindcss": "4.3.1"
+ }
+ },
+ "node_modules/@tailwindcss/oxide": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.3.1.tgz",
+ "integrity": "sha512-yVPyo8RNkabVr3O2EhHEE0Rewu7YKzc1DhIqfL46LKveFrmu9XbDazNOJY7/GRuvw1h6u3utWnR29H/p5JPlgA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 20"
+ },
+ "optionalDependencies": {
+ "@tailwindcss/oxide-android-arm64": "4.3.1",
+ "@tailwindcss/oxide-darwin-arm64": "4.3.1",
+ "@tailwindcss/oxide-darwin-x64": "4.3.1",
+ "@tailwindcss/oxide-freebsd-x64": "4.3.1",
+ "@tailwindcss/oxide-linux-arm-gnueabihf": "4.3.1",
+ "@tailwindcss/oxide-linux-arm64-gnu": "4.3.1",
+ "@tailwindcss/oxide-linux-arm64-musl": "4.3.1",
+ "@tailwindcss/oxide-linux-x64-gnu": "4.3.1",
+ "@tailwindcss/oxide-linux-x64-musl": "4.3.1",
+ "@tailwindcss/oxide-wasm32-wasi": "4.3.1",
+ "@tailwindcss/oxide-win32-arm64-msvc": "4.3.1",
+ "@tailwindcss/oxide-win32-x64-msvc": "4.3.1"
+ }
+ },
+ "node_modules/@tailwindcss/oxide-android-arm64": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.3.1.tgz",
+ "integrity": "sha512-SVlyf61g374l5cHyg8x9kf5xmLcOaxvOTsbsqDnSsDJaKOEFZ7GCvi84VAVGpxojYOs1+3K6M0UjXfqPU8vmOQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">= 20"
+ }
+ },
+ "node_modules/@tailwindcss/oxide-darwin-arm64": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.3.1.tgz",
+ "integrity": "sha512-hVnWLwv+e/l7c4WKyVtHVrIPvYdqWHjRB3MDIqARynzFtnQg85kmQEFCbV9Ja0VVx4xXTIiDWY60Y7iz/iNoDA==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">= 20"
+ }
+ },
+ "node_modules/@tailwindcss/oxide-darwin-x64": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.3.1.tgz",
+ "integrity": "sha512-Cf7abu0WVgbhU7ANgPUnSAvm7nCvMweusHb8FnaHlLfv/Caq4GYaEZg7ZImzzmjx4lIAfuS8q+eLIS7A7IzxIg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">= 20"
+ }
+ },
+ "node_modules/@tailwindcss/oxide-freebsd-x64": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.3.1.tgz",
+ "integrity": "sha512-ZZqzX2Y+GXtXXfqSfpJhDm60OoZfvLHLCgm+J7NVqgHHJjG/m9ugZI77RwTsVd4fnBJuCFP6Ae6kTJb71UdS8g==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">= 20"
+ }
+ },
+ "node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.3.1.tgz",
+ "integrity": "sha512-/Ah/xik0LaMYfv9DZ0S/t4pBlBNYOcqtRwusjgovHkvT8ixueWCLyJjsaF5kQIckjb4IT8Q6K6p/iPmZMixYgg==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 20"
+ }
+ },
+ "node_modules/@tailwindcss/oxide-linux-arm64-gnu": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.3.1.tgz",
+ "integrity": "sha512-gqdFoVJlw444GvpnheZLHmvTzSxI/cOUUh2KSNejQjTcYkW062SVD+En0rUgD+QV91bz1XGIGtt1HJd48xUGbQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "libc": [
+ "glibc"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 20"
+ }
+ },
+ "node_modules/@tailwindcss/oxide-linux-arm64-musl": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.3.1.tgz",
+ "integrity": "sha512-Bwv9KwOvE0VKa86xPFif9b9c3Y1NxOV1P0gLti/IYaWEsQYZXDlxfGEtA8mdDZ7SG3wyNXAWYT5SIn3giL57oA==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "libc": [
+ "musl"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 20"
+ }
+ },
+ "node_modules/@tailwindcss/oxide-linux-x64-gnu": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.3.1.tgz",
+ "integrity": "sha512-Ymi8O8T15HYQdOUWUtTI6ldN0neHP85FC+Qz32xTcZ7iJXtem/x8ITev0o1e9e5rkqj4lONZfTRLvkmin1+tKg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "libc": [
+ "glibc"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 20"
+ }
+ },
+ "node_modules/@tailwindcss/oxide-linux-x64-musl": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.3.1.tgz",
+ "integrity": "sha512-M+P/91qJ6uILLw4k2G93GMDRAXj61SMvFQYt39AqvUqYgExXpLL5aepfns7sj4HiAQeolirQF9E0lzRvdf4zPQ==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "libc": [
+ "musl"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 20"
+ }
+ },
+ "node_modules/@tailwindcss/oxide-wasm32-wasi": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.3.1.tgz",
+ "integrity": "sha512-zsM8uOeqvVGHsAXsJxsT28ttosFahLJKCLOTUBqRAtKnVgGSRitds9T432QiT8b77Yga7JIBkulIRRlJPtYhRA==",
+ "bundleDependencies": [
+ "@napi-rs/wasm-runtime",
+ "@emnapi/core",
+ "@emnapi/runtime",
+ "@tybys/wasm-util",
+ "@emnapi/wasi-threads",
+ "tslib"
+ ],
+ "cpu": [
+ "wasm32"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "@emnapi/core": "^1.10.0",
+ "@emnapi/runtime": "^1.10.0",
+ "@emnapi/wasi-threads": "^1.2.1",
+ "@napi-rs/wasm-runtime": "^1.1.4",
+ "@tybys/wasm-util": "^0.10.2",
+ "tslib": "^2.8.1"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@tailwindcss/oxide-win32-arm64-msvc": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.3.1.tgz",
+ "integrity": "sha512-aiNvSq9BsVk8V513lDKlrCFAgf8qBMPZTpgEhInL+NwQqs97mYmupVMrPrgBBSL8Pv/0zXu9MrMF9rMun1ZeNg==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">= 20"
+ }
+ },
+ "node_modules/@tailwindcss/oxide-win32-x64-msvc": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.3.1.tgz",
+ "integrity": "sha512-xDEyu1rg290472FEGaKHnzyDyh5QH+AlWvsU5hMoMtPpzmKlRI0jaYKCgSHDYtaQWZOYbMaduSyCwFwY4n1HmA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">= 20"
+ }
+ },
+ "node_modules/@tailwindcss/postcss": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/postcss/-/postcss-4.3.1.tgz",
+ "integrity": "sha512-dNJuNbdEJT/SWRuXTYP1WSamelsz3ztkUsdtWQPjrexysrTpaEPM40P/71knXiXLYEojqPOEGitVLLpPMS5T6A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@alloc/quick-lru": "^5.2.0",
+ "@tailwindcss/node": "4.3.1",
+ "@tailwindcss/oxide": "4.3.1",
+ "postcss": "8.5.15",
+ "tailwindcss": "4.3.1"
+ }
+ },
"node_modules/@tybys/wasm-util": {
"version": "0.10.2",
"resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.2.tgz",
@@ -506,6 +853,20 @@
"dev": true,
"license": "ISC"
},
+ "node_modules/enhanced-resolve": {
+ "version": "5.21.6",
+ "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.21.6.tgz",
+ "integrity": "sha512-aNnGCvbJ/RIyWo1IuhNdVjnNF+EjH9wpzpNHt+ci/m9He9LJvUN8wrCcXjp9cWsGNAuvSpVFTx/vraAFQ8qGjQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "graceful-fs": "^4.2.4",
+ "tapable": "^2.3.3"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ }
+ },
"node_modules/escalade": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
@@ -545,6 +906,23 @@
"node": "^8.16.0 || ^10.6.0 || >=11.0.0"
}
},
+ "node_modules/graceful-fs": {
+ "version": "4.2.11",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
+ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/jiti": {
+ "version": "2.7.0",
+ "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.7.0.tgz",
+ "integrity": "sha512-AC/7JofJvZGrrneWNaEnJeOLUx+JlGt7tNa0wZiRPT4MY1wmfKjt2+6O2p2uz2+skll8OZZmJMNqeke7kKbNgQ==",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "jiti": "lib/jiti-cli.mjs"
+ }
+ },
"node_modules/lightningcss": {
"version": "1.32.0",
"resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.32.0.tgz",
@@ -815,6 +1193,16 @@
"react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0"
}
},
+ "node_modules/magic-string": {
+ "version": "0.30.21",
+ "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz",
+ "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/sourcemap-codec": "^1.5.5"
+ }
+ },
"node_modules/nanoid": {
"version": "3.3.12",
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.12.tgz",
@@ -962,6 +1350,20 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/tapable": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.3.tgz",
+ "integrity": "sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ }
+ },
"node_modules/tinyglobby": {
"version": "0.2.17",
"resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.17.tgz",
diff --git a/frontend/package.json b/frontend/package.json
index e11dc3b..baff529 100644
--- a/frontend/package.json
+++ b/frontend/package.json
@@ -14,6 +14,7 @@
"react-dom": "^19.2.7"
},
"devDependencies": {
+ "@tailwindcss/postcss": "^4.3.1",
"@vitejs/plugin-react": "^6.0.2",
"autoprefixer": "^10.4.21",
"postcss": "^8.5.3",
diff --git a/frontend/postcss.config.js b/frontend/postcss.config.js
index 2e7af2b..a7f73a2 100644
--- a/frontend/postcss.config.js
+++ b/frontend/postcss.config.js
@@ -1,6 +1,5 @@
export default {
plugins: {
- tailwindcss: {},
- autoprefixer: {},
+ '@tailwindcss/postcss': {},
},
}
From 6f91e648f4cb65c1c2b2e8209514d44d582ba869 Mon Sep 17 00:00:00 2001
From: 0verwrite <31691645+overwrite00@users.noreply.github.com>
Date: Mon, 22 Jun 2026 22:02:52 +0200
Subject: [PATCH 17/19] =?UTF-8?q?chore:=20bump=20version=200.1.2=20?=
=?UTF-8?q?=E2=86=92=200.1.3=20-=20Maintenance=20and=20dependency=20update?=
=?UTF-8?q?s=20release?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Patch release with dependency updates and Tailwind CSS v4 fix.
Changes:
- Tailwind CSS v4 breaking change fix (PostCSS plugin)
- electron 42.4.0 → 42.4.1
- fastapi 0.136.3 → 0.137.2
- lucide-react 1.18.0 → 1.21.0
- pypdf 6.13.2 → 6.13.3 (security fix)
- All other routine dependency updates
---
CHANGELOG.md | 26 ++++++++++++++++++++++++++
electron/package.json | 2 +-
frontend/package.json | 2 +-
python/config.py | 2 +-
4 files changed, 29 insertions(+), 3 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index da15351..a8bc9b5 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -15,6 +15,32 @@ Format: [Semantic Versioning](https://semver.org/) — `MAJOR.MINOR.PATCH`
---
+## [0.1.3] — 2026-06-22
+
+### Fixed
+- **Tailwind CSS v4 Breaking Change**: Updated PostCSS configuration to use `@tailwindcss/postcss` package
+ - Installed `@tailwindcss/postcss` as separate dev dependency
+ - Updated postcss.config.js plugin configuration
+ - CSS bundle size improved (6.83 kB vs 15.33 kB)
+
+### Dependencies
+- electron: 42.4.0 → 42.4.1 (DevTools fixes, safeStorage async fix)
+- fastapi: 0.136.3 → 0.137.2 (bug fixes)
+- lucide-react: 1.18.0 → 1.21.0 (icon updates)
+- pypdf: 6.13.2 → 6.13.3 (security: MAX_DECLARED_STREAM_LENGTH fix, performance improvements)
+- react-dom: 19.2.5 → 19.2.7
+- tailwindcss: 3.4.19 → 4.3.1
+- pytest: 9.0.3 → 9.1.0
+- pywin32: 310 → 312
+- xattr: 1.1.0 → 1.3.0
+
+### Quality
+- All tests passing: 47 passed, 1 skipped
+- GitHub Actions workflow checks: all passing
+- No regressions
+
+---
+
## [0.1.2] — 2026-06-13
### Fixed
diff --git a/electron/package.json b/electron/package.json
index 91355bb..5ef50c8 100644
--- a/electron/package.json
+++ b/electron/package.json
@@ -1,6 +1,6 @@
{
"name": "metalens",
- "version": "0.1.2",
+ "version": "0.1.3",
"description": "Universal File Metadata Manager",
"author": "Graziano Mariella",
"license": "MIT",
diff --git a/frontend/package.json b/frontend/package.json
index baff529..88db118 100644
--- a/frontend/package.json
+++ b/frontend/package.json
@@ -1,6 +1,6 @@
{
"name": "metalens-frontend",
- "version": "0.1.2",
+ "version": "0.1.3",
"private": true,
"type": "module",
"scripts": {
diff --git a/python/config.py b/python/config.py
index cb133c2..0284a97 100644
--- a/python/config.py
+++ b/python/config.py
@@ -1,7 +1,7 @@
from dataclasses import dataclass
-VERSION = "0.1.2"
+VERSION = "0.1.3"
APP_NAME = "MetaLens"
SIDECAR_HOST = "127.0.0.1"
From aaf82617e7da4cf3c54f9918e4dc62254886a982 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 22 Jun 2026 20:08:02 +0000
Subject: [PATCH 18/19] chore(deps-dev): bump undici
Bumps the npm_and_yarn group with 1 update in the /electron directory: [undici](https://github.com/nodejs/undici).
Updates `undici` from 7.27.2 to 7.28.0
- [Release notes](https://github.com/nodejs/undici/releases)
- [Commits](https://github.com/nodejs/undici/compare/v7.27.2...v7.28.0)
---
updated-dependencies:
- dependency-name: undici
dependency-version: 7.28.0
dependency-type: indirect
...
Signed-off-by: dependabot[bot]
---
electron/package-lock.json | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/electron/package-lock.json b/electron/package-lock.json
index 1ff09ac..1bd4375 100644
--- a/electron/package-lock.json
+++ b/electron/package-lock.json
@@ -1,12 +1,12 @@
{
"name": "metalens",
- "version": "0.1.2",
+ "version": "0.1.3",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "metalens",
- "version": "0.1.2",
+ "version": "0.1.3",
"license": "MIT",
"devDependencies": {
"@electron-forge/cli": "^7.6.0",
@@ -6413,9 +6413,9 @@
}
},
"node_modules/undici": {
- "version": "7.27.2",
- "resolved": "https://registry.npmjs.org/undici/-/undici-7.27.2.tgz",
- "integrity": "sha512-uZsKNuzQxDMUY6M3pIMvy5tvlGmtq8XJ2oLAkfRKGNu+1VQAIvLy2xIVG5ATZl5wDXl/tddByAWCizRbOme+TA==",
+ "version": "7.28.0",
+ "resolved": "https://registry.npmjs.org/undici/-/undici-7.28.0.tgz",
+ "integrity": "sha512-cRZYrTDwWznlnRiPjggAGxZXanty6M8RV1ff8Wm4LWXBp7/IG8v5DnOm74DtUBp9OONpK75YlPnIjQqX0dBDtA==",
"dev": true,
"license": "MIT",
"optional": true,
From 224e81419ddb151f87d5f1cb8b99a55cd363f05d Mon Sep 17 00:00:00 2001
From: 0verwrite <31691645+overwrite00@users.noreply.github.com>
Date: Mon, 22 Jun 2026 22:38:00 +0200
Subject: [PATCH 19/19] =?UTF-8?q?chore:=20bump=20version=200.1.3=20?=
=?UTF-8?q?=E2=86=92=200.1.4=20-=20Security=20release=20(undici=20update)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Patch release with critical security update.
undici 7.27.2 → 7.28.0: Resolves 7 security vulnerabilities
- 3× HIGH severity (WebSocket DoS, TLS bypass, cross-origin routing)
- 2× MEDIUM severity (cache bypass, HTTP injection)
- 2× LOW severity (SameSite downgrade, response poisoning)
All tests passing: 47 passed, 1 skipped
Frontend/Electron builds verified.
---
CHANGELOG.md | 18 ++++++++++++++++++
electron/package.json | 2 +-
frontend/package.json | 2 +-
python/config.py | 2 +-
4 files changed, 21 insertions(+), 3 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index a8bc9b5..73e9c38 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -15,6 +15,24 @@ Format: [Semantic Versioning](https://semver.org/) — `MAJOR.MINOR.PATCH`
---
+## [0.1.4] — 2026-06-22
+
+### Security
+- **Critical**: Updated undici from 7.27.2 to 7.28.0 — **7 security vulnerabilities resolved**
+ - **3× HIGH**: WebSocket DoS (CVE-2026-12151), TLS bypass in SOCKS5 (CVE-2026-9697), Cross-origin routing (CVE-2026-6734)
+ - **2× MEDIUM**: Cache bypass (CVE-2026-9678), HTTP header injection (CVE-2026-9679)
+ - **2× LOW**: SameSite downgrade (CVE-2026-11525), HTTP response poisoning (CVE-2026-6733)
+ - Transitive dependency in @electron-forge
+ - Fixes WebSocket fragment exhaustion, SOCKS5 proxy pool reuse, TLS certificate validation
+
+### Quality
+- All tests passing: 47 passed, 1 skipped
+- Electron build: verified with undici 7.28.0
+- Frontend build: confirmed compatible
+- No regressions
+
+---
+
## [0.1.3] — 2026-06-22
### Fixed
diff --git a/electron/package.json b/electron/package.json
index 5ef50c8..f29277f 100644
--- a/electron/package.json
+++ b/electron/package.json
@@ -1,6 +1,6 @@
{
"name": "metalens",
- "version": "0.1.3",
+ "version": "0.1.4",
"description": "Universal File Metadata Manager",
"author": "Graziano Mariella",
"license": "MIT",
diff --git a/frontend/package.json b/frontend/package.json
index 88db118..42b039f 100644
--- a/frontend/package.json
+++ b/frontend/package.json
@@ -1,6 +1,6 @@
{
"name": "metalens-frontend",
- "version": "0.1.3",
+ "version": "0.1.4",
"private": true,
"type": "module",
"scripts": {
diff --git a/python/config.py b/python/config.py
index 0284a97..00c9381 100644
--- a/python/config.py
+++ b/python/config.py
@@ -1,7 +1,7 @@
from dataclasses import dataclass
-VERSION = "0.1.3"
+VERSION = "0.1.4"
APP_NAME = "MetaLens"
SIDECAR_HOST = "127.0.0.1"