UNPKG

supa-seed

Version:

A constraint-aware, framework-agnostic database seeding framework with deep PostgreSQL business logic discovery and MakerKit integration support

118 lines 3.15 kB
/** * Asset Pool Engine * Phase 2, Checkpoint B1 - Advanced asset management and pool system */ import { LoadedAsset } from './asset-loader'; export interface AssetPool { id: string; name: string; description?: string; baseDirectory: string; patterns: string[]; assets: LoadedAsset[]; metadata: { totalAssets: number; assetTypes: Record<string, number>; lastLoaded: Date; loadDuration: number; averageFileSize: number; validationRate: number; }; config: AssetPoolConfig; } export interface AssetPoolConfig { includeContent: boolean; validateAssets: boolean; maxFileSize: number; allowedExtensions: string[]; enableCaching: boolean; cacheDirectory?: string; refreshInterval?: number; contentFilters?: { minContentLength?: number; requiredFields?: string[]; tagFilters?: string[]; categoryFilters?: string[]; }; batchSize?: number; maxConcurrentLoads?: number; memoryLimit?: number; } export interface AssetPoolStats { totalPools: number; totalAssets: number; averagePoolSize: number; typeDistribution: Record<string, number>; healthStatus: 'healthy' | 'warning' | 'error'; issues: string[]; } export declare class AssetPoolEngine { private pools; private assetLoader; private defaultConfig; constructor(); /** * Create a new asset pool */ createPool(id: string, name: string, baseDirectory: string, patterns: string[], config?: Partial<AssetPoolConfig>): Promise<AssetPool>; /** * Get an asset pool by ID */ getPool(id: string): AssetPool | undefined; /** * List all asset pools */ getAllPools(): AssetPool[]; /** * Refresh a pool by reloading its assets */ refreshPool(id: string): Promise<AssetPool>; /** * Remove a pool */ removePool(id: string): boolean; /** * Get assets from multiple pools */ getAssetsFromPools(poolIds: string[]): LoadedAsset[]; /** * Search assets across all pools */ searchAssets(query: { pools?: string[]; types?: ('markdown' | 'json' | 'image' | 'csv')[]; tags?: string[]; categories?: string[]; titleContains?: string; contentContains?: string; validOnly?: boolean; }): LoadedAsset[]; /** * Get comprehensive statistics about all pools */ getPoolStats(): AssetPoolStats; /** * Apply content filters to assets */ private applyContentFilters; /** * Calculate pool metadata and statistics */ private calculatePoolMetadata; /** * Validate pool configuration */ static validatePoolConfig(config: Partial<AssetPoolConfig>): { isValid: boolean; errors: string[]; }; /** * Export pool configuration for persistence */ exportPoolConfig(id: string): any; /** * Import pool configuration and create pool */ importPoolConfig(config: any): Promise<AssetPool>; } //# sourceMappingURL=asset-pool-engine.d.ts.map