@@ -50,7 +50,7 @@ const orgName = computed(() => {
5050 return match ? match [1 ] : null
5151})
5252
53- const { data : pkg, status, error } = usePackage (packageName , requestedVersion )
53+ const { data : pkg, status, error, resolvedVersion } = usePackage (packageName , requestedVersion )
5454
5555const { data : downloads } = usePackageDownloads (packageName , ' last-week' )
5656const { data : weeklyDownloads } = usePackageWeeklyDownloadEvolution (packageName , { weeks: 52 })
@@ -109,15 +109,16 @@ const sizeTooltip = computed(() => {
109109 return chunks .filter (Boolean ).join (' \n ' )
110110})
111111
112- // Get the version to display (requested or latest)
112+ // Get the version to display (resolved version or latest)
113113const displayVersion = computed (() => {
114114 if (! pkg .value ) return null
115115
116- const reqVer = requestedVersion . value
117- if (reqVer && pkg .value . versions [ reqVer ] ) {
118- return pkg .value .versions [reqVer ]
116+ // Use resolved version if available
117+ if (resolvedVersion .value ) {
118+ return pkg .value .versions [resolvedVersion . value ] ?? null
119119 }
120120
121+ // Fallback to latest
121122 const latestTag = pkg .value [' dist-tags' ]?.latest
122123 if (! latestTag ) return null
123124 return pkg .value .versions [latestTag ] ?? null
@@ -317,21 +318,33 @@ defineOgImageComponent('Package', {
317318 v-if =" displayVersion"
318319 class =" inline-flex items-baseline gap-1.5 font-mono text-base sm:text-lg text-fg-muted shrink-0"
319320 >
321+ <!-- Version resolution indicator (e.g., "latest → 4.2.0") -->
322+ <template v-if =" resolvedVersion !== requestedVersion " >
323+ <span class =" font-mono text-fg-muted text-sm" >{{ requestedVersion }}</span >
324+ <span class =" i-carbon-arrow-right w-3 h-3" aria-hidden =" true" />
325+ </template >
326+
327+ <NuxtLink
328+ v-if =" resolvedVersion !== requestedVersion"
329+ :to =" `/${pkg.name}/v/${displayVersion.version}`"
330+ title =" View permalink for this version"
331+ >{{ displayVersion.version }}</NuxtLink
332+ >
333+ <span v-else >v{{ displayVersion.version }}</span >
334+
320335 <a
321336 v-if =" hasProvenance(displayVersion)"
322337 :href =" `https://www.npmjs.com/package/${pkg.name}/v/${displayVersion.version}#provenance`"
323338 target =" _blank"
324339 rel =" noopener noreferrer"
325- class =" inline-flex items-center gap-1.5 text-fg-muted hover:text-fg-muted/80 transition-colors duration-200"
340+ class =" inline-flex items-center gap-1.5 text-fg-muted hover:text-fg transition-colors duration-200"
326341 title =" Verified provenance"
327342 >
328- v{{ displayVersion.version }}
329343 <span
330344 class =" i-solar-shield-check-outline w-3.5 h-3.5 shrink-0"
331345 aria-hidden =" true"
332346 />
333347 </a >
334- <span v-else >v{{ displayVersion.version }}</span >
335348 <span
336349 v-if ="
337350 requestedVersion &&
0 commit comments