()
| 73 | } |
| 74 | |
| 75 | async function fetchLatestVersion(): Promise<string | null> { |
| 76 | try { |
| 77 | const resp = await fetch(`https://registry.npmjs.org/${PACKAGE_NAME}/latest`, { |
| 78 | headers: { Accept: 'application/json' }, |
| 79 | signal: AbortSignal.timeout(8_000), |
| 80 | }) |
| 81 | if (!resp.ok) return null |
| 82 | const data = (await resp.json()) as { version?: string } |
| 83 | return data.version || null |
| 84 | } catch { |
| 85 | return null |
| 86 | } |
| 87 | } |
| 88 | |
| 89 | function promptUser(question: string, choices: string[]): Promise<number> { |
| 90 | return new Promise((resolve) => { |
no outgoing calls
no test coverage detected