openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
48 lines (47 loc) • 2.61 kB
JavaScript
import "./src-CdRlGRnW.mjs";
import { t as expectDefined } from "./expect-lbe3Hgrh.mjs";
import { i as formatInvalidConfigDetails, r as createInvalidConfigError } from "./io.invalid-config-BzeD3bi5.mjs";
import { n as createMergePatch, r as mergePatchConflicts, t as applyMergePatch } from "./merge-patch-C4XTCka4.mjs";
import { c as transformConfigWithPendingPluginInstalls } from "./install-record-commit-BcOHJWUh.mjs";
import { t as ProviderAuthConfigApplyError } from "./provider-auth-result-B4UlBTW7.mjs";
import { t as applyProviderAuthConfigPatch } from "./provider-auth-choice-helpers-gVHdr-sl.mjs";
//#region src/plugins/provider-auth-config.ts
const patchOptions = { mergeObjectArraysById: true };
function createProviderAuthConfigPatch(base, next) {
return createMergePatch(applyProviderAuthConfigPatch(base, {}), applyProviderAuthConfigPatch(next, {}), patchOptions);
}
/** Replay completed provider setup against current authored settings, without replaying login. */
async function writeProviderAuthConfig(params) {
const loginConfig = applyProviderAuthConfigPatch(params.config, {});
const sourceConfig = applyProviderAuthConfigPatch(params.configSnapshot.sourceConfig, {});
const runtimeConfig = applyProviderAuthConfigPatch(params.configSnapshot.runtimeConfig, {});
try {
const written = await transformConfigWithPendingPluginInstalls({
base: "source",
writeOptions: {
...params.writeOptions,
beforeCommit: params.beforeCommit
},
transform: (current, { snapshot }) => {
if (!snapshot.valid) throw createInvalidConfigError(snapshot.path, formatInvalidConfigDetails(snapshot.issues));
params.beforeCommit?.();
let next = applyProviderAuthConfigPatch(current, {});
if (params.configPatch) {
if (mergePatchConflicts(loginConfig, runtimeConfig, params.configPatch, patchOptions) && mergePatchConflicts(loginConfig, sourceConfig, params.configPatch, patchOptions) || mergePatchConflicts(sourceConfig, next, params.configPatch, patchOptions)) throw new Error("Provider settings changed during sign-in. Review the current settings and retry.");
next = applyMergePatch(next, params.configPatch, patchOptions);
}
next = params.finalizeConfig ? params.finalizeConfig(next, current) : next;
return {
nextConfig: next,
result: next
};
}
});
return expectDefined(written.result, "provider config mutation result");
} catch (error) {
if (!params.credentialsSaved) throw error;
throw new ProviderAuthConfigApplyError(error);
}
}
//#endregion
export { writeProviderAuthConfig as n, createProviderAuthConfigPatch as t };