(options: {
stateDir: string;
flags: CliFlags;
env: EnvMap;
io?: AuthIo;
})
| 346 | } |
| 347 | |
| 348 | async function resolveCliSessionAccess(options: { |
| 349 | stateDir: string; |
| 350 | flags: CliFlags; |
| 351 | env: EnvMap; |
| 352 | io?: AuthIo; |
| 353 | }): Promise<{ accessToken: string; cloudBaseUrl: string } | null> { |
| 354 | const session = readCliSession({ stateDir: options.stateDir }); |
| 355 | if (!session || isExpired(session.expiresAt, options.io?.now)) { |
| 356 | return null; |
| 357 | } |
| 358 | const refreshed = await refreshAgentToken({ |
| 359 | session, |
| 360 | flags: options.flags, |
| 361 | env: options.env, |
| 362 | io: options.io, |
| 363 | }); |
| 364 | return { |
| 365 | accessToken: refreshed.accessToken, |
| 366 | cloudBaseUrl: resolveCloudBaseUrl(options.env, session.cloudBaseUrl), |
| 367 | }; |
| 368 | } |
| 369 | |
| 370 | async function refreshAgentToken(options: { |
| 371 | session: CliSessionRecord; |
no test coverage detected