38 lines
1.4 KiB
JavaScript
38 lines
1.4 KiB
JavaScript
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.parsePromptIdentifier = exports.isVersionGreaterOrEqual = void 0;
|
|
const semver_1 = require("semver");
|
|
function isVersionGreaterOrEqual(current_version, target_version) {
|
|
const current = (0, semver_1.parse)(current_version);
|
|
const target = (0, semver_1.parse)(target_version);
|
|
if (!current || !target) {
|
|
throw new Error("Invalid version format.");
|
|
}
|
|
return current.compare(target) >= 0;
|
|
}
|
|
exports.isVersionGreaterOrEqual = isVersionGreaterOrEqual;
|
|
function parsePromptIdentifier(identifier) {
|
|
if (!identifier ||
|
|
identifier.split("/").length > 2 ||
|
|
identifier.startsWith("/") ||
|
|
identifier.endsWith("/") ||
|
|
identifier.split(":").length > 2) {
|
|
throw new Error(`Invalid identifier format: ${identifier}`);
|
|
}
|
|
const [ownerNamePart, commitPart] = identifier.split(":");
|
|
const commit = commitPart || "latest";
|
|
if (ownerNamePart.includes("/")) {
|
|
const [owner, name] = ownerNamePart.split("/", 2);
|
|
if (!owner || !name) {
|
|
throw new Error(`Invalid identifier format: ${identifier}`);
|
|
}
|
|
return [owner, name, commit];
|
|
}
|
|
else {
|
|
if (!ownerNamePart) {
|
|
throw new Error(`Invalid identifier format: ${identifier}`);
|
|
}
|
|
return ["-", ownerNamePart, commit];
|
|
}
|
|
}
|
|
exports.parsePromptIdentifier = parsePromptIdentifier;
|