UNPKG

supa-seed

Version:

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

131 lines 3.94 kB
/** * Advanced Slug Management System for Epic 1: Universal MakerKit Core System * Comprehensive slug generation, validation, and collision handling for team accounts * Part of Task 1.5.3: Implement advanced slug management system for team accounts */ /** * Configuration options for slug generation */ export interface SlugGenerationOptions { maxLength?: number; allowNumbers?: boolean; allowHyphens?: boolean; forceLowercase?: boolean; addTimestamp?: boolean; customSeparator?: string; reservedSlugs?: string[]; collisionStrategy?: 'increment' | 'timestamp' | 'random' | 'uuid'; } /** * Result of slug validation operation */ export interface SlugValidationResult { isValid: boolean; normalizedSlug: string; issues: string[]; suggestions: string[]; collisionDetected: boolean; alternativeSlugs: string[]; } /** * Slug collision resolution result */ export interface SlugCollisionResult { originalSlug: string; resolvedSlug: string; strategy: string; attempts: number; alternativesGenerated: string[]; } /** * Advanced Slug Manager for MakerKit team accounts */ export declare class AdvancedSlugManager { private client?; private defaultOptions; constructor(client?: any); /** * Generate a unique slug for team accounts with comprehensive validation */ generateUniqueSlug(baseName: string, tableName?: string, options?: Partial<SlugGenerationOptions>): Promise<string>; /** * Validate an existing slug and provide suggestions for improvement */ validateSlug(slug: string, tableName?: string, options?: Partial<SlugGenerationOptions>): Promise<SlugValidationResult>; /** * Normalize a slug according to MakerKit standards */ normalizeSlug(input: string, options: SlugGenerationOptions): string; /** * Check if a slug collides with existing records in the database */ private checkSlugCollision; /** * Resolve slug collision using specified strategy */ private resolveSlugCollision; /** * Validate slug format against rules */ private validateSlugFormat; /** * Check if slug is reserved */ private isReservedSlug; /** * Resolve reserved slug collision */ private resolveReservedSlugCollision; /** * Generate alternative slugs for reserved conflicts */ private generateAlternativeReservedSlugs; /** * Generate alternative slugs for database collisions */ private generateAlternativeSlugs; /** * Generate suggestions for slug improvement */ private generateSlugImprovementSuggestions; /** * Generate a short UUID-like string */ private generateShortUuid; /** * Batch validate multiple slugs */ batchValidateSlugs(slugs: string[], tableName?: string, options?: Partial<SlugGenerationOptions>): Promise<Map<string, SlugValidationResult>>; /** * Get slug generation statistics */ getSlugStatistics(slugs: string[]): { averageLength: number; mostCommonPattern: string; reservedConflicts: number; formatIssues: number; }; } /** * Utility functions for slug management */ export declare class SlugUtils { /** * Extract potential slug base from various data sources */ static extractSlugBase(data: any): string; /** * Suggest slug based on business context */ static suggestContextualSlug(data: any): string; /** * Check if slug follows MakerKit naming conventions */ static followsMakerKitConventions(slug: string): boolean; /** * Convert various naming formats to slug format */ static convertToSlugFormat(input: string, format: 'camelCase' | 'snake_case' | 'Title Case' | 'UPPER'): string; } export default AdvancedSlugManager; //# sourceMappingURL=slug-management-system.d.ts.map