"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