@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,186 +0,0 @@
1
- // Simple inline logger to avoid circular dependency with index.js
2
- import { validateRequired, deepMerge } from '../utils/index.js';
3
- const logger = {
4
- info: (message, ...args) => console.log(`[DomainConfig] ${message}`, ...args),
5
- error: (message, ...args) => console.error(`[DomainConfig] ${message}`, ...args),
6
- warn: (message, ...args) => console.warn(`[DomainConfig] ${message}`, ...args),
7
- debug: (message, ...args) => console.debug(`[DomainConfig] ${message}`, ...args)
8
- };
9
-
10
- /**
11
- * Creates a base domain configuration schema
12
- * @returns {Object} Base domain configuration template
13
- */
14
- export const createDomainConfigSchema = () => ({
15
- name: '',
16
- displayName: '',
17
- accountId: '',
18
- zoneId: '',
19
- domains: {
20
- production: '',
21
- staging: '',
22
- development: ''
23
- },
24
- services: {},
25
- databases: {},
26
- features: {},
27
- settings: {
28
- environment: 'development',
29
- logLevel: 'info',
30
- corsOrigins: ['*']
31
- }
32
- });
33
-
34
- /**
35
- * Validates a domain configuration object
36
- * @param {Object} config - Domain configuration to validate
37
- * @throws {Error} If validation fails
38
- */
39
- export const validateDomainConfig = config => {
40
- try {
41
- // Required top-level fields
42
- validateRequired(config, ['name', 'accountId', 'zoneId']);
43
-
44
- // Validate Cloudflare IDs format (basic check)
45
- if (!/^[a-f0-9]{32}$/.test(config.accountId)) {
46
- throw new Error('accountId must be a valid Cloudflare account ID (32 hex characters)');
47
- }
48
- if (!/^[a-f0-9]{32}$/.test(config.zoneId)) {
49
- throw new Error('zoneId must be a valid Cloudflare zone ID (32 hex characters)');
50
- }
51
-
52
- // Validate domains structure
53
- if (!config.domains || typeof config.domains !== 'object') {
54
- throw new Error('domains must be an object with production/staging/development keys');
55
- }
56
-
57
- // At least one domain should be configured
58
- const hasDomain = Object.values(config.domains).some(domain => domain && domain.trim());
59
- if (!hasDomain) {
60
- throw new Error('At least one domain (production, staging, or development) must be configured');
61
- }
62
-
63
- // Validate domain formats (basic URL validation)
64
- Object.entries(config.domains).forEach(([env, domain]) => {
65
- if (domain && domain.trim()) {
66
- try {
67
- new URL(`https://${domain}`);
68
- } catch {
69
- throw new Error(`Invalid domain format for ${env}: ${domain}`);
70
- }
71
- }
72
- });
73
- logger.info(`Domain configuration validated: ${config.name}`);
74
- } catch (error) {
75
- logger.error(`Domain configuration validation failed: ${error.message}`);
76
- throw error;
77
- }
78
- };
79
-
80
- /**
81
- * Merges base domain config with service-specific extensions
82
- * @param {Object} baseConfig - Base domain configuration
83
- * @param {Object} serviceConfig - Service-specific configuration extensions
84
- * @returns {Object} Merged configuration
85
- */
86
- export const mergeDomainConfigs = (baseConfig, serviceConfig) => {
87
- if (!baseConfig || !serviceConfig) {
88
- throw new Error('Both baseConfig and serviceConfig are required for merging');
89
- }
90
- const merged = deepMerge(baseConfig, serviceConfig);
91
-
92
- // Validate the merged configuration
93
- validateDomainConfig(merged);
94
- logger.info(`Domain configurations merged: ${baseConfig.name}`);
95
- return merged;
96
- };
97
-
98
- /**
99
- * Creates a domain configuration registry
100
- * @param {Object} domainConfigs - Object containing domain configurations
101
- * @returns {Object} Domain registry with lookup methods
102
- */
103
- export const createDomainRegistry = domainConfigs => {
104
- const registry = {
105
- ...domainConfigs
106
- };
107
- return {
108
- get: domainName => {
109
- const config = registry[domainName];
110
- if (!config) {
111
- throw new Error(`Domain not found: ${domainName}`);
112
- }
113
- return config;
114
- },
115
- list: () => Object.keys(registry),
116
- validateAll: () => {
117
- Object.values(registry).forEach(validateDomainConfig);
118
- logger.info(`All ${Object.keys(registry).length} domain configurations validated`);
119
- },
120
- add: (domainName, config) => {
121
- validateDomainConfig(config);
122
- registry[domainName] = config;
123
- logger.info(`Domain added to registry: ${domainName}`);
124
- },
125
- remove: domainName => {
126
- if (!registry[domainName]) {
127
- throw new Error(`Domain not found: ${domainName}`);
128
- }
129
- delete registry[domainName];
130
- logger.info(`Domain removed from registry: ${domainName}`);
131
- }
132
- };
133
- };
134
-
135
- /**
136
- * Gets domain configuration from environment variables
137
- * @param {Object} env - Environment variables
138
- * @param {Object} domainConfigs - Available domain configurations
139
- * @returns {Object} Domain configuration for current environment
140
- */
141
- export const getDomainFromEnv = (env, domainConfigs) => {
142
- const domainName = env.DOMAIN_NAME || env.CF_DOMAIN_NAME || 'default';
143
- if (!domainConfigs[domainName]) {
144
- logger.warn(`Domain not found: ${domainName}, using default`);
145
- return domainConfigs.default || Object.values(domainConfigs)[0];
146
- }
147
- return domainConfigs[domainName];
148
- };
149
-
150
- /**
151
- * Creates environment-specific configuration overrides
152
- * @param {Object} baseConfig - Base domain configuration
153
- * @param {string} environment - Target environment (production, staging, development)
154
- * @returns {Object} Environment-specific configuration
155
- */
156
- export const createEnvironmentConfig = (baseConfig, environment = 'development') => {
157
- const envConfig = {
158
- ...baseConfig
159
- };
160
-
161
- // Set environment-specific settings
162
- envConfig.settings = {
163
- ...envConfig.settings,
164
- environment,
165
- isProduction: environment === 'production',
166
- isStaging: environment === 'staging',
167
- isDevelopment: environment === 'development'
168
- };
169
-
170
- // Environment-specific domain selection
171
- if (envConfig.domains[environment]) {
172
- envConfig.currentDomain = envConfig.domains[environment];
173
- }
174
-
175
- // Environment-specific feature overrides
176
- if (environment === 'production') {
177
- // Ensure critical features are enabled in production
178
- envConfig.features = {
179
- ...envConfig.features,
180
- errorReporting: true,
181
- monitoring: true
182
- };
183
- }
184
- logger.info(`Environment config created for ${baseConfig.name} (${environment})`);
185
- return envConfig;
186
- };
@@ -1,6 +0,0 @@
1
- // Configuration Framework
2
- // Domain configuration and feature flag management
3
-
4
- export * from './domains.js';
5
- export * from './features.js';
6
- export * from './customers.js';