Something went wrong. Try again.
source dump of claude code forked from oppi.li/claude-code
Something went wrong. Try again.
1.8 kB · 60 lines
TypeScript
at main
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061import axios from 'axios'import { getOauthConfig } from '../../constants/oauth.js'import { getGlobalConfig, saveGlobalConfig } from '../../utils/config.js'import { getAuthHeaders } from '../../utils/http.js'import { logError } from '../../utils/log.js'import { getClaudeCodeUserAgent } from '../../utils/userAgent.js'
/** * Fetch the user's first Claude Code token date and store in config. * This is called after successful login to cache when they started using Claude Code. */export async function fetchAndStoreClaudeCodeFirstTokenDate(): Promise<void> { try { const config = getGlobalConfig()
if (config.claudeCodeFirstTokenDate !== undefined) { return }
const authHeaders = getAuthHeaders() if (authHeaders.error) { logError(new Error(`Failed to get auth headers: ${authHeaders.error}`)) return }
const oauthConfig = getOauthConfig() const url = `${oauthConfig.BASE_API_URL}/api/organization/claude_code_first_token_date`
const response = await axios.get(url, { headers: { ...authHeaders.headers, 'User-Agent': getClaudeCodeUserAgent(), }, timeout: 10000, })
const firstTokenDate = response.data?.first_token_date ?? null
// Validate the date if it's not null if (firstTokenDate !== null) { const dateTime = new Date(firstTokenDate).getTime() if (isNaN(dateTime)) { logError( new Error( `Received invalid first_token_date from API: ${firstTokenDate}`, ), ) // Don't save invalid dates return } }
saveGlobalConfig(current => ({ ...current, claudeCodeFirstTokenDate: firstTokenDate, })) } catch (error) { logError(error) }}