UNPKG

@simonecoelhosfo/optimizely-mcp-server

Version:

Optimizely MCP Server for AI assistants with integrated CLI tools

151 lines 6.29 kB
import { EntityRouter } from '../tools/EntityRouter'; /** * Centralized reference resolver for all entity types in template mode. * Handles conversion of reference objects like {ref: {name: "Entity Name"}} to actual IDs. * * Usage: * const resolver = new ReferenceResolver(entityRouter); * const resolved = await resolver.resolveEntityReferences(templateData, entityType, projectId); * * Supported reference patterns: * - {ref: {id: "123"}} - Direct ID reference * - {ref: {name: "Entity Name"}} - Name-based reference (converted to ID) * - {ref: {key: "entity_key"}} - Key-based reference (converted to ID) * - Direct values: "123" or 123 - Treated as direct ID references */ export declare class ReferenceResolver { private entityRouter; constructor(entityRouter: EntityRouter); /** * PUBLIC API: Resolves event references specifically * @param templateData Raw template data containing event reference objects * @param projectId Project ID for scoped searches * @returns Object containing resolved event reference fields */ resolveEventReferences(templateData: any, projectId: string): Promise<{ [key: string]: any; }>; /** * PUBLIC API: Resolves attribute references specifically * @param templateData Raw template data containing attribute reference objects * @param projectId Project ID for scoped searches * @returns Object containing resolved attribute reference fields */ resolveAttributeReferences(templateData: any, projectId: string): Promise<{ [key: string]: any; }>; /** * PUBLIC API: Resolves extension references specifically * @param templateData Raw template data containing extension reference objects * @param projectId Project ID for scoped searches * @returns Object containing resolved extension reference fields */ resolveExtensionReferences(templateData: any, projectId: string): Promise<{ [key: string]: any; }>; /** * PUBLIC API: Resolves variable references specifically * @param templateData Raw template data containing variable reference objects * @param projectId Project ID for scoped searches * @returns Object containing resolved variable reference fields */ resolveVariableReferences(templateData: any, projectId: string): Promise<{ [key: string]: any; }>; /** * PUBLIC API: Resolves environment references specifically * @param templateData Raw template data containing environment reference objects * @param projectId Project ID for scoped searches * @returns Object containing resolved environment reference fields */ resolveEnvironmentReferences(templateData: any, projectId: string): Promise<{ [key: string]: any; }>; /** * PUBLIC API: Resolves group references specifically * @param templateData Raw template data containing group reference objects * @param projectId Project ID for scoped searches * @returns Object containing resolved group reference fields */ resolveGroupReferences(templateData: any, projectId: string): Promise<{ [key: string]: any; }>; /** * PUBLIC API: Resolves page references specifically * @param templateData Raw template data containing page reference objects * @param projectId Project ID for scoped searches * @returns Object containing resolved page reference fields */ resolvePageReferences(templateData: any, projectId: string): Promise<{ [key: string]: any; }>; /** * PUBLIC API: Resolves audience references specifically * @param templateData Raw template data containing audience reference objects * @param projectId Project ID for scoped searches * @returns Object containing resolved audience reference fields */ resolveAudienceReferences(templateData: any, projectId: string): Promise<{ [key: string]: any; }>; /** * Resolves all entity references in template data for a specific entity type * @param templateData Raw template data containing reference objects * @param entityType The type of entity being created (for context/logging) * @param projectId Project ID for scoped searches * @returns Object containing resolved reference fields to merge into processed template */ resolveEntityReferences(templateData: any, entityType: string, projectId: string): Promise<{ [key: string]: any; }>; /** * Resolves page references for campaigns and experiments * Handles both pages (array) and page (singular) patterns */ private resolvePageReferencesInternal; /** * Resolves audience references for experiments and campaigns */ private resolveAudienceReferencesInternal; /** * Resolves event references for metrics and goals */ private resolveEventReferencesInternal; /** * Resolves attribute references for audience conditions */ private resolveAttributeReferencesInternal; /** * Resolves extension references for integrations */ private resolveExtensionReferencesInternal; /** * Resolves variable references for feature flags */ private resolveVariableReferencesInternal; /** * Resolves environment references for deployments */ private resolveEnvironmentReferencesInternal; /** * Resolves group references for audience segments */ private resolveGroupReferencesInternal; /** * Resolves an array of reference objects to IDs * @param refArray Array of reference objects like [{ref: {name: "Name"}}, {ref: {id: "123"}}] * @param entityType Type of entity being referenced * @param projectId Project ID for scoped searches * @returns Array of resolved IDs */ private resolveReferenceArray; /** * Resolves a single reference object to an ID * @param refObject Reference object like {ref: {name: "Name"}} or {ref: {id: "123"}} * @param entityType Type of entity being referenced * @param projectId Project ID for scoped searches * @returns Resolved ID or null if not found */ private resolveSingleReference; } //# sourceMappingURL=ReferenceResolver.d.ts.map