{"version":3,"file":"index.mjs","sources":["../../../../src/lib/performance/prefetch/index.ts"],"sourcesContent":["/**\n * @file Prefetch Module\n * @description Intelligent prefetching utilities for routes, data, and assets.\n *\n * Provides ML-like prediction, multiple prefetch strategies, and priority-based\n * queue management for optimal resource loading.\n */\n\n// ============================================================================\n// Intelligent Prefetch Engine\n// ============================================================================\nexport {\n  // Class\n  IntelligentPrefetchEngine,\n  // Factory functions\n  getIntelligentPrefetchEngine,\n  resetIntelligentPrefetchEngine,\n  // Types\n  type NavigationEvent,\n  type PrefetchCandidate,\n  type PredictionResult,\n  type PredictionFactor,\n  type BehaviorMetrics,\n  type IntelligentPrefetchConfig,\n} from './intelligent-prefetch';\n\n// ============================================================================\n// Prefetch Strategies\n// ============================================================================\nexport {\n  // Classes\n  PrefetchStrategy,\n  ViewportPrefetchStrategy,\n  HoverPrefetchStrategy,\n  IdlePrefetchStrategy,\n  SequentialPrefetchStrategy,\n  ConditionalPrefetchStrategy,\n  StrategyComposer,\n  // Factory functions\n  createViewportStrategy,\n  createHoverStrategy,\n  createIdleStrategy,\n  createSequentialStrategy,\n  createConditionalStrategy,\n  // Types\n  type PrefetchStrategyType,\n  type PrefetchTarget,\n  type StrategyContext,\n  type StrategyResult,\n  type BaseStrategyConfig,\n  type ViewportStrategyConfig,\n  type HoverStrategyConfig,\n  type IdleStrategyConfig,\n  type SequentialStrategyConfig,\n  type ConditionalStrategyConfig,\n} from './prefetch-strategies';\n\n// ============================================================================\n// Prefetch Queue\n// ============================================================================\nexport {\n  // Class\n  PrefetchQueue,\n  // Factory functions\n  getPrefetchQueue,\n  resetPrefetchQueue,\n  // Types\n  type PrefetchPriority,\n  type PrefetchStatus,\n  type PrefetchItem,\n  type PrefetchQueueConfig,\n  type QueueStats,\n  type QueueEventType,\n  type QueueEventListener,\n} from './prefetch-queue';\n\n// ============================================================================\n// Route Prefetch\n// ============================================================================\nexport {\n  // Class\n  RoutePrefetchManager,\n  // Factory functions\n  getRoutePrefetchManager,\n  resetRoutePrefetchManager,\n  // Convenience functions\n  prefetchRoute,\n  registerPrefetchRoutes,\n  createRouteLinkHandlers,\n  // Types\n  type PrefetchableRoute,\n  type RoutePrefetchConfig,\n  type RoutePrefetchResult,\n  type LinkPrefetchHandlers,\n} from './route-prefetch';\n\n// ============================================================================\n// Data Prefetch\n// ============================================================================\nexport {\n  // Class\n  DataPrefetchManager,\n  // Factory functions\n  getDataPrefetchManager,\n  resetDataPrefetchManager,\n  // Convenience functions\n  prefetchData,\n  prefetchGraphQL,\n  getCachedData,\n  invalidateData,\n  invalidateDataByTag,\n  // Types\n  type DataPrefetchConfig,\n  type PrefetchRequestOptions,\n  type PrefetchResult,\n  type GraphQLPrefetchOptions,\n} from './data-prefetch';\n\n// ============================================================================\n// Asset Prefetch\n// ============================================================================\nexport {\n  // Class\n  AssetPrefetchManager,\n  // Factory functions\n  getAssetPrefetchManager,\n  resetAssetPrefetchManager,\n  // Convenience functions\n  prefetchImage,\n  prefetchImages,\n  prefetchFont,\n  dnsPrefetch,\n  preconnect,\n  preloadAsset,\n  // Types\n  type AssetType,\n  type Asset,\n  type ResponsiveImage,\n  type FontAsset,\n  type AssetPrefetchConfig,\n  type AssetPrefetchResult,\n} from './asset-prefetch';\n\n// ============================================================================\n// Unified Initialization\n// ============================================================================\n\nimport {\n  getIntelligentPrefetchEngine,\n  type IntelligentPrefetchConfig,\n} from './intelligent-prefetch';\nimport { getPrefetchQueue, type PrefetchQueueConfig } from './prefetch-queue';\nimport { getRoutePrefetchManager, type RoutePrefetchConfig } from './route-prefetch';\nimport { getDataPrefetchManager, type DataPrefetchConfig } from './data-prefetch';\nimport { getAssetPrefetchManager, type AssetPrefetchConfig } from './asset-prefetch';\n\n/**\n * Unified prefetch configuration\n */\nexport interface PrefetchSystemConfig {\n  /** Enable the prefetch system */\n  enabled?: boolean;\n  /** Intelligent prefetch configuration */\n  intelligent?: Partial<IntelligentPrefetchConfig>;\n  /** Queue configuration */\n  queue?: Partial<PrefetchQueueConfig>;\n  /** Route prefetch configuration */\n  routes?: Partial<RoutePrefetchConfig>;\n  /** Data prefetch configuration */\n  data?: Partial<DataPrefetchConfig>;\n  /** Asset prefetch configuration */\n  assets?: Partial<AssetPrefetchConfig>;\n}\n\n/**\n * Prefetch system instance references\n */\nexport interface PrefetchSystem {\n  engine: ReturnType<typeof getIntelligentPrefetchEngine>;\n  queue: ReturnType<typeof getPrefetchQueue>;\n  routes: ReturnType<typeof getRoutePrefetchManager>;\n  data: ReturnType<typeof getDataPrefetchManager>;\n  assets: ReturnType<typeof getAssetPrefetchManager>;\n}\n\n/**\n * Initialize the prefetch system\n */\nexport function initPrefetchSystem(config: PrefetchSystemConfig = {}): PrefetchSystem {\n  const enabled = config.enabled ?? true;\n\n  if (!enabled) {\n    // Return disabled instances\n    const disabledConfig = { enabled: false };\n    return {\n      engine: getIntelligentPrefetchEngine(disabledConfig),\n      queue: getPrefetchQueue(disabledConfig as Partial<PrefetchQueueConfig>),\n      routes: getRoutePrefetchManager(disabledConfig),\n      data: getDataPrefetchManager(disabledConfig),\n      assets: getAssetPrefetchManager(disabledConfig),\n    };\n  }\n\n  return {\n    engine: getIntelligentPrefetchEngine(config.intelligent),\n    queue: getPrefetchQueue(config.queue),\n    routes: getRoutePrefetchManager(config.routes),\n    data: getDataPrefetchManager(config.data),\n    assets: getAssetPrefetchManager(config.assets),\n  };\n}\n"],"names":["initPrefetchSystem","config","disabledConfig","getIntelligentPrefetchEngine","getPrefetchQueue","getRoutePrefetchManager","getDataPrefetchManager","getAssetPrefetchManager"],"mappings":";;;;;;;;;;AA4LO,SAASA,EAAmBC,IAA+B,IAAoB;AAGpF,MAAI,EAFYA,EAAO,WAAW,KAEpB;AAEZ,UAAMC,IAAiB,EAAE,SAAS,GAAA;AAClC,WAAO;AAAA,MACL,QAAQC,EAA6BD,CAAc;AAAA,MACnD,OAAOE,EAAiBF,CAA8C;AAAA,MACtE,QAAQG,EAAwBH,CAAc;AAAA,MAC9C,MAAMI,EAAuBJ,CAAc;AAAA,MAC3C,QAAQK,EAAwBL,CAAc;AAAA,IAAA;AAAA,EAElD;AAEA,SAAO;AAAA,IACL,QAAQC,EAA6BF,EAAO,WAAW;AAAA,IACvD,OAAOG,EAAiBH,EAAO,KAAK;AAAA,IACpC,QAAQI,EAAwBJ,EAAO,MAAM;AAAA,IAC7C,MAAMK,EAAuBL,EAAO,IAAI;AAAA,IACxC,QAAQM,EAAwBN,EAAO,MAAM;AAAA,EAAA;AAEjD;"}