export type DeviceAuthEntry = { token: string; role: string; scopes: string[]; updatedAtMs: number; }; export type DeviceAuthStore = { version: 1; deviceId: string; tokens: Record; }; export function normalizeDeviceAuthRole(role: string): string { return role.trim(); } export function normalizeDeviceAuthScopes(scopes: string[] | undefined): string[] { if (!Array.isArray(scopes)) { return []; } const out = new Set(); for (const scope of scopes) { const trimmed = scope.trim(); if (trimmed) { out.add(trimmed); } } return [...out].toSorted(); }