diff options
| author | matt korwel <[email protected]> | 2025-07-09 21:51:37 -0700 |
|---|---|---|
| committer | GitHub <[email protected]> | 2025-07-09 21:51:37 -0700 |
| commit | 58607b92dfe76dd657338b5433d0fd33800f9272 (patch) | |
| tree | 4a07182ca01f20074a5544db5caf5a198cabae6c /packages/core/src/utils | |
| parent | b7f8e1360fc13c077c24c98fe9d85e0734195000 (diff) | |
Revert "fix: Use Email for Clearcut Logging and Refactor User Info Fetching" (#3744)
Diffstat (limited to 'packages/core/src/utils')
| -rw-r--r-- | packages/core/src/utils/user_id.test.ts | 26 | ||||
| -rw-r--r-- | packages/core/src/utils/user_id.ts | 30 |
2 files changed, 30 insertions, 26 deletions
diff --git a/packages/core/src/utils/user_id.test.ts b/packages/core/src/utils/user_id.test.ts index 42d8958c..185d6c95 100644 --- a/packages/core/src/utils/user_id.test.ts +++ b/packages/core/src/utils/user_id.test.ts @@ -5,7 +5,7 @@ */ import { describe, it, expect } from 'vitest'; -import { getInstallationId, getGoogleAccountEmail } from './user_id.js'; +import { getInstallationId, getGoogleAccountId } from './user_id.js'; describe('user_id', () => { describe('getInstallationId', () => { @@ -22,24 +22,30 @@ describe('user_id', () => { }); }); - describe('getGoogleAccountEmail', () => { - it('should return a non-empty string', () => { - const result = getGoogleAccountEmail(); + describe('getGoogleAccountId', () => { + it('should return a non-empty string', async () => { + const result = await getGoogleAccountId(); expect(result).toBeDefined(); expect(typeof result).toBe('string'); // Should be consistent on subsequent calls - const secondCall = getGoogleAccountEmail(); + const secondCall = await getGoogleAccountId(); expect(secondCall).toBe(result); }); - it('should return empty string when no Google Account email is cached', () => { - // In a clean test environment, there should be no cached Google Account email - const googleAccountEmailResult = getGoogleAccountEmail(); + it('should return empty string when no Google Account ID is cached, or a valid ID when cached', async () => { + // The function can return either an empty string (if no cached ID) or a valid Google Account ID (if cached) + const googleAccountIdResult = await getGoogleAccountId(); - // They should be the same when no Google Account email is cached - expect(googleAccountEmailResult).toBe(''); + expect(googleAccountIdResult).toBeDefined(); + expect(typeof googleAccountIdResult).toBe('string'); + + // Should be either empty string or a numeric string (Google Account ID) + if (googleAccountIdResult !== '') { + // If we have a cached ID, it should be a numeric string + expect(googleAccountIdResult).toMatch(/^\d+$/); + } }); }); }); diff --git a/packages/core/src/utils/user_id.ts b/packages/core/src/utils/user_id.ts index 045cbd77..42bbee35 100644 --- a/packages/core/src/utils/user_id.ts +++ b/packages/core/src/utils/user_id.ts @@ -8,11 +8,8 @@ import * as os from 'os'; import * as fs from 'fs'; import * as path from 'path'; import { randomUUID } from 'crypto'; -import { createRequire } from 'module'; import { GEMINI_DIR } from './paths.js'; -const require = createRequire(import.meta.url); - const homeDir = os.homedir() ?? ''; const geminiDir = path.join(homeDir, GEMINI_DIR); const installationIdFile = path.join(geminiDir, 'installation_id'); @@ -61,23 +58,24 @@ export function getInstallationId(): string { } /** - * Retrieves the email for the currently authenticated user. - * When OAuth is available, returns the user's cached email. Otherwise, returns an empty string. - * @returns A string email for the user (Google Account email if available, otherwise empty string). + * Retrieves the obfuscated Google Account ID for the currently authenticated user. + * When OAuth is available, returns the user's cached Google Account ID. Otherwise, returns the installation ID. + * @returns A string ID for the user (Google Account ID if available, otherwise installation ID). */ -export function getGoogleAccountEmail(): string { - // Try to get cached Google Account email first +export async function getGoogleAccountId(): Promise<string> { + // Try to get cached Google Account ID first try { - // Dynamically import to avoid circular dependencies - // eslint-disable-next-line no-restricted-syntax - const { getCachedGoogleAccountEmail } = require('../code_assist/oauth2.js'); - const googleAccountEmail = getCachedGoogleAccountEmail(); - if (googleAccountEmail) { - return googleAccountEmail; + // Dynamic import to avoid circular dependencies + const { getCachedGoogleAccountId } = await import( + '../code_assist/oauth2.js' + ); + const googleAccountId = getCachedGoogleAccountId(); + if (googleAccountId) { + return googleAccountId; } } catch (error) { - // If there's any error accessing Google Account email, just return empty string - console.debug('Could not get cached Google Account email:', error); + // If there's any error accessing Google Account ID, just return empty string + console.debug('Could not get cached Google Account ID:', error); } return ''; |
