const fs = require("fs"); const path = require("path"); const os = require("os"); const APP_NAME = "9router"; function defaultDir() { if (process.platform === "win32") { return path.join(process.env.APPDATA || path.join(os.homedir(), "AppData", "Roaming"), APP_NAME); } return path.join(os.homedir(), `.${APP_NAME}`); } function getDataDir() { const configured = process.env.DATA_DIR; if (!configured) return defaultDir(); try { fs.mkdirSync(configured, { recursive: true }); return configured; } catch (e) { if (e?.code === "EACCES" || e?.code === "EPERM") { console.warn(`[DATA_DIR] '${configured}' not writable → fallback ~/.${APP_NAME}`); return defaultDir(); } throw e; } } const DATA_DIR = getDataDir(); const MITM_DIR = path.join(DATA_DIR, "mitm"); module.exports = { DATA_DIR, MITM_DIR };