| import * as semver from 'next/dist/compiled/semver'; |
| export function parseVersionInfo(o) { |
| const latest = semver.parse(o.latest); |
| const canary = semver.parse(o.canary); |
| const installedParsed = semver.parse(o.installed); |
| const installed = o.installed; |
| if (installedParsed && latest && canary) { |
| if (installedParsed.major < latest.major) { |
| |
| return { |
| staleness: 'stale-major', |
| expected: latest.raw, |
| installed |
| }; |
| } else if (installedParsed.prerelease[0] === 'canary' && semver.lt(installedParsed, canary)) { |
| |
| return { |
| staleness: 'stale-prerelease', |
| expected: canary.raw, |
| installed |
| }; |
| } else if (!installedParsed.prerelease.length && semver.lt(installedParsed, latest)) { |
| |
| if (installedParsed.minor === latest.minor) { |
| |
| return { |
| staleness: 'stale-patch', |
| expected: latest.raw, |
| installed |
| }; |
| } |
| return { |
| staleness: 'stale-minor', |
| expected: latest.raw, |
| installed |
| }; |
| } else if (semver.gt(installedParsed, latest) && installedParsed.version !== canary.version) { |
| |
| return { |
| staleness: 'newer-than-npm', |
| installed |
| }; |
| } else { |
| |
| return { |
| staleness: 'fresh', |
| installed |
| }; |
| } |
| } |
| return { |
| installed: (installedParsed == null ? void 0 : installedParsed.raw) ?? '0.0.0', |
| staleness: 'unknown' |
| }; |
| } |
|
|
| |