From 0701ed0368d87dd5d5b04ce87dce18c42913cc57 Mon Sep 17 00:00:00 2001 From: "Jan T. Sott" Date: Fri, 13 Feb 2026 08:57:17 +0100 Subject: [PATCH 1/2] chore: exclude prereleases from outdated packages --- app/composables/npm/useOutdatedDependencies.ts | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/app/composables/npm/useOutdatedDependencies.ts b/app/composables/npm/useOutdatedDependencies.ts index 37ee65c6e..02c40ea89 100644 --- a/app/composables/npm/useOutdatedDependencies.ts +++ b/app/composables/npm/useOutdatedDependencies.ts @@ -99,10 +99,18 @@ export function useOutdatedDependencies( const data = versionMap.get(name) if (!data) continue - const latestTag = data.distTags.latest - if (!latestTag) continue + let latestStable = data.distTags.latest + if (!latestStable) continue + + // If latest tag is a prerelease, find the latest stable version instead + if (prerelease(latestStable)) { + const stableVersions = data.versions.filter(v => !prerelease(v)) + if (stableVersions.length > 0) { + latestStable = maxSatisfying(stableVersions, '*') ?? latestStable + } + } - const info = resolveOutdated(data.versions, latestTag, constraint) + const info = resolveOutdated(data.versions, latestStable, constraint) if (info) { results[name] = info } From 90f9fff4e5c66a629b0a900c8f796d019a102688 Mon Sep 17 00:00:00 2001 From: "Jan T. Sott" Date: Fri, 13 Feb 2026 08:58:46 +0100 Subject: [PATCH 2/2] chore: update comment --- app/composables/npm/useOutdatedDependencies.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/composables/npm/useOutdatedDependencies.ts b/app/composables/npm/useOutdatedDependencies.ts index 02c40ea89..12914a46e 100644 --- a/app/composables/npm/useOutdatedDependencies.ts +++ b/app/composables/npm/useOutdatedDependencies.ts @@ -102,7 +102,8 @@ export function useOutdatedDependencies( let latestStable = data.distTags.latest if (!latestStable) continue - // If latest tag is a prerelease, find the latest stable version instead + // If latest tag is a prerelease, find the latest stable version instead. Take note that this + // overrides the latest distTag. if (prerelease(latestStable)) { const stableVersions = data.versions.filter(v => !prerelease(v)) if (stableVersions.length > 0) {