'use strict';
// Robuuste padbepaling — werkt zowel voor de Node-versie als de standalone-binary.
// In de standalone wijst __dirname naar een virtueel pad ín de binary; daarom zoeken we
// de echte map (met public/ ernaast) primair via de locatie van het programma zelf.
const path = require('path');
const fs = require('fs');

function resolveBase() {
  const cands = [];
  try { cands.push(path.dirname(process.execPath)); } catch (_) {}   // standalone: map van de .exe
  try { cands.push(process.cwd()); } catch (_) {}                    // gestart vanuit de map
  cands.push(path.join(__dirname, '..'));                            // Node-versie: projectmap
  for (const c of cands) {
    try { if (fs.existsSync(path.join(c, 'public', 'index.html'))) return c; } catch (_) {}
  }
  return path.join(__dirname, '..');
}

const BASE = resolveBase();
module.exports = {
  BASE,
  PUBLIC: path.join(BASE, 'public'),
  DATA: path.join(BASE, 'data'),
};
