@bramato/openrouter-mock-generator
Version:
AI-powered mock data generator using OpenRouter API with JSON mode support
114 lines • 3.08 kB
TypeScript
/**
* Microservizio per sostituire URLs nei dati JSON
*/
export interface UrlMapping {
originalUrl: string;
newUrl: string;
cdnUrl?: string;
path: string;
fieldName: string;
itemIndex?: number;
replacementType: 'direct' | 'variant' | 'fallback';
}
export interface ReplacementResult {
success: boolean;
replacedCount: number;
failedCount: number;
mappings: UrlMapping[];
modifiedData: any;
errors: string[];
}
export interface ReplacementOptions {
preferCdnUrls?: boolean;
preserveOriginalOnFailure?: boolean;
validateUrls?: boolean;
backupOriginal?: boolean;
logReplacements?: boolean;
}
export declare class UrlReplacer {
private static readonly URL_VALIDATION_TIMEOUT;
/**
* Sostituisce URLs Picsum con nuovi URLs nei dati JSON
*/
static replaceUrls(data: any, urlMappings: Map<string, string>, cdnMappings?: Map<string, string>, options?: ReplacementOptions): Promise<ReplacementResult>;
/**
* Crea mappature URL da risultati di elaborazione immagini
*/
static createUrlMappings(imageResults: Array<{
originalUrl: string;
newUrl: string;
cdnUrl?: string;
path: string;
success: boolean;
}>): {
urlMappings: Map<string, string>;
cdnMappings: Map<string, string>;
failedUrls: string[];
};
/**
* Esegue le sostituzioni ricorsivamente
*/
private static performReplacements;
/**
* Sostituisce un singolo URL
*/
private static replaceUrl;
/**
* Cerca mappatura per varianti (stesso contenuto, dimensioni diverse)
*/
private static findVariantMapping;
/**
* Genera URL di fallback per casi non mappati
*/
private static generateFallbackUrl;
/**
* Valida URLs dopo la sostituzione
*/
private static validateReplacementUrls;
/**
* Verifica se una stringa è un URL Picsum
*/
private static isPicsumUrl;
/**
* Normalizza URL per il confronto
*/
private static normalizeUrl;
/**
* Estrae seed da URL Picsum
*/
private static extractSeed;
/**
* Estrae dimensioni da URL Picsum
*/
private static extractDimensions;
/**
* Clona profondamente un oggetto
*/
private static deepClone;
/**
* Normalizza opzioni con valori di default
*/
private static normalizeOptions;
/**
* Log dei risultati di sostituzione
*/
private static logReplacementResults;
/**
* Crea statistiche di sostituzione
*/
static getReplacementStats(result: ReplacementResult): {
summary: string;
successRate: number;
typeDistribution: Record<string, number>;
avgUrlLength: number;
};
/**
* Rollback delle sostituzioni (usa backup)
*/
static rollbackReplacements(originalData: any, result: ReplacementResult): any;
/**
* Imposta valore a un percorso specifico
*/
private static setValueAtPath;
}
//# sourceMappingURL=url-replacer.d.ts.map