| 135 | const authorize = await method.authorize(inputs) |
| 136 | |
| 137 | const persistAuthResult = async (result: Awaited<ReturnType<typeof authorize.callback>>) => { |
| 138 | if (!result || result.type !== "success") return |
| 139 | const saveProvider = result.provider ?? provider |
| 140 | |
| 141 | let authInfo: Auth.Info |
| 142 | if ("refresh" in result) { |
| 143 | if ("idToken" in result && result.idToken) { |
| 144 | authInfo = { |
| 145 | type: "codex", |
| 146 | accessToken: result.access, |
| 147 | refreshToken: result.refresh, |
| 148 | expiresAt: result.expires, |
| 149 | idToken: result.idToken, |
| 150 | accountId: result.accountId, |
| 151 | email: result.email, |
| 152 | planType: result.planType, |
| 153 | } |
| 154 | } else { |
| 155 | authInfo = { |
| 156 | type: "oauth", |
| 157 | refresh: result.refresh, |
| 158 | access: result.access, |
| 159 | expires: result.expires, |
| 160 | } |
| 161 | } |
| 162 | } else if ("key" in result) { |
| 163 | authInfo = { |
| 164 | type: "api", |
| 165 | key: result.key, |
| 166 | } |
| 167 | } else { |
| 168 | return |
| 169 | } |
| 170 | |
| 171 | const authKey = check.connectionName ? Auth.formatKey(saveProvider, check.connectionName) : saveProvider |
| 172 | await Auth.set(authKey, authInfo) |
| 173 | } |
| 174 | |
| 175 | if (authorize.url) { |
| 176 | // Use console.log directly because @clack/prompts strips escape sequences |