Fix StartOS 0.4 TypeScript packaging to match SDK API

This commit is contained in:
MacPro
2026-04-09 15:10:44 -05:00
parent 68ec875ee7
commit 8298c083c7
3436 changed files with 867051 additions and 92 deletions
@@ -0,0 +1,71 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.setupManifest = setupManifest;
exports.buildManifest = buildManifest;
const StartSdk_1 = require("../StartSdk");
const package_json_1 = require("../../package.json");
/**
* @description Use this function to define critical information about your package
*
* @param manifest Static properties of the package
*/
function setupManifest(manifest) {
return manifest;
}
/**
* Build the final publishable manifest by combining the SDK manifest definition
* with version graph metadata, OS version, SDK version, and computed fields
* (migration ranges, hardware requirements, alerts, etc.).
*
* @param versions - The service's VersionGraph, used to extract the current version, release notes, and migration ranges
* @param manifest - The SDK manifest definition (from `setupManifest`)
* @returns A fully resolved Manifest ready for packaging
*/
function buildManifest(versions, manifest) {
const images = Object.entries(manifest.images).reduce((images, [k, v]) => {
v.arch = v.arch ?? ['aarch64', 'x86_64', 'riscv64'];
if (v.emulateMissingAs === undefined)
v.emulateMissingAs = v.arch.includes('x86_64')
? 'x86_64'
: (v.arch[0] ?? null);
v.nvidiaContainer = !!v.nvidiaContainer;
images[k] = v;
return images;
}, {});
return {
...manifest,
gitHash: null,
osVersion: manifest.osVersion ?? StartSdk_1.OSVersion,
sdkVersion: package_json_1.version,
version: versions.current.options.version,
releaseNotes: versions.current.options.releaseNotes,
satisfies: versions.current.options.satisfies || [],
canMigrateTo: versions.canMigrateTo().toString(),
canMigrateFrom: versions.canMigrateFrom().toString(),
images,
alerts: {
install: manifest.alerts?.install || null,
update: manifest.alerts?.update || null,
uninstall: manifest.alerts?.uninstall || null,
restore: manifest.alerts?.restore || null,
start: manifest.alerts?.start || null,
stop: manifest.alerts?.stop || null,
},
hardwareRequirements: {
device: manifest.hardwareRequirements?.device || [],
ram: manifest.hardwareRequirements?.ram || null,
arch: Object.values(images).reduce((arch, inputSpec) => {
if (inputSpec.emulateMissingAs) {
return arch;
}
if (arch === null) {
return inputSpec.arch;
}
return arch.filter((a) => inputSpec.arch.includes(a));
}, null),
},
hardwareAcceleration: manifest.hardwareAcceleration ?? false,
plugins: manifest.plugins ?? [],
};
}
//# sourceMappingURL=setupManifest.js.map