"use strict";
/**
 * Code generators index
 */
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
    if (k2 === undefined) k2 = k;
    var desc = Object.getOwnPropertyDescriptor(m, k);
    if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
      desc = { enumerable: true, get: function() { return m[k]; } };
    }
    Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
    if (k2 === undefined) k2 = k;
    o[k2] = m[k];
}));
var __exportStar = (this && this.__exportStar) || function(m, exports) {
    for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.generateWebSocketClient = exports.generateWebSocketServer = exports.generateEventHandlers = exports.generateEventBus = exports.generateEventTypes = exports.UpstashRedisGenerator = exports.ServiceGenerator = exports.EnvironmentGenerator = exports.GitHubActionsGenerator = exports.DockerComposeGenerator = exports.EnhancedBackgroundJobsGenerator = exports.EnhancedEmailGenerator = exports.EnhancedRateLimitingGenerator = exports.EnhancedErrorHandlingGenerator = exports.EnhancedMigrationsGenerator = exports.EnhancedAnalyticsGenerator = exports.EnhancedDeploymentGenerator = exports.EnhancedApiGenerator = exports.EnhancedAccessControlGenerator = exports.EnhancedFeatureFlagsGenerator = exports.EnhancedI18nGenerator = exports.EnhancedPerformanceGenerator = exports.EnhancedSecurityGenerator = exports.EnhancedMonitoringGenerator = exports.EnhancedTestingGenerator = exports.CliTestGenerator = exports.E2ETestGenerator = exports.BackendTestGenerator = exports.FrontendTestGenerator = exports.DrizzleGenerator = exports.PrismaGenerator = exports.TypeScriptCliGenerator = exports.TypeScriptExpressGenerator = exports.ReactGenerator = exports.MarkdownDocumentationGenerator = exports.CodeGenerator = exports.FileWriter = exports.globalRegistry = exports.GeneratorRegistry = void 0;
__exportStar(require("./types"), exports);
var generator_registry_1 = require("./generator-registry");
Object.defineProperty(exports, "GeneratorRegistry", { enumerable: true, get: function () { return generator_registry_1.GeneratorRegistry; } });
Object.defineProperty(exports, "globalRegistry", { enumerable: true, get: function () { return generator_registry_1.globalRegistry; } });
var file_writer_1 = require("./file-writer");
Object.defineProperty(exports, "FileWriter", { enumerable: true, get: function () { return file_writer_1.FileWriter; } });
var code_generator_1 = require("./code-generator");
Object.defineProperty(exports, "CodeGenerator", { enumerable: true, get: function () { return code_generator_1.CodeGenerator; } });
// Export built-in generators
var markdown_generator_1 = require("./docs/markdown-generator");
Object.defineProperty(exports, "MarkdownDocumentationGenerator", { enumerable: true, get: function () { return markdown_generator_1.MarkdownDocumentationGenerator; } });
var react_generator_1 = require("./frontend/react-generator");
Object.defineProperty(exports, "ReactGenerator", { enumerable: true, get: function () { return react_generator_1.ReactGenerator; } });
var typescript_express_generator_1 = require("./backend/typescript-express-generator");
Object.defineProperty(exports, "TypeScriptExpressGenerator", { enumerable: true, get: function () { return typescript_express_generator_1.TypeScriptExpressGenerator; } });
var typescript_cli_generator_1 = require("./cli/typescript-cli-generator");
Object.defineProperty(exports, "TypeScriptCliGenerator", { enumerable: true, get: function () { return typescript_cli_generator_1.TypeScriptCliGenerator; } });
var prisma_generator_1 = require("./database/prisma-generator");
Object.defineProperty(exports, "PrismaGenerator", { enumerable: true, get: function () { return prisma_generator_1.PrismaGenerator; } });
var drizzle_generator_1 = require("./database/drizzle-generator");
Object.defineProperty(exports, "DrizzleGenerator", { enumerable: true, get: function () { return drizzle_generator_1.DrizzleGenerator; } });
var frontend_test_generator_1 = require("./test/frontend-test-generator");
Object.defineProperty(exports, "FrontendTestGenerator", { enumerable: true, get: function () { return frontend_test_generator_1.FrontendTestGenerator; } });
var backend_test_generator_1 = require("./test/backend-test-generator");
Object.defineProperty(exports, "BackendTestGenerator", { enumerable: true, get: function () { return backend_test_generator_1.BackendTestGenerator; } });
var e2e_test_generator_1 = require("./test/e2e-test-generator");
Object.defineProperty(exports, "E2ETestGenerator", { enumerable: true, get: function () { return e2e_test_generator_1.E2ETestGenerator; } });
var cli_test_generator_1 = require("./test/cli-test-generator");
Object.defineProperty(exports, "CliTestGenerator", { enumerable: true, get: function () { return cli_test_generator_1.CliTestGenerator; } });
var enhanced_testing_generator_1 = require("./test/enhanced-testing-generator");
Object.defineProperty(exports, "EnhancedTestingGenerator", { enumerable: true, get: function () { return enhanced_testing_generator_1.EnhancedTestingGenerator; } });
var enhanced_monitoring_generator_1 = require("./monitoring/enhanced-monitoring-generator");
Object.defineProperty(exports, "EnhancedMonitoringGenerator", { enumerable: true, get: function () { return enhanced_monitoring_generator_1.EnhancedMonitoringGenerator; } });
var enhanced_security_generator_1 = require("./security/enhanced-security-generator");
Object.defineProperty(exports, "EnhancedSecurityGenerator", { enumerable: true, get: function () { return enhanced_security_generator_1.EnhancedSecurityGenerator; } });
var enhanced_performance_generator_1 = require("./performance/enhanced-performance-generator");
Object.defineProperty(exports, "EnhancedPerformanceGenerator", { enumerable: true, get: function () { return enhanced_performance_generator_1.EnhancedPerformanceGenerator; } });
var enhanced_i18n_generator_1 = require("./i18n/enhanced-i18n-generator");
Object.defineProperty(exports, "EnhancedI18nGenerator", { enumerable: true, get: function () { return enhanced_i18n_generator_1.EnhancedI18nGenerator; } });
var enhanced_feature_flags_generator_1 = require("./feature-flags/enhanced-feature-flags-generator");
Object.defineProperty(exports, "EnhancedFeatureFlagsGenerator", { enumerable: true, get: function () { return enhanced_feature_flags_generator_1.EnhancedFeatureFlagsGenerator; } });
var enhanced_access_control_generator_1 = require("./access-control/enhanced-access-control-generator");
Object.defineProperty(exports, "EnhancedAccessControlGenerator", { enumerable: true, get: function () { return enhanced_access_control_generator_1.EnhancedAccessControlGenerator; } });
var enhanced_api_generator_1 = require("./api/enhanced-api-generator");
Object.defineProperty(exports, "EnhancedApiGenerator", { enumerable: true, get: function () { return enhanced_api_generator_1.EnhancedApiGenerator; } });
var enhanced_deployment_generator_1 = require("./deployment/enhanced-deployment-generator");
Object.defineProperty(exports, "EnhancedDeploymentGenerator", { enumerable: true, get: function () { return enhanced_deployment_generator_1.EnhancedDeploymentGenerator; } });
var enhanced_analytics_generator_1 = require("./analytics/enhanced-analytics-generator");
Object.defineProperty(exports, "EnhancedAnalyticsGenerator", { enumerable: true, get: function () { return enhanced_analytics_generator_1.EnhancedAnalyticsGenerator; } });
var enhanced_migrations_generator_1 = require("./database/enhanced-migrations-generator");
Object.defineProperty(exports, "EnhancedMigrationsGenerator", { enumerable: true, get: function () { return enhanced_migrations_generator_1.EnhancedMigrationsGenerator; } });
var enhanced_error_handling_generator_1 = require("./error/enhanced-error-handling-generator");
Object.defineProperty(exports, "EnhancedErrorHandlingGenerator", { enumerable: true, get: function () { return enhanced_error_handling_generator_1.EnhancedErrorHandlingGenerator; } });
var enhanced_rate_limiting_generator_1 = require("./rate-limiting/enhanced-rate-limiting-generator");
Object.defineProperty(exports, "EnhancedRateLimitingGenerator", { enumerable: true, get: function () { return enhanced_rate_limiting_generator_1.EnhancedRateLimitingGenerator; } });
var enhanced_email_generator_1 = require("./email/enhanced-email-generator");
Object.defineProperty(exports, "EnhancedEmailGenerator", { enumerable: true, get: function () { return enhanced_email_generator_1.EnhancedEmailGenerator; } });
var enhanced_background_jobs_generator_1 = require("./jobs/enhanced-background-jobs-generator");
Object.defineProperty(exports, "EnhancedBackgroundJobsGenerator", { enumerable: true, get: function () { return enhanced_background_jobs_generator_1.EnhancedBackgroundJobsGenerator; } });
var docker_compose_generator_1 = require("./docker/docker-compose-generator");
Object.defineProperty(exports, "DockerComposeGenerator", { enumerable: true, get: function () { return docker_compose_generator_1.DockerComposeGenerator; } });
var github_actions_generator_1 = require("./ci-cd/github-actions-generator");
Object.defineProperty(exports, "GitHubActionsGenerator", { enumerable: true, get: function () { return github_actions_generator_1.GitHubActionsGenerator; } });
var environment_generator_1 = require("./env/environment-generator");
Object.defineProperty(exports, "EnvironmentGenerator", { enumerable: true, get: function () { return environment_generator_1.EnvironmentGenerator; } });
var service_generator_1 = require("./infrastructure/service-generator");
Object.defineProperty(exports, "ServiceGenerator", { enumerable: true, get: function () { return service_generator_1.ServiceGenerator; } });
var upstash_redis_generator_1 = require("./cache/upstash-redis-generator");
Object.defineProperty(exports, "UpstashRedisGenerator", { enumerable: true, get: function () { return upstash_redis_generator_1.UpstashRedisGenerator; } });
var event_types_generator_1 = require("./events/event-types-generator");
Object.defineProperty(exports, "generateEventTypes", { enumerable: true, get: function () { return event_types_generator_1.generateEventTypes; } });
var event_bus_generator_1 = require("./events/event-bus-generator");
Object.defineProperty(exports, "generateEventBus", { enumerable: true, get: function () { return event_bus_generator_1.generateEventBus; } });
var event_handlers_generator_1 = require("./events/event-handlers-generator");
Object.defineProperty(exports, "generateEventHandlers", { enumerable: true, get: function () { return event_handlers_generator_1.generateEventHandlers; } });
var websocket_server_generator_1 = require("./websocket/websocket-server-generator");
Object.defineProperty(exports, "generateWebSocketServer", { enumerable: true, get: function () { return websocket_server_generator_1.generateWebSocketServer; } });
var websocket_client_generator_1 = require("./websocket/websocket-client-generator");
Object.defineProperty(exports, "generateWebSocketClient", { enumerable: true, get: function () { return websocket_client_generator_1.generateWebSocketClient; } });
// Initialize built-in generators
const generator_registry_2 = require("./generator-registry");
const markdown_generator_2 = require("./docs/markdown-generator");
const react_generator_2 = require("./frontend/react-generator");
const typescript_express_generator_2 = require("./backend/typescript-express-generator");
const typescript_cli_generator_2 = require("./cli/typescript-cli-generator");
const prisma_generator_2 = require("./database/prisma-generator");
const drizzle_generator_2 = require("./database/drizzle-generator");
const frontend_test_generator_2 = require("./test/frontend-test-generator");
const backend_test_generator_2 = require("./test/backend-test-generator");
const e2e_test_generator_2 = require("./test/e2e-test-generator");
const cli_test_generator_2 = require("./test/cli-test-generator");
const enhanced_testing_generator_2 = require("./test/enhanced-testing-generator");
const enhanced_monitoring_generator_2 = require("./monitoring/enhanced-monitoring-generator");
const enhanced_security_generator_2 = require("./security/enhanced-security-generator");
const enhanced_performance_generator_2 = require("./performance/enhanced-performance-generator");
const enhanced_i18n_generator_2 = require("./i18n/enhanced-i18n-generator");
const enhanced_feature_flags_generator_2 = require("./feature-flags/enhanced-feature-flags-generator");
const enhanced_access_control_generator_2 = require("./access-control/enhanced-access-control-generator");
const enhanced_api_generator_2 = require("./api/enhanced-api-generator");
const enhanced_deployment_generator_2 = require("./deployment/enhanced-deployment-generator");
const enhanced_analytics_generator_2 = require("./analytics/enhanced-analytics-generator");
const enhanced_migrations_generator_2 = require("./database/enhanced-migrations-generator");
const enhanced_error_handling_generator_2 = require("./error/enhanced-error-handling-generator");
const enhanced_rate_limiting_generator_2 = require("./rate-limiting/enhanced-rate-limiting-generator");
const enhanced_email_generator_2 = require("./email/enhanced-email-generator");
const enhanced_background_jobs_generator_2 = require("./jobs/enhanced-background-jobs-generator");
const github_actions_generator_2 = require("./ci-cd/github-actions-generator");
const environment_generator_2 = require("./env/environment-generator");
const service_generator_2 = require("./infrastructure/service-generator");
const upstash_redis_generator_2 = require("./cache/upstash-redis-generator");
const event_types_generator_2 = require("./events/event-types-generator");
const event_bus_generator_2 = require("./events/event-bus-generator");
const event_handlers_generator_2 = require("./events/event-handlers-generator");
const websocket_server_generator_2 = require("./websocket/websocket-server-generator");
const websocket_client_generator_2 = require("./websocket/websocket-client-generator");
// Register built-in generators with the global registry
const markdownGenerator = new markdown_generator_2.MarkdownDocumentationGenerator();
generator_registry_2.globalRegistry.registerDocumentationGenerator(markdownGenerator);
const reactGenerator = new react_generator_2.ReactGenerator();
generator_registry_2.globalRegistry.registerFrontendGenerator(reactGenerator);
const typescriptExpressGenerator = new typescript_express_generator_2.TypeScriptExpressGenerator();
generator_registry_2.globalRegistry.registerBackendGenerator(typescriptExpressGenerator);
const typescriptCliGenerator = new typescript_cli_generator_2.TypeScriptCliGenerator();
generator_registry_2.globalRegistry.registerCliGenerator(typescriptCliGenerator);
const prismaGenerator = new prisma_generator_2.PrismaGenerator();
generator_registry_2.globalRegistry.registerDatabaseGenerator(prismaGenerator);
const drizzleGenerator = new drizzle_generator_2.DrizzleGenerator();
generator_registry_2.globalRegistry.registerDatabaseGenerator(drizzleGenerator);
const frontendTestGenerator = new frontend_test_generator_2.FrontendTestGenerator();
generator_registry_2.globalRegistry.registerTestGenerator(frontendTestGenerator);
const backendTestGenerator = new backend_test_generator_2.BackendTestGenerator();
generator_registry_2.globalRegistry.registerTestGenerator(backendTestGenerator);
const e2eTestGenerator = new e2e_test_generator_2.E2ETestGenerator();
generator_registry_2.globalRegistry.registerTestGenerator(e2eTestGenerator);
const cliTestGenerator = new cli_test_generator_2.CliTestGenerator();
generator_registry_2.globalRegistry.registerTestGenerator(cliTestGenerator);
const enhancedTestingGenerator = new enhanced_testing_generator_2.EnhancedTestingGenerator();
generator_registry_2.globalRegistry.registerCustomGenerator(enhancedTestingGenerator);
const enhancedMonitoringGenerator = new enhanced_monitoring_generator_2.EnhancedMonitoringGenerator();
generator_registry_2.globalRegistry.registerCustomGenerator(enhancedMonitoringGenerator);
const enhancedSecurityGenerator = new enhanced_security_generator_2.EnhancedSecurityGenerator();
generator_registry_2.globalRegistry.registerCustomGenerator(enhancedSecurityGenerator);
const enhancedPerformanceGenerator = new enhanced_performance_generator_2.EnhancedPerformanceGenerator();
generator_registry_2.globalRegistry.registerCustomGenerator(enhancedPerformanceGenerator);
const enhancedI18nGenerator = new enhanced_i18n_generator_2.EnhancedI18nGenerator();
generator_registry_2.globalRegistry.registerCustomGenerator(enhancedI18nGenerator);
const enhancedFeatureFlagsGenerator = new enhanced_feature_flags_generator_2.EnhancedFeatureFlagsGenerator();
generator_registry_2.globalRegistry.registerCustomGenerator(enhancedFeatureFlagsGenerator);
const enhancedAccessControlGenerator = new enhanced_access_control_generator_2.EnhancedAccessControlGenerator();
generator_registry_2.globalRegistry.registerCustomGenerator(enhancedAccessControlGenerator);
const enhancedApiGenerator = new enhanced_api_generator_2.EnhancedApiGenerator();
generator_registry_2.globalRegistry.registerCustomGenerator(enhancedApiGenerator);
const enhancedDeploymentGenerator = new enhanced_deployment_generator_2.EnhancedDeploymentGenerator();
generator_registry_2.globalRegistry.registerCustomGenerator(enhancedDeploymentGenerator);
const enhancedAnalyticsGenerator = new enhanced_analytics_generator_2.EnhancedAnalyticsGenerator();
generator_registry_2.globalRegistry.registerCustomGenerator(enhancedAnalyticsGenerator);
const enhancedMigrationsGenerator = new enhanced_migrations_generator_2.EnhancedMigrationsGenerator();
generator_registry_2.globalRegistry.registerCustomGenerator(enhancedMigrationsGenerator);
const enhancedErrorHandlingGenerator = new enhanced_error_handling_generator_2.EnhancedErrorHandlingGenerator();
generator_registry_2.globalRegistry.registerCustomGenerator(enhancedErrorHandlingGenerator);
const enhancedRateLimitingGenerator = new enhanced_rate_limiting_generator_2.EnhancedRateLimitingGenerator();
generator_registry_2.globalRegistry.registerCustomGenerator(enhancedRateLimitingGenerator);
const enhancedEmailGenerator = new enhanced_email_generator_2.EnhancedEmailGenerator();
generator_registry_2.globalRegistry.registerCustomGenerator(enhancedEmailGenerator);
const enhancedBackgroundJobsGenerator = new enhanced_background_jobs_generator_2.EnhancedBackgroundJobsGenerator();
generator_registry_2.globalRegistry.registerCustomGenerator(enhancedBackgroundJobsGenerator);
const githubActionsGenerator = new github_actions_generator_2.GitHubActionsGenerator();
generator_registry_2.globalRegistry.registerCustomGenerator(githubActionsGenerator);
const environmentGenerator = new environment_generator_2.EnvironmentGenerator();
generator_registry_2.globalRegistry.registerCustomGenerator(environmentGenerator);
const serviceGenerator = new service_generator_2.ServiceGenerator();
generator_registry_2.globalRegistry.registerCustomGenerator(serviceGenerator);
const upstashRedisGenerator = new upstash_redis_generator_2.UpstashRedisGenerator();
generator_registry_2.globalRegistry.registerCustomGenerator(upstashRedisGenerator);
// Register event-driven architecture generators
generator_registry_2.globalRegistry.registerCustomGenerator({
    id: 'event-types',
    name: 'Event Types Generator',
    description: 'Generates TypeScript event type interfaces from YAML event definitions',
    generate: event_types_generator_2.generateEventTypes,
});
generator_registry_2.globalRegistry.registerCustomGenerator({
    id: 'event-bus',
    name: 'Event Bus Generator',
    description: 'Generates Redis pub/sub event bus infrastructure for event-driven architecture',
    generate: event_bus_generator_2.generateEventBus,
});
generator_registry_2.globalRegistry.registerCustomGenerator({
    id: 'event-handlers',
    name: 'Event Handlers Generator',
    description: 'Generates event handler implementations for consuming services',
    generate: event_handlers_generator_2.generateEventHandlers,
});
generator_registry_2.globalRegistry.registerCustomGenerator({
    id: 'websocket-server',
    name: 'WebSocket Server Generator',
    description: 'Generates WebSocket server infrastructure for real-time updates',
    generate: websocket_server_generator_2.generateWebSocketServer,
});
generator_registry_2.globalRegistry.registerCustomGenerator({
    id: 'websocket-client',
    name: 'WebSocket Client Generator',
    description: 'Generates React hooks and utilities for WebSocket connections',
    generate: websocket_client_generator_2.generateWebSocketClient,
});
//# sourceMappingURL=index.js.map