import packageInfo from '../../package.json'; /** * Release notes shown in the "What's new" dialog. This is the single source of * truth for the changelog: add a new entry at the top of `changelog` whenever * the version in package.json is bumped, and the dialog will surface it once per * user on their next login (see $lib/whats-new and WhatsNewDialog.svelte). */ export type ChangelogEntry = { version: string; /** ISO date (YYYY-MM-DD) the version shipped. */ date: string; highlights: string[]; }; /** The running app version, read straight from package.json at build time. */ export const APP_VERSION: string = packageInfo.version; export const changelog: ChangelogEntry[] = [ { version: '0.1.36', date: '2026-06-21', highlights: [ 'App: Bug fixes & improvements.', 'App: General improvements.' ] }, { version: '0.1.35', date: '2026-06-21', highlights: [ 'App: Bug fixes & improvements.', 'App: General improvements.' ] }, { version: '0.1.34', date: '2026-06-21', highlights: [ 'App: Bug fixes & improvements.', 'App: General improvements.' ] }, { version: '0.1.33', date: '2026-06-21', highlights: [ 'App: Mix Calculator & Ingredients improvements.', 'App: Bug fixes & improvements.' ] }, { version: '0.1.32', date: '2026-06-21', highlights: [ 'Mix Calculator: Added search.', 'Ingredients: Added ingredient categories.', 'Throughput: Tidy-up and refinements.' ] }, { version: '0.1.31', date: '2026-06-18', highlights: [ 'Mix Editor: Multi-row editing.', 'App: Bug fixes & improvements.' ] }, { version: '0.1.30', date: '2026-06-18', highlights: [ 'Throughput: Overview now shows today-only mix cards.', 'Mix Editor: Fixed an error when saving a mix formula.' ] }, { version: '0.1.29', date: '2026-06-18', highlights: [ 'Mix Editor: Editing a % no longer rebalances the other ingredients.' ] }, { version: '0.1.28', date: '2026-06-17', highlights: [ 'Editor & Throughput: Updates and improvements.' ] }, { version: '0.1.27', date: '2026-06-16', highlights: [ 'Editor: Edit a mix’s resolved formula directly, with % and kg entry on each row.', 'Editor: New mix and new ingredient buttons.', 'Throughput: Power BI / external API now live.', 'App: Security hardening on API responses.' ] }, { version: '0.1.23', date: '2026-06-15', highlights: [ 'App: Improvements & bug fixes.' ] }, { version: '0.1.22', date: '2026-06-15', highlights: [ 'Web App - Throughput module is now live.' ] }, { version: '0.1.21', date: '2026-06-14', highlights: [ 'Mix Calculator: Composer restyle.' ] }, { version: '0.1.20', date: '2026-06-13', highlights: [ 'App - Improvements', 'App - Bug fixes' ] }, { version: '0.1.19', date: '2026-06-13', highlights: [ 'Throughput: Overview view added.', 'App: Responsive header.' ] }, { version: '0.1.18', date: '2026-06-12', highlights: [ 'App - Improvements', 'App - Bug fixes' ] }, { version: '0.1.17', date: '2026-06-12', highlights: [ 'App - Improvements', 'App - Mix Calculator bug fixes' ] }, { version: '0.1.14', date: '2026-06-11', highlights: [ 'Web App: Improved mix calculator', 'Web App: Improved design' ] }, { version: '0.1.12', date: '2026-06-10', highlights: [ 'Mix Calculator: Changed from selecting Product to Mix.', 'Web app design improved', 'Throughput tab ready for testing', 'Costing Editor tab ready for testing' ] }, { version: '0.1.11', date: '2026-06-03', highlights: [ 'Costing Editor: First release.' ] } ]; /** The changelog entry matching a specific version, if one exists. */ export function changelogFor(version: string): ChangelogEntry | undefined { return changelog.find((entry) => entry.version === version); } /** The most recent changelog entry, regardless of the running version. */ export const latestChangelog: ChangelogEntry | undefined = changelog[0]; /** * The entry the "What's new" dialog shows. Prefer an exact match for the running * version, but fall back to the latest documented entry so the manual button * always opens something even when the current build's version (e.g. a hotfix * suffix like `0.1.24b`) isn't itself listed in the changelog. */ export const currentChangelog: ChangelogEntry | undefined = changelogFor(APP_VERSION) ?? latestChangelog;