@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.
Files changed (169) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/README.md +53 -0
  3. package/dist/bin/clodo-service.js +47 -15
  4. package/dist/bin/commands/deploy.js +115 -83
  5. package/dist/bin/commands/helpers/deployment-ui.js +138 -0
  6. package/dist/bin/commands/helpers/deployment-verification.js +251 -0
  7. package/dist/bin/commands/helpers/error-recovery.js +80 -0
  8. package/dist/bin/commands/helpers/resource-detection.js +113 -0
  9. package/dist/bin/commands/validate.js +1 -1
  10. package/dist/bin/security/security-cli.js +1 -1
  11. package/dist/bin/shared/cache/configuration-cache.js +82 -0
  12. package/dist/bin/shared/cloudflare/domain-manager.js +1 -1
  13. package/dist/bin/shared/cloudflare/index.js +1 -1
  14. package/dist/bin/shared/cloudflare/ops.js +6 -4
  15. package/dist/bin/shared/config/ConfigurationManager.js +23 -1
  16. package/dist/bin/shared/config/command-config-manager.js +19 -3
  17. package/dist/bin/shared/config/index.js +1 -1
  18. package/dist/bin/shared/deployment/credential-collector.js +30 -7
  19. package/dist/bin/shared/deployment/index.js +2 -2
  20. package/dist/bin/shared/deployment/rollback-manager.js +4 -520
  21. package/dist/bin/shared/deployment/utilities/d1-error-recovery.js +177 -0
  22. package/dist/bin/shared/deployment/validator.js +40 -10
  23. package/dist/bin/shared/deployment/workflows/deployment-summary.js +214 -0
  24. package/dist/bin/shared/deployment/workflows/interactive-confirmation.js +188 -0
  25. package/dist/bin/shared/deployment/workflows/interactive-database-workflow.js +234 -0
  26. package/dist/bin/shared/deployment/workflows/interactive-domain-info-gatherer.js +240 -0
  27. package/dist/bin/shared/deployment/workflows/interactive-secret-workflow.js +228 -0
  28. package/dist/bin/shared/deployment/workflows/interactive-testing-workflow.js +235 -0
  29. package/dist/bin/shared/deployment/workflows/interactive-validation.js +218 -0
  30. package/dist/bin/shared/error-handling/error-classifier.js +46 -0
  31. package/dist/bin/shared/monitoring/health-checker.js +129 -1
  32. package/dist/bin/shared/monitoring/memory-manager.js +17 -6
  33. package/dist/bin/shared/routing/domain-router.js +1 -1
  34. package/dist/bin/shared/utils/deployment-validator.js +97 -0
  35. package/dist/bin/shared/utils/formatters.js +10 -0
  36. package/dist/bin/shared/utils/index.js +13 -1
  37. package/dist/bin/shared/utils/interactive-prompts.js +34 -18
  38. package/dist/bin/shared/utils/progress-manager.js +2 -2
  39. package/dist/bin/shared/utils/progress-spinner.js +53 -0
  40. package/dist/bin/shared/utils/sensitive-redactor.js +91 -0
  41. package/dist/bin/shared/validation/ValidationRegistry.js +1 -1
  42. package/dist/security/index.js +1 -1
  43. package/dist/security/patterns/insecure-patterns.js +1 -1
  44. package/dist/utils/constants.js +102 -0
  45. package/dist/utils/deployment/wrangler-config-manager.js +215 -48
  46. package/dist/utils/framework-config.js +2 -2
  47. package/dist/utils/interactive-prompts.js +10 -59
  48. package/package.json +16 -8
  49. package/dist/bin/clodo-service-old.js +0 -868
  50. package/dist/bin/clodo-service-test.js +0 -10
  51. package/dist/bin/commands/assess.js +0 -91
  52. package/dist/bin/commands/create.js +0 -77
  53. package/dist/bin/commands/diagnose.js +0 -83
  54. package/dist/bin/commands/helpers.js +0 -138
  55. package/dist/bin/commands/update.js +0 -75
  56. package/dist/bin/database/deployment-db-manager.js +0 -423
  57. package/dist/bin/database/enterprise-db-manager.js +0 -457
  58. package/dist/bin/database/wrangler-d1-manager.js +0 -685
  59. package/dist/bin/deployment/enterprise-deploy.js +0 -877
  60. package/dist/bin/deployment/master-deploy.js +0 -1376
  61. package/dist/bin/deployment/modular-enterprise-deploy.js +0 -466
  62. package/dist/bin/deployment/modules/DeploymentConfiguration.js +0 -395
  63. package/dist/bin/deployment/modules/DeploymentOrchestrator.js +0 -492
  64. package/dist/bin/deployment/modules/EnvironmentManager.js +0 -517
  65. package/dist/bin/deployment/modules/MonitoringIntegration.js +0 -560
  66. package/dist/bin/deployment/modules/ValidationManager.js +0 -342
  67. package/dist/bin/deployment/orchestration/BaseDeploymentOrchestrator.js +0 -426
  68. package/dist/bin/deployment/orchestration/EnterpriseOrchestrator.js +0 -401
  69. package/dist/bin/deployment/orchestration/PortfolioOrchestrator.js +0 -273
  70. package/dist/bin/deployment/orchestration/SingleServiceOrchestrator.js +0 -231
  71. package/dist/bin/deployment/orchestration/UnifiedDeploymentOrchestrator.js +0 -662
  72. package/dist/bin/deployment/test-interactive-utils.js +0 -66
  73. package/dist/bin/portfolio/portfolio-manager.js +0 -487
  74. package/dist/bin/service-management/create-service.js +0 -122
  75. package/dist/bin/service-management/init-service.js +0 -79
  76. package/dist/config/customers.js +0 -623
  77. package/dist/config/domains.js +0 -186
  78. package/dist/config/index.js +0 -6
  79. package/dist/database/database-orchestrator.js +0 -795
  80. package/dist/database/index.js +0 -4
  81. package/dist/deployment/index.js +0 -11
  82. package/dist/deployment/orchestration/BaseDeploymentOrchestrator.js +0 -426
  83. package/dist/deployment/orchestration/EnterpriseOrchestrator.js +0 -401
  84. package/dist/deployment/orchestration/PortfolioOrchestrator.js +0 -273
  85. package/dist/deployment/orchestration/SingleServiceOrchestrator.js +0 -231
  86. package/dist/deployment/orchestration/UnifiedDeploymentOrchestrator.js +0 -662
  87. package/dist/deployment/orchestration/index.js +0 -17
  88. package/dist/deployment/rollback-manager.js +0 -36
  89. package/dist/deployment/wrangler-deployer.js +0 -640
  90. package/dist/handlers/GenericRouteHandler.js +0 -532
  91. package/dist/migration/MigrationAdapters.js +0 -562
  92. package/dist/modules/ModuleManager.js +0 -668
  93. package/dist/modules/security.js +0 -96
  94. package/dist/orchestration/cross-domain-coordinator.js +0 -1083
  95. package/dist/orchestration/index.js +0 -5
  96. package/dist/orchestration/modules/DeploymentCoordinator.js +0 -368
  97. package/dist/orchestration/modules/DomainResolver.js +0 -198
  98. package/dist/orchestration/modules/StateManager.js +0 -332
  99. package/dist/orchestration/multi-domain-orchestrator.js +0 -724
  100. package/dist/routing/EnhancedRouter.js +0 -158
  101. package/dist/schema/SchemaManager.js +0 -778
  102. package/dist/service-management/ConfirmationEngine.js +0 -412
  103. package/dist/service-management/ErrorTracker.js +0 -299
  104. package/dist/service-management/GenerationEngine.js +0 -447
  105. package/dist/service-management/InputCollector.js +0 -619
  106. package/dist/service-management/ServiceCreator.js +0 -265
  107. package/dist/service-management/ServiceInitializer.js +0 -453
  108. package/dist/service-management/ServiceOrchestrator.js +0 -633
  109. package/dist/service-management/generators/BaseGenerator.js +0 -233
  110. package/dist/service-management/generators/GeneratorRegistry.js +0 -254
  111. package/dist/service-management/generators/cicd/CiWorkflowGenerator.js +0 -87
  112. package/dist/service-management/generators/cicd/DeployWorkflowGenerator.js +0 -106
  113. package/dist/service-management/generators/code/ServiceHandlersGenerator.js +0 -235
  114. package/dist/service-management/generators/code/ServiceMiddlewareGenerator.js +0 -116
  115. package/dist/service-management/generators/code/ServiceUtilsGenerator.js +0 -246
  116. package/dist/service-management/generators/code/WorkerIndexGenerator.js +0 -143
  117. package/dist/service-management/generators/config/DevelopmentEnvGenerator.js +0 -101
  118. package/dist/service-management/generators/config/DomainsConfigGenerator.js +0 -175
  119. package/dist/service-management/generators/config/EnvExampleGenerator.js +0 -178
  120. package/dist/service-management/generators/config/ProductionEnvGenerator.js +0 -97
  121. package/dist/service-management/generators/config/StagingEnvGenerator.js +0 -97
  122. package/dist/service-management/generators/config/WranglerTomlGenerator.js +0 -238
  123. package/dist/service-management/generators/core/PackageJsonGenerator.js +0 -243
  124. package/dist/service-management/generators/core/SiteConfigGenerator.js +0 -115
  125. package/dist/service-management/generators/documentation/ApiDocsGenerator.js +0 -331
  126. package/dist/service-management/generators/documentation/ConfigurationDocsGenerator.js +0 -294
  127. package/dist/service-management/generators/documentation/DeploymentDocsGenerator.js +0 -244
  128. package/dist/service-management/generators/documentation/ReadmeGenerator.js +0 -196
  129. package/dist/service-management/generators/schemas/ServiceSchemaGenerator.js +0 -190
  130. package/dist/service-management/generators/scripts/DeployScriptGenerator.js +0 -123
  131. package/dist/service-management/generators/scripts/HealthCheckScriptGenerator.js +0 -101
  132. package/dist/service-management/generators/scripts/SetupScriptGenerator.js +0 -88
  133. package/dist/service-management/generators/service-types/StaticSiteGenerator.js +0 -342
  134. package/dist/service-management/generators/testing/EslintConfigGenerator.js +0 -85
  135. package/dist/service-management/generators/testing/IntegrationTestsGenerator.js +0 -237
  136. package/dist/service-management/generators/testing/JestConfigGenerator.js +0 -72
  137. package/dist/service-management/generators/testing/UnitTestsGenerator.js +0 -277
  138. package/dist/service-management/generators/tooling/DockerComposeGenerator.js +0 -71
  139. package/dist/service-management/generators/tooling/GitignoreGenerator.js +0 -143
  140. package/dist/service-management/generators/utils/FileWriter.js +0 -179
  141. package/dist/service-management/generators/utils/PathResolver.js +0 -157
  142. package/dist/service-management/generators/utils/ServiceManifestGenerator.js +0 -111
  143. package/dist/service-management/generators/utils/TemplateEngine.js +0 -185
  144. package/dist/service-management/generators/utils/index.js +0 -18
  145. package/dist/service-management/handlers/ConfirmationHandler.js +0 -71
  146. package/dist/service-management/handlers/GenerationHandler.js +0 -80
  147. package/dist/service-management/handlers/InputHandler.js +0 -59
  148. package/dist/service-management/handlers/ValidationHandler.js +0 -203
  149. package/dist/service-management/index.js +0 -14
  150. package/dist/service-management/routing/DomainRouteMapper.js +0 -311
  151. package/dist/service-management/routing/RouteGenerator.js +0 -266
  152. package/dist/service-management/routing/WranglerRoutesBuilder.js +0 -273
  153. package/dist/service-management/routing/index.js +0 -14
  154. package/dist/service-management/services/DirectoryStructureService.js +0 -56
  155. package/dist/service-management/services/GenerationCoordinator.js +0 -208
  156. package/dist/service-management/services/GeneratorRegistry.js +0 -174
  157. package/dist/services/GenericDataService.js +0 -501
  158. package/dist/ui-structures/concepts/second-order-acquisition-strategy.md +0 -286
  159. package/dist/ui-structures/concepts/service-lifecycle-management.md +0 -150
  160. package/dist/ui-structures/concepts/service-manifest-guide.md +0 -309
  161. package/dist/ui-structures/concepts/three-tier-categorization-strategy.md +0 -231
  162. package/dist/ui-structures/creation/automated-generation-ui.json +0 -246
  163. package/dist/ui-structures/creation/core-inputs-ui.json +0 -217
  164. package/dist/ui-structures/creation/smart-confirmable-ui.json +0 -451
  165. package/dist/ui-structures/reference/absolutely-required-inputs.json +0 -315
  166. package/dist/ui-structures/reference/service-manifest-template.json +0 -342
  167. package/dist/version/VersionDetector.js +0 -723
  168. package/dist/worker/index.js +0 -4
  169. 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
- }