index.tsā¢1.69 kB
/**
* Content Element Plugins Registry
* Central registration and management of all content element plugins
*/
import { pluginRegistry } from './base-plugin.js';
import { QuizPlugin } from './quiz-plugin.js';
import { VideoPlugin } from './video-plugin.js';
import { FlashcardsPlugin } from './flashcards-plugin.js';
// Register all available plugins
export function registerAllPlugins(): void {
// Priority plugins (Phase 1)
pluginRegistry.registerPlugin(new QuizPlugin());
pluginRegistry.registerPlugin(new VideoPlugin());
pluginRegistry.registerPlugin(new FlashcardsPlugin());
console.log('ā
All content element plugins registered successfully');
// Log plugin statistics
const stats = pluginRegistry.getPluginStats();
console.log(`š Plugin Statistics:
- Total plugins: ${stats.totalPlugins}
- By learning type: ${JSON.stringify(stats.pluginsByLearningType, null, 2)}
- By complexity: ${JSON.stringify(stats.pluginsByComplexity, null, 2)}`);
}
// Export plugin registry for external use
export { pluginRegistry } from './base-plugin.js';
// Export plugin classes for direct use if needed
export { QuizPlugin } from './quiz-plugin.js';
export { VideoPlugin } from './video-plugin.js';
export { FlashcardsPlugin } from './flashcards-plugin.js';
// Export types
export type {
ContentElementPlugin,
RecognitionPattern,
EducationalMetadata,
ValidationResult
} from './base-plugin.js';
export type {
QuizQuestionInternal,
QuizProperties
} from './quiz-plugin.js';
export type {
VideoProperties,
VideoMoment
} from './video-plugin.js';
export type {
FlashCard,
FlashcardsProperties
} from './flashcards-plugin.js';