37 lines
1.2 KiB
TypeScript
37 lines
1.2 KiB
TypeScript
import fs from "node:fs";
|
|
import path from "node:path";
|
|
|
|
import { saveJsonFile } from "../../infra/json-file.js";
|
|
import { resolveUserPath } from "../../utils.js";
|
|
import { resolveClawdbotAgentDir } from "../agent-paths.js";
|
|
import {
|
|
AUTH_PROFILE_FILENAME,
|
|
AUTH_STORE_VERSION,
|
|
LEGACY_AUTH_FILENAME,
|
|
} from "./constants.js";
|
|
import type { AuthProfileStore } from "./types.js";
|
|
|
|
export function resolveAuthStorePath(agentDir?: string): string {
|
|
const resolved = resolveUserPath(agentDir ?? resolveClawdbotAgentDir());
|
|
return path.join(resolved, AUTH_PROFILE_FILENAME);
|
|
}
|
|
|
|
export function resolveLegacyAuthStorePath(agentDir?: string): string {
|
|
const resolved = resolveUserPath(agentDir ?? resolveClawdbotAgentDir());
|
|
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);
|
|
}
|