fake-it-til-you-git
Version:
A modern CLI tool to generate fake Git commit history for your GitHub/GitLab profile
96 lines • 2.58 kB
TypeScript
/**
* Validation utilities for configuration and user inputs
*/
import { type MessageStyle } from './messages.js';
export interface Author {
name: string;
email: string;
}
export interface DateRangeConfig {
startDate: string;
endDate: string;
}
export interface CommitsConfig {
maxPerDay: number;
distribution: 'uniform' | 'random' | 'gaussian' | 'custom' | 'pattern';
messageStyle: MessageStyle;
customMessages?: string[];
pattern?: PatternConfig;
}
export interface PatternConfig {
type?: 'preset' | 'custom' | 'text';
preset?: string;
custom?: string;
text?: string;
scale?: number;
intensity?: 'low' | 'medium' | 'high';
centerX?: number;
centerY?: number;
}
export interface OptionsConfig {
preview?: boolean;
push?: boolean;
verbose?: boolean;
dev?: boolean;
seed?: string;
}
export interface Config {
author: Author;
dateRange: DateRangeConfig;
commits: CommitsConfig;
options?: OptionsConfig;
}
export interface ValidationResult {
valid: boolean;
errors: string[];
warnings: string[];
}
/**
* Validates email format using a robust regex pattern
*/
export declare function isValidEmail(email: string): boolean;
/**
* Validates author name format
*/
export declare function isValidAuthorName(name: string): boolean;
/**
* Validates author configuration
*/
export declare function validateAuthor(author: unknown): ValidationResult;
/**
* Validates date range configuration
*/
export declare function validateDateRange(dateRange: unknown): ValidationResult;
/**
* Validates commits configuration
*/
export declare function validateCommits(commits: unknown): ValidationResult;
/**
* Validates pattern configuration
*/
export declare function validatePattern(pattern: unknown): ValidationResult;
/**
* Validates options configuration
*/
export declare function validateOptions(options: unknown): ValidationResult;
/**
* Validates the complete configuration object
*/
export declare function validateConfig(config: unknown): ValidationResult;
/**
* Sanitizes a string by trimming whitespace and removing control characters
*/
export declare function sanitizeString(input: string): string;
/**
* Sanitizes an email address
*/
export declare function sanitizeEmail(email: string): string;
/**
* Sanitizes an author name
*/
export declare function sanitizeAuthorName(name: string): string;
/**
* Sanitizes the entire configuration object
*/
export declare function sanitizeConfig(config: Config): Config;
//# sourceMappingURL=validation.d.ts.map