@jterrats/smart-deployment 1.0.3
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/README.md +193 -0
- package/lib/ai/agentforce-error-handler.d.ts +81 -0
- package/lib/ai/agentforce-error-handler.js +196 -0
- package/lib/ai/agentforce-error-handler.js.map +1 -0
- package/lib/ai/agentforce-priority-service.d.ts +82 -0
- package/lib/ai/agentforce-priority-service.js +257 -0
- package/lib/ai/agentforce-priority-service.js.map +1 -0
- package/lib/ai/agentforce-service.d.ts +99 -0
- package/lib/ai/agentforce-service.js +300 -0
- package/lib/ai/agentforce-service.js.map +1 -0
- package/lib/ai/circuit-breaker.d.ts +115 -0
- package/lib/ai/circuit-breaker.js +277 -0
- package/lib/ai/circuit-breaker.js.map +1 -0
- package/lib/ai/dependency-inference-service.d.ts +76 -0
- package/lib/ai/dependency-inference-service.js +220 -0
- package/lib/ai/dependency-inference-service.js.map +1 -0
- package/lib/ai/llm-provider-factory.d.ts +15 -0
- package/lib/ai/llm-provider-factory.js +36 -0
- package/lib/ai/llm-provider-factory.js.map +1 -0
- package/lib/ai/llm-provider.d.ts +27 -0
- package/lib/ai/llm-provider.js +2 -0
- package/lib/ai/llm-provider.js.map +1 -0
- package/lib/ai/openai-service.d.ts +20 -0
- package/lib/ai/openai-service.js +89 -0
- package/lib/ai/openai-service.js.map +1 -0
- package/lib/ai/prompt-builder.d.ts +79 -0
- package/lib/ai/prompt-builder.js +180 -0
- package/lib/ai/prompt-builder.js.map +1 -0
- package/lib/ai/response-parser.d.ts +67 -0
- package/lib/ai/response-parser.js +234 -0
- package/lib/ai/response-parser.js.map +1 -0
- package/lib/ai/wave-validation-service.d.ts +111 -0
- package/lib/ai/wave-validation-service.js +381 -0
- package/lib/ai/wave-validation-service.js.map +1 -0
- package/lib/analysis/analysis-reporter.d.ts +56 -0
- package/lib/analysis/analysis-reporter.js +170 -0
- package/lib/analysis/analysis-reporter.js.map +1 -0
- package/lib/analytics/error-analytics.d.ts +80 -0
- package/lib/analytics/error-analytics.js +162 -0
- package/lib/analytics/error-analytics.js.map +1 -0
- package/lib/commands/analyze.d.ts +49 -0
- package/lib/commands/analyze.js +232 -0
- package/lib/commands/analyze.js.map +1 -0
- package/lib/commands/config.d.ts +42 -0
- package/lib/commands/config.js +219 -0
- package/lib/commands/config.js.map +1 -0
- package/lib/commands/resume.d.ts +26 -0
- package/lib/commands/resume.js +69 -0
- package/lib/commands/resume.js.map +1 -0
- package/lib/commands/start.d.ts +70 -0
- package/lib/commands/start.js +659 -0
- package/lib/commands/start.js.map +1 -0
- package/lib/commands/status.d.ts +37 -0
- package/lib/commands/status.js +69 -0
- package/lib/commands/status.js.map +1 -0
- package/lib/commands/validate.d.ts +33 -0
- package/lib/commands/validate.js +66 -0
- package/lib/commands/validate.js.map +1 -0
- package/lib/config/repo-config.d.ts +22 -0
- package/lib/config/repo-config.js +31 -0
- package/lib/config/repo-config.js.map +1 -0
- package/lib/constants/agentforce-limits.d.ts +174 -0
- package/lib/constants/agentforce-limits.js +262 -0
- package/lib/constants/agentforce-limits.js.map +1 -0
- package/lib/constants/api-version.d.ts +70 -0
- package/lib/constants/api-version.js +122 -0
- package/lib/constants/api-version.js.map +1 -0
- package/lib/constants/deployment-order.d.ts +68 -0
- package/lib/constants/deployment-order.js +162 -0
- package/lib/constants/deployment-order.js.map +1 -0
- package/lib/constants/salesforce-limits.d.ts +107 -0
- package/lib/constants/salesforce-limits.js +104 -0
- package/lib/constants/salesforce-limits.js.map +1 -0
- package/lib/dependencies/circular-dependency-detector.d.ts +137 -0
- package/lib/dependencies/circular-dependency-detector.js +329 -0
- package/lib/dependencies/circular-dependency-detector.js.map +1 -0
- package/lib/dependencies/cycle-remediation-planner.d.ts +50 -0
- package/lib/dependencies/cycle-remediation-planner.js +192 -0
- package/lib/dependencies/cycle-remediation-planner.js.map +1 -0
- package/lib/dependencies/dependency-cache.d.ts +134 -0
- package/lib/dependencies/dependency-cache.js +303 -0
- package/lib/dependencies/dependency-cache.js.map +1 -0
- package/lib/dependencies/dependency-depth-calculator.d.ts +145 -0
- package/lib/dependencies/dependency-depth-calculator.js +368 -0
- package/lib/dependencies/dependency-depth-calculator.js.map +1 -0
- package/lib/dependencies/dependency-graph-builder.d.ts +151 -0
- package/lib/dependencies/dependency-graph-builder.js +411 -0
- package/lib/dependencies/dependency-graph-builder.js.map +1 -0
- package/lib/dependencies/dependency-impact-analyzer.d.ts +145 -0
- package/lib/dependencies/dependency-impact-analyzer.js +330 -0
- package/lib/dependencies/dependency-impact-analyzer.js.map +1 -0
- package/lib/dependencies/dependency-merger.d.ts +122 -0
- package/lib/dependencies/dependency-merger.js +245 -0
- package/lib/dependencies/dependency-merger.js.map +1 -0
- package/lib/dependencies/dependency-resolver.d.ts +157 -0
- package/lib/dependencies/dependency-resolver.js +298 -0
- package/lib/dependencies/dependency-resolver.js.map +1 -0
- package/lib/dependencies/dependency-validator.d.ts +123 -0
- package/lib/dependencies/dependency-validator.js +291 -0
- package/lib/dependencies/dependency-validator.js.map +1 -0
- package/lib/dependencies/graph-visualizer.d.ts +110 -0
- package/lib/dependencies/graph-visualizer.js +262 -0
- package/lib/dependencies/graph-visualizer.js.map +1 -0
- package/lib/dependencies/heuristic-inference.d.ts +136 -0
- package/lib/dependencies/heuristic-inference.js +430 -0
- package/lib/dependencies/heuristic-inference.js.map +1 -0
- package/lib/deployment/cycle-source-editor.d.ts +34 -0
- package/lib/deployment/cycle-source-editor.js +121 -0
- package/lib/deployment/cycle-source-editor.js.map +1 -0
- package/lib/deployment/deployment-error-handler.d.ts +38 -0
- package/lib/deployment/deployment-error-handler.js +79 -0
- package/lib/deployment/deployment-error-handler.js.map +1 -0
- package/lib/deployment/deployment-reporter.d.ts +63 -0
- package/lib/deployment/deployment-reporter.js +150 -0
- package/lib/deployment/deployment-reporter.js.map +1 -0
- package/lib/deployment/deployment-state-summary.d.ts +38 -0
- package/lib/deployment/deployment-state-summary.js +209 -0
- package/lib/deployment/deployment-state-summary.js.map +1 -0
- package/lib/deployment/deployment-status-service.d.ts +36 -0
- package/lib/deployment/deployment-status-service.js +128 -0
- package/lib/deployment/deployment-status-service.js.map +1 -0
- package/lib/deployment/deployment-tracker.d.ts +42 -0
- package/lib/deployment/deployment-tracker.js +79 -0
- package/lib/deployment/deployment-tracker.js.map +1 -0
- package/lib/deployment/deployment-validation-service.d.ts +28 -0
- package/lib/deployment/deployment-validation-service.js +161 -0
- package/lib/deployment/deployment-validation-service.js.map +1 -0
- package/lib/deployment/retry-handler.d.ts +37 -0
- package/lib/deployment/retry-handler.js +86 -0
- package/lib/deployment/retry-handler.js.map +1 -0
- package/lib/deployment/sf-cli-integration.d.ts +42 -0
- package/lib/deployment/sf-cli-integration.js +105 -0
- package/lib/deployment/sf-cli-integration.js.map +1 -0
- package/lib/deployment/state-manager.d.ts +61 -0
- package/lib/deployment/state-manager.js +83 -0
- package/lib/deployment/state-manager.js.map +1 -0
- package/lib/deployment/test-executor.d.ts +41 -0
- package/lib/deployment/test-executor.js +87 -0
- package/lib/deployment/test-executor.js.map +1 -0
- package/lib/errors/base-error.d.ts +24 -0
- package/lib/errors/base-error.js +66 -0
- package/lib/errors/base-error.js.map +1 -0
- package/lib/errors/dependency-error.d.ts +37 -0
- package/lib/errors/dependency-error.js +76 -0
- package/lib/errors/dependency-error.js.map +1 -0
- package/lib/errors/deployment-error.d.ts +55 -0
- package/lib/errors/deployment-error.js +132 -0
- package/lib/errors/deployment-error.js.map +1 -0
- package/lib/errors/index.d.ts +45 -0
- package/lib/errors/index.js +71 -0
- package/lib/errors/index.js.map +1 -0
- package/lib/errors/network-error.d.ts +53 -0
- package/lib/errors/network-error.js +111 -0
- package/lib/errors/network-error.js.map +1 -0
- package/lib/errors/parsing-error.d.ts +41 -0
- package/lib/errors/parsing-error.js +69 -0
- package/lib/errors/parsing-error.js.map +1 -0
- package/lib/errors/validation-error-reporter.d.ts +34 -0
- package/lib/errors/validation-error-reporter.js +99 -0
- package/lib/errors/validation-error-reporter.js.map +1 -0
- package/lib/errors/validation-error.d.ts +58 -0
- package/lib/errors/validation-error.js +131 -0
- package/lib/errors/validation-error.js.map +1 -0
- package/lib/index.d.ts +2 -0
- package/lib/index.js +2 -0
- package/lib/index.js.map +1 -0
- package/lib/monitoring/performance-monitor.d.ts +98 -0
- package/lib/monitoring/performance-monitor.js +260 -0
- package/lib/monitoring/performance-monitor.js.map +1 -0
- package/lib/parsers/apex-class-parser.d.ts +47 -0
- package/lib/parsers/apex-class-parser.js +368 -0
- package/lib/parsers/apex-class-parser.js.map +1 -0
- package/lib/parsers/apex-trigger-parser.d.ts +48 -0
- package/lib/parsers/apex-trigger-parser.js +229 -0
- package/lib/parsers/apex-trigger-parser.js.map +1 -0
- package/lib/parsers/aura-parser.d.ts +55 -0
- package/lib/parsers/aura-parser.js +229 -0
- package/lib/parsers/aura-parser.js.map +1 -0
- package/lib/parsers/bot-parser.d.ts +65 -0
- package/lib/parsers/bot-parser.js +225 -0
- package/lib/parsers/bot-parser.js.map +1 -0
- package/lib/parsers/custom-metadata-parser.d.ts +94 -0
- package/lib/parsers/custom-metadata-parser.js +199 -0
- package/lib/parsers/custom-metadata-parser.js.map +1 -0
- package/lib/parsers/custom-object-parser.d.ts +62 -0
- package/lib/parsers/custom-object-parser.js +297 -0
- package/lib/parsers/custom-object-parser.js.map +1 -0
- package/lib/parsers/email-template-parser.d.ts +64 -0
- package/lib/parsers/email-template-parser.js +238 -0
- package/lib/parsers/email-template-parser.js.map +1 -0
- package/lib/parsers/error-resilient-parser.d.ts +110 -0
- package/lib/parsers/error-resilient-parser.js +277 -0
- package/lib/parsers/error-resilient-parser.js.map +1 -0
- package/lib/parsers/flexipage-parser.d.ts +64 -0
- package/lib/parsers/flexipage-parser.js +196 -0
- package/lib/parsers/flexipage-parser.js.map +1 -0
- package/lib/parsers/flow-parser.d.ts +54 -0
- package/lib/parsers/flow-parser.js +287 -0
- package/lib/parsers/flow-parser.js.map +1 -0
- package/lib/parsers/genai-prompt-parser.d.ts +67 -0
- package/lib/parsers/genai-prompt-parser.js +160 -0
- package/lib/parsers/genai-prompt-parser.js.map +1 -0
- package/lib/parsers/layout-parser.d.ts +64 -0
- package/lib/parsers/layout-parser.js +267 -0
- package/lib/parsers/layout-parser.js.map +1 -0
- package/lib/parsers/lwc-parser.d.ts +60 -0
- package/lib/parsers/lwc-parser.js +264 -0
- package/lib/parsers/lwc-parser.js.map +1 -0
- package/lib/parsers/permission-set-parser.d.ts +86 -0
- package/lib/parsers/permission-set-parser.js +152 -0
- package/lib/parsers/permission-set-parser.js.map +1 -0
- package/lib/parsers/profile-parser.d.ts +81 -0
- package/lib/parsers/profile-parser.js +141 -0
- package/lib/parsers/profile-parser.js.map +1 -0
- package/lib/parsers/visualforce-parser.d.ts +47 -0
- package/lib/parsers/visualforce-parser.js +180 -0
- package/lib/parsers/visualforce-parser.js.map +1 -0
- package/lib/provisioning/data-provisioner.d.ts +88 -0
- package/lib/provisioning/data-provisioner.js +257 -0
- package/lib/provisioning/data-provisioner.js.map +1 -0
- package/lib/scanner/custom-structure-scanner.d.ts +66 -0
- package/lib/scanner/custom-structure-scanner.js +229 -0
- package/lib/scanner/custom-structure-scanner.js.map +1 -0
- package/lib/scanner/forceignore-parser.d.ts +69 -0
- package/lib/scanner/forceignore-parser.js +195 -0
- package/lib/scanner/forceignore-parser.js.map +1 -0
- package/lib/scanner/metadata-format-scanner.d.ts +77 -0
- package/lib/scanner/metadata-format-scanner.js +282 -0
- package/lib/scanner/metadata-format-scanner.js.map +1 -0
- package/lib/scanner/monorepo-scanner.d.ts +71 -0
- package/lib/scanner/monorepo-scanner.js +225 -0
- package/lib/scanner/monorepo-scanner.js.map +1 -0
- package/lib/scanner/project-validator.d.ts +55 -0
- package/lib/scanner/project-validator.js +235 -0
- package/lib/scanner/project-validator.js.map +1 -0
- package/lib/scanner/sfdx-project-detector.d.ts +86 -0
- package/lib/scanner/sfdx-project-detector.js +240 -0
- package/lib/scanner/sfdx-project-detector.js.map +1 -0
- package/lib/scanner/structure-validator.d.ts +64 -0
- package/lib/scanner/structure-validator.js +296 -0
- package/lib/scanner/structure-validator.js.map +1 -0
- package/lib/services/metadata-scanner-service.d.ts +64 -0
- package/lib/services/metadata-scanner-service.js +651 -0
- package/lib/services/metadata-scanner-service.js.map +1 -0
- package/lib/types/agentforce.d.ts +157 -0
- package/lib/types/agentforce.js +2 -0
- package/lib/types/agentforce.js.map +1 -0
- package/lib/types/dependency.d.ts +98 -0
- package/lib/types/dependency.js +5 -0
- package/lib/types/dependency.js.map +1 -0
- package/lib/types/deployment-plan.d.ts +81 -0
- package/lib/types/deployment-plan.js +6 -0
- package/lib/types/deployment-plan.js.map +1 -0
- package/lib/types/deployment.d.ts +88 -0
- package/lib/types/deployment.js +5 -0
- package/lib/types/deployment.js.map +1 -0
- package/lib/types/graph.d.ts +35 -0
- package/lib/types/graph.js +5 -0
- package/lib/types/graph.js.map +1 -0
- package/lib/types/index.d.ts +12 -0
- package/lib/types/index.js +17 -0
- package/lib/types/index.js.map +1 -0
- package/lib/types/metadata.d.ts +101 -0
- package/lib/types/metadata.js +13 -0
- package/lib/types/metadata.js.map +1 -0
- package/lib/types/project.d.ts +156 -0
- package/lib/types/project.js +56 -0
- package/lib/types/project.js.map +1 -0
- package/lib/types/salesforce/apex.d.ts +94 -0
- package/lib/types/salesforce/apex.js +6 -0
- package/lib/types/salesforce/apex.js.map +1 -0
- package/lib/types/salesforce/aura.d.ts +150 -0
- package/lib/types/salesforce/aura.js +6 -0
- package/lib/types/salesforce/aura.js.map +1 -0
- package/lib/types/salesforce/bot.d.ts +293 -0
- package/lib/types/salesforce/bot.js +6 -0
- package/lib/types/salesforce/bot.js.map +1 -0
- package/lib/types/salesforce/common.d.ts +15 -0
- package/lib/types/salesforce/common.js +5 -0
- package/lib/types/salesforce/common.js.map +1 -0
- package/lib/types/salesforce/custom-metadata.d.ts +92 -0
- package/lib/types/salesforce/custom-metadata.js +6 -0
- package/lib/types/salesforce/custom-metadata.js.map +1 -0
- package/lib/types/salesforce/email.d.ts +56 -0
- package/lib/types/salesforce/email.js +6 -0
- package/lib/types/salesforce/email.js.map +1 -0
- package/lib/types/salesforce/flexipage.d.ts +149 -0
- package/lib/types/salesforce/flexipage.js +6 -0
- package/lib/types/salesforce/flexipage.js.map +1 -0
- package/lib/types/salesforce/flow.d.ts +516 -0
- package/lib/types/salesforce/flow.js +6 -0
- package/lib/types/salesforce/flow.js.map +1 -0
- package/lib/types/salesforce/genai.d.ts +67 -0
- package/lib/types/salesforce/genai.js +6 -0
- package/lib/types/salesforce/genai.js.map +1 -0
- package/lib/types/salesforce/index.d.ts +27 -0
- package/lib/types/salesforce/index.js +43 -0
- package/lib/types/salesforce/index.js.map +1 -0
- package/lib/types/salesforce/layout.d.ts +236 -0
- package/lib/types/salesforce/layout.js +6 -0
- package/lib/types/salesforce/layout.js.map +1 -0
- package/lib/types/salesforce/lwc.d.ts +123 -0
- package/lib/types/salesforce/lwc.js +6 -0
- package/lib/types/salesforce/lwc.js.map +1 -0
- package/lib/types/salesforce/object.d.ts +427 -0
- package/lib/types/salesforce/object.js +6 -0
- package/lib/types/salesforce/object.js.map +1 -0
- package/lib/types/salesforce/parser-types.d.ts +79 -0
- package/lib/types/salesforce/parser-types.js +80 -0
- package/lib/types/salesforce/parser-types.js.map +1 -0
- package/lib/types/salesforce/permission.d.ts +289 -0
- package/lib/types/salesforce/permission.js +6 -0
- package/lib/types/salesforce/permission.js.map +1 -0
- package/lib/types/salesforce/resource.d.ts +93 -0
- package/lib/types/salesforce/resource.js +6 -0
- package/lib/types/salesforce/resource.js.map +1 -0
- package/lib/types/salesforce/visualforce.d.ts +70 -0
- package/lib/types/salesforce/visualforce.js +6 -0
- package/lib/types/salesforce/visualforce.js.map +1 -0
- package/lib/utils/cache-manager.d.ts +158 -0
- package/lib/utils/cache-manager.js +429 -0
- package/lib/utils/cache-manager.js.map +1 -0
- package/lib/utils/deployment-plan-manager.d.ts +40 -0
- package/lib/utils/deployment-plan-manager.js +183 -0
- package/lib/utils/deployment-plan-manager.js.map +1 -0
- package/lib/utils/error-aggregator.d.ts +117 -0
- package/lib/utils/error-aggregator.js +268 -0
- package/lib/utils/error-aggregator.js.map +1 -0
- package/lib/utils/file-system.d.ts +62 -0
- package/lib/utils/file-system.js +167 -0
- package/lib/utils/file-system.js.map +1 -0
- package/lib/utils/functional.d.ts +52 -0
- package/lib/utils/functional.js +61 -0
- package/lib/utils/functional.js.map +1 -0
- package/lib/utils/graph-algorithms.d.ts +53 -0
- package/lib/utils/graph-algorithms.js +177 -0
- package/lib/utils/graph-algorithms.js.map +1 -0
- package/lib/utils/logger.d.ts +154 -0
- package/lib/utils/logger.js +327 -0
- package/lib/utils/logger.js.map +1 -0
- package/lib/utils/network-handler.d.ts +64 -0
- package/lib/utils/network-handler.js +147 -0
- package/lib/utils/network-handler.js.map +1 -0
- package/lib/utils/performance.d.ts +148 -0
- package/lib/utils/performance.js +294 -0
- package/lib/utils/performance.js.map +1 -0
- package/lib/utils/string.d.ts +197 -0
- package/lib/utils/string.js +331 -0
- package/lib/utils/string.js.map +1 -0
- package/lib/utils/xml.d.ts +97 -0
- package/lib/utils/xml.js +227 -0
- package/lib/utils/xml.js.map +1 -0
- package/lib/validators/xml-metadata-validator.d.ts +106 -0
- package/lib/validators/xml-metadata-validator.js +509 -0
- package/lib/validators/xml-metadata-validator.js.map +1 -0
- package/lib/waves/priority-wave-generator-ai.d.ts +85 -0
- package/lib/waves/priority-wave-generator-ai.js +191 -0
- package/lib/waves/priority-wave-generator-ai.js.map +1 -0
- package/lib/waves/priority-wave-generator.d.ts +47 -0
- package/lib/waves/priority-wave-generator.js +88 -0
- package/lib/waves/priority-wave-generator.js.map +1 -0
- package/lib/waves/test-optimizer.d.ts +155 -0
- package/lib/waves/test-optimizer.js +290 -0
- package/lib/waves/test-optimizer.js.map +1 -0
- package/lib/waves/wave-builder.d.ts +147 -0
- package/lib/waves/wave-builder.js +286 -0
- package/lib/waves/wave-builder.js.map +1 -0
- package/lib/waves/wave-diff-generator.d.ts +17 -0
- package/lib/waves/wave-diff-generator.js +6 -0
- package/lib/waves/wave-diff-generator.js.map +1 -0
- package/lib/waves/wave-executor.d.ts +33 -0
- package/lib/waves/wave-executor.js +50 -0
- package/lib/waves/wave-executor.js.map +1 -0
- package/lib/waves/wave-merger.d.ts +96 -0
- package/lib/waves/wave-merger.js +181 -0
- package/lib/waves/wave-merger.js.map +1 -0
- package/lib/waves/wave-metadata-generator.d.ts +13 -0
- package/lib/waves/wave-metadata-generator.js +12 -0
- package/lib/waves/wave-metadata-generator.js.map +1 -0
- package/lib/waves/wave-splitter.d.ts +154 -0
- package/lib/waves/wave-splitter.js +307 -0
- package/lib/waves/wave-splitter.js.map +1 -0
- package/lib/waves/wave-validator.d.ts +17 -0
- package/lib/waves/wave-validator.js +15 -0
- package/lib/waves/wave-validator.js.map +1 -0
- package/messages/analyze.json +18 -0
- package/messages/config.json +29 -0
- package/messages/resume.json +9 -0
- package/messages/start.json +24 -0
- package/messages/status.json +8 -0
- package/messages/validate.json +9 -0
- package/npm-shrinkwrap.json +25676 -0
- package/oclif.lock +11988 -0
- package/oclif.manifest.json +589 -0
- package/package.json +224 -0
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* smart-deployment:config command - US-051
|
|
3
|
+
*
|
|
4
|
+
* @ac US-051-AC-1: Set Agentforce configuration
|
|
5
|
+
* @ac US-051-AC-2: Set default test level
|
|
6
|
+
* @ac US-051-AC-3: Set timeout values
|
|
7
|
+
* @ac US-051-AC-4: Set retry strategies
|
|
8
|
+
* @ac US-051-AC-5: Save configuration to file
|
|
9
|
+
* @ac US-051-AC-6: Validate configuration
|
|
10
|
+
* @issue #51
|
|
11
|
+
*/
|
|
12
|
+
import { Messages } from '@salesforce/core';
|
|
13
|
+
import { Flags, SfCommand } from '@salesforce/sf-plugins-core';
|
|
14
|
+
import { getLogger } from '../utils/logger.js';
|
|
15
|
+
import { loadRepoConfig, saveRepoConfig } from '../config/repo-config.js';
|
|
16
|
+
const logger = getLogger('ConfigCommand');
|
|
17
|
+
Messages.importMessagesDirectoryFromMetaUrl(import.meta.url);
|
|
18
|
+
const messages = Messages.loadMessages('@jterrats/smart-deployment', 'config');
|
|
19
|
+
export default class Config extends SfCommand {
|
|
20
|
+
static summary = messages.getMessage('summary');
|
|
21
|
+
static description = messages.getMessage('description');
|
|
22
|
+
static flags = {
|
|
23
|
+
'source-path': Flags.directory({
|
|
24
|
+
summary: messages.getMessage('flags.source-path.summary'),
|
|
25
|
+
exists: true,
|
|
26
|
+
}),
|
|
27
|
+
set: Flags.string({
|
|
28
|
+
summary: messages.getMessage('flags.set.summary'),
|
|
29
|
+
char: 's',
|
|
30
|
+
description: messages.getMessage('flags.set.description'),
|
|
31
|
+
}),
|
|
32
|
+
get: Flags.string({
|
|
33
|
+
summary: messages.getMessage('flags.get.summary'),
|
|
34
|
+
char: 'g',
|
|
35
|
+
description: messages.getMessage('flags.get.description'),
|
|
36
|
+
}),
|
|
37
|
+
'get-priority': Flags.string({
|
|
38
|
+
summary: messages.getMessage('flags.get-priority.summary'),
|
|
39
|
+
description: messages.getMessage('flags.get-priority.description'),
|
|
40
|
+
}),
|
|
41
|
+
'set-priority': Flags.string({
|
|
42
|
+
summary: messages.getMessage('flags.set-priority.summary'),
|
|
43
|
+
description: messages.getMessage('flags.set-priority.description'),
|
|
44
|
+
}),
|
|
45
|
+
'set-llm-provider': Flags.string({
|
|
46
|
+
summary: messages.getMessage('flags.set-llm-provider.summary'),
|
|
47
|
+
options: ['agentforce', 'openai'],
|
|
48
|
+
}),
|
|
49
|
+
'set-llm-model': Flags.string({
|
|
50
|
+
summary: messages.getMessage('flags.set-llm-model.summary'),
|
|
51
|
+
}),
|
|
52
|
+
'set-llm-endpoint': Flags.string({
|
|
53
|
+
summary: messages.getMessage('flags.set-llm-endpoint.summary'),
|
|
54
|
+
}),
|
|
55
|
+
'set-llm-timeout': Flags.integer({
|
|
56
|
+
summary: messages.getMessage('flags.set-llm-timeout.summary'),
|
|
57
|
+
}),
|
|
58
|
+
'get-llm': Flags.boolean({
|
|
59
|
+
summary: messages.getMessage('flags.get-llm.summary'),
|
|
60
|
+
default: false,
|
|
61
|
+
}),
|
|
62
|
+
list: Flags.boolean({
|
|
63
|
+
summary: messages.getMessage('flags.list.summary'),
|
|
64
|
+
char: 'l',
|
|
65
|
+
default: false,
|
|
66
|
+
}),
|
|
67
|
+
};
|
|
68
|
+
static examples = messages.getMessages('examples');
|
|
69
|
+
async run() {
|
|
70
|
+
const { flags } = await this.parse(Config);
|
|
71
|
+
const baseDir = flags['source-path'] ?? process.cwd();
|
|
72
|
+
try {
|
|
73
|
+
const config = await loadRepoConfig(baseDir);
|
|
74
|
+
// Handle --list flag
|
|
75
|
+
if (flags.list) {
|
|
76
|
+
this.displayConfig(config);
|
|
77
|
+
return { success: true };
|
|
78
|
+
}
|
|
79
|
+
if (flags['get-llm']) {
|
|
80
|
+
return this.showLlmConfig(config);
|
|
81
|
+
}
|
|
82
|
+
if (flags['get-priority']) {
|
|
83
|
+
return this.showPriority(config, flags['get-priority']);
|
|
84
|
+
}
|
|
85
|
+
const hasLlmUpdate = flags['set-llm-provider'] !== undefined ||
|
|
86
|
+
flags['set-llm-model'] !== undefined ||
|
|
87
|
+
flags['set-llm-endpoint'] !== undefined ||
|
|
88
|
+
flags['set-llm-timeout'] !== undefined;
|
|
89
|
+
if (hasLlmUpdate) {
|
|
90
|
+
return await this.updateLlmConfig(config, flags, baseDir);
|
|
91
|
+
}
|
|
92
|
+
if (flags['set-priority']) {
|
|
93
|
+
return await this.setPriority(config, flags['set-priority'], baseDir);
|
|
94
|
+
}
|
|
95
|
+
if (flags.get) {
|
|
96
|
+
return this.showConfigValue(config, flags.get);
|
|
97
|
+
}
|
|
98
|
+
if (flags.set) {
|
|
99
|
+
return await this.setConfigValue(config, flags.set, baseDir);
|
|
100
|
+
}
|
|
101
|
+
// No flags - show help
|
|
102
|
+
this.log('Use --help to see available options');
|
|
103
|
+
return { success: true };
|
|
104
|
+
}
|
|
105
|
+
catch (error) {
|
|
106
|
+
logger.error('Config management failed', { error });
|
|
107
|
+
this.error(`Configuration failed: ${error instanceof Error ? error.message : String(error)}`);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
displayConfig(config) {
|
|
111
|
+
this.log('📋 Current Configuration:');
|
|
112
|
+
this.log('');
|
|
113
|
+
if (Object.keys(config).length === 0) {
|
|
114
|
+
this.log(' (no configuration set)');
|
|
115
|
+
return;
|
|
116
|
+
}
|
|
117
|
+
// Display priorities
|
|
118
|
+
if (config.priorities && Object.keys(config.priorities).length > 0) {
|
|
119
|
+
this.log(' Metadata Priorities:');
|
|
120
|
+
for (const [metadata, priority] of Object.entries(config.priorities)) {
|
|
121
|
+
this.log(` ${metadata}: ${priority}`);
|
|
122
|
+
}
|
|
123
|
+
this.log('');
|
|
124
|
+
}
|
|
125
|
+
// Display other config
|
|
126
|
+
const { priorities, ...otherConfig } = config;
|
|
127
|
+
void priorities;
|
|
128
|
+
if (Object.keys(otherConfig).length > 0) {
|
|
129
|
+
this.log(' Other Settings:');
|
|
130
|
+
for (const [key, value] of Object.entries(otherConfig)) {
|
|
131
|
+
const displayValue = typeof value === 'string' || typeof value === 'number' ? String(value) : JSON.stringify(value);
|
|
132
|
+
this.log(` ${key}: ${displayValue}`);
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
showLlmConfig(config) {
|
|
137
|
+
const llmConfig = config.llm ?? {};
|
|
138
|
+
this.log(`llm: ${JSON.stringify(llmConfig)}`);
|
|
139
|
+
return { success: true };
|
|
140
|
+
}
|
|
141
|
+
showPriority(config, metadataId) {
|
|
142
|
+
const priority = config.priorities?.[metadataId] ?? 0;
|
|
143
|
+
this.log(`Priority for ${metadataId}: ${priority}`);
|
|
144
|
+
return { success: true };
|
|
145
|
+
}
|
|
146
|
+
async updateLlmConfig(config, flags, baseDir) {
|
|
147
|
+
const nextLlmConfig = {
|
|
148
|
+
...(config.llm ?? {}),
|
|
149
|
+
};
|
|
150
|
+
const nextConfig = {
|
|
151
|
+
...config,
|
|
152
|
+
llm: nextLlmConfig,
|
|
153
|
+
};
|
|
154
|
+
const llmProvider = typeof flags['set-llm-provider'] === 'string' ? flags['set-llm-provider'] : undefined;
|
|
155
|
+
const llmModel = typeof flags['set-llm-model'] === 'string' ? flags['set-llm-model'] : undefined;
|
|
156
|
+
const llmEndpoint = typeof flags['set-llm-endpoint'] === 'string' ? flags['set-llm-endpoint'] : undefined;
|
|
157
|
+
const llmTimeout = typeof flags['set-llm-timeout'] === 'number' ? flags['set-llm-timeout'] : undefined;
|
|
158
|
+
if (llmProvider) {
|
|
159
|
+
nextLlmConfig.provider = llmProvider;
|
|
160
|
+
}
|
|
161
|
+
if (llmModel) {
|
|
162
|
+
nextLlmConfig.model = llmModel;
|
|
163
|
+
}
|
|
164
|
+
if (llmEndpoint) {
|
|
165
|
+
nextLlmConfig.endpoint = llmEndpoint;
|
|
166
|
+
}
|
|
167
|
+
if (llmTimeout !== undefined) {
|
|
168
|
+
if (llmTimeout < 1) {
|
|
169
|
+
this.error(messages.getMessage('errors.invalidLlmTimeout'));
|
|
170
|
+
}
|
|
171
|
+
nextLlmConfig.timeout = llmTimeout;
|
|
172
|
+
}
|
|
173
|
+
await saveRepoConfig(nextConfig, baseDir);
|
|
174
|
+
this.log(`✅ Updated LLM configuration: ${JSON.stringify(nextConfig.llm)}`);
|
|
175
|
+
logger.info('LLM config updated', { llm: nextConfig.llm });
|
|
176
|
+
return { success: true };
|
|
177
|
+
}
|
|
178
|
+
async setPriority(config, rawValue, baseDir) {
|
|
179
|
+
const match = rawValue.match(/^(.+)=(\d+)$/);
|
|
180
|
+
if (!match) {
|
|
181
|
+
this.error('Invalid format. Use: MetadataType:Name=priority (e.g., ApexClass:MyClass=100)');
|
|
182
|
+
}
|
|
183
|
+
const [, metadataId, priorityStr] = match;
|
|
184
|
+
const priority = parseInt(priorityStr, 10);
|
|
185
|
+
const nextConfig = {
|
|
186
|
+
...config,
|
|
187
|
+
priorities: {
|
|
188
|
+
...(config.priorities ?? {}),
|
|
189
|
+
[metadataId]: priority,
|
|
190
|
+
},
|
|
191
|
+
};
|
|
192
|
+
await saveRepoConfig(nextConfig, baseDir);
|
|
193
|
+
this.log(`✅ Set priority for ${metadataId} = ${priority}`);
|
|
194
|
+
logger.info('Priority updated', { metadataId, priority });
|
|
195
|
+
return { success: true };
|
|
196
|
+
}
|
|
197
|
+
showConfigValue(config, key) {
|
|
198
|
+
const value = config[key];
|
|
199
|
+
const displayValue = value === undefined ? 'not set' : typeof value === 'string' ? value : JSON.stringify(value);
|
|
200
|
+
this.log(`${key}: ${displayValue}`);
|
|
201
|
+
return { success: true };
|
|
202
|
+
}
|
|
203
|
+
async setConfigValue(config, rawValue, baseDir) {
|
|
204
|
+
const match = rawValue.match(/^([^=]+)=(.+)$/);
|
|
205
|
+
if (!match) {
|
|
206
|
+
this.error('Invalid format. Use: key=value');
|
|
207
|
+
}
|
|
208
|
+
const [, key, value] = match;
|
|
209
|
+
const nextConfig = {
|
|
210
|
+
...config,
|
|
211
|
+
[key]: value,
|
|
212
|
+
};
|
|
213
|
+
await saveRepoConfig(nextConfig, baseDir);
|
|
214
|
+
this.log(`✅ Set ${key} = ${value}`);
|
|
215
|
+
logger.info('Config updated', { key, value });
|
|
216
|
+
return { success: true };
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* smart-deployment:resume command - US-049
|
|
3
|
+
*
|
|
4
|
+
* @ac US-049-AC-1: Detects previous failed deployment
|
|
5
|
+
* @ac US-049-AC-2: Loads deployment state
|
|
6
|
+
* @ac US-049-AC-3: Resumes from failed wave
|
|
7
|
+
* @ac US-049-AC-4: Supports retry strategies
|
|
8
|
+
* @ac US-049-AC-5: Updates deployment report
|
|
9
|
+
* @ac US-049-AC-6: Handles multiple failures
|
|
10
|
+
* @issue #49
|
|
11
|
+
*/
|
|
12
|
+
import { type Interfaces } from '@oclif/core';
|
|
13
|
+
import { SfCommand } from '@salesforce/sf-plugins-core';
|
|
14
|
+
type ResumeResult = {
|
|
15
|
+
success: boolean;
|
|
16
|
+
resumedFromWave: number;
|
|
17
|
+
remainingWaves: number;
|
|
18
|
+
deploymentId: string;
|
|
19
|
+
};
|
|
20
|
+
export default class Resume extends SfCommand<ResumeResult> {
|
|
21
|
+
static readonly summary: string;
|
|
22
|
+
static readonly examples: string[];
|
|
23
|
+
static readonly flags: Interfaces.FlagInput;
|
|
24
|
+
run(): Promise<ResumeResult>;
|
|
25
|
+
}
|
|
26
|
+
export {};
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* smart-deployment:resume command - US-049
|
|
3
|
+
*
|
|
4
|
+
* @ac US-049-AC-1: Detects previous failed deployment
|
|
5
|
+
* @ac US-049-AC-2: Loads deployment state
|
|
6
|
+
* @ac US-049-AC-3: Resumes from failed wave
|
|
7
|
+
* @ac US-049-AC-4: Supports retry strategies
|
|
8
|
+
* @ac US-049-AC-5: Updates deployment report
|
|
9
|
+
* @ac US-049-AC-6: Handles multiple failures
|
|
10
|
+
* @issue #49
|
|
11
|
+
*/
|
|
12
|
+
import { Messages } from '@salesforce/core';
|
|
13
|
+
import { Flags, SfCommand, optionalOrgFlagWithDeprecations } from '@salesforce/sf-plugins-core';
|
|
14
|
+
import { getLogger } from '../utils/logger.js';
|
|
15
|
+
import { StateManager } from '../deployment/state-manager.js';
|
|
16
|
+
import { createResumedState, summarizeDeploymentState } from '../deployment/deployment-state-summary.js';
|
|
17
|
+
const logger = getLogger('ResumeCommand');
|
|
18
|
+
Messages.importMessagesDirectoryFromMetaUrl(import.meta.url);
|
|
19
|
+
const messages = Messages.loadMessages('@jterrats/smart-deployment', 'resume');
|
|
20
|
+
export default class Resume extends SfCommand {
|
|
21
|
+
static summary = messages.getMessage('summary');
|
|
22
|
+
static examples = messages.getMessages('examples');
|
|
23
|
+
static flags = {
|
|
24
|
+
'target-org': optionalOrgFlagWithDeprecations,
|
|
25
|
+
'source-path': Flags.directory({
|
|
26
|
+
summary: messages.getMessage('flags.source-path.summary'),
|
|
27
|
+
exists: true,
|
|
28
|
+
}),
|
|
29
|
+
'retry-strategy': Flags.string({
|
|
30
|
+
summary: messages.getMessage('flags.retry-strategy.summary'),
|
|
31
|
+
options: ['standard', 'quick', 'validate-only'],
|
|
32
|
+
default: 'standard',
|
|
33
|
+
}),
|
|
34
|
+
};
|
|
35
|
+
async run() {
|
|
36
|
+
const { flags } = await this.parse(Resume);
|
|
37
|
+
const sourcePath = typeof flags['source-path'] === 'string' ? flags['source-path'] : undefined;
|
|
38
|
+
try {
|
|
39
|
+
logger.info('Resuming deployment', { flags });
|
|
40
|
+
const stateManager = new StateManager({ baseDir: sourcePath });
|
|
41
|
+
const state = await stateManager.loadState();
|
|
42
|
+
if (!state?.failedWave) {
|
|
43
|
+
this.error('No failed deployment state found to resume');
|
|
44
|
+
}
|
|
45
|
+
const summary = summarizeDeploymentState(state);
|
|
46
|
+
const retryStrategy = flags['retry-strategy'];
|
|
47
|
+
const resumedState = createResumedState(state, retryStrategy);
|
|
48
|
+
await stateManager.saveState(resumedState);
|
|
49
|
+
this.log(`🔄 Resume prepared for deployment ${summary.deploymentId}`);
|
|
50
|
+
this.log(`Retry strategy: ${retryStrategy}`);
|
|
51
|
+
this.log(`Resuming from wave ${summary.currentWave}/${summary.totalWaves}`);
|
|
52
|
+
this.log(`Remaining waves: ${summary.remainingWaves}`);
|
|
53
|
+
if (summary.failureReason) {
|
|
54
|
+
this.log(`Previous failure: ${summary.failureReason}`);
|
|
55
|
+
}
|
|
56
|
+
return {
|
|
57
|
+
success: true,
|
|
58
|
+
resumedFromWave: summary.currentWave,
|
|
59
|
+
remainingWaves: summary.remainingWaves,
|
|
60
|
+
deploymentId: summary.deploymentId,
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
catch (error) {
|
|
64
|
+
logger.error('Resume failed', { error });
|
|
65
|
+
this.error(`Resume failed: ${error instanceof Error ? error.message : String(error)}`);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=resume.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resume.js","sourceRoot":"","sources":["../../src/commands/resume.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* smart-deployment:start command
|
|
3
|
+
* Main deployment command that orchestrates the entire workflow
|
|
4
|
+
*
|
|
5
|
+
* @ac US-046-AC-1: Analyzes metadata automatically
|
|
6
|
+
* @ac US-046-AC-2: Generates deployment waves
|
|
7
|
+
* @ac US-046-AC-3: Executes deployment sequentially
|
|
8
|
+
* @ac US-046-AC-4: Supports --target-org flag
|
|
9
|
+
* @ac US-046-AC-5: Supports --dry-run flag
|
|
10
|
+
* @ac US-046-AC-6: Supports --validate-only flag
|
|
11
|
+
* @ac US-046-AC-7: Supports --skip-tests flag
|
|
12
|
+
* @ac US-046-AC-8: Shows progress bar
|
|
13
|
+
* @ac US-046-AC-9: Generates deployment report
|
|
14
|
+
* @ac US-046-AC-10: Handles failures gracefully
|
|
15
|
+
*
|
|
16
|
+
* @issue #46
|
|
17
|
+
*/
|
|
18
|
+
import { type Interfaces } from '@oclif/core';
|
|
19
|
+
import { SfCommand } from '@salesforce/sf-plugins-core';
|
|
20
|
+
/**
|
|
21
|
+
* @ac US-046-AC-1: Analyzes metadata automatically
|
|
22
|
+
* @ac US-046-AC-2: Generates deployment waves
|
|
23
|
+
* @ac US-046-AC-3: Executes deployment sequentially
|
|
24
|
+
*/
|
|
25
|
+
type StartResult = {
|
|
26
|
+
success: boolean;
|
|
27
|
+
waves: number;
|
|
28
|
+
ai?: {
|
|
29
|
+
enabled: boolean;
|
|
30
|
+
provider?: string;
|
|
31
|
+
model?: string;
|
|
32
|
+
aiAdjustments?: number;
|
|
33
|
+
unknownTypes?: string[];
|
|
34
|
+
fallback?: boolean;
|
|
35
|
+
inferredDependencies?: number;
|
|
36
|
+
inferenceFallback?: boolean;
|
|
37
|
+
};
|
|
38
|
+
};
|
|
39
|
+
export default class Start extends SfCommand<StartResult> {
|
|
40
|
+
static readonly summary: string;
|
|
41
|
+
static readonly description: string;
|
|
42
|
+
static readonly examples: string[];
|
|
43
|
+
/**
|
|
44
|
+
* @ac US-046-AC-4: Supports --target-org flag
|
|
45
|
+
* @ac US-046-AC-5: Supports --dry-run flag
|
|
46
|
+
* @ac US-046-AC-6: Supports --validate-only flag
|
|
47
|
+
* @ac US-046-AC-7: Supports --skip-tests flag
|
|
48
|
+
* @ac US-057-AC-1: Send component list to Agentforce
|
|
49
|
+
*/
|
|
50
|
+
static readonly flags: Interfaces.FlagInput;
|
|
51
|
+
/**
|
|
52
|
+
* @ac US-046-AC-8: Shows progress bar
|
|
53
|
+
* @ac US-046-AC-9: Generates deployment report
|
|
54
|
+
* @ac US-046-AC-10: Handles failures gracefully
|
|
55
|
+
*/
|
|
56
|
+
run(): Promise<StartResult>;
|
|
57
|
+
private analyzeMetadata;
|
|
58
|
+
private executeDeployment;
|
|
59
|
+
private buildDeploymentContext;
|
|
60
|
+
private generateReport;
|
|
61
|
+
private forEachSequentially;
|
|
62
|
+
private executeCycleRemediationDeployment;
|
|
63
|
+
private createCycleEditRequest;
|
|
64
|
+
private applyInferredDependencies;
|
|
65
|
+
private restoreCycleEdits;
|
|
66
|
+
private resolveTestLevel;
|
|
67
|
+
private getTargetOrgIdentifier;
|
|
68
|
+
private generateWaveManifest;
|
|
69
|
+
}
|
|
70
|
+
export {};
|