From d3b4821047376c508ae7cc880ebc1d9db9bcc271 Mon Sep 17 00:00:00 2001 From: MatteoGabriele Date: Mon, 26 Jan 2026 19:32:18 +0100 Subject: [PATCH 1/2] fix: semver sorting uses the built-in compare method from the semver package. --- app/utils/versions.ts | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-) diff --git a/app/utils/versions.ts b/app/utils/versions.ts index d30fbbdb46..f2d6e5008b 100644 --- a/app/utils/versions.ts +++ b/app/utils/versions.ts @@ -1,4 +1,4 @@ -import { valid } from 'semver' +import { compare, valid } from 'semver' /** * Utilities for handling npm package versions and dist-tags @@ -47,19 +47,7 @@ export function parseVersion(version: string): ParsedVersion { * @returns Comparison result for sorting */ export function compareVersions(a: string, b: string): number { - const va = parseVersion(a) - const vb = parseVersion(b) - - if (va.major !== vb.major) return va.major - vb.major - if (va.minor !== vb.minor) return va.minor - vb.minor - if (va.patch !== vb.patch) return va.patch - vb.patch - - // Stable versions (no prerelease) are greater than prereleases - if (va.prerelease && vb.prerelease) return va.prerelease.localeCompare(vb.prerelease) - if (va.prerelease) return -1 - if (vb.prerelease) return 1 - - return 0 + return compare(a, b) } /** From 5047fe416d4fdd47713b2918daed400f4176db75 Mon Sep 17 00:00:00 2001 From: MatteoGabriele Date: Mon, 26 Jan 2026 20:29:09 +0100 Subject: [PATCH 2/2] refactor: use semver compare directly --- app/components/PackageVersions.vue | 8 +++--- app/composables/useNpmRegistry.ts | 6 ++--- app/utils/versions.ts | 13 +--------- test/unit/versions.spec.ts | 39 ------------------------------ 4 files changed, 8 insertions(+), 58 deletions(-) diff --git a/app/components/PackageVersions.vue b/app/components/PackageVersions.vue index a83aa3f8a8..af6c8a3e96 100644 --- a/app/components/PackageVersions.vue +++ b/app/components/PackageVersions.vue @@ -1,9 +1,9 @@