UNPKG

mlld

Version:

mlld: llm scripting language

120 lines (117 loc) 4.09 kB
import { MlldError } from './chunk-V5XE5YB5.mjs'; import { __name } from './chunk-NJQT543K.mjs'; // core/version.ts var version = "2.0.0-rc81"; // core/utils/version-checker.ts function parseSemVer(versionString) { const match = versionString.match(/^(\d+)\.(\d+)\.(\d+)(?:-([^+]+))?(?:\+(.+))?$/); if (!match) { throw new MlldError(`Invalid version string: ${versionString}`, { code: "INVALID_VERSION", severity: "error" }); } return { major: parseInt(match[1], 10), minor: parseInt(match[2], 10), patch: parseInt(match[3], 10), prerelease: match[4] || void 0, build: match[5] || void 0 }; } __name(parseSemVer, "parseSemVer"); function compareSemVer(a, b) { if (a.major !== b.major) return a.major - b.major; if (a.minor !== b.minor) return a.minor - b.minor; if (a.patch !== b.patch) return a.patch - b.patch; if (a.prerelease && !b.prerelease) return -1; if (!a.prerelease && b.prerelease) return 1; if (a.prerelease && b.prerelease) { return a.prerelease.localeCompare(b.prerelease); } return 0; } __name(compareSemVer, "compareSemVer"); function satisfiesVersion(version2, requirement) { if (requirement === "*" || requirement === "") return true; const ver = parseSemVer(version2); if (requirement.startsWith(">=")) { const reqVer2 = parseSemVer(requirement.substring(2).trim()); return compareSemVer(ver, reqVer2) >= 0; } if (requirement.startsWith(">")) { const reqVer2 = parseSemVer(requirement.substring(1).trim()); return compareSemVer(ver, reqVer2) > 0; } if (requirement.startsWith("<=")) { const reqVer2 = parseSemVer(requirement.substring(2).trim()); return compareSemVer(ver, reqVer2) <= 0; } if (requirement.startsWith("<")) { const reqVer2 = parseSemVer(requirement.substring(1).trim()); return compareSemVer(ver, reqVer2) < 0; } if (requirement.startsWith("^")) { const reqVer2 = parseSemVer(requirement.substring(1).trim()); if (compareSemVer(ver, reqVer2) < 0) return false; if (reqVer2.major === 0) { return ver.major === 0 && ver.minor === reqVer2.minor; } return ver.major === reqVer2.major; } if (requirement.startsWith("~")) { const reqVer2 = parseSemVer(requirement.substring(1).trim()); if (compareSemVer(ver, reqVer2) < 0) return false; return ver.major === reqVer2.major && ver.minor === reqVer2.minor; } const reqVer = parseSemVer(requirement); return compareSemVer(ver, reqVer) === 0; } __name(satisfiesVersion, "satisfiesVersion"); function checkMlldVersion(requiredVersion) { if (!requiredVersion) { return { compatible: true }; } try { const compatible = satisfiesVersion(version, requiredVersion); if (!compatible) { return { compatible: false, message: `Module requires mlld ${requiredVersion}, but you have ${version}` }; } return { compatible: true }; } catch (error) { return { compatible: false, message: `Invalid version requirement: ${requiredVersion}` }; } } __name(checkMlldVersion, "checkMlldVersion"); function formatVersionError(moduleName, requiredVersion, currentVersion) { const message = [ `Module '${moduleName}' requires mlld ${requiredVersion}` ]; message.push(`You are running mlld ${currentVersion}`); const required = parseSemVer(requiredVersion.replace(/^[><=^~]+/, "")); const current = parseSemVer(currentVersion); if (compareSemVer(current, required) < 0) { message.push(""); message.push("To use this module, you need to upgrade mlld:"); message.push(" npm install -g mlld@latest"); } else { message.push(""); message.push("This module may be using outdated syntax."); message.push("Check if there's an updated version available."); } return message.join("\n"); } __name(formatVersionError, "formatVersionError"); export { checkMlldVersion, compareSemVer, formatVersionError, parseSemVer, satisfiesVersion, version }; //# sourceMappingURL=chunk-BJCESMSP.mjs.map //# sourceMappingURL=chunk-BJCESMSP.mjs.map