/** * Router Enhancement Module * * Provides enhanced routing with guards, middleware, lazy loading, and analytics. * * Usage: * - Add data-module="router" to enable enhanced router * - Or import and use directly: import { Router } from './modules/router/index.js' * * Features: * - Route guards (auth, permissions) * - Route middleware * - Lazy route loading * - Route analytics * - Integration with LiveComponents */ import { Logger } from '../../core/logger.js'; import { Router } from './Router.js'; import { RouteGuard, BuiltInGuards } from './RouteGuard.js'; import { RouteMiddleware, BuiltInMiddleware } from './RouteMiddleware.js'; const RouterModule = { name: 'router', router: null, init(config = {}, state = null) { Logger.info('[RouterModule] Module initialized'); // Create router this.router = Router.create(config); // Expose globally for easy access if (typeof window !== 'undefined') { window.Router = this.router; } return this; }, /** * Get router instance */ getRouter() { return this.router || Router.create(); }, /** * Register routes */ routes(routesConfig) { const router = this.getRouter(); router.routes(routesConfig); return this; }, /** * Navigate to route */ async navigate(path, options = {}) { const router = this.getRouter(); return await router.navigate(path, options); }, destroy() { if (this.router) { this.router.destroy(); this.router = null; } if (typeof window !== 'undefined' && window.Router) { delete window.Router; } Logger.info('[RouterModule] Module destroyed'); } }; // Export for direct usage export { Router, RouteGuard, RouteMiddleware, BuiltInGuards, BuiltInMiddleware }; // Export as default for module system export default RouterModule; // Export init function for module system export const init = RouterModule.init.bind(RouterModule);