From c81baecb409172a1efd726f7241b15a63349152e Mon Sep 17 00:00:00 2001 From: Richard Lau Date: Wed, 25 Feb 2026 16:37:33 +0000 Subject: [PATCH] fix: CJS Module Lexer replaced by merve Update the checker to account for CJS Module Lexer gradually being replaced with merve. --- dep_checker/dependencies.py | 20 +++++++++++++------- dep_checker/versions_parser.py | 8 ++++++++ 2 files changed, 21 insertions(+), 7 deletions(-) diff --git a/dep_checker/dependencies.py b/dep_checker/dependencies.py index 257b472..95b7842 100644 --- a/dep_checker/dependencies.py +++ b/dep_checker/dependencies.py @@ -43,7 +43,6 @@ def get_cpe(self, repo_path: Path) -> Optional[str]: "acorn", "brotli", "c-ares", - "CJS Module Lexer", "corepack", "HdrHistogram", "ICU", @@ -58,15 +57,17 @@ def get_cpe(self, repo_path: Path) -> Optional[str]: ] # Define branch-specific dependencies -main_specific = ["simdutf"] -v22_specific = ["simdutf"] -v20_specific = ["simdutf"] +main_specific = ["merve"] +v25_specific = ["merve"] +v24_specific = ["merve"] +v22_specific = ["CJS Module Lexer", "simdutf"] +v20_specific = ["CJS Module Lexer", "simdutf"] # Combine common dependencies with branch-specific ones dependencies_per_branch: dict[str, list[str]] = { - "main": common_dependencies, # No simdutf in main - "v24.x": common_dependencies, # No simdutf in v24.x - "v23.x": common_dependencies, # No simdutf in v23.x + "main": common_dependencies + main_specific, + "v25.x": common_dependencies + v25_specific, + "v24.x": common_dependencies + v24_specific, "v22.x": common_dependencies + v22_specific, "v20.x": common_dependencies + v20_specific, } @@ -118,6 +119,11 @@ def get_cpe(self, repo_path: Path) -> Optional[str]: version_parser=vp.get_nghttp2_version, cpe=CPE(vendor="nghttp2", product="nghttp2"), ), + "merve": Dependency( + version_parser=vp.get_merve_version, + cpe=None, + keyword="merve", + ), "llhttp": Dependency( version_parser=vp.get_llhttp_version, cpe=CPE(vendor="llhttp", product="llhttp"), diff --git a/dep_checker/versions_parser.py b/dep_checker/versions_parser.py index f5db9ed..3e02b23 100644 --- a/dep_checker/versions_parser.py +++ b/dep_checker/versions_parser.py @@ -80,6 +80,14 @@ def get_llhttp_version(repo_path: Path) -> str: return f"{versions['major']}.{versions['minor']}.{versions['patch']}" +def get_merve_version(repo_path: Path) -> str: + with open(repo_path / "deps/merve/merve.h", "r") as f: + matches = re.search('#define MERVE_VERSION "(?P.*)"', f.read()) + if matches is None: + raise RuntimeError("Error extracting version number for merve") + return matches.groupdict()["version"] + + def get_nghttp2_version(repo_path: Path) -> str: with open(repo_path / "deps/nghttp2/lib/includes/nghttp2/nghttp2ver.h", "r") as f: matches = re.search('#define NGHTTP2_VERSION "(?P.*)"', f.read())