@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
package/dist/config/domains.js
DELETED
|
@@ -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
|
-
};
|