import { getSetting, setSetting } from './storage.ts' import { emptyVersion, normalizeVersion, type AppVersion, } from './version-shape.ts' export type { AppVersion } from './version-shape.ts' export { emptyVersion, normalizeVersion } const KEY = 'app_version' export async function getAppVersion(): Promise { const raw = await getSetting(KEY) if (!raw) return emptyVersion() try { return normalizeVersion(JSON.parse(raw) as Partial) } catch { return emptyVersion() } } export async function setAppVersion(input: Partial & { sha: string }): Promise { const next = normalizeVersion({ ...(await getAppVersion()), ...input, publishedAt: input.publishedAt || new Date().toISOString(), }) await setSetting(KEY, JSON.stringify(next)) return next }