| 54 | version.includes("-beta.") ? "beta" : "latest"; |
| 55 | |
| 56 | const parseVersion = (version: string): ParsedVersion | null => { |
| 57 | const match = version.trim().match(semverPattern); |
| 58 | if (!match?.groups) return null; |
| 59 | return { |
| 60 | major: Number(match.groups.major), |
| 61 | minor: Number(match.groups.minor), |
| 62 | patch: Number(match.groups.patch), |
| 63 | prerelease: match.groups.prerelease |
| 64 | ? match.groups.prerelease.split(".").map((id) => (/^\d+$/.test(id) ? Number(id) : id)) |
| 65 | : null, |
| 66 | }; |
| 67 | }; |
| 68 | |
| 69 | const comparePrereleaseIdentifiers = ( |
| 70 | left: ReadonlyArray<string | number> | null, |