import {displayToken} from './token' import Timer from './tokenTimer'; import totp from 'totp-generator' const period = 30 const digits = 6 let token = '' async function generateTOTP(secret: string): Promise<{secondsSinceStart: number, secondsRemaining: number}>{ const token = totp(secret.replace(/ /, '').trim(), { digits, period, }) const secondsSinceEpoch = Math.ceil(Date.now() / 1000) - 1 const secondsSinceStart = 0 + (secondsSinceEpoch % period) const secondsRemaining = period - (secondsSinceEpoch % period) return { secondsSinceStart, secondsRemaining } } export async function displayTokenListItem(account: string, secret: string, element: HTMLDivElement){ const period = 30 const digits = 6 const {secondsRemaining, secondsSinceStart} = await generateTOTP(secret) const token = await displayToken(secret) return element.innerHTML = `

${account}

${await displayToken(secret)}

${await Timer(secondsSinceStart, secondsRemaining)}

`; }