openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
40 lines (39 loc) • 1.35 kB
JavaScript
import { s as parseRegistryNpmSpec } from "./npm-registry-spec-DjR-Lha9.js";
import { t as buildNpmResolutionFields } from "./install-source-utils-Zb798u54.js";
//#region src/plugins/installs.ts
/** Builds install record fields from resolved npm package metadata. */
function buildNpmResolutionInstallFields(resolution) {
return buildNpmResolutionFields(resolution);
}
function isExactRegistryNpmSpec(spec) {
return (spec ? parseRegistryNpmSpec(spec) : null)?.selectorKind === "exact-version";
}
function resolveNpmInstallRecordSpec(params) {
const resolvedSpec = params.resolution?.resolvedSpec;
if (!params.pinResolvedRegistrySpec || !isExactRegistryNpmSpec(resolvedSpec)) return params.requestedSpec;
return resolvedSpec;
}
/** Records or updates a plugin install record in OpenClaw config. */
function recordPluginInstall(cfg, update) {
const { pluginId, ...record } = update;
const installs = {
...cfg.plugins?.installs,
[]: {
...cfg.plugins?.installs?.[pluginId],
...record,
installedAt: record.installedAt ?? (/* @__PURE__ */ new Date()).toISOString()
}
};
return {
...cfg,
plugins: {
...cfg.plugins,
installs: {
...installs,
[]: installs[pluginId]
}
}
};
}
//#endregion
export { recordPluginInstall as n, resolveNpmInstallRecordSpec as r, buildNpmResolutionInstallFields as t };