import fs from "fs"; import path from "path"; import { DATA_DIR } from "@/lib/dataDir.js"; const TUNNEL_DIR = path.join(DATA_DIR, "tunnel"); const STATE_FILE = path.join(TUNNEL_DIR, "state.json"); const SHORT_ID_LENGTH = 6; const SHORT_ID_CHARS = "abcdefghijklmnpqrstuvwxyz23456789"; export function ensureTunnelDir() { if (!fs.existsSync(TUNNEL_DIR)) fs.mkdirSync(TUNNEL_DIR, { recursive: true }); } export function loadState() { try { if (fs.existsSync(STATE_FILE)) return JSON.parse(fs.readFileSync(STATE_FILE, "utf8")); } catch { /* ignore corrupt state */ } return null; } export function saveState(state) { ensureTunnelDir(); fs.writeFileSync(STATE_FILE, JSON.stringify(state, null, 2)); } export function clearState() { try { if (fs.existsSync(STATE_FILE)) fs.unlinkSync(STATE_FILE); } catch { /* ignore */ } } export function generateShortId() { let result = ""; for (let i = 0; i < SHORT_ID_LENGTH; i++) { result += SHORT_ID_CHARS.charAt(Math.floor(Math.random() * SHORT_ID_CHARS.length)); } return result; } export { TUNNEL_DIR };