@@ -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
@@ -331,21 +332,33 @@ defineOgImageComponent('Package', {
331332 v-if =" displayVersion"
332333 class =" inline-flex items-baseline gap-1.5 font-mono text-base sm:text-lg text-fg-muted shrink-0"
333334 >
335+ <!-- Version resolution indicator (e.g., "latest → 4.2.0") -->
336+ <template v-if =" resolvedVersion !== requestedVersion " >
337+ <span class =" font-mono text-fg-muted text-sm" >{{ requestedVersion }}</span >
338+ <span class =" i-carbon-arrow-right w-3 h-3" aria-hidden =" true" />
339+ </template >
340+
341+ <NuxtLink
342+ v-if =" resolvedVersion !== requestedVersion"
343+ :to =" `/${pkg.name}/v/${displayVersion.version}`"
344+ title =" View permalink for this version"
345+ >{{ displayVersion.version }}</NuxtLink
346+ >
347+ <span v-else >v{{ displayVersion.version }}</span >
348+
334349 <a
335350 v-if =" hasProvenance(displayVersion)"
336351 :href =" `https://www.npmjs.com/package/${pkg.name}/v/${displayVersion.version}#provenance`"
337352 target =" _blank"
338353 rel =" noopener noreferrer"
339- class =" inline-flex items-center gap-1.5 text-fg-muted hover:text-fg-muted/80 transition-colors duration-200"
354+ class =" inline-flex items-center gap-1.5 text-fg-muted hover:text-fg transition-colors duration-200"
340355 title =" Verified provenance"
341356 >
342- v{{ displayVersion.version }}
343357 <span
344358 class =" i-solar-shield-check-outline w-3.5 h-3.5 shrink-0"
345359 aria-hidden =" true"
346360 />
347361 </a >
348- <span v-else >v{{ displayVersion.version }}</span >
349362 <span
350363 v-if ="
351364 requestedVersion &&
0 commit comments