import type { ArchivePlatesResponse, LibraryFilePlatesResponse } from '../types/plates'; const API_BASE = '/api/v1'; // Auth token storage // By default tokens are stored in sessionStorage (tab-scoped, cleared on close). // When the token originates from the ?token= URL param (kiosk bootstrap), it is // additionally persisted in localStorage so the kiosk survives page reloads. let authToken: string | null = sessionStorage.getItem('auth_token') ?? localStorage.getItem('auth_token'); export function setAuthToken(token: string | null, persist = false) { authToken = token; if (token) { sessionStorage.setItem('auth_token', token); if (persist) { localStorage.setItem('auth_token', token); } } else { sessionStorage.removeItem('auth_token'); localStorage.removeItem('auth_token'); } } export function getAuthToken(): string | null { return authToken; } // Stream token for image/video URLs loaded via /