community: skip revoked versions

This commit is contained in:
Girish Ramakrishnan
2026-02-09 16:11:55 +01:00
parent d75ad44315
commit b433191b35
+4 -4
View File
@@ -32,7 +32,7 @@ async function getAppVersion(url, version) {
if (versionsError) throw new BoxError(BoxError.EXTERNAL_ERROR, `Invalid CloudronVersions.json: ${versionsError.message}`);
const versions = versionsRoot.versions;
const sortedVersions = Object.keys(versions).sort(manifestFormat.packageVersionCompare);
const sortedVersions = Object.keys(versions).filter(v => versions[v].publishState !== 'revoked').sort(manifestFormat.packageVersionCompare);
const versionData = version === 'latest' ? versions[sortedVersions.at(-1)] : versions[version];
if (!versionData) throw new BoxError(BoxError.NOT_FOUND, `Version ${version} not found`);
@@ -67,7 +67,7 @@ async function downloadManifest(versionsUrl) {
if (versionsError) throw new BoxError(BoxError.EXTERNAL_ERROR, `Invalid CloudronVersions.json: ${versionsError.message}`);
const versions = versionsRoot.versions;
const sortedVersions = Object.keys(versions).sort(manifestFormat.packageVersionCompare);
const sortedVersions = Object.keys(versions).filter(v => versions[v].publishState !== 'revoked').sort(manifestFormat.packageVersionCompare);
const versionData = version === 'latest' ? versions[sortedVersions.at(-1)] : versions[version];
if (!versionData) throw new BoxError(BoxError.NOT_FOUND, `Version ${version} not found`);
@@ -91,9 +91,9 @@ async function getAppUpdate(app, options) {
if (versionsError) throw new BoxError(BoxError.EXTERNAL_ERROR, `Invalid CloudronVersions.json: ${versionsError.message}`);
const versions = versionsRoot.versions;
const sortedVersions = Object.keys(versions).sort(manifestFormat.packageVersionCompare);
const sortedVersions = Object.keys(versions).filter(v => versions[v].publishState !== 'revoked').sort(manifestFormat.packageVersionCompare);
const idx = sortedVersions.findIndex(v => v === app.manifest.version);
if (idx === -1) throw new BoxError(BoxError.EXTERNAL_ERROR, 'No such version');
if (idx === -1) return null; // current version was revoked or not found, no update info available
if (idx === sortedVersions.length-1) return null; // no update
const nextVersion = versions[sortedVersions[idx+1]];
const unstable = !versionsRoot.stable || nextVersion.publishState !== 'published';