buroventures-harald-code-core
Version:
Harald Code Core - Core functionality for AI-powered coding assistant
63 lines • 1.8 kB
JavaScript
/**
* @license
* Copyright 2025 Google LLC
* SPDX-License-Identifier: Apache-2.0
*/
import { GoogleAuth } from 'google-auth-library';
export class GoogleCredentialProvider {
config;
auth;
// Properties required by OAuthClientProvider, with no-op values
redirectUrl = '';
clientMetadata = {
client_name: 'Gemini CLI (Google ADC)',
redirect_uris: [],
grant_types: [],
response_types: [],
token_endpoint_auth_method: 'none',
};
_clientInformation;
constructor(config) {
this.config = config;
const scopes = this.config?.oauth?.scopes;
if (!scopes || scopes.length === 0) {
throw new Error('Scopes must be provided in the oauth config for Google Credentials provider');
}
this.auth = new GoogleAuth({
scopes,
});
}
clientInformation() {
return this._clientInformation;
}
saveClientInformation(clientInformation) {
this._clientInformation = clientInformation;
}
async tokens() {
const client = await this.auth.getClient();
const accessTokenResponse = await client.getAccessToken();
if (!accessTokenResponse.token) {
console.error('Failed to get access token from Google ADC');
return undefined;
}
const tokens = {
access_token: accessTokenResponse.token,
token_type: 'Bearer',
};
return tokens;
}
saveTokens(_tokens) {
// No-op, ADC manages tokens.
}
redirectToAuthorization(_authorizationUrl) {
// No-op
}
saveCodeVerifier(_codeVerifier) {
// No-op
}
codeVerifier() {
// No-op
return '';
}
}
//# sourceMappingURL=google-auth-provider.js.map