@tamyla/clodo-framework 3.2.3 → 3.2.4

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 CHANGED
@@ -1,3 +1,10 @@
1
+ ## [3.2.4](https://github.com/tamylaa/clodo-framework/compare/v3.2.3...v3.2.4) (2025-12-06)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * expose CLI utilities in public API to fix import issues ([5d995ab](https://github.com/tamylaa/clodo-framework/commit/5d995abb2f6cb718acc0a03beef75f1025204200))
7
+
1
8
  ## [3.2.3](https://github.com/tamylaa/clodo-framework/compare/v3.2.2...v3.2.3) (2025-12-06)
2
9
 
3
10
 
@@ -5,9 +5,7 @@
5
5
 
6
6
  import chalk from 'chalk';
7
7
  import path from 'path';
8
- import { ServiceOrchestrator } from '@tamyla/clodo-framework';
9
- import { StandardOptions } from '../../lib/shared/utils/cli-options.js';
10
- import { ServiceConfigManager } from '../../lib/shared/utils/service-config-manager.js';
8
+ import { ServiceOrchestrator, StandardOptions, ServiceConfigManager } from '@tamyla/clodo-framework';
11
9
  export function registerAssessCommand(program) {
12
10
  const command = program.command('assess [service-path]').description('Run intelligent capability assessment (requires @tamyla/clodo-orchestration)').option('--export <file>', 'Export assessment results to JSON file').option('--domain <domain>', 'Domain name for assessment').option('--service-type <type>', 'Service type for assessment').option('--token <token>', 'Cloudflare API token').option('--show-config-sources', 'Display all configuration sources and merged result');
13
11
 
@@ -6,9 +6,7 @@
6
6
  */
7
7
 
8
8
  import chalk from 'chalk';
9
- import { Clodo } from '@tamyla/clodo-framework';
10
- import { StandardOptions } from '../../lib/shared/utils/cli-options.js';
11
- import { ConfigLoader } from '../../lib/shared/utils/config-loader.js';
9
+ import { Clodo, StandardOptions, ConfigLoader } from '@tamyla/clodo-framework';
12
10
  export function registerCreateCommand(program) {
13
11
  const command = program.command('create').description('Create a new Clodo service with conversational setup').option('-n, --non-interactive', 'Run in non-interactive mode with all required parameters').option('--service-name <name>', 'Service name (required in non-interactive mode)').option('--service-type <type>', 'Service type: data-service, auth-service, content-service, api-gateway, generic', 'generic').option('--domain-name <domain>', 'Domain name (required in non-interactive mode)').option('--cloudflare-token <token>', 'Cloudflare API token (required in non-interactive mode)').option('--cloudflare-account-id <id>', 'Cloudflare account ID (required in non-interactive mode)').option('--cloudflare-zone-id <id>', 'Cloudflare zone ID (required in non-interactive mode)').option('--environment <env>', 'Target environment: development, staging, production', 'development').option('--output-path <path>', 'Output directory for generated service', '.').option('--template-path <path>', 'Path to service templates', './templates').option('--force', 'Skip confirmation prompts').option('--validate', 'Validate service after creation');
14
12
 
@@ -1,8 +1,5 @@
1
1
  import chalk from 'chalk';
2
- import { Clodo } from '@tamyla/clodo-framework';
3
- import { StandardOptions } from '../../lib/shared/utils/cli-options.js';
4
- import { ConfigLoader } from '../../lib/shared/utils/config-loader.js';
5
- import { InteractiveDeploymentCoordinator } from '../../lib/shared/deployment/workflows/interactive-deployment-coordinator.js';
2
+ import { Clodo, StandardOptions, ConfigLoader, InteractiveDeploymentCoordinator, OutputFormatter } from '@tamyla/clodo-framework';
6
3
  export function registerDeployCommand(program) {
7
4
  const command = program.command('deploy').description('Deploy a Clodo service with interactive configuration and validation')
8
5
  // Cloudflare-specific options
@@ -11,7 +8,7 @@ export function registerDeployCommand(program) {
11
8
  // Add standard options (--verbose, --quiet, --json, --no-color, --config-file)
12
9
  StandardOptions.define(command).action(async options => {
13
10
  try {
14
- const output = new (await import('../../lib/shared/utils/output-formatter.js')).OutputFormatter(options);
11
+ const output = new OutputFormatter(options);
15
12
  const configLoader = new ConfigLoader({
16
13
  verbose: options.verbose,
17
14
  quiet: options.quiet,
@@ -100,7 +97,7 @@ export function registerDeployCommand(program) {
100
97
  }
101
98
  }
102
99
  } catch (error) {
103
- const output = new (await import('../../lib/shared/utils/output-formatter.js')).OutputFormatter(options || {});
100
+ const output = new OutputFormatter(options || {});
104
101
  output.error(`Deployment failed: ${error.message}`);
105
102
  process.exit(1);
106
103
  }
@@ -1,8 +1,6 @@
1
1
  import chalk from 'chalk';
2
2
  import path from 'path';
3
- import { ServiceOrchestrator } from '@tamyla/clodo-framework';
4
- import { StandardOptions } from '../../lib/shared/utils/cli-options.js';
5
- import { ServiceConfigManager } from '../../lib/shared/utils/service-config-manager.js';
3
+ import { ServiceOrchestrator, StandardOptions, ServiceConfigManager } from '@tamyla/clodo-framework';
6
4
  export function registerDiagnoseCommand(program) {
7
5
  const command = program.command('diagnose [service-path]').description('Diagnose and report issues with an existing service').option('--deep-scan', 'Perform deep analysis including dependencies and deployment readiness').option('--export-report <file>', 'Export diagnostic report to file').option('--fix-suggestions', 'Include suggested fixes for issues').option('--show-config-sources', 'Display all configuration sources and merged result');
8
6
 
@@ -3,7 +3,7 @@
3
3
  * Provides UI-specific deployment verification by delegating to shared infrastructure
4
4
  */
5
5
 
6
- import { verifyWorkerDeployment, healthCheckWithBackoff, checkHealth } from '../../../lib/shared/monitoring/health-checker.js';
6
+ import { verifyWorkerDeployment, healthCheckWithBackoff, checkHealth } from '@tamyla/clodo-framework';
7
7
  import chalk from 'chalk';
8
8
  import readline from 'readline';
9
9
 
@@ -3,7 +3,7 @@
3
3
  * Provides interactive error recovery by delegating to shared error classification
4
4
  */
5
5
 
6
- import { classifyError, getRecoverySuggestions } from '../../../lib/shared/error-handling/error-classifier.js';
6
+ import { classifyError, getRecoverySuggestions } from '@tamyla/clodo-framework';
7
7
  import chalk from 'chalk';
8
8
  import readline from 'readline';
9
9
 
@@ -4,9 +4,7 @@
4
4
 
5
5
  import chalk from 'chalk';
6
6
  import path from 'path';
7
- import { ServiceOrchestrator } from '@tamyla/clodo-framework';
8
- import { StandardOptions } from '../../lib/shared/utils/cli-options.js';
9
- import { ServiceConfigManager } from '../../lib/shared/utils/service-config-manager.js';
7
+ import { ServiceOrchestrator, StandardOptions, ServiceConfigManager } from '@tamyla/clodo-framework';
10
8
  export function registerUpdateCommand(program) {
11
9
  const command = program.command('update [service-path]').description('Update an existing service configuration').option('-i, --interactive', 'Run in interactive mode to select what to update').option('--domain-name <domain>', 'Update domain name').option('--cloudflare-token <token>', 'Update Cloudflare API token').option('--cloudflare-account-id <id>', 'Update Cloudflare account ID').option('--cloudflare-zone-id <id>', 'Update Cloudflare zone ID').option('--environment <env>', 'Update target environment: development, staging, production').option('--add-feature <feature>', 'Add a feature flag').option('--remove-feature <feature>', 'Remove a feature flag').option('--regenerate-configs', 'Regenerate all configuration files').option('--fix-errors', 'Attempt to fix common configuration errors').option('--preview', 'Show what would be changed without applying').option('--show-config-sources', 'Display all configuration sources and merged result').option('--force', 'Skip confirmation prompts');
12
10
 
@@ -1,6 +1,5 @@
1
1
  import chalk from 'chalk';
2
- import { Clodo } from '@tamyla/clodo-framework';
3
- import { StandardOptions } from '../../lib/shared/utils/cli-options.js';
2
+ import { Clodo, StandardOptions } from '@tamyla/clodo-framework';
4
3
  export function registerValidateCommand(program) {
5
4
  const command = program.command('validate <service-path>').description('Validate an existing service configuration').option('--export-report <file>', 'Export validation report to JSON file');
6
5
 
package/dist/index.js CHANGED
@@ -37,6 +37,15 @@ export { ServiceCreator } from './service-management/ServiceCreator.js';
37
37
  export { ServiceOrchestrator } from './service-management/ServiceOrchestrator.js';
38
38
  export { InputCollector } from './service-management/InputCollector.js';
39
39
 
40
+ // CLI utilities (for framework CLI commands)
41
+ export { StandardOptions } from '../lib/shared/utils/cli-options.js';
42
+ export { ConfigLoader } from '../lib/shared/utils/config-loader.js';
43
+ export { ServiceConfigManager } from '../lib/shared/utils/service-config-manager.js';
44
+ export { InteractiveDeploymentCoordinator } from '../lib/shared/deployment/workflows/interactive-deployment-coordinator.js';
45
+ export { OutputFormatter } from '../lib/shared/utils/output-formatter.js';
46
+ export { verifyWorkerDeployment, healthCheckWithBackoff, checkHealth } from '../lib/shared/monitoring/health-checker.js';
47
+ export { classifyError, getRecoverySuggestions } from '../lib/shared/error-handling/error-classifier.js';
48
+
40
49
  // Framework version info
41
50
  export const FRAMEWORK_VERSION = '1.0.0';
42
51
  export const FRAMEWORK_NAME = 'Clodo Framework';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tamyla/clodo-framework",
3
- "version": "3.2.3",
3
+ "version": "3.2.4",
4
4
  "description": "Reusable framework for Clodo-style software architecture on Cloudflare Workers + D1",
5
5
  "type": "module",
6
6
  "sideEffects": [