34 lines
1.2 KiB
TypeScript
34 lines
1.2 KiB
TypeScript
import fs from "node:fs";
|
|
import path from "node:path";
|
|
import type { AuthProfileStore } from "./types.js";
|
|
import { saveJsonFile } from "../../infra/json-file.js";
|
|
import { resolveUserPath } from "../../utils.js";
|
|
import { resolveOpenClawAgentDir } from "../agent-paths.js";
|
|
import { AUTH_PROFILE_FILENAME, AUTH_STORE_VERSION, LEGACY_AUTH_FILENAME } from "./constants.js";
|
|
|
|
export function resolveAuthStorePath(agentDir?: string): string {
|
|
const resolved = resolveUserPath(agentDir ?? resolveOpenClawAgentDir());
|
|
return path.join(resolved, AUTH_PROFILE_FILENAME);
|
|
}
|
|
|
|
export function resolveLegacyAuthStorePath(agentDir?: string): string {
|
|
const resolved = resolveUserPath(agentDir ?? resolveOpenClawAgentDir());
|
|
return path.join(resolved, LEGACY_AUTH_FILENAME);
|
|
}
|
|
|
|
export function resolveAuthStorePathForDisplay(agentDir?: string): string {
|
|
const pathname = resolveAuthStorePath(agentDir);
|
|
return pathname.startsWith("~") ? pathname : resolveUserPath(pathname);
|
|
}
|
|
|
|
export function ensureAuthStoreFile(pathname: string) {
|
|
if (fs.existsSync(pathname)) {
|
|
return;
|
|
}
|
|
const payload: AuthProfileStore = {
|
|
version: AUTH_STORE_VERSION,
|
|
profiles: {},
|
|
};
|
|
saveJsonFile(pathname, payload);
|
|
}
|