UNPKG

@juspay/neurolink

Version:

Universal AI Development Platform with working MCP integration, multi-provider support, voice (TTS/STT/realtime), and professional CLI. 58+ external MCP servers discoverable, multimodal file processing, RAG pipelines. Build, test, and deploy AI applicatio

104 lines (103 loc) 3.63 kB
/** * Metadata Extractor Factory * * Factory for creating metadata extractor instances with configuration. * Follows the BaseFactory pattern for consistent lifecycle management. */ import { BaseFactory } from "../../core/infrastructure/index.js"; import type { MetadataExtractor, MetadataExtractorConfig, MetadataExtractorMetadata, MetadataExtractorType } from "../../types/index.js"; /** * Metadata Extractor Factory * * Creates metadata extractor instances based on type with configuration support. * Uses lazy loading via dynamic imports to avoid circular dependencies. */ export declare class MetadataExtractorFactory extends BaseFactory<MetadataExtractor, MetadataExtractorConfig> { private static instance; private metadataMap; private constructor(); /** * Get singleton instance */ static getInstance(): MetadataExtractorFactory; /** * Reset singleton (for testing) */ static resetInstance(): void; /** * Register all default extractors */ protected registerAll(): Promise<void>; /** * Wrap LLMMetadataExtractor to conform to MetadataExtractor interface */ private wrapExtractor; /** * Create specialized extractor that only extracts specific types */ private createSpecializedExtractor; /** * Register an extractor with metadata and aliases */ registerExtractor(type: MetadataExtractorType, factory: (config?: MetadataExtractorConfig) => Promise<MetadataExtractor>, metadata: MetadataExtractorMetadata): void; /** * Create an extractor by type or alias */ createExtractor(typeOrAlias: string, config?: MetadataExtractorConfig): Promise<MetadataExtractor>; /** * Get metadata for an extractor */ getExtractorMetadata(typeOrAlias: string): MetadataExtractorMetadata | undefined; /** * Get default configuration for an extractor */ getDefaultConfig(typeOrAlias: string): Partial<MetadataExtractorConfig> | undefined; /** * Get available extractor types (not including aliases) */ getAvailableTypes(): MetadataExtractorType[]; /** * Get all aliases mapped to their types */ getTypeAliases(): Map<string, string>; /** * Check if a type exists */ hasType(typeOrAlias: string): boolean; /** * Get extractors suitable for a use case */ getExtractorsForUseCase(useCase: string): MetadataExtractorType[]; /** * Get extractors that can produce a specific extraction type */ getExtractorsForExtractionType(extractionType: string): MetadataExtractorType[]; /** * Get all extractor metadata */ getAllMetadata(): Map<MetadataExtractorType, MetadataExtractorMetadata>; /** * Clear factory and metadata */ clear(): void; } /** * Global metadata extractor factory singleton */ export declare const metadataExtractorFactory: MetadataExtractorFactory; /** * Convenience function to create a metadata extractor */ export declare function createMetadataExtractor(typeOrAlias: string, config?: MetadataExtractorConfig): Promise<MetadataExtractor>; /** * Convenience function to get available extractor types */ export declare function getAvailableExtractorTypes(): MetadataExtractorType[]; /** * Convenience function to get extractor metadata */ export declare function getExtractorMetadata(typeOrAlias: string): MetadataExtractorMetadata | undefined; /** * Convenience function to get default config */ export declare function getExtractorDefaultConfig(typeOrAlias: string): Partial<MetadataExtractorConfig> | undefined;