@simonecoelhosfo/optimizely-mcp-server
Version:
Optimizely MCP Server for AI assistants with integrated CLI tools
88 lines • 2.5 kB
TypeScript
/**
* Reference Transformer
* @description Transforms entity payloads by updating references to use destination IDs/keys
* with deep understanding of Optimizely entity structures
*/
import { MappingResolver } from './MappingResolver.js';
import { EntityType } from './types.js';
export interface TransformationOptions {
removeSourceFields?: boolean;
preserveTimestamps?: boolean;
validateReferences?: boolean;
transformCustomFields?: boolean;
}
export declare class ReferenceTransformer {
private logger;
private mappingResolver;
private options;
constructor(mappingResolver: MappingResolver, options?: TransformationOptions);
/**
* Transform entity payload for destination
*/
transform(entity: any, entityType: EntityType, sourceProjectId: string, destProjectId: string): Promise<any>;
/**
* Transform standard reference fields
*/
private transformStandardReferences;
/**
* Transform entity-specific fields based on entity type
*/
private transformEntitySpecificFields;
/**
* Transform flag-specific fields
*/
private transformFlagSpecificFields;
/**
* Transform experiment-specific fields
*/
private transformExperimentSpecificFields;
/**
* Transform campaign-specific fields
*/
private transformCampaignSpecificFields;
/**
* Transform audience conditions
*/
private transformAudienceConditions;
/**
* Transform condition tree recursively
*/
private transformConditionTree;
/**
* Transform webhook fields
*/
private transformWebhookFields;
/**
* Transform extension references
*/
private transformExtensionReferences;
/**
* Transform custom fields that might contain references
*/
private transformCustomFields;
/**
* Transform object references recursively
*/
private transformObjectReferences;
/**
* Remove source-specific fields
*/
private removeSourceFields;
/**
* Get target entity type from field name
*/
private getTargetTypeFromField;
/**
* Guess entity type from field name patterns
*/
private guessEntityTypeFromField;
/**
* Check if a value looks like an entity reference
*/
private looksLikeEntityReference;
/**
* Get entity type from webhook configuration
*/
private getEntityTypeFromWebhook;
}
//# sourceMappingURL=ReferenceTransformer.d.ts.map