import type { VersionWithContext } from './derive'; const UNFINISHED_VERSION_STATUSES = new Set(['planned', 'developing', 'paused']); export interface XiaobaoWarningVersionFilter { canManage: boolean; userName?: string; } export function filterXiaobaoWarningVersions( versions: VersionWithContext[], filter: XiaobaoWarningVersionFilter, ): VersionWithContext[] { return versions.filter((version) => { if (!UNFINISHED_VERSION_STATUSES.has(version.status)) return false; if (filter.canManage) return true; if (!filter.userName) return false; return (version.members ?? []).some((member) => member.name === filter.userName); }); }