"use strict";
/**
 * Standardized file naming convention for MyContext CLI
 * Single source of truth for all context file names
 */
Object.defineProperty(exports, "__esModule", { value: true });
exports.REQUIRED_FILES = exports.LEGACY_FILE_NAMES = exports.CONTEXT_FILES = void 0;
exports.getStandardFileName = getStandardFileName;
exports.isLegacyFileName = isLegacyFileName;
exports.getAllFileNameVariants = getAllFileNameVariants;
exports.CONTEXT_FILES = {
    // A/B/C/D Context Files (User-centric documentation)
    FEATURES: '01a-features.md',
    USER_FLOWS: '01b-user-flows.md',
    EDGE_CASES: '01c-edge-cases.md',
    TECHNICAL_SPECS: '01d-technical-specs.md',
    // Core Context Files
    PRD: '01-prd.md',
    TYPES: '02-types.ts',
    BRANDING: '03-branding.md',
    COMPONENT_LIST: '04-component-list.json',
    PROJECT_STRUCTURE: '05-project-structure.md',
    // State and Tracking
    STATE: 'state.json',
    CONTEXT_MEMORY: 'context.json',
    PROGRESS: 'progress.json',
    // Build Strategy
    BUILD_STRATEGY_PLAN: 'build-strategy-plan.json',
    BUILD_STRATEGY_RECOMMENDATIONS: 'build-strategy-recommendations.json',
    BUILD_STRATEGY_TASKS: 'build-strategy-tasks.json',
    BUILD_STRATEGY_COMPARISON: 'build-strategy-comparison.json',
};
/**
 * Legacy file names for backward compatibility
 * @deprecated Use CONTEXT_FILES instead
 */
exports.LEGACY_FILE_NAMES = {
    '01a-brief.md': exports.CONTEXT_FILES.FEATURES,
    '01b-requirements.md': exports.CONTEXT_FILES.USER_FLOWS,
    '01c-flows.md': exports.CONTEXT_FILES.EDGE_CASES,
    '02-prd.md': exports.CONTEXT_FILES.PRD,
    'prd.md': exports.CONTEXT_FILES.PRD,
    'PRD.md': exports.CONTEXT_FILES.PRD,
    '01_PRD.md': exports.CONTEXT_FILES.PRD,
    'types.ts': exports.CONTEXT_FILES.TYPES,
    '02_types.ts': exports.CONTEXT_FILES.TYPES,
    'branding.md': exports.CONTEXT_FILES.BRANDING,
    '03_branding.md': exports.CONTEXT_FILES.BRANDING,
    'component-list.json': exports.CONTEXT_FILES.COMPONENT_LIST,
    'components-list.json': exports.CONTEXT_FILES.COMPONENT_LIST,
    '04_component_list.json': exports.CONTEXT_FILES.COMPONENT_LIST,
    'project-structure.md': exports.CONTEXT_FILES.PROJECT_STRUCTURE,
    '05_project_structure.md': exports.CONTEXT_FILES.PROJECT_STRUCTURE,
};
/**
 * Required context files for various operations
 */
exports.REQUIRED_FILES = {
    COMPILE_PRD: [
        exports.CONTEXT_FILES.FEATURES,
        exports.CONTEXT_FILES.USER_FLOWS,
        exports.CONTEXT_FILES.EDGE_CASES,
        exports.CONTEXT_FILES.TECHNICAL_SPECS,
    ],
    GENERATE_TYPES: [exports.CONTEXT_FILES.PRD],
    GENERATE_BRAND: [exports.CONTEXT_FILES.PRD],
    GENERATE_COMPONENTS_LIST: [
        exports.CONTEXT_FILES.PRD,
        exports.CONTEXT_FILES.TYPES,
    ],
    GENERATE_COMPONENTS: [
        exports.CONTEXT_FILES.PRD,
        exports.CONTEXT_FILES.TYPES,
        exports.CONTEXT_FILES.COMPONENT_LIST,
    ],
};
/**
 * Get the standardized file name for a given file
 * Returns the canonical name or the original if no mapping exists
 */
function getStandardFileName(fileName) {
    return exports.LEGACY_FILE_NAMES[fileName] || fileName;
}
/**
 * Check if a file name is legacy
 */
function isLegacyFileName(fileName) {
    return fileName in exports.LEGACY_FILE_NAMES;
}
/**
 * Get all possible names for a canonical file (including legacy)
 */
function getAllFileNameVariants(canonicalName) {
    const variants = [canonicalName];
    for (const [legacy, canonical] of Object.entries(exports.LEGACY_FILE_NAMES)) {
        if (canonical === canonicalName) {
            variants.push(legacy);
        }
    }
    return variants;
}
//# sourceMappingURL=fileNames.js.map