fix(publishing): preserve newest metadata during release registration

This commit is contained in:
2026-09-11 10:09:22 +08:00
parent 07cf38b1a4
commit bf27410454
2 changed files with 17 additions and 7 deletions
+8 -3
View File
@@ -1,3 +1,5 @@
import { gt } from 'semver';
// Published identity is (Curio ID, version, target). Existing identities are immutable.
export function appendRelease(catalog, manifest, artifact, releasedAt) {
const next = structuredClone(catalog);
@@ -18,11 +20,14 @@ export function appendRelease(catalog, manifest, artifact, releasedAt) {
return next;
}
if (!version) {
const newest = curio.versions.every(item => gt(manifest.version, item.version));
version = { version: manifest.version, engine: structuredClone(manifest.engine), releasedAt, artifacts: [] };
curio.versions.unshift(version);
curio.name = manifest.name;
curio.description = manifest.description ?? '';
if (manifest.icon) curio.icon = manifest.icon;
if (newest) {
curio.name = manifest.name;
curio.description = manifest.description ?? '';
if (manifest.icon) curio.icon = manifest.icon;
}
}
version.artifacts.push(structuredClone(artifact));
next.generatedAt = next.generatedAt > releasedAt ? next.generatedAt : releasedAt;