// Défauts committés de l'extension + fusion avec la surcharge locale. // // ⚠️ Ce fichier n'a NI `import` NI `export`, DÉLIBÉRÉMENT (ne pas « corriger ») : // c'est ce qui le rend chargeable à la fois comme content script / script de // background (scripts classiques : un `export` y lève une SyntaxError) et comme // module ESM (`import "./config.js"` depuis presentation.js et bun test). // Il communique donc par `globalThis`. Cf. DECISIONS.md 2026-07-17. globalThis.EchoConfig = { // Clé de storage : le background écrit, le content script lit. CLE_CONFIG_LOCALE: "config-locale", DEFAUTS: { // Vides par défaut : sans config.local.json, on préfère un champ vide // signalé dans le bandeau à un organisateur inventé. organisateur: "", email: "", // RECHERCHE.md §3 : valeur exacte du dropdown #input_6_20. themeDefaut: "Culture", tarifs: "Gratuit", // RECHERCHE.md §2. `input_18` se compose `${coords}|${adresse}`. cafe: { adresse: "8 Rue du Pré Vicinal 31270 Cugnaux", coords: "43.53753132806989|1.342981890597508", }, }, // Fusion de surface : la locale ne porte que des champs plats // (organisateur, email…). Tolérante par nécessité — `config.local.json` est // optionnel et éditable à la main : absent, `null` ou invalide → défauts nus, // jamais d'exception. fusionner(defauts, locale) { const surcharge = locale && typeof locale === "object" && !Array.isArray(locale) ? locale : {}; return { ...defauts, ...surcharge }; }, };