Update versions format to have a root
This commit is contained in:
8
package-lock.json
generated
8
package-lock.json
generated
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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');
|
||||
|
||||
Reference in New Issue
Block a user