UNPKG

supa-seed

Version:

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

85 lines 2.55 kB
/** * Business Logic Analyzer * Analyzes database business logic patterns and data flows to determine optimal seeding strategies */ import type { createClient } from '@supabase/supabase-js'; import { BusinessLogicAnalysisResult, BusinessLogicAnalysisOptions, AnalysisRecommendation } from './business-logic-types'; type SupabaseClient = ReturnType<typeof createClient>; export declare class BusinessLogicAnalyzer { private client; private analysisCache; private options; constructor(client: SupabaseClient, options?: Partial<BusinessLogicAnalysisOptions>); /** * Analyze business logic patterns in the database */ analyzeBusinessLogic(): Promise<BusinessLogicAnalysisResult>; /** * Analyze database triggers and their functions */ private analyzeTriggers; /** * Analyze individual trigger */ private analyzeTrigger; /** * Analyze individual function */ private analyzeFunction; /** * Parse business rules from function definition */ private parseBusinessRulesFromFunction; /** * Analyze RLS policies */ private analyzeRLSPolicies; /** * Extract business rules from various sources */ private extractBusinessRules; /** * Check for specific business logic pattern */ private checkForPattern; /** * Determine overall data flow pattern */ private determineDataFlowPattern; /** * Generate recommended strategy based on analysis */ private generateRecommendedStrategy; /** * Detect framework based on analysis */ private detectFramework; /** * Helper methods for trigger analysis */ private extractFunctionName; private classifyTriggerBusinessLogic; private triggerDependsOnAuth; private triggerRequiresUserContext; private policyAffectsSeeding; private policyRequiresUserContext; private analyzeUserCreationFlow; private analyzeAccountCreationFlow; private analyzeProfileCreationFlow; private identifyBusinessLogicTriggers; private calculateTriggerAnalysisConfidence; private calculateOverallConfidence; private fallbackTriggerAnalysis; private generateCacheKey; private cacheResult; /** * Get analysis recommendations */ getRecommendations(analysisResult: BusinessLogicAnalysisResult): AnalysisRecommendation[]; /** * Clear analysis cache */ clearCache(): void; } export {}; //# sourceMappingURL=business-logic-analyzer.d.ts.map