feat(settings): filter pre-releases and add version compare

Filter out pre-release GitHub releases (beta,, rc, preview,
dev, canary, nightly) when resolving the latest app version and
validate release names using semver. Sort stable releases by
creation date and return the most recent stable release name.

Add isVersionOutdated(current, latest) to compare coerced semver
versions safely, handling invalid formats with a warning. Move
version comparison logic from the settings component to the
SettingsService and use the new helper to determine if the
installed app is outdated. This prevents false positives from
pre-release tags and improves version parsing robustness.
This commit is contained in:
4gray committed 2025-11-15 17:37:17 +01:00
1 parent c34bdf73e1
commit 80fa80ff09
2 files changed
+73 -10

No files matched your search

@@ -36,7 +36,6 @@ import { DialogService } from 'components';
import * as PlaylistActions from 'm3u-state';
import { selectIsEpgAvailable } from 'm3u-state';
import { take } from 'rxjs';
import * as semver from 'semver';
import { DataService, EpgService, PlaylistsService } from 'services';
import {
Language,
@@ -242,7 +241,10 @@ export class SettingsComponent implements OnInit {
*/
isCurrentVersionOutdated(latestVersion: string): boolean {
this.version = this.dataService.getAppVersion();
return semver.lt(this.version, latestVersion);
return this.settingsService.isVersionOutdated(
this.version,
latestVersion
);
}
/**