{"version":3,"file":"index.mjs","sources":["../../../../src/lib/flags/integration/index.ts"],"sourcesContent":["/**\n * @fileoverview Feature flag integration module exports.\n *\n * This module provides comprehensive integration between the feature flag system\n * and all library modules. It enables runtime configuration, conditional loading,\n * analytics bridging, and domain-specific flag controls.\n *\n * @module flags/integration\n *\n * @example\n * ```typescript\n * import {\n *   // Library Integration\n *   LibraryIntegrationProvider,\n *   useLibraryFlags,\n *   createLibraryIntegration,\n *\n *   // Configurable Features\n *   ConfigurableFeaturesProvider,\n *   useConfigurableFeature,\n *   defineFeature,\n *\n *   // Flag-Driven Loading\n *   useFeatureFlaggedModule,\n *   FlaggedModuleLoader,\n *   createFlaggedComponent,\n *\n *   // Analytics Bridge\n *   FlagAnalyticsProvider,\n *   useFlagAnalytics,\n *\n *   // Domain Flags\n *   apiFlags,\n *   routingFlags,\n *   uiFlags,\n *   performanceFlags,\n *\n *   // Universal Wrapper\n *   FlagConfigurable,\n * } from '@/lib/flags/integration';\n *\n * // Use in app\n * function App() {\n *   return (\n *     <LibraryIntegrationProvider getFlag={useFeatureFlag}>\n *       <FlagConfigurable flagKey=\"new-feature\">\n *         <NewFeature />\n *       </FlagConfigurable>\n *     </LibraryIntegrationProvider>\n *   );\n * }\n * ```\n */\n\n// =============================================================================\n// Library Integration\n// =============================================================================\n\nexport {\n  // Types\n  type LibraryId,\n  type FlagMapping,\n  type FlagTransformer,\n  type LibraryIntegrationConfig,\n  type LibraryIntegration,\n  type IntegrationMetadata,\n  type IntegrationRegistry,\n  type LibraryIntegrationContextValue,\n  type LibraryIntegrationProviderProps,\n\n  // Factory\n  createLibraryIntegration,\n  createSimpleIntegration,\n  registerIntegrations,\n  createFlagImpactReport,\n\n  // Registry\n  integrationRegistry,\n  getIntegrationRegistry,\n\n  // React Components\n  LibraryIntegrationProvider,\n\n  // React Hooks\n  useLibraryIntegrationContext,\n  useLibraryFlags,\n  useLibraryFeature,\n  useMultiLibraryFlags,\n} from './library-integration';\n\n// =============================================================================\n// Configurable Features\n// =============================================================================\n\nexport {\n  // Types\n  type FeatureCategory,\n  type FeatureStage,\n  type FeatureVisibility,\n  type FeatureRollout,\n  type FeatureDependency,\n  type FeatureOverride,\n  type FeatureDefinition,\n  type FeatureState,\n  type ConfigurableFeature,\n  type FeatureRegistryInterface,\n  type FeatureExport,\n  type ConfigurableFeaturesContextValue,\n  type ConfigurableFeaturesProviderProps,\n\n  // Registry\n  featureRegistry,\n  getFeatureRegistry,\n\n  // Factory Functions\n  defineFeature,\n  registerFeature,\n  registerFeatures,\n  createOverride,\n  featuresFromFlagKeys,\n  validateFeatures,\n\n  // React Components\n  ConfigurableFeaturesProvider,\n\n  // React Hooks\n  useConfigurableFeatures,\n  useConfigurableFeature,\n  useFeaturesByCategory,\n  useFeatureStats,\n} from './configurable-features';\n\n// =============================================================================\n// Flag-Driven Loading\n// =============================================================================\n\nexport {\n  // Types\n  type ModuleLoader,\n  type ComponentLoader,\n  type ModuleLoadResult,\n  type FlaggedModuleConfig,\n  type FlaggedComponentProps,\n  type ModulePreloadConfig,\n  type FlaggedRouteModuleConfig,\n\n  // React Hooks\n  useFeatureFlaggedModule,\n  useFlaggedLazyComponent,\n\n  // React Components\n  FlaggedModuleLoader,\n  SuspenseFlaggedLoader,\n\n  // Factory Functions\n  createFlaggedComponent,\n  createFlaggedComponents,\n  createFlaggedRouteLoaders,\n\n  // Preloading\n  preloadModule,\n  preloadModules,\n  createModulePreloadLink,\n\n  // Cache Management\n  clearModuleCache,\n  getModuleCacheStats,\n} from './flag-driven-loading';\n\n// =============================================================================\n// Flag Analytics Bridge\n// =============================================================================\n\nexport {\n  // Types\n  type FlagExposureEvent,\n  type FlagEvaluationEvent,\n  type CorrelatedMetric,\n  type CorrelatedError,\n  type FeatureImpactMetric,\n  type AnalyticsDestination,\n  type FlagAnalyticsBridgeConfig,\n  type FlagAnalyticsBridge,\n  type FlagAnalyticsContextValue,\n  type FlagAnalyticsProviderProps,\n\n  // Factory\n  createAnalyticsBridge,\n\n  // Global Bridge\n  getAnalyticsBridge,\n  initAnalyticsBridge,\n  resetAnalyticsBridge,\n\n  // React Components\n  FlagAnalyticsProvider,\n\n  // React Hooks\n  useFlagAnalytics,\n  useTrackedFeatureFlag,\n\n  // Pre-built Destinations\n  createConsoleDestination,\n  createLocalStorageDestination,\n  createHttpDestination,\n} from './flag-analytics-bridge';\n\n// =============================================================================\n// API Flags\n// =============================================================================\n\nexport {\n  // Types\n  API_FLAG_KEYS,\n  type ApiFlagKey,\n  type ApiFlagConfig,\n  type EndpointFlagConfig,\n  type FlaggedRequestOptions,\n\n  // Defaults\n  DEFAULT_API_FLAG_CONFIG,\n\n  // Integration\n  apiIntegration,\n  createApiFlagIntegration,\n\n  // Helpers\n  apiFlags,\n\n  // React Hooks\n  useApiFlagConfig,\n  useApiFlag,\n  useFlaggedApiRequest,\n\n  // Endpoint Management\n  registerFlaggedEndpoint,\n  getFlaggedEndpointUrl,\n  getFlaggedEndpointMockData,\n  clearFlaggedEndpoints,\n\n  // Client Factory\n  createFlaggedFetch,\n} from './api-flags';\n\n// =============================================================================\n// Routing Flags\n// =============================================================================\n\nexport {\n  // Types\n  ROUTING_FLAG_KEYS,\n  type RoutingFlagKey,\n  type RoutingFlagConfig,\n  type FlaggedRouteConfig,\n  type RouteVisibilityConfig,\n\n  // Defaults\n  DEFAULT_ROUTING_FLAG_CONFIG,\n\n  // Integration\n  routingIntegration,\n  createRoutingFlagIntegration,\n\n  // Helpers\n  routingFlags,\n\n  // React Hooks\n  useRoutingFlagConfig,\n  useRoutingFlag,\n  useFlaggedNavigation,\n\n  // Route Management\n  registerFlaggedRoute,\n  getFlaggedRouteComponent,\n  getFlaggedRouteRedirect,\n  registerRouteVisibility,\n  isRouteVisible,\n  getVisibleRoutes,\n  clearFlaggedRoutes,\n\n  // Navigation\n  createFlaggedNavLinks,\n} from './routing-flags';\n\n// =============================================================================\n// UI Flags\n// =============================================================================\n\nexport {\n  // Types\n  UI_FLAG_KEYS,\n  type UiFlagKey,\n  type UiFlagConfig,\n  type ComponentVariantConfig,\n  type StyleVariantConfig,\n  type FlaggedUIComponentProps,\n\n  // Defaults\n  DEFAULT_UI_FLAG_CONFIG,\n\n  // Integration\n  uiIntegration,\n  createUiFlagIntegration,\n\n  // Helpers\n  uiFlags,\n\n  // React Hooks\n  useUiFlagConfig,\n  useUiFlag,\n  useAnimationSettings,\n  useThemeSettings,\n  useComponentVariant,\n  useStyleVariant,\n  useUiFlagClasses,\n\n  // Component Variants\n  registerComponentVariant,\n  getComponentVariant,\n  registerStyleVariant,\n  getStyleVariant,\n\n  // React Components\n  FlaggedUIComponent,\n  withUiFlag,\n\n  // Utilities\n  getUiFlagClasses,\n  applyUiFlagsToDocument,\n} from './ui-flags';\n\n// =============================================================================\n// Performance Flags\n// =============================================================================\n\nexport {\n  // Types\n  PERFORMANCE_FLAG_KEYS,\n  type PerformanceFlagKey,\n  type PerformanceFlagConfig,\n  type FlaggedMonitoringConfig,\n  type FlaggedOptimizationConfig,\n  type DegradationLevel,\n\n  // Defaults\n  DEFAULT_PERFORMANCE_FLAG_CONFIG,\n\n  // Integration\n  performanceIntegration,\n  createPerformanceFlagIntegration,\n\n  // Helpers\n  performanceFlags,\n\n  // React Hooks\n  usePerformanceFlagConfig,\n  usePerformanceFlag,\n  useFlaggedMonitoringConfig,\n  useFlaggedOptimizationConfig,\n  usePerformanceDegradation,\n\n  // Configuration Factories\n  getFlaggedMonitoringConfig,\n  getFlaggedOptimizationConfig,\n  getDegradationConfig,\n} from './performance-flags';\n\n// =============================================================================\n// FlagConfigurable Component\n// =============================================================================\n\nexport {\n  // Types\n  type FlagMetadata,\n  type FlagRenderProps,\n  type FlagConfigurableProps,\n  type FlagConfigurableContextValue,\n  type WithFlagConfigurableOptions,\n  type FlagConfigurableABProps,\n  type FlagConfigurableMultiProps,\n  type FlagConfigurableGatedProps,\n\n  // Context\n  useFlagConfigurableContext,\n\n  // Components\n  FlagConfigurable,\n  FlagConfigurableAB,\n  FlagConfigurableMulti,\n  FlagConfigurableGated,\n  FlagConfigurableDebug,\n  FlagConfigurableList,\n\n  // HOC\n  withFlagConfigurable,\n} from './FlagConfigurable';\n\n// =============================================================================\n// Unified Initialization\n// =============================================================================\n\nimport { integrationRegistry } from './library-integration';\nimport { apiIntegration } from './api-flags';\nimport { routingIntegration } from './routing-flags';\nimport { uiIntegration } from './ui-flags';\nimport { performanceIntegration } from './performance-flags';\nimport { apiFlags } from './api-flags';\nimport { routingFlags } from './routing-flags';\nimport { uiFlags } from './ui-flags';\nimport { performanceFlags } from './performance-flags';\n\n/**\n * Initialize all library flag integrations\n */\nexport function initFlagIntegrations(getFlag: (flagKey: string) => boolean): () => void {\n  // Set flag getters for all domain helpers\n  apiFlags.setFlagGetter(getFlag);\n  routingFlags.setFlagGetter(getFlag);\n  uiFlags.setFlagGetter(getFlag);\n  performanceFlags.setFlagGetter(getFlag);\n\n  // Ensure all integrations are registered\n  if (!integrationRegistry.get('api')) {\n    integrationRegistry.register(apiIntegration);\n  }\n  if (!integrationRegistry.get('routing')) {\n    integrationRegistry.register(routingIntegration);\n  }\n  if (!integrationRegistry.get('ui')) {\n    integrationRegistry.register(uiIntegration);\n  }\n  if (!integrationRegistry.get('performance')) {\n    integrationRegistry.register(performanceIntegration);\n  }\n\n  // Return cleanup function\n  return () => {\n    integrationRegistry.clear();\n  };\n}\n\n/**\n * Get all registered library integrations\n */\nexport function getAllIntegrations(): {\n  api: typeof apiIntegration;\n  routing: typeof routingIntegration;\n  ui: typeof uiIntegration;\n  performance: typeof performanceIntegration;\n} {\n  return {\n    api: apiIntegration,\n    routing: routingIntegration,\n    ui: uiIntegration,\n    performance: performanceIntegration,\n  };\n}\n\n/**\n * Update flags across all integrations\n */\nexport function updateAllFlags(flags: Record<string, boolean>): void {\n  integrationRegistry.updateFlags(flags);\n}\n"],"names":["initFlagIntegrations","getFlag","apiFlags","routingFlags","uiFlags","performanceFlags","integrationRegistry","apiIntegration","routingIntegration","uiIntegration","performanceIntegration","getAllIntegrations","updateAllFlags","flags"],"mappings":";;;;;;;;;;AA8ZO,SAASA,EAAqBC,GAAmD;AAEtFC,SAAAA,EAAS,cAAcD,CAAO,GAC9BE,EAAa,cAAcF,CAAO,GAClCG,EAAQ,cAAcH,CAAO,GAC7BI,EAAiB,cAAcJ,CAAO,GAGjCK,EAAoB,IAAI,KAAK,KAChCA,EAAoB,SAASC,CAAc,GAExCD,EAAoB,IAAI,SAAS,KACpCA,EAAoB,SAASE,CAAkB,GAE5CF,EAAoB,IAAI,IAAI,KAC/BA,EAAoB,SAASG,CAAa,GAEvCH,EAAoB,IAAI,aAAa,KACxCA,EAAoB,SAASI,CAAsB,GAI9C,MAAM;AACXJ,IAAAA,EAAoB,MAAA;AAAA,EACtB;AACF;AAKO,SAASK,IAKd;AACA,SAAO;AAAA,IACL,KAAKJ;AAAAA,IACL,SAASC;AAAAA,IACT,IAAIC;AAAAA,IACJ,aAAaC;AAAAA,EAAA;AAEjB;AAKO,SAASE,EAAeC,GAAsC;AACnEP,EAAAA,EAAoB,YAAYO,CAAK;AACvC;"}