From f45853188ee45b7cc319f4834940ddc58e77c179 Mon Sep 17 00:00:00 2001 From: Alex Korytskyi Date: Fri, 6 Mar 2026 21:44:01 +0000 Subject: [PATCH 1/2] fix: use pkg resolved version on package page to display data correctly --- app/pages/package/[[org]]/[name].vue | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/app/pages/package/[[org]]/[name].vue b/app/pages/package/[[org]]/[name].vue index c165517d1a..739f97d9ce 100644 --- a/app/pages/package/[[org]]/[name].vue +++ b/app/pages/package/[[org]]/[name].vue @@ -106,6 +106,11 @@ const navExtraOffsetStyle = computed(() => ({ const { packageName, requestedVersion, orgName } = usePackageRoute() +const { data: resolvedVersion, status: resolvedStatus } = await useResolvedVersion( + packageName, + requestedVersion, +) + if (import.meta.server) { assertValidPackageName(packageName.value) } @@ -114,7 +119,7 @@ if (import.meta.server) { const { data: readmeData } = useLazyFetch( () => { const base = `/api/registry/readme/${packageName.value}` - const version = requestedVersion.value + const version = resolvedVersion.value return version ? `${base}/v/${version}` : base }, { @@ -150,7 +155,7 @@ const { } = useLazyFetch( () => { const base = `/api/registry/readme/markdown/${packageName.value}` - const version = requestedVersion.value + const version = resolvedVersion.value return version ? `${base}/v/${version}` : base }, { @@ -200,7 +205,7 @@ const { } = useLazyFetch( () => { const base = `/api/registry/install-size/${packageName.value}` - const version = requestedVersion.value + const version = resolvedVersion.value return version ? `${base}/v/${version}` : base }, { @@ -213,7 +218,7 @@ onMounted(() => fetchInstallSize()) const { data: skillsData } = useLazyFetch( () => { const base = `/skills/${packageName.value}` - const version = requestedVersion.value + const version = resolvedVersion.value return version ? `${base}/v/${version}` : base }, { default: () => ({ package: '', version: '', skills: [] }) }, @@ -222,11 +227,6 @@ const { data: skillsData } = useLazyFetch( const { data: packageAnalysis } = usePackageAnalysis(packageName, requestedVersion) const { data: moduleReplacement } = useModuleReplacement(packageName) -const { data: resolvedVersion, status: resolvedStatus } = await useResolvedVersion( - packageName, - requestedVersion, -) - if ( import.meta.server && !resolvedVersion.value && @@ -1369,7 +1369,7 @@ const showSkeleton = shallowRef(false) Date: Fri, 6 Mar 2026 22:36:46 +0000 Subject: [PATCH 2/2] fix: use hash for get bluesky profiles cache key --- server/api/atproto/bluesky-author-profiles.get.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/server/api/atproto/bluesky-author-profiles.get.ts b/server/api/atproto/bluesky-author-profiles.get.ts index 1122376d82..c4b63b2866 100644 --- a/server/api/atproto/bluesky-author-profiles.get.ts +++ b/server/api/atproto/bluesky-author-profiles.get.ts @@ -1,4 +1,5 @@ import * as v from 'valibot' +import crypto from 'node:crypto' import { CACHE_MAX_AGE_ONE_DAY, BLUESKY_API } from '#shared/utils/constants' import { AuthorSchema } from '#shared/schemas/blog' import { Client } from '@atproto/lex' @@ -75,7 +76,11 @@ export default defineCachedEventHandler( maxAge: CACHE_MAX_AGE_ONE_DAY, getKey: event => { const { authors } = getQuery(event) - return `author-profiles:${authors ?? 'npmx.dev'}` + const hash = crypto + .createHash('md5') + .update(JSON.stringify(authors ?? 'npmx.dev')) + .digest('hex') + return `author-profiles:${hash}` }, }, )