@dbs-portal/core-module-registry
Version:
Core module registry system for automatic module discovery and registration
62 lines • 3.55 kB
TypeScript
/**
* DBS Portal Core Module Registry
*
* Main entry point for the module registry system that provides:
* - Automatic module discovery and registration
* - Module metadata validation and management
* - High-performance caching system
* - Event-driven architecture
* - TypeScript-first design
*
* @example
* ```typescript
* import { ModuleRegistry } from '@dbs-portal/core-module-registry'
*
* // Initialize registry
* const registry = ModuleRegistry.getInstance()
* await registry.initialize()
*
* // Get all active modules
* const modules = registry.getActiveModules()
*
* // Register a new module
* await registry.registerModule({
* id: 'my-module',
* name: 'My Module',
* version: '1.0.0',
* // ... other metadata
* })
* ```
*/
export { ModuleRegistry } from './registry/ModuleRegistry';
export type { RegistryListener, RegistryOptions } from './registry/ModuleRegistry';
export type { ModuleDiscoveryService } from './registry/ModuleDiscoveryService';
export type { DiscoveryOptions, DiscoveryResult, DiscoveryError, DiscoveryWarning, DiscoveryStats } from './registry/ModuleDiscoveryService';
/**
* Dynamically load ModuleDiscoveryService to avoid mixed import warnings
*/
export declare function createModuleDiscoveryService(options?: import('./registry/ModuleDiscoveryService').DiscoveryOptions): Promise<import(".").ModuleDiscoveryService>;
export type { ModuleMetadata, ModuleRoute, NavigationItem, NavigationBadge, RouteGuard, ModuleId, ModuleName, ModuleVersion, ModuleCandidate, PackageInfo, ModuleRegistration, RegistryEvent, ValidationError, ValidationResult, CacheEntry } from './types';
export { ModuleCategory, ModuleStatus, RouteGuardType, NavigationBadgeType, ModuleMetadataSchema, ModuleRouteSchema, NavigationItemSchema, NavigationBadgeSchema, RouteGuardSchema, validateModuleMetadata } from './types';
export { ModuleCache, BrowserEventEmitter, defaultEventEmitter, getPath, getFs, getGlob, initializePlatformModules, preloadBrowserModules, getPlatformInfo, createPlatformError, clearModuleCache, detectEnvironment, loadConditionalModule, loadConditionalModuleSync, getPathSeparator, getCurrentDirectory, isDevelopment, isProduction, isTest, isBrowser, isNode, getEnvironmentName, getPlatformName, createLogger, hasFeature, assertFeature, warnMissingFeature, ENV, FEATURES, loadModuleAsync, normalizeModuleId, isValidModuleId, resolveModulePath, getModulePackageName, hasPermission, hasRole, filterModulesByPermissions, filterModulesByRoles, sortModulesByPriority, sortModulesByName, groupModulesByCategory, validateModuleId, resolveDependencies, ModuleRegistryError, ModuleValidationError, ModuleDiscoveryError, measurePerformance, debounce, throttle } from './utils';
export type { CacheOptions, CacheStats, EventListener, EventEmitterInterface, PlatformPath, PlatformFs, PlatformGlob, EnvironmentInfo, BrowserPath, BrowserFileSystem, BrowserGlob } from './utils';
export declare const VERSION = "1.0.0";
export declare const DEFAULT_REGISTRY_OPTIONS: {
enableCaching: boolean;
cacheTimeout: number;
validateOnRegister: boolean;
allowDuplicates: boolean;
autoInitialize: boolean;
};
export declare const DEFAULT_DISCOVERY_OPTIONS: {
packageScanPaths: string[];
configScanPaths: string[];
packageNamePattern: string;
configFilePattern: string;
enablePackageScanning: boolean;
enableConfigDetection: boolean;
enableRuntimeRegistration: boolean;
validateModules: boolean;
ignorePatterns: string[];
};
//# sourceMappingURL=index.d.ts.map