UNPKG

qraft

Version:

A powerful CLI tool to qraft structured project setups from GitHub template repositories

274 lines 9.37 kB
import { ConfigManager } from './config'; /** * Categories of qraft-specific patterns */ export declare enum QraftPatternCategory { LOCAL = "local", GLOBAL = "global", CACHE = "cache", CONFIG = "config" } /** * A qraft-specific gitignore pattern with metadata */ export interface QraftPattern { pattern: string; category: QraftPatternCategory; description: string; isStatic: boolean; } /** * Collection of qraft patterns organized by category */ export interface QraftPatternCollection { local: QraftPattern[]; global: QraftPattern[]; cache: QraftPattern[]; config: QraftPattern[]; } /** * QraftPatterns utility manages all qraft-specific gitignore patterns */ export declare class QraftPatterns { private configManager; constructor(configManager?: ConfigManager); /** * Get all static qraft patterns that don't depend on configuration * @returns QraftPattern[] Array of static patterns */ getStaticPatterns(): QraftPattern[]; /** * Get dynamic qraft patterns that depend on configuration * @returns Promise<QraftPattern[]> Array of dynamic patterns */ getDynamicPatterns(): Promise<QraftPattern[]>; /** * Get cache-related patterns from configuration * @param config Qraft configuration * @returns Promise<QraftPattern[]> Cache patterns */ private getCachePatterns; /** * Get registry-related patterns from configuration * @param config Qraft configuration * @returns Promise<QraftPattern[]> Registry patterns */ private getRegistryPatterns; /** * Get authentication-related patterns from configuration * @param _config Qraft configuration * @returns Promise<QraftPattern[]> Authentication patterns */ private getAuthPatterns; /** * Get configuration-specific patterns based on current config * @returns Promise<QraftPattern[]> Configuration-specific patterns */ getConfigSpecificPatterns(): Promise<QraftPattern[]>; /** * Sanitize registry name for use in file patterns * @param registryName Registry name to sanitize * @returns string Sanitized name */ private sanitizeRegistryName; /** * Get patterns based on current working directory and config * @param targetDirectory Target directory for .gitignore * @returns Promise<QraftPattern[]> Context-aware patterns */ getContextAwarePatterns(targetDirectory: string): Promise<QraftPattern[]>; /** * Check if a pattern is relevant for the current context * @param pattern Pattern to check * @param targetDirectory Target directory * @returns Promise<boolean> True if pattern is relevant */ private isPatternRelevantForContext; /** * Get all qraft patterns (static + dynamic) * @returns Promise<QraftPattern[]> Array of all patterns */ getAllPatterns(): Promise<QraftPattern[]>; /** * Get patterns organized by category * @returns Promise<QraftPatternCollection> Patterns organized by category */ getPatternsByCategory(): Promise<QraftPatternCollection>; /** * Get just the pattern strings (for use with GitignoreManager) * @returns Promise<string[]> Array of pattern strings */ getPatternStrings(): Promise<string[]>; /** * Get patterns for a specific category * @param category Category to filter by * @returns Promise<QraftPattern[]> Patterns in the specified category */ getPatternsForCategory(category: QraftPatternCategory): Promise<QraftPattern[]>; /** * Check if a directory is a system cache directory that shouldn't be ignored * @param directory Directory path to check * @returns boolean True if it's a system cache directory */ private isSystemCacheDirectory; /** * Convert an absolute path to a relative pattern suitable for .gitignore * @param absolutePath Absolute path to convert * @returns string Relative pattern */ private getRelativePattern; /** * Get the default section title for qraft patterns * @returns string Section title */ getSectionTitle(): string; /** * Get the default section description for qraft patterns * @returns string Section description */ getSectionDescription(): string; /** * Get patterns formatted for display (with descriptions) * @returns Promise<string[]> Array of formatted pattern descriptions */ getFormattedPatterns(): Promise<string[]>; /** * Categorize patterns into local and global scopes * @returns Promise<{local: QraftPattern[], global: QraftPattern[]}> Patterns categorized by scope */ categorizeByScope(): Promise<{ local: QraftPattern[]; global: QraftPattern[]; }>; /** * Get only local-scope patterns (patterns that affect the current project) * @returns Promise<QraftPattern[]> Local-scope patterns */ getLocalPatterns(): Promise<QraftPattern[]>; /** * Get only global-scope patterns (patterns that affect user's system) * @returns Promise<QraftPattern[]> Global-scope patterns */ getGlobalPatterns(): Promise<QraftPattern[]>; /** * Determine if a pattern is local-scope (affects current project only) * @param pattern Pattern to check * @returns boolean True if pattern is local-scope */ private isLocalScopePattern; /** * Check if a pattern is relative to the current project * @param pattern Pattern to check * @returns boolean True if pattern is project-relative */ private isProjectRelativePattern; /** * Get patterns suitable for project-level .gitignore * @returns Promise<string[]> Array of project-level pattern strings */ getProjectPatterns(): Promise<string[]>; /** * Get patterns that should be in global .gitignore * @returns Promise<string[]> Array of global pattern strings */ getGlobalGitignorePatterns(): Promise<string[]>; /** * Filter patterns based on current working directory context * @param targetDirectory Directory where .gitignore will be created * @returns Promise<QraftPattern[]> Patterns relevant to the target directory */ getRelevantPatterns(targetDirectory: string): Promise<QraftPattern[]>; /** * Check if a pattern is relevant for a specific directory * @param pattern Pattern to check * @param targetDirectory Target directory path * @returns boolean True if pattern is relevant */ private isPatternRelevantForDirectory; /** * Check if a cache pattern is relevant for a directory * @param pattern Cache pattern * @param targetDirectory Target directory * @returns boolean True if relevant */ private isCachePatternRelevant; /** * Check if a config pattern is relevant for a directory * @param pattern Config pattern * @param _targetDirectory Target directory * @returns boolean True if relevant */ private isConfigPatternRelevant; /** * Validate a qraft pattern for correctness and safety * @param pattern Pattern to validate * @returns {isValid: boolean, errors: string[]} Validation result */ validatePattern(pattern: string): { isValid: boolean; errors: string[]; }; /** * Normalize a pattern to ensure consistency * @param pattern Pattern to normalize * @returns string Normalized pattern */ normalizePattern(pattern: string): string; /** * Validate and normalize a collection of patterns * @param patterns Array of patterns to process * @returns {valid: string[], invalid: {pattern: string, errors: string[]}[]} Processed patterns */ validateAndNormalizePatterns(patterns: string[]): { valid: string[]; invalid: { pattern: string; errors: string[]; }[]; }; /** * Check if a pattern is dangerous (could ignore important files) * @param pattern Pattern to check * @returns boolean True if pattern is dangerous */ private isDangerousPattern; /** * Check if a pattern contains invalid characters * @param pattern Pattern to check * @returns boolean True if pattern has invalid characters */ private hasInvalidCharacters; /** * Check if a pattern is overly broad * @param pattern Pattern to check * @returns boolean True if pattern is too broad */ private isOverlyBroadPattern; /** * Check if a pattern is malformed * @param pattern Pattern to check * @returns boolean True if pattern is malformed */ private isMalformedPattern; /** * Check if a pattern represents a directory * @param pattern Pattern to check * @returns boolean True if pattern is for a directory */ private isDirectoryPattern; /** * Get validation rules for qraft patterns * @returns object Validation rules and descriptions */ getValidationRules(): { rules: { name: string; description: string; }[]; examples: { valid: string[]; invalid: string[]; }; }; } //# sourceMappingURL=qraftPatterns.d.ts.map