Files
LEDMatrix/web_interface/static/v3/js/plugins/state_manager.js
T
ChuckandClaude Opus 5.5 7e066174d9 chore: remove dead code, deprecate unused plugin APIs (over-engineering audit)
Whole-tree audit. Every symbol was checked against core, the plugin
monorepo and all eight third-party plugins in plugins.json first.

- Deprecate (removal 3.10.0) plugin-facing methods nothing calls:
  LogoDownloader bulk download, ConfigManager backup/secret wrappers,
  APIHelper extras, BackgroundDataService poll API, PluginManager /
  PluginStateManager info readers, and a few CacheManager, FontManager,
  BaseOddsManager, DynamicTeamResolver methods and PluginTestCase.
  plugin_api_usage.py learns their receiver names; DEPRECATIONS doc
  regenerated.
- Remove core-internal dead code: CacheMetrics, Vegas status/stats
  plumbing, sync "new cycle" message (followers ignore unknown types),
  unused operation types, test-only PluginCatalog readers, IPC to_dict
  and ping, _parse_form_value, CacheStrategyProtocol, ErrorAggregator
  callbacks, duplicate web response helpers.
- Web UI: drop never-mounted json-file-manager.js, the example widget,
  utils/error_handler.js, four uncalled PluginAPI methods, and 29
  escapeHtml shims (call window.LEDEscape directly). Public globals,
  BaseWidget and widget names unchanged.
- Remove six one-off scripts (owner decision) and the unused markupsafe
  and pytest-mock pins.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-06 18:27:40 -04:00

41 lines
1.1 KiB
JavaScript

/**
* Frontend plugin state management.
*
* Manages local state for installed plugins and provides state synchronization.
*/
const PluginStateManager = {
/**
* Installed plugins state.
*/
installedPlugins: [],
/**
* Load installed plugins.
*
* @returns {Promise<Array>} List of installed plugins
*/
async loadInstalledPlugins() {
try {
const plugins = await window.PluginAPI.getInstalledPlugins();
this.installedPlugins = plugins;
window.installedPlugins = plugins; // For backward compatibility
return plugins;
} catch (error) {
if (typeof window.showNotification === 'function') {
window.showNotification('Failed to load installed plugins: '
+ ((error && error.message) || String(error)), 'error');
}
throw error;
}
}
};
// Export
if (typeof module !== 'undefined' && module.exports) {
module.exports = PluginStateManager;
} else {
window.PluginStateManager = PluginStateManager;
}