mirror of
https://github.com/openclaw/openclaw.git
synced 2026-04-06 14:51:08 +00:00
* refactor(google): share oauth token helpers * refactor(xai): share tool auth fallback helpers * refactor(xai): share tool auth resolution * refactor(xai): share tool config helpers * refactor(xai): share fallback auth helpers * refactor(xai): share responses tool helpers * refactor(google): share http request config helper * fix(xai): re-export shared web search extractor * fix(xai): import plugin config type * fix(providers): preserve default google network guard
41 lines
1.0 KiB
TypeScript
41 lines
1.0 KiB
TypeScript
type GoogleOauthApiKeyCredential = {
|
|
type?: string;
|
|
access?: string;
|
|
projectId?: string;
|
|
};
|
|
|
|
export function parseGoogleOauthApiKey(apiKey: string): {
|
|
token?: string;
|
|
projectId?: string;
|
|
} | null {
|
|
try {
|
|
const parsed = JSON.parse(apiKey) as { token?: unknown; projectId?: unknown };
|
|
return {
|
|
token: typeof parsed.token === "string" ? parsed.token : undefined,
|
|
projectId: typeof parsed.projectId === "string" ? parsed.projectId : undefined,
|
|
};
|
|
} catch {
|
|
return null;
|
|
}
|
|
}
|
|
|
|
export function formatGoogleOauthApiKey(cred: GoogleOauthApiKeyCredential): string {
|
|
if (cred.type !== "oauth" || typeof cred.access !== "string" || !cred.access.trim()) {
|
|
return "";
|
|
}
|
|
return JSON.stringify({
|
|
token: cred.access,
|
|
projectId: cred.projectId,
|
|
});
|
|
}
|
|
|
|
export function parseGoogleUsageToken(apiKey: string): string {
|
|
const parsed = parseGoogleOauthApiKey(apiKey);
|
|
if (parsed?.token) {
|
|
return parsed.token;
|
|
}
|
|
|
|
// Keep the raw token when the stored credential is not a project-aware JSON payload.
|
|
return apiKey;
|
|
}
|