const STORAGE_KEYS = Object.freeze({ developerTools: 'shine-feature-developer-tools-v1', dmFileTransfer: 'shine-feature-dm-file-transfer-v1', }); function readBoolean(key, defaultValue = true) { try { const raw = localStorage.getItem(key); if (raw == null) return Boolean(defaultValue); return raw !== '0' && raw !== 'false'; } catch { return Boolean(defaultValue); } } function writeBoolean(key, enabled) { const value = Boolean(enabled); try { localStorage.setItem(key, value ? '1' : '0'); } catch { // В приватном режиме/при запрете storage оставляем значение только на уровне default. } window.dispatchEvent(new CustomEvent('shine-feature-settings-updated', { detail: { key, enabled: value }, })); return value; } export function isDeveloperToolsEnabled() { return readBoolean(STORAGE_KEYS.developerTools, true); } export function setDeveloperToolsEnabled(enabled) { return writeBoolean(STORAGE_KEYS.developerTools, enabled); } export function isDmFileTransferEnabled() { return readBoolean(STORAGE_KEYS.dmFileTransfer, true); } export function setDmFileTransferEnabled(enabled) { return writeBoolean(STORAGE_KEYS.dmFileTransfer, enabled); }