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
TypeScript
/**
* 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