@tamyla/clodo-framework 1.0.0

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 (130) hide show
  1. package/CHANGELOG.md +564 -0
  2. package/LICENSE +21 -0
  3. package/README.md +1393 -0
  4. package/bin/README.md +71 -0
  5. package/bin/clodo-service.js +416 -0
  6. package/bin/security/security-cli.js +96 -0
  7. package/bin/service-management/README.md +74 -0
  8. package/bin/service-management/create-service.js +129 -0
  9. package/bin/service-management/init-service.js +102 -0
  10. package/bin/service-management/init-service.js.backup +889 -0
  11. package/bin/shared/config/customer-cli.js +293 -0
  12. package/dist/config/ConfigurationManager.js +159 -0
  13. package/dist/config/CustomerConfigCLI.js +220 -0
  14. package/dist/config/FeatureManager.js +426 -0
  15. package/dist/config/customers.js +441 -0
  16. package/dist/config/domains.js +180 -0
  17. package/dist/config/features.js +225 -0
  18. package/dist/config/index.js +6 -0
  19. package/dist/database/database-orchestrator.js +730 -0
  20. package/dist/database/index.js +4 -0
  21. package/dist/deployment/auditor.js +971 -0
  22. package/dist/deployment/index.js +10 -0
  23. package/dist/deployment/rollback-manager.js +523 -0
  24. package/dist/deployment/testers/api-tester.js +80 -0
  25. package/dist/deployment/testers/auth-tester.js +129 -0
  26. package/dist/deployment/testers/core.js +217 -0
  27. package/dist/deployment/testers/database-tester.js +105 -0
  28. package/dist/deployment/testers/index.js +74 -0
  29. package/dist/deployment/testers/load-tester.js +120 -0
  30. package/dist/deployment/testers/performance-tester.js +105 -0
  31. package/dist/deployment/validator.js +558 -0
  32. package/dist/deployment/wrangler-deployer.js +574 -0
  33. package/dist/handlers/GenericRouteHandler.js +532 -0
  34. package/dist/index.js +39 -0
  35. package/dist/migration/MigrationAdapters.js +562 -0
  36. package/dist/modules/ModuleManager.js +668 -0
  37. package/dist/modules/security.js +98 -0
  38. package/dist/orchestration/cross-domain-coordinator.js +1083 -0
  39. package/dist/orchestration/index.js +5 -0
  40. package/dist/orchestration/modules/DeploymentCoordinator.js +258 -0
  41. package/dist/orchestration/modules/DomainResolver.js +196 -0
  42. package/dist/orchestration/modules/StateManager.js +332 -0
  43. package/dist/orchestration/multi-domain-orchestrator.js +255 -0
  44. package/dist/routing/EnhancedRouter.js +158 -0
  45. package/dist/schema/SchemaManager.js +778 -0
  46. package/dist/security/ConfigurationValidator.js +490 -0
  47. package/dist/security/DeploymentManager.js +208 -0
  48. package/dist/security/SecretGenerator.js +142 -0
  49. package/dist/security/SecurityCLI.js +228 -0
  50. package/dist/security/index.js +51 -0
  51. package/dist/security/patterns/environment-rules.js +66 -0
  52. package/dist/security/patterns/insecure-patterns.js +21 -0
  53. package/dist/service-management/ConfirmationEngine.js +411 -0
  54. package/dist/service-management/ErrorTracker.js +294 -0
  55. package/dist/service-management/GenerationEngine.js +3109 -0
  56. package/dist/service-management/InputCollector.js +237 -0
  57. package/dist/service-management/ServiceCreator.js +229 -0
  58. package/dist/service-management/ServiceInitializer.js +448 -0
  59. package/dist/service-management/ServiceOrchestrator.js +638 -0
  60. package/dist/service-management/handlers/ConfigMutator.js +130 -0
  61. package/dist/service-management/handlers/ConfirmationHandler.js +71 -0
  62. package/dist/service-management/handlers/GenerationHandler.js +80 -0
  63. package/dist/service-management/handlers/InputHandler.js +59 -0
  64. package/dist/service-management/handlers/ValidationHandler.js +203 -0
  65. package/dist/service-management/index.js +7 -0
  66. package/dist/services/GenericDataService.js +488 -0
  67. package/dist/shared/cloudflare/domain-discovery.js +562 -0
  68. package/dist/shared/cloudflare/domain-manager.js +912 -0
  69. package/dist/shared/cloudflare/index.js +8 -0
  70. package/dist/shared/cloudflare/ops.js +387 -0
  71. package/dist/shared/config/cache.js +1167 -0
  72. package/dist/shared/config/command-config-manager.js +174 -0
  73. package/dist/shared/config/customer-cli.js +258 -0
  74. package/dist/shared/config/index.js +9 -0
  75. package/dist/shared/config/manager.js +289 -0
  76. package/dist/shared/database/connection-manager.js +338 -0
  77. package/dist/shared/database/index.js +7 -0
  78. package/dist/shared/database/orchestrator.js +632 -0
  79. package/dist/shared/deployment/auditor.js +971 -0
  80. package/dist/shared/deployment/index.js +10 -0
  81. package/dist/shared/deployment/rollback-manager.js +523 -0
  82. package/dist/shared/deployment/validator.js +558 -0
  83. package/dist/shared/index.js +32 -0
  84. package/dist/shared/monitoring/health-checker.js +250 -0
  85. package/dist/shared/monitoring/index.js +8 -0
  86. package/dist/shared/monitoring/memory-manager.js +382 -0
  87. package/dist/shared/monitoring/production-monitor.js +390 -0
  88. package/dist/shared/production-tester/api-tester.js +80 -0
  89. package/dist/shared/production-tester/auth-tester.js +129 -0
  90. package/dist/shared/production-tester/core.js +217 -0
  91. package/dist/shared/production-tester/database-tester.js +105 -0
  92. package/dist/shared/production-tester/index.js +74 -0
  93. package/dist/shared/production-tester/load-tester.js +120 -0
  94. package/dist/shared/production-tester/performance-tester.js +105 -0
  95. package/dist/shared/security/api-token-manager.js +296 -0
  96. package/dist/shared/security/index.js +8 -0
  97. package/dist/shared/security/secret-generator.js +918 -0
  98. package/dist/shared/security/secure-token-manager.js +379 -0
  99. package/dist/shared/utils/error-recovery.js +240 -0
  100. package/dist/shared/utils/graceful-shutdown-manager.js +380 -0
  101. package/dist/shared/utils/index.js +9 -0
  102. package/dist/shared/utils/interactive-prompts.js +134 -0
  103. package/dist/shared/utils/rate-limiter.js +249 -0
  104. package/dist/utils/ErrorHandler.js +173 -0
  105. package/dist/utils/deployment/config-cache.js +1160 -0
  106. package/dist/utils/deployment/index.js +6 -0
  107. package/dist/utils/deployment/interactive-prompts.js +97 -0
  108. package/dist/utils/deployment/secret-generator.js +896 -0
  109. package/dist/utils/dirname-helper.js +35 -0
  110. package/dist/utils/domain-config.js +159 -0
  111. package/dist/utils/error-recovery.js +240 -0
  112. package/dist/utils/esm-helper.js +52 -0
  113. package/dist/utils/framework-config.js +481 -0
  114. package/dist/utils/graceful-shutdown-manager.js +379 -0
  115. package/dist/utils/health-checker.js +114 -0
  116. package/dist/utils/index.js +36 -0
  117. package/dist/utils/prompt-handler.js +98 -0
  118. package/dist/utils/usage-tracker.js +252 -0
  119. package/dist/utils/validation.js +112 -0
  120. package/dist/version/VersionDetector.js +723 -0
  121. package/dist/worker/index.js +4 -0
  122. package/dist/worker/integration.js +332 -0
  123. package/docs/FRAMEWORK-ARCHITECTURE-OVERVIEW.md +206 -0
  124. package/docs/INTEGRATION_GUIDE.md +2045 -0
  125. package/docs/README.md +82 -0
  126. package/docs/SECURITY.md +242 -0
  127. package/docs/deployment/deployment-guide.md +540 -0
  128. package/docs/overview.md +280 -0
  129. package/package.json +176 -0
  130. package/types/index.d.ts +575 -0
@@ -0,0 +1,6 @@
1
+ // Deployment Utilities Module
2
+ // Utilities for deployment operations, secrets, and configuration
3
+
4
+ export { ConfigurationCacheManager } from './config-cache.js';
5
+ export { EnhancedSecretManager } from './secret-generator.js';
6
+ export { askUser, askYesNo, askChoice, closePrompts } from './interactive-prompts.js';
@@ -0,0 +1,97 @@
1
+ /**
2
+ * Interactive Prompts Module
3
+ * Standardized user input functions for all scripts
4
+ *
5
+ * Replaces duplicate prompt code across 10+ scripts
6
+ */
7
+
8
+ import readline from 'readline';
9
+
10
+ // Create readline interface (singleton)
11
+ let rl = null;
12
+ function getReadlineInterface() {
13
+ if (!rl) {
14
+ rl = readline.createInterface({
15
+ input: process.stdin,
16
+ output: process.stdout
17
+ });
18
+ }
19
+ return rl;
20
+ }
21
+ export function askUser(question, defaultValue = null) {
22
+ return new Promise(resolve => {
23
+ const prompt = defaultValue ? `${question} [${defaultValue}]: ` : `${question}: `;
24
+ getReadlineInterface().question(prompt, answer => {
25
+ resolve(answer.trim() || defaultValue);
26
+ });
27
+ });
28
+ }
29
+ export function askYesNo(question, defaultValue = 'n') {
30
+ return new Promise(resolve => {
31
+ const prompt = `${question} [y/N]: `;
32
+ getReadlineInterface().question(prompt, answer => {
33
+ const response = answer.trim().toLowerCase() || defaultValue;
34
+ resolve(response === 'y' || response === 'yes');
35
+ });
36
+ });
37
+ }
38
+ export function askChoice(question, choices, defaultIndex = 0) {
39
+ return new Promise(resolve => {
40
+ console.log(`\n${question}`);
41
+ choices.forEach((choice, index) => {
42
+ const marker = index === defaultIndex ? '>' : ' ';
43
+ console.log(`${marker} ${index + 1}. ${choice}`);
44
+ });
45
+ getReadlineInterface().question(`\nSelect option [1-${choices.length}]: `, answer => {
46
+ const choice = parseInt(answer) - 1;
47
+ if (isNaN(choice) || choice < 0 || choice >= choices.length) {
48
+ resolve(defaultIndex);
49
+ } else {
50
+ resolve(choice);
51
+ }
52
+ });
53
+ });
54
+ }
55
+ export function askMultiChoice(question, choices, defaultIndices = []) {
56
+ return new Promise(resolve => {
57
+ console.log(`\n${question}`);
58
+ console.log('(Enter comma-separated numbers, e.g., "1,3,5")');
59
+ choices.forEach((choice, index) => {
60
+ const marker = defaultIndices.includes(index) ? '>' : ' ';
61
+ console.log(`${marker} ${index + 1}. ${choice}`);
62
+ });
63
+ const defaultStr = defaultIndices.map(i => i + 1).join(',');
64
+ getReadlineInterface().question(`\nSelect options [${defaultStr}]: `, answer => {
65
+ if (!answer.trim()) {
66
+ resolve(defaultIndices);
67
+ return;
68
+ }
69
+ const selected = answer.split(',').map(s => parseInt(s.trim()) - 1).filter(i => !isNaN(i) && i >= 0 && i < choices.length);
70
+ resolve(selected.length > 0 ? selected : defaultIndices);
71
+ });
72
+ });
73
+ }
74
+ export function closePrompts() {
75
+ if (rl) {
76
+ rl.close();
77
+ rl = null;
78
+ }
79
+ }
80
+
81
+ // Utility function for progress indicators
82
+ export function showProgress(message, steps = ['⏳', '⚡', '✅']) {
83
+ return new Promise(resolve => {
84
+ let stepIndex = 0;
85
+ const interval = setInterval(() => {
86
+ process.stdout.write(`\r${steps[stepIndex]} ${message}`);
87
+ stepIndex = (stepIndex + 1) % steps.length;
88
+ }, 500);
89
+
90
+ // Auto-resolve after 2 seconds or when manually resolved
91
+ setTimeout(() => {
92
+ clearInterval(interval);
93
+ process.stdout.write(`\r✅ ${message}\n`);
94
+ resolve();
95
+ }, 2000);
96
+ });
97
+ }