openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
22 lines (21 loc) • 768 B
JavaScript
import { a as normalizeLowercaseStringOrEmpty } from "./string-coerce-mnp54Vah.js";
//#region src/infra/clawhub-spec.ts
/** Parses explicit `clawhub:<name>[@version]` package specs for ClawHub installs. */
function parseClawHubPluginSpec(raw) {
const trimmed = raw.trim();
if (!normalizeLowercaseStringOrEmpty(trimmed).startsWith("clawhub:")) return null;
const spec = trimmed.slice(8).trim();
if (!spec) return null;
const atIndex = spec.lastIndexOf("@");
if (atIndex <= 0) return { name: spec };
if (atIndex >= spec.length - 1) return null;
const name = spec.slice(0, atIndex).trim();
const version = spec.slice(atIndex + 1).trim();
if (!name || !version) return null;
return {
name,
version
};
}
//#endregion
export { parseClawHubPluginSpec as t };