/** 店铺密码短时揭示会话(任务 94):读取明文后只在内存按短窗口(默认 5 秒)展示, * 读取失败或离开页面即清空;纯逻辑,明文不写持久化/日志。 */ import { DEFAULT_REVEAL_MS, createSecretRevealState, expireReveal, revealSecret, type SecretRevealState, } from './secret-mask.ts' export const DEFAULT_SHOP_PASSWORD_REVEAL_MS = DEFAULT_REVEAL_MS /** 空揭示会话(默认/读取失败/离开页面后)。 */ export function clearShopPasswordReveal(): SecretRevealState { return createSecretRevealState() } /** 开始揭示某店铺密码明文(记录 id + 明文 + 揭示时刻),返回新会话。 */ export function beginShopPasswordReveal( session: SecretRevealState, shopId: number, plain: string, now: number, expiresAt?: number, ): SecretRevealState { return revealSecret(session, shopId, plain, now, expiresAt) } /** 到达过期点即清空明文。 */ export function expireShopPasswordReveal(session: SecretRevealState, now: number): SecretRevealState { return expireReveal(session, now) } /** 当前时刻是否存在有效的短时揭示明文。 */ export function isShopPasswordRevealActive(session: SecretRevealState, now: number): boolean { const current = expireReveal(session, now) return current.keyId !== null && current.token !== undefined && current.token !== '' }