@tamyla/clodo-framework 3.1.21 → 3.1.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +9 -0
- package/README.md +53 -0
- package/dist/bin/clodo-service.js +47 -15
- package/dist/bin/commands/deploy.js +115 -83
- package/dist/bin/commands/helpers/deployment-ui.js +138 -0
- package/dist/bin/commands/helpers/deployment-verification.js +251 -0
- package/dist/bin/commands/helpers/error-recovery.js +80 -0
- package/dist/bin/commands/helpers/resource-detection.js +113 -0
- package/dist/bin/commands/validate.js +1 -1
- package/dist/bin/security/security-cli.js +1 -1
- package/dist/bin/shared/cache/configuration-cache.js +82 -0
- package/dist/bin/shared/cloudflare/domain-manager.js +1 -1
- package/dist/bin/shared/cloudflare/index.js +1 -1
- package/dist/bin/shared/cloudflare/ops.js +6 -4
- package/dist/bin/shared/config/ConfigurationManager.js +23 -1
- package/dist/bin/shared/config/command-config-manager.js +19 -3
- package/dist/bin/shared/config/index.js +1 -1
- package/dist/bin/shared/deployment/credential-collector.js +30 -7
- package/dist/bin/shared/deployment/index.js +2 -2
- package/dist/bin/shared/deployment/rollback-manager.js +4 -520
- package/dist/bin/shared/deployment/utilities/d1-error-recovery.js +177 -0
- package/dist/bin/shared/deployment/validator.js +40 -10
- package/dist/bin/shared/deployment/workflows/deployment-summary.js +214 -0
- package/dist/bin/shared/deployment/workflows/interactive-confirmation.js +188 -0
- package/dist/bin/shared/deployment/workflows/interactive-database-workflow.js +234 -0
- package/dist/bin/shared/deployment/workflows/interactive-domain-info-gatherer.js +240 -0
- package/dist/bin/shared/deployment/workflows/interactive-secret-workflow.js +228 -0
- package/dist/bin/shared/deployment/workflows/interactive-testing-workflow.js +235 -0
- package/dist/bin/shared/deployment/workflows/interactive-validation.js +218 -0
- package/dist/bin/shared/error-handling/error-classifier.js +46 -0
- package/dist/bin/shared/monitoring/health-checker.js +129 -1
- package/dist/bin/shared/monitoring/memory-manager.js +17 -6
- package/dist/bin/shared/routing/domain-router.js +1 -1
- package/dist/bin/shared/utils/deployment-validator.js +97 -0
- package/dist/bin/shared/utils/formatters.js +10 -0
- package/dist/bin/shared/utils/index.js +13 -1
- package/dist/bin/shared/utils/interactive-prompts.js +34 -18
- package/dist/bin/shared/utils/progress-manager.js +2 -2
- package/dist/bin/shared/utils/progress-spinner.js +53 -0
- package/dist/bin/shared/utils/sensitive-redactor.js +91 -0
- package/dist/bin/shared/validation/ValidationRegistry.js +1 -1
- package/dist/security/index.js +1 -1
- package/dist/security/patterns/insecure-patterns.js +1 -1
- package/dist/utils/constants.js +102 -0
- package/dist/utils/deployment/wrangler-config-manager.js +215 -48
- package/dist/utils/framework-config.js +2 -2
- package/dist/utils/interactive-prompts.js +10 -59
- package/package.json +16 -8
- package/dist/bin/clodo-service-old.js +0 -868
- package/dist/bin/clodo-service-test.js +0 -10
- package/dist/bin/commands/assess.js +0 -91
- package/dist/bin/commands/create.js +0 -77
- package/dist/bin/commands/diagnose.js +0 -83
- package/dist/bin/commands/helpers.js +0 -138
- package/dist/bin/commands/update.js +0 -75
- package/dist/bin/database/deployment-db-manager.js +0 -423
- package/dist/bin/database/enterprise-db-manager.js +0 -457
- package/dist/bin/database/wrangler-d1-manager.js +0 -685
- package/dist/bin/deployment/enterprise-deploy.js +0 -877
- package/dist/bin/deployment/master-deploy.js +0 -1376
- package/dist/bin/deployment/modular-enterprise-deploy.js +0 -466
- package/dist/bin/deployment/modules/DeploymentConfiguration.js +0 -395
- package/dist/bin/deployment/modules/DeploymentOrchestrator.js +0 -492
- package/dist/bin/deployment/modules/EnvironmentManager.js +0 -517
- package/dist/bin/deployment/modules/MonitoringIntegration.js +0 -560
- package/dist/bin/deployment/modules/ValidationManager.js +0 -342
- package/dist/bin/deployment/orchestration/BaseDeploymentOrchestrator.js +0 -426
- package/dist/bin/deployment/orchestration/EnterpriseOrchestrator.js +0 -401
- package/dist/bin/deployment/orchestration/PortfolioOrchestrator.js +0 -273
- package/dist/bin/deployment/orchestration/SingleServiceOrchestrator.js +0 -231
- package/dist/bin/deployment/orchestration/UnifiedDeploymentOrchestrator.js +0 -662
- package/dist/bin/deployment/test-interactive-utils.js +0 -66
- package/dist/bin/portfolio/portfolio-manager.js +0 -487
- package/dist/bin/service-management/create-service.js +0 -122
- package/dist/bin/service-management/init-service.js +0 -79
- package/dist/config/customers.js +0 -623
- package/dist/config/domains.js +0 -186
- package/dist/config/index.js +0 -6
- package/dist/database/database-orchestrator.js +0 -795
- package/dist/database/index.js +0 -4
- package/dist/deployment/index.js +0 -11
- package/dist/deployment/orchestration/BaseDeploymentOrchestrator.js +0 -426
- package/dist/deployment/orchestration/EnterpriseOrchestrator.js +0 -401
- package/dist/deployment/orchestration/PortfolioOrchestrator.js +0 -273
- package/dist/deployment/orchestration/SingleServiceOrchestrator.js +0 -231
- package/dist/deployment/orchestration/UnifiedDeploymentOrchestrator.js +0 -662
- package/dist/deployment/orchestration/index.js +0 -17
- package/dist/deployment/rollback-manager.js +0 -36
- package/dist/deployment/wrangler-deployer.js +0 -640
- package/dist/handlers/GenericRouteHandler.js +0 -532
- package/dist/migration/MigrationAdapters.js +0 -562
- package/dist/modules/ModuleManager.js +0 -668
- package/dist/modules/security.js +0 -96
- package/dist/orchestration/cross-domain-coordinator.js +0 -1083
- package/dist/orchestration/index.js +0 -5
- package/dist/orchestration/modules/DeploymentCoordinator.js +0 -368
- package/dist/orchestration/modules/DomainResolver.js +0 -198
- package/dist/orchestration/modules/StateManager.js +0 -332
- package/dist/orchestration/multi-domain-orchestrator.js +0 -724
- package/dist/routing/EnhancedRouter.js +0 -158
- package/dist/schema/SchemaManager.js +0 -778
- package/dist/service-management/ConfirmationEngine.js +0 -412
- package/dist/service-management/ErrorTracker.js +0 -299
- package/dist/service-management/GenerationEngine.js +0 -447
- package/dist/service-management/InputCollector.js +0 -619
- package/dist/service-management/ServiceCreator.js +0 -265
- package/dist/service-management/ServiceInitializer.js +0 -453
- package/dist/service-management/ServiceOrchestrator.js +0 -633
- package/dist/service-management/generators/BaseGenerator.js +0 -233
- package/dist/service-management/generators/GeneratorRegistry.js +0 -254
- package/dist/service-management/generators/cicd/CiWorkflowGenerator.js +0 -87
- package/dist/service-management/generators/cicd/DeployWorkflowGenerator.js +0 -106
- package/dist/service-management/generators/code/ServiceHandlersGenerator.js +0 -235
- package/dist/service-management/generators/code/ServiceMiddlewareGenerator.js +0 -116
- package/dist/service-management/generators/code/ServiceUtilsGenerator.js +0 -246
- package/dist/service-management/generators/code/WorkerIndexGenerator.js +0 -143
- package/dist/service-management/generators/config/DevelopmentEnvGenerator.js +0 -101
- package/dist/service-management/generators/config/DomainsConfigGenerator.js +0 -175
- package/dist/service-management/generators/config/EnvExampleGenerator.js +0 -178
- package/dist/service-management/generators/config/ProductionEnvGenerator.js +0 -97
- package/dist/service-management/generators/config/StagingEnvGenerator.js +0 -97
- package/dist/service-management/generators/config/WranglerTomlGenerator.js +0 -238
- package/dist/service-management/generators/core/PackageJsonGenerator.js +0 -243
- package/dist/service-management/generators/core/SiteConfigGenerator.js +0 -115
- package/dist/service-management/generators/documentation/ApiDocsGenerator.js +0 -331
- package/dist/service-management/generators/documentation/ConfigurationDocsGenerator.js +0 -294
- package/dist/service-management/generators/documentation/DeploymentDocsGenerator.js +0 -244
- package/dist/service-management/generators/documentation/ReadmeGenerator.js +0 -196
- package/dist/service-management/generators/schemas/ServiceSchemaGenerator.js +0 -190
- package/dist/service-management/generators/scripts/DeployScriptGenerator.js +0 -123
- package/dist/service-management/generators/scripts/HealthCheckScriptGenerator.js +0 -101
- package/dist/service-management/generators/scripts/SetupScriptGenerator.js +0 -88
- package/dist/service-management/generators/service-types/StaticSiteGenerator.js +0 -342
- package/dist/service-management/generators/testing/EslintConfigGenerator.js +0 -85
- package/dist/service-management/generators/testing/IntegrationTestsGenerator.js +0 -237
- package/dist/service-management/generators/testing/JestConfigGenerator.js +0 -72
- package/dist/service-management/generators/testing/UnitTestsGenerator.js +0 -277
- package/dist/service-management/generators/tooling/DockerComposeGenerator.js +0 -71
- package/dist/service-management/generators/tooling/GitignoreGenerator.js +0 -143
- package/dist/service-management/generators/utils/FileWriter.js +0 -179
- package/dist/service-management/generators/utils/PathResolver.js +0 -157
- package/dist/service-management/generators/utils/ServiceManifestGenerator.js +0 -111
- package/dist/service-management/generators/utils/TemplateEngine.js +0 -185
- package/dist/service-management/generators/utils/index.js +0 -18
- package/dist/service-management/handlers/ConfirmationHandler.js +0 -71
- package/dist/service-management/handlers/GenerationHandler.js +0 -80
- package/dist/service-management/handlers/InputHandler.js +0 -59
- package/dist/service-management/handlers/ValidationHandler.js +0 -203
- package/dist/service-management/index.js +0 -14
- package/dist/service-management/routing/DomainRouteMapper.js +0 -311
- package/dist/service-management/routing/RouteGenerator.js +0 -266
- package/dist/service-management/routing/WranglerRoutesBuilder.js +0 -273
- package/dist/service-management/routing/index.js +0 -14
- package/dist/service-management/services/DirectoryStructureService.js +0 -56
- package/dist/service-management/services/GenerationCoordinator.js +0 -208
- package/dist/service-management/services/GeneratorRegistry.js +0 -174
- package/dist/services/GenericDataService.js +0 -501
- package/dist/ui-structures/concepts/second-order-acquisition-strategy.md +0 -286
- package/dist/ui-structures/concepts/service-lifecycle-management.md +0 -150
- package/dist/ui-structures/concepts/service-manifest-guide.md +0 -309
- package/dist/ui-structures/concepts/three-tier-categorization-strategy.md +0 -231
- package/dist/ui-structures/creation/automated-generation-ui.json +0 -246
- package/dist/ui-structures/creation/core-inputs-ui.json +0 -217
- package/dist/ui-structures/creation/smart-confirmable-ui.json +0 -451
- package/dist/ui-structures/reference/absolutely-required-inputs.json +0 -315
- package/dist/ui-structures/reference/service-manifest-template.json +0 -342
- package/dist/version/VersionDetector.js +0 -723
- package/dist/worker/index.js +0 -4
- package/dist/worker/integration.js +0 -351
|
@@ -1,447 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* GenerationEngine - Tier 3: Automated Generation
|
|
3
|
-
*
|
|
4
|
-
* Takes the 6 core inputs and 15 confirmed values to automatically generate
|
|
5
|
-
* 67+ configuration files and components for a complete Clodo Framework service.
|
|
6
|
-
*
|
|
7
|
-
* Core Inputs (6):
|
|
8
|
-
* 1. Service Name
|
|
9
|
-
* 2. Service Type
|
|
10
|
-
* 3. Domain Name
|
|
11
|
-
* 4. Cloudflare Token
|
|
12
|
-
* 5. Cloudflare Account ID
|
|
13
|
-
* 6. Cloudflare Zone ID
|
|
14
|
-
* 7. Environment
|
|
15
|
-
*
|
|
16
|
-
* Confirmed Values (15):
|
|
17
|
-
* 1. Display Name
|
|
18
|
-
* 2. Description
|
|
19
|
-
* 3. Version
|
|
20
|
-
* 4. Author
|
|
21
|
-
* 5. Production URL
|
|
22
|
-
* 6. Staging URL
|
|
23
|
-
* 7. Development URL
|
|
24
|
-
* 8. Features Configuration
|
|
25
|
-
* 9. Database Name
|
|
26
|
-
* 10. Worker Name
|
|
27
|
-
* 11. Package Name
|
|
28
|
-
* 12. Git Repository URL
|
|
29
|
-
* 13. Documentation URL
|
|
30
|
-
* 14. Health Check Path
|
|
31
|
-
* 15. API Base Path
|
|
32
|
-
*/
|
|
33
|
-
|
|
34
|
-
import { ServiceManifestGenerator } from './generators/utils/ServiceManifestGenerator.js';
|
|
35
|
-
import { DirectoryStructureService } from './services/DirectoryStructureService.js';
|
|
36
|
-
import { GenerationCoordinator } from './services/GenerationCoordinator.js';
|
|
37
|
-
import { GeneratorRegistry } from './services/GeneratorRegistry.js';
|
|
38
|
-
import { fileURLToPath } from 'url';
|
|
39
|
-
import { dirname, join, relative } from 'path';
|
|
40
|
-
import { existsSync, mkdirSync, writeFileSync } from 'fs';
|
|
41
|
-
const __dirname = (() => {
|
|
42
|
-
try {
|
|
43
|
-
const filename = fileURLToPath(import.meta.url);
|
|
44
|
-
return dirname(filename);
|
|
45
|
-
} catch (error) {
|
|
46
|
-
// Fallback for test environments - use current working directory
|
|
47
|
-
return process.cwd();
|
|
48
|
-
}
|
|
49
|
-
})();
|
|
50
|
-
export class GenerationEngine {
|
|
51
|
-
constructor(options = {}) {
|
|
52
|
-
this.templatesDir = options.templatesDir || join(__dirname, '..', '..', 'templates');
|
|
53
|
-
this.outputDir = options.outputDir || process.cwd();
|
|
54
|
-
this.force = options.force || false;
|
|
55
|
-
|
|
56
|
-
// Initialize generator registry for centralized management
|
|
57
|
-
this.generatorRegistry = new GeneratorRegistry({
|
|
58
|
-
templatesDir: this.templatesDir,
|
|
59
|
-
outputDir: this.outputDir
|
|
60
|
-
});
|
|
61
|
-
|
|
62
|
-
// Utility services
|
|
63
|
-
this.serviceManifestGenerator = new ServiceManifestGenerator();
|
|
64
|
-
this.directoryStructureService = new DirectoryStructureService();
|
|
65
|
-
this.generationCoordinator = new GenerationCoordinator(this);
|
|
66
|
-
|
|
67
|
-
// Initialize dynamic proxy methods
|
|
68
|
-
this.initializeProxyMethods();
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
// Generator getters (lazy instantiation via registry)
|
|
72
|
-
get routeGenerator() {
|
|
73
|
-
return this.generatorRegistry.get('routeGenerator');
|
|
74
|
-
}
|
|
75
|
-
get packageJsonGenerator() {
|
|
76
|
-
return this.generatorRegistry.get('packageJsonGenerator');
|
|
77
|
-
}
|
|
78
|
-
get siteConfigGenerator() {
|
|
79
|
-
return this.generatorRegistry.get('siteConfigGenerator');
|
|
80
|
-
}
|
|
81
|
-
get staticSiteGenerator() {
|
|
82
|
-
return this.generatorRegistry.get('staticSiteGenerator');
|
|
83
|
-
}
|
|
84
|
-
get wranglerTomlGenerator() {
|
|
85
|
-
return this.generatorRegistry.get('wranglerTomlGenerator');
|
|
86
|
-
}
|
|
87
|
-
get domainsConfigGenerator() {
|
|
88
|
-
return this.generatorRegistry.get('domainsConfigGenerator');
|
|
89
|
-
}
|
|
90
|
-
get workerIndexGenerator() {
|
|
91
|
-
return this.generatorRegistry.get('workerIndexGenerator');
|
|
92
|
-
}
|
|
93
|
-
get serviceHandlersGenerator() {
|
|
94
|
-
return this.generatorRegistry.get('serviceHandlersGenerator');
|
|
95
|
-
}
|
|
96
|
-
get serviceMiddlewareGenerator() {
|
|
97
|
-
return this.generatorRegistry.get('serviceMiddlewareGenerator');
|
|
98
|
-
}
|
|
99
|
-
get serviceUtilsGenerator() {
|
|
100
|
-
return this.generatorRegistry.get('serviceUtilsGenerator');
|
|
101
|
-
}
|
|
102
|
-
get envExampleGenerator() {
|
|
103
|
-
return this.generatorRegistry.get('envExampleGenerator');
|
|
104
|
-
}
|
|
105
|
-
get productionEnvGenerator() {
|
|
106
|
-
return this.generatorRegistry.get('productionEnvGenerator');
|
|
107
|
-
}
|
|
108
|
-
get stagingEnvGenerator() {
|
|
109
|
-
return this.generatorRegistry.get('stagingEnvGenerator');
|
|
110
|
-
}
|
|
111
|
-
get developmentEnvGenerator() {
|
|
112
|
-
return this.generatorRegistry.get('developmentEnvGenerator');
|
|
113
|
-
}
|
|
114
|
-
get serviceSchemaGenerator() {
|
|
115
|
-
return this.generatorRegistry.get('serviceSchemaGenerator');
|
|
116
|
-
}
|
|
117
|
-
get deployScriptGenerator() {
|
|
118
|
-
return this.generatorRegistry.get('deployScriptGenerator');
|
|
119
|
-
}
|
|
120
|
-
get setupScriptGenerator() {
|
|
121
|
-
return this.generatorRegistry.get('setupScriptGenerator');
|
|
122
|
-
}
|
|
123
|
-
get healthCheckScriptGenerator() {
|
|
124
|
-
return this.generatorRegistry.get('healthCheckScriptGenerator');
|
|
125
|
-
}
|
|
126
|
-
get unitTestsGenerator() {
|
|
127
|
-
return this.generatorRegistry.get('unitTestsGenerator');
|
|
128
|
-
}
|
|
129
|
-
get integrationTestsGenerator() {
|
|
130
|
-
return this.generatorRegistry.get('integrationTestsGenerator');
|
|
131
|
-
}
|
|
132
|
-
get jestConfigGenerator() {
|
|
133
|
-
return this.generatorRegistry.get('jestConfigGenerator');
|
|
134
|
-
}
|
|
135
|
-
get eslintConfigGenerator() {
|
|
136
|
-
return this.generatorRegistry.get('eslintConfigGenerator');
|
|
137
|
-
}
|
|
138
|
-
get readmeGenerator() {
|
|
139
|
-
return this.generatorRegistry.get('readmeGenerator');
|
|
140
|
-
}
|
|
141
|
-
get apiDocsGenerator() {
|
|
142
|
-
return this.generatorRegistry.get('apiDocsGenerator');
|
|
143
|
-
}
|
|
144
|
-
get deploymentDocsGenerator() {
|
|
145
|
-
return this.generatorRegistry.get('deploymentDocsGenerator');
|
|
146
|
-
}
|
|
147
|
-
get configurationDocsGenerator() {
|
|
148
|
-
return this.generatorRegistry.get('configurationDocsGenerator');
|
|
149
|
-
}
|
|
150
|
-
get ciWorkflowGenerator() {
|
|
151
|
-
return this.generatorRegistry.get('ciWorkflowGenerator');
|
|
152
|
-
}
|
|
153
|
-
get deployWorkflowGenerator() {
|
|
154
|
-
return this.generatorRegistry.get('deployWorkflowGenerator');
|
|
155
|
-
}
|
|
156
|
-
get gitignoreGenerator() {
|
|
157
|
-
return this.generatorRegistry.get('gitignoreGenerator');
|
|
158
|
-
}
|
|
159
|
-
get dockerComposeGenerator() {
|
|
160
|
-
return this.generatorRegistry.get('dockerComposeGenerator');
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
// Dynamic proxy methods initialization (replaces ~300 lines of individual methods)
|
|
164
|
-
initializeProxyMethods() {
|
|
165
|
-
const generatorMappings = {
|
|
166
|
-
generatePackageJson: {
|
|
167
|
-
generator: 'packageJsonGenerator',
|
|
168
|
-
returnPath: 'package.json'
|
|
169
|
-
},
|
|
170
|
-
generateSiteConfig: {
|
|
171
|
-
generator: 'siteConfigGenerator',
|
|
172
|
-
returnContent: true
|
|
173
|
-
},
|
|
174
|
-
generateStaticSite: {
|
|
175
|
-
generator: 'staticSiteGenerator'
|
|
176
|
-
},
|
|
177
|
-
generateWranglerToml: {
|
|
178
|
-
generator: 'wranglerTomlGenerator',
|
|
179
|
-
returnPath: 'wrangler.toml'
|
|
180
|
-
},
|
|
181
|
-
generateDomainsConfig: {
|
|
182
|
-
generator: 'domainsConfigGenerator',
|
|
183
|
-
returnPath: 'config/domains.js'
|
|
184
|
-
},
|
|
185
|
-
generateWorkerIndex: {
|
|
186
|
-
generator: 'workerIndexGenerator',
|
|
187
|
-
returnPath: 'src/index.js'
|
|
188
|
-
},
|
|
189
|
-
generateServiceHandlers: {
|
|
190
|
-
generator: 'serviceHandlersGenerator',
|
|
191
|
-
returnPath: 'src/handlers.js'
|
|
192
|
-
},
|
|
193
|
-
generateServiceMiddleware: {
|
|
194
|
-
generator: 'serviceMiddlewareGenerator',
|
|
195
|
-
returnPath: 'src/middleware.js'
|
|
196
|
-
},
|
|
197
|
-
generateServiceUtils: {
|
|
198
|
-
generator: 'serviceUtilsGenerator',
|
|
199
|
-
returnPath: 'src/utils.js'
|
|
200
|
-
},
|
|
201
|
-
generateEnvExample: {
|
|
202
|
-
generator: 'envExampleGenerator',
|
|
203
|
-
returnPath: '.env.example'
|
|
204
|
-
},
|
|
205
|
-
generateProductionEnv: {
|
|
206
|
-
generator: 'productionEnvGenerator',
|
|
207
|
-
returnPath: '.env.production'
|
|
208
|
-
},
|
|
209
|
-
generateStagingEnv: {
|
|
210
|
-
generator: 'stagingEnvGenerator',
|
|
211
|
-
returnPath: '.env.staging'
|
|
212
|
-
},
|
|
213
|
-
generateDevelopmentEnv: {
|
|
214
|
-
generator: 'developmentEnvGenerator',
|
|
215
|
-
returnPath: '.env.development'
|
|
216
|
-
},
|
|
217
|
-
generateServiceSchema: {
|
|
218
|
-
generator: 'serviceSchemaGenerator',
|
|
219
|
-
returnPath: 'config/schema.json'
|
|
220
|
-
},
|
|
221
|
-
generateDeployScript: {
|
|
222
|
-
generator: 'deployScriptGenerator',
|
|
223
|
-
returnPath: 'scripts/deploy.sh'
|
|
224
|
-
},
|
|
225
|
-
generateSetupScript: {
|
|
226
|
-
generator: 'setupScriptGenerator',
|
|
227
|
-
returnPath: 'scripts/setup.sh'
|
|
228
|
-
},
|
|
229
|
-
generateHealthCheckScript: {
|
|
230
|
-
generator: 'healthCheckScriptGenerator',
|
|
231
|
-
returnPath: 'scripts/health-check.js'
|
|
232
|
-
},
|
|
233
|
-
generateUnitTests: {
|
|
234
|
-
generator: 'unitTestsGenerator',
|
|
235
|
-
returnPath: 'test/unit.test.js'
|
|
236
|
-
},
|
|
237
|
-
generateIntegrationTests: {
|
|
238
|
-
generator: 'integrationTestsGenerator',
|
|
239
|
-
returnPath: 'test/integration.test.js'
|
|
240
|
-
},
|
|
241
|
-
generateJestConfig: {
|
|
242
|
-
generator: 'jestConfigGenerator',
|
|
243
|
-
returnPath: 'jest.config.js'
|
|
244
|
-
},
|
|
245
|
-
generateEslintConfig: {
|
|
246
|
-
generator: 'eslintConfigGenerator',
|
|
247
|
-
returnPath: 'eslint.config.js'
|
|
248
|
-
},
|
|
249
|
-
generateReadme: {
|
|
250
|
-
generator: 'readmeGenerator',
|
|
251
|
-
returnPath: 'README.md'
|
|
252
|
-
},
|
|
253
|
-
generateApiDocs: {
|
|
254
|
-
generator: 'apiDocsGenerator',
|
|
255
|
-
returnPath: 'docs/api.md'
|
|
256
|
-
},
|
|
257
|
-
generateDeploymentDocs: {
|
|
258
|
-
generator: 'deploymentDocsGenerator',
|
|
259
|
-
returnPath: 'docs/deployment.md'
|
|
260
|
-
},
|
|
261
|
-
generateConfigurationDocs: {
|
|
262
|
-
generator: 'configurationDocsGenerator',
|
|
263
|
-
returnPath: 'docs/configuration.md'
|
|
264
|
-
},
|
|
265
|
-
generateCiWorkflow: {
|
|
266
|
-
generator: 'ciWorkflowGenerator',
|
|
267
|
-
returnPath: '.github/workflows/ci.yml'
|
|
268
|
-
},
|
|
269
|
-
generateDeployWorkflow: {
|
|
270
|
-
generator: 'deployWorkflowGenerator',
|
|
271
|
-
returnPath: '.github/workflows/deploy.yml'
|
|
272
|
-
},
|
|
273
|
-
generateGitignore: {
|
|
274
|
-
generator: 'gitignoreGenerator',
|
|
275
|
-
returnPath: '.gitignore'
|
|
276
|
-
},
|
|
277
|
-
generateDockerCompose: {
|
|
278
|
-
generator: 'dockerComposeGenerator',
|
|
279
|
-
returnPath: 'docker-compose.yml'
|
|
280
|
-
}
|
|
281
|
-
};
|
|
282
|
-
Object.entries(generatorMappings).forEach(([methodName, config]) => {
|
|
283
|
-
// Only create proxy method if it doesn't already exist
|
|
284
|
-
if (!this[methodName]) {
|
|
285
|
-
this[methodName] = async function (...args) {
|
|
286
|
-
const context = this.buildContext(methodName, ...args);
|
|
287
|
-
const generator = this[config.generator];
|
|
288
|
-
const result = await generator.generate(context);
|
|
289
|
-
|
|
290
|
-
// Return content for methods that return content, otherwise return file path
|
|
291
|
-
if (config.returnContent) {
|
|
292
|
-
return result;
|
|
293
|
-
} else if (config.returnPath) {
|
|
294
|
-
const servicePath = args[2] || args[0]?.servicePath || this.outputDir;
|
|
295
|
-
return join(servicePath, config.returnPath);
|
|
296
|
-
} else {
|
|
297
|
-
// For methods that don't return specific content or paths, return the service path
|
|
298
|
-
return args[2] || args[0]?.servicePath || this.outputDir;
|
|
299
|
-
}
|
|
300
|
-
};
|
|
301
|
-
}
|
|
302
|
-
});
|
|
303
|
-
}
|
|
304
|
-
|
|
305
|
-
// Context builder for proxy methods
|
|
306
|
-
buildContext(methodName, ...args) {
|
|
307
|
-
// Special handling for generateSiteConfig
|
|
308
|
-
if (methodName === 'generateSiteConfig') {
|
|
309
|
-
return {
|
|
310
|
-
coreInputs: {
|
|
311
|
-
serviceType: args[0]
|
|
312
|
-
},
|
|
313
|
-
siteConfig: args[1] || {}
|
|
314
|
-
};
|
|
315
|
-
}
|
|
316
|
-
|
|
317
|
-
// For most methods: (coreInputs, confirmedValues, servicePath)
|
|
318
|
-
return {
|
|
319
|
-
coreInputs: args[0],
|
|
320
|
-
confirmedValues: args[1],
|
|
321
|
-
servicePath: args[2]
|
|
322
|
-
};
|
|
323
|
-
}
|
|
324
|
-
|
|
325
|
-
/**
|
|
326
|
-
* Generate complete service from core inputs and confirmed values
|
|
327
|
-
*/
|
|
328
|
-
|
|
329
|
-
/**
|
|
330
|
-
* Generate complete service from core inputs and confirmed values
|
|
331
|
-
*/
|
|
332
|
-
async generateService(coreInputs, confirmedValues, options = {}) {
|
|
333
|
-
const config = {
|
|
334
|
-
outputPath: this.outputDir,
|
|
335
|
-
...options
|
|
336
|
-
};
|
|
337
|
-
console.log('⚙️ Tier 3: Automated Generation');
|
|
338
|
-
console.log('Generating 67+ configuration files and service components...\n');
|
|
339
|
-
try {
|
|
340
|
-
const servicePath = join(config.outputPath, coreInputs.serviceName);
|
|
341
|
-
|
|
342
|
-
// Create service directory structure
|
|
343
|
-
this.createDirectoryStructure(servicePath);
|
|
344
|
-
|
|
345
|
-
// Generate all configuration files
|
|
346
|
-
const generatedFiles = await this.generateAllFiles(coreInputs, confirmedValues, servicePath);
|
|
347
|
-
|
|
348
|
-
// Create service manifest
|
|
349
|
-
const serviceManifest = this.createServiceManifest(coreInputs, confirmedValues, generatedFiles);
|
|
350
|
-
|
|
351
|
-
// Write service manifest
|
|
352
|
-
const manifestPath = join(servicePath, 'clodo-service-manifest.json');
|
|
353
|
-
writeFileSync(manifestPath, JSON.stringify(serviceManifest, null, 2), 'utf8');
|
|
354
|
-
generatedFiles.push(manifestPath);
|
|
355
|
-
console.log(`✅ Generated ${generatedFiles.length} files successfully`);
|
|
356
|
-
console.log(`📋 Service manifest created: clodo-service-manifest.json`);
|
|
357
|
-
return {
|
|
358
|
-
success: true,
|
|
359
|
-
serviceName: coreInputs.serviceName,
|
|
360
|
-
servicePath,
|
|
361
|
-
generatedFiles,
|
|
362
|
-
serviceManifest,
|
|
363
|
-
fileCount: generatedFiles.length
|
|
364
|
-
};
|
|
365
|
-
} catch (error) {
|
|
366
|
-
console.error(`❌ Generation failed: ${error.message}`);
|
|
367
|
-
throw new Error(`Service generation failed: ${error.message}`);
|
|
368
|
-
}
|
|
369
|
-
}
|
|
370
|
-
|
|
371
|
-
/**
|
|
372
|
-
* Create the complete directory structure
|
|
373
|
-
*/
|
|
374
|
-
createDirectoryStructure(servicePath) {
|
|
375
|
-
return this.directoryStructureService.createStandardStructure(servicePath);
|
|
376
|
-
}
|
|
377
|
-
|
|
378
|
-
/**
|
|
379
|
-
* Generate all configuration files
|
|
380
|
-
*/
|
|
381
|
-
async generateAllFiles(coreInputs, confirmedValues, servicePath) {
|
|
382
|
-
return await this.generationCoordinator.generateAllFiles(coreInputs, confirmedValues, servicePath);
|
|
383
|
-
}
|
|
384
|
-
|
|
385
|
-
/**
|
|
386
|
-
* Generate core configuration files (package.json, wrangler.toml, etc.)
|
|
387
|
-
*/
|
|
388
|
-
async generateCoreFiles(coreInputs, confirmedValues, servicePath) {
|
|
389
|
-
return await this.generationCoordinator.generateCoreFiles(coreInputs, confirmedValues, servicePath);
|
|
390
|
-
}
|
|
391
|
-
|
|
392
|
-
/**
|
|
393
|
-
* Generate service-specific configuration files
|
|
394
|
-
*/
|
|
395
|
-
async generateServiceSpecificFiles(coreInputs, confirmedValues, servicePath) {
|
|
396
|
-
return await this.generationCoordinator.generateServiceSpecificFiles(coreInputs, confirmedValues, servicePath);
|
|
397
|
-
}
|
|
398
|
-
|
|
399
|
-
/**
|
|
400
|
-
* Generate environment and deployment files
|
|
401
|
-
*/
|
|
402
|
-
async generateEnvironmentFiles(coreInputs, confirmedValues, servicePath) {
|
|
403
|
-
return await this.generationCoordinator.generateEnvironmentFiles(coreInputs, confirmedValues, servicePath);
|
|
404
|
-
}
|
|
405
|
-
|
|
406
|
-
/**
|
|
407
|
-
* Generate testing and quality assurance files
|
|
408
|
-
*/
|
|
409
|
-
async generateTestingFiles(coreInputs, confirmedValues, servicePath) {
|
|
410
|
-
return await this.generationCoordinator.generateTestingFiles(coreInputs, confirmedValues, servicePath);
|
|
411
|
-
}
|
|
412
|
-
|
|
413
|
-
/**
|
|
414
|
-
* Generate documentation files
|
|
415
|
-
*/
|
|
416
|
-
async generateDocumentationFiles(coreInputs, confirmedValues, servicePath) {
|
|
417
|
-
return await this.generationCoordinator.generateDocumentationFiles(coreInputs, confirmedValues, servicePath);
|
|
418
|
-
}
|
|
419
|
-
|
|
420
|
-
/**
|
|
421
|
-
* Generate automation and CI/CD files
|
|
422
|
-
*/
|
|
423
|
-
async generateAutomationFiles(coreInputs, confirmedValues, servicePath) {
|
|
424
|
-
return await this.generationCoordinator.generateAutomationFiles(coreInputs, confirmedValues, servicePath);
|
|
425
|
-
}
|
|
426
|
-
|
|
427
|
-
/**
|
|
428
|
-
* Create service manifest
|
|
429
|
-
*/
|
|
430
|
-
createServiceManifest(coreInputs, confirmedValues, generatedFiles) {
|
|
431
|
-
return this.serviceManifestGenerator.createManifest(coreInputs, confirmedValues, generatedFiles);
|
|
432
|
-
}
|
|
433
|
-
|
|
434
|
-
/**
|
|
435
|
-
* Categorize generated files
|
|
436
|
-
*/
|
|
437
|
-
categorizeFiles(files) {
|
|
438
|
-
return this.serviceManifestGenerator.categorizeFiles(files);
|
|
439
|
-
}
|
|
440
|
-
|
|
441
|
-
/**
|
|
442
|
-
* Generate checksum for verification
|
|
443
|
-
*/
|
|
444
|
-
generateChecksum(files) {
|
|
445
|
-
return this.serviceManifestGenerator.generateChecksum(files);
|
|
446
|
-
}
|
|
447
|
-
}
|