diff --git a/package-lock.json b/package-lock.json index d859003d9..40ea43a43 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,7 +12,7 @@ "@aws-sdk/client-s3": "^3.984.0", "@aws-sdk/lib-storage": "^3.984.0", "@cloudron/connect-lastmile": "^2.3.0", - "@cloudron/manifest-format": "^5.32.3", + "@cloudron/manifest-format": "^5.34.0", "@cloudron/pipework": "^1.2.0", "@cloudron/superagent": "^1.0.1", "@google-cloud/dns": "^5.3.1", @@ -1178,9 +1178,9 @@ "license": "MIT" }, "node_modules/@cloudron/manifest-format": { - "version": "5.32.3", - "resolved": "https://registry.npmjs.org/@cloudron/manifest-format/-/manifest-format-5.32.3.tgz", - "integrity": "sha512-e5Ht1F1nFN6WUwQpsLCW6VLtr12XtOZ5Ha9cjCEZwMkT38XZnbSkdOA++/F7jR9ECeievd/3jdRNt7SfVvN0JQ==", + "version": "5.34.0", + "resolved": "https://registry.npmjs.org/@cloudron/manifest-format/-/manifest-format-5.34.0.tgz", + "integrity": "sha512-m+mPzdz44j6u4js66SAcpQofX0HJ6NrPPpVzkeGOq1reDoeBlKnpY4d4Cor2APflif2og+jRbctjyLtMkSdi4Q==", "license": "MIT", "dependencies": { "ajv": "^8.17.1", diff --git a/package.json b/package.json index 281776bcc..d7e6b174e 100644 --- a/package.json +++ b/package.json @@ -16,7 +16,7 @@ "@aws-sdk/client-s3": "^3.984.0", "@aws-sdk/lib-storage": "^3.984.0", "@cloudron/connect-lastmile": "^2.3.0", - "@cloudron/manifest-format": "^5.32.3", + "@cloudron/manifest-format": "^5.34.0", "@cloudron/pipework": "^1.2.0", "@cloudron/superagent": "^1.0.1", "@google-cloud/dns": "^5.3.1", diff --git a/src/community.js b/src/community.js index 12ffd1fe1..06c502600 100644 --- a/src/community.js +++ b/src/community.js @@ -27,10 +27,11 @@ async function getAppVersion(url, version) { if (response.status !== 200) throw new BoxError(BoxError.EXTERNAL_ERROR, `Fetch failed: ${response.status}`); // if the content-type is incorrect, we will get a buffer - const versions = Buffer.isBuffer(response.body) ? safe.JSON.parse(response.body) : response.body; - const versionsError = manifestFormat.parseVersions(versions); + const versionsRoot = Buffer.isBuffer(response.body) ? safe.JSON.parse(response.body) : response.body; + const versionsError = manifestFormat.parseVersions(versionsRoot); 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 versionData = version === 'latest' ? versions[sortedVersions.at(-1)] : versions[version]; if (!versionData) throw new BoxError(BoxError.NOT_FOUND, `Version ${version} not found`); @@ -61,10 +62,11 @@ async function downloadManifest(versionsUrl) { if (response.status !== 200) throw new BoxError(BoxError.EXTERNAL_ERROR, `Fetch failed: ${response.status}`); // if the content-type is incorrect, we will get a buffer - const versions = Buffer.isBuffer(response.body) ? safe.JSON.parse(response.body) : response.body; - const versionsError = manifestFormat.parseVersions(versions); + const versionsRoot = Buffer.isBuffer(response.body) ? safe.JSON.parse(response.body) : response.body; + const versionsError = manifestFormat.parseVersions(versionsRoot); 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 versionData = version === 'latest' ? versions[sortedVersions.at(-1)] : versions[version]; @@ -84,10 +86,11 @@ async function getAppUpdate(app, options) { if (response.status !== 200) throw new BoxError(BoxError.EXTERNAL_ERROR, `Fetch failed: ${response.status}`); // if the content-type is incorrect, we will get a buffer - const versions = Buffer.isBuffer(response.body) ? safe.JSON.parse(response.body) : response.body; - const versionsError = manifestFormat.parseVersions(versions); + const versionsRoot = Buffer.isBuffer(response.body) ? safe.JSON.parse(response.body) : response.body; + const versionsError = manifestFormat.parseVersions(versionsRoot); 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 idx = sortedVersions.findIndex(v => v === app.manifest.version); if (idx === -1) throw new BoxError(BoxError.EXTERNAL_ERROR, 'No such version');