Merge commit 'refs/pull/563/head' of github-fawney19:fawney19/Aether into review/pr-562

This commit is contained in:
fawney19
2026-05-25 23:44:02 +08:00
3 changed files with 112 additions and 10 deletions
@@ -1408,6 +1408,8 @@ function parseImportText(text: string): {
const refreshTokenCamel = obj.refreshToken
const accessToken = obj.access_token
const accessTokenCamel = obj.accessToken
const sessionToken = obj.session_token
const sessionTokenCamel = obj.sessionToken
const grokSsoToken = isGrokProvider.value
? normalizeStringField(obj.sso_token) ?? normalizeStringField(obj.ssoToken) ?? normalizeStringField(obj.token) ?? grokCookieImport?.access_token
: undefined
@@ -1417,12 +1419,15 @@ function parseImportText(text: string): {
const normalizedAccessToken = typeof accessToken === 'string' && accessToken.trim()
? accessToken.trim()
: (typeof accessTokenCamel === 'string' && accessTokenCamel.trim() ? accessTokenCamel.trim() : undefined)
const importedAccessToken = normalizedAccessToken ?? grokSsoToken
const normalizedSessionToken = typeof sessionToken === 'string' && sessionToken.trim()
? sessionToken.trim()
: (typeof sessionTokenCamel === 'string' && sessionTokenCamel.trim() ? sessionTokenCamel.trim() : undefined)
const importedAccessToken = normalizedAccessToken ?? grokSsoToken ?? normalizedSessionToken
if (normalizedRefreshToken || importedAccessToken) {
return {
refresh_token: normalizedRefreshToken,
access_token: importedAccessToken,
expires_at: normalizeNumberField(obj.expires_at) ?? normalizeNumberField(obj.expiresAt),
expires_at: normalizeExpiryField(obj.expires_at) ?? normalizeExpiryField(obj.expiresAt) ?? normalizeExpiryField(obj.expired),
name: (typeof obj.name === 'string' ? obj.name : undefined) || (typeof obj.oauth_email === 'string' ? obj.oauth_email : undefined),
email: normalizeStringField(obj.email) ?? normalizeStringField(obj.oauth_email),
account_id: normalizeStringField(obj.account_id) ?? normalizeStringField(obj.accountId) ?? normalizeStringField(obj.chatgpt_account_id) ?? normalizeStringField(obj.chatgptAccountId),
@@ -1534,6 +1539,18 @@ function normalizeNumberField(value: unknown): number | undefined {
return undefined
}
function normalizeExpiryField(value: unknown): number | undefined {
const numeric = normalizeNumberField(value)
if (numeric) return numeric
if (typeof value === 'string' && value.trim()) {
const parsed = Date.parse(value.trim())
if (Number.isFinite(parsed) && parsed > 0) {
return Math.floor(parsed / 1000)
}
}
return undefined
}
function isLikelyJwtToken(token: string): boolean {
const parts = token.trim().split('.')
if (parts.length !== 3 || parts.some(part => !part)) return false