@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,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Network Error Classes - US-072
|
|
3
|
+
* Specialized errors for network operations
|
|
4
|
+
*
|
|
5
|
+
* @ac US-072-AC-1: Detect network errors
|
|
6
|
+
* @ac US-072-AC-6: User-friendly error messages
|
|
7
|
+
* @issue #72
|
|
8
|
+
*/
|
|
9
|
+
import { SmartDeploymentError } from './base-error.js';
|
|
10
|
+
export type NetworkErrorOptions = {
|
|
11
|
+
url?: string;
|
|
12
|
+
statusCode?: number;
|
|
13
|
+
timeout?: number;
|
|
14
|
+
retryCount?: number;
|
|
15
|
+
originalError?: Error;
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* @ac US-072-AC-1: Detect network errors
|
|
19
|
+
* Base class for network-related errors
|
|
20
|
+
*/
|
|
21
|
+
export declare class NetworkError extends SmartDeploymentError {
|
|
22
|
+
readonly url?: string;
|
|
23
|
+
readonly statusCode?: number;
|
|
24
|
+
constructor(message: string, options?: NetworkErrorOptions, code?: string);
|
|
25
|
+
/**
|
|
26
|
+
* @ac US-072-AC-6: User-friendly error messages
|
|
27
|
+
* Get suggestions based on error type
|
|
28
|
+
*/
|
|
29
|
+
private static getSuggestions;
|
|
30
|
+
/**
|
|
31
|
+
* @ac US-072-AC-1: Detect network errors
|
|
32
|
+
* Check if error is a network error
|
|
33
|
+
*/
|
|
34
|
+
static isNetworkError(error: unknown): boolean;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Timeout-specific error
|
|
38
|
+
*/
|
|
39
|
+
export declare class TimeoutError extends NetworkError {
|
|
40
|
+
constructor(url: string, timeout: number);
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Connection error
|
|
44
|
+
*/
|
|
45
|
+
export declare class ConnectionError extends NetworkError {
|
|
46
|
+
constructor(url: string, originalError?: Error);
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* HTTP error
|
|
50
|
+
*/
|
|
51
|
+
export declare class HttpError extends NetworkError {
|
|
52
|
+
constructor(url: string, statusCode: number, statusText?: string);
|
|
53
|
+
}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Network Error Classes - US-072
|
|
3
|
+
* Specialized errors for network operations
|
|
4
|
+
*
|
|
5
|
+
* @ac US-072-AC-1: Detect network errors
|
|
6
|
+
* @ac US-072-AC-6: User-friendly error messages
|
|
7
|
+
* @issue #72
|
|
8
|
+
*/
|
|
9
|
+
import { SmartDeploymentError } from './base-error.js';
|
|
10
|
+
/**
|
|
11
|
+
* @ac US-072-AC-1: Detect network errors
|
|
12
|
+
* Base class for network-related errors
|
|
13
|
+
*/
|
|
14
|
+
export class NetworkError extends SmartDeploymentError {
|
|
15
|
+
url;
|
|
16
|
+
statusCode;
|
|
17
|
+
constructor(message, options = {}, code = 'NETWORK_ERROR') {
|
|
18
|
+
const context = {
|
|
19
|
+
url: options.url,
|
|
20
|
+
statusCode: options.statusCode,
|
|
21
|
+
timeout: options.timeout,
|
|
22
|
+
retryCount: options.retryCount,
|
|
23
|
+
};
|
|
24
|
+
const suggestions = NetworkError.getSuggestions(options);
|
|
25
|
+
super(message, code, context, suggestions);
|
|
26
|
+
this.url = options.url;
|
|
27
|
+
this.statusCode = options.statusCode;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* @ac US-072-AC-6: User-friendly error messages
|
|
31
|
+
* Get suggestions based on error type
|
|
32
|
+
*/
|
|
33
|
+
static getSuggestions(options) {
|
|
34
|
+
const suggestions = [];
|
|
35
|
+
if (options.statusCode === 404) {
|
|
36
|
+
suggestions.push('Check if the endpoint URL is correct');
|
|
37
|
+
suggestions.push('Verify the resource exists');
|
|
38
|
+
}
|
|
39
|
+
else if (options.statusCode === 401 || options.statusCode === 403) {
|
|
40
|
+
suggestions.push('Check your authentication credentials');
|
|
41
|
+
suggestions.push('Verify API permissions');
|
|
42
|
+
}
|
|
43
|
+
else if (options.statusCode && options.statusCode >= 500) {
|
|
44
|
+
suggestions.push('Server error - retry after a few minutes');
|
|
45
|
+
suggestions.push('Check server status');
|
|
46
|
+
}
|
|
47
|
+
else if (options.timeout) {
|
|
48
|
+
suggestions.push('Request timed out - check your network connection');
|
|
49
|
+
suggestions.push('Try increasing timeout value');
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
suggestions.push('Check your internet connection');
|
|
53
|
+
suggestions.push('Verify firewall settings');
|
|
54
|
+
suggestions.push('Try again later');
|
|
55
|
+
}
|
|
56
|
+
return suggestions;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* @ac US-072-AC-1: Detect network errors
|
|
60
|
+
* Check if error is a network error
|
|
61
|
+
*/
|
|
62
|
+
static isNetworkError(error) {
|
|
63
|
+
if (error instanceof NetworkError)
|
|
64
|
+
return true;
|
|
65
|
+
if (error instanceof Error) {
|
|
66
|
+
const message = error.message.toLowerCase();
|
|
67
|
+
return (message.includes('network') ||
|
|
68
|
+
message.includes('econnrefused') ||
|
|
69
|
+
message.includes('enotfound') ||
|
|
70
|
+
message.includes('etimedout') ||
|
|
71
|
+
message.includes('fetch') ||
|
|
72
|
+
message.includes('socket') ||
|
|
73
|
+
message.includes('connection'));
|
|
74
|
+
}
|
|
75
|
+
return false;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Timeout-specific error
|
|
80
|
+
*/
|
|
81
|
+
export class TimeoutError extends NetworkError {
|
|
82
|
+
constructor(url, timeout) {
|
|
83
|
+
super(`Request timeout after ${timeout}ms`, {
|
|
84
|
+
url,
|
|
85
|
+
timeout,
|
|
86
|
+
}, 'NETWORK_TIMEOUT');
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Connection error
|
|
91
|
+
*/
|
|
92
|
+
export class ConnectionError extends NetworkError {
|
|
93
|
+
constructor(url, originalError) {
|
|
94
|
+
super(`Failed to connect to ${url}`, {
|
|
95
|
+
url,
|
|
96
|
+
originalError,
|
|
97
|
+
}, 'NETWORK_CONNECTION_FAILED');
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* HTTP error
|
|
102
|
+
*/
|
|
103
|
+
export class HttpError extends NetworkError {
|
|
104
|
+
constructor(url, statusCode, statusText) {
|
|
105
|
+
super(`HTTP ${statusCode}${statusText ? ': ' + statusText : ''} at ${url}`, {
|
|
106
|
+
url,
|
|
107
|
+
statusCode,
|
|
108
|
+
}, 'NETWORK_HTTP_ERROR');
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=network-error.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"network-error.js","sourceRoot":"","sources":["../../src/errors/network-error.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { SmartDeploymentError } from './base-error.js';
|
|
2
|
+
/**
|
|
3
|
+
* Error thrown when parsing metadata or project files fails
|
|
4
|
+
*
|
|
5
|
+
* @example
|
|
6
|
+
* ```typescript
|
|
7
|
+
* throw new ParsingError('Failed to parse package.xml', {
|
|
8
|
+
* filePath: '/path/to/package.xml',
|
|
9
|
+
* line: 42,
|
|
10
|
+
* column: 15,
|
|
11
|
+
* parseError: 'Unexpected token <'
|
|
12
|
+
* });
|
|
13
|
+
* ```
|
|
14
|
+
*/
|
|
15
|
+
export declare class ParsingError extends SmartDeploymentError {
|
|
16
|
+
constructor(message: string, context?: {
|
|
17
|
+
[key: string]: unknown;
|
|
18
|
+
filePath?: string;
|
|
19
|
+
line?: number;
|
|
20
|
+
column?: number;
|
|
21
|
+
parseError?: string;
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Error thrown when XML parsing fails specifically
|
|
26
|
+
*/
|
|
27
|
+
export declare class XmlParsingError extends ParsingError {
|
|
28
|
+
constructor(message: string, context?: Record<string, unknown>);
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Error thrown when JSON parsing fails specifically
|
|
32
|
+
*/
|
|
33
|
+
export declare class JsonParsingError extends ParsingError {
|
|
34
|
+
constructor(message: string, context?: Record<string, unknown>);
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Error thrown when SFDX project structure is invalid
|
|
38
|
+
*/
|
|
39
|
+
export declare class ProjectStructureError extends ParsingError {
|
|
40
|
+
constructor(message: string, context?: Record<string, unknown>);
|
|
41
|
+
}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { SmartDeploymentError } from './base-error.js';
|
|
2
|
+
/**
|
|
3
|
+
* Error thrown when parsing metadata or project files fails
|
|
4
|
+
*
|
|
5
|
+
* @example
|
|
6
|
+
* ```typescript
|
|
7
|
+
* throw new ParsingError('Failed to parse package.xml', {
|
|
8
|
+
* filePath: '/path/to/package.xml',
|
|
9
|
+
* line: 42,
|
|
10
|
+
* column: 15,
|
|
11
|
+
* parseError: 'Unexpected token <'
|
|
12
|
+
* });
|
|
13
|
+
* ```
|
|
14
|
+
*/
|
|
15
|
+
export class ParsingError extends SmartDeploymentError {
|
|
16
|
+
constructor(message, context = {}) {
|
|
17
|
+
const suggestions = [];
|
|
18
|
+
// Add context-specific suggestions
|
|
19
|
+
if (context.filePath?.endsWith('.xml')) {
|
|
20
|
+
suggestions.push('Validate XML syntax using an XML validator');
|
|
21
|
+
suggestions.push('Check for unclosed tags or invalid characters');
|
|
22
|
+
}
|
|
23
|
+
if (context.filePath?.endsWith('.json')) {
|
|
24
|
+
suggestions.push('Validate JSON syntax using a JSON validator');
|
|
25
|
+
suggestions.push('Check for trailing commas or unquoted keys');
|
|
26
|
+
}
|
|
27
|
+
if (context.line && context.column) {
|
|
28
|
+
suggestions.push(`Check line ${context.line}, column ${context.column} in the file`);
|
|
29
|
+
}
|
|
30
|
+
if (context.filePath) {
|
|
31
|
+
suggestions.push(`Review file: ${context.filePath}`);
|
|
32
|
+
}
|
|
33
|
+
super(message, 'PARSING_ERROR', context, suggestions);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Error thrown when XML parsing fails specifically
|
|
38
|
+
*/
|
|
39
|
+
export class XmlParsingError extends ParsingError {
|
|
40
|
+
constructor(message, context = {}) {
|
|
41
|
+
super(`XML parsing failed: ${message}`, {
|
|
42
|
+
...context,
|
|
43
|
+
xmlError: true,
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Error thrown when JSON parsing fails specifically
|
|
49
|
+
*/
|
|
50
|
+
export class JsonParsingError extends ParsingError {
|
|
51
|
+
constructor(message, context = {}) {
|
|
52
|
+
super(`JSON parsing failed: ${message}`, {
|
|
53
|
+
...context,
|
|
54
|
+
jsonError: true,
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Error thrown when SFDX project structure is invalid
|
|
60
|
+
*/
|
|
61
|
+
export class ProjectStructureError extends ParsingError {
|
|
62
|
+
constructor(message, context = {}) {
|
|
63
|
+
super(`Invalid project structure: ${message}`, context);
|
|
64
|
+
this.suggestions.push('Ensure sfdx-project.json exists and is valid');
|
|
65
|
+
this.suggestions.push('Check packageDirectories configuration');
|
|
66
|
+
this.suggestions.push('Run: sf project validate');
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=parsing-error.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parsing-error.js","sourceRoot":"","sources":["../../src/errors/parsing-error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAEvD;;;;;;;;;;;;GAYG;AACH,MAAM,OAAO,YAAa,SAAQ,oBAAoB;IACpD,YACE,OAAe,EACf,UAMI,EAAE;QAEN,MAAM,WAAW,GAAa,EAAE,CAAC;QAEjC,mCAAmC;QACnC,IAAI,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACvC,WAAW,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;YAC/D,WAAW,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;QACpE,CAAC;QAED,IAAI,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YACxC,WAAW,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC;YAChE,WAAW,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;QACjE,CAAC;QAED,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnC,WAAW,CAAC,IAAI,CAAC,cAAc,OAAO,CAAC,IAAI,YAAY,OAAO,CAAC,MAAM,cAAc,CAAC,CAAC;QACvF,CAAC;QAED,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACrB,WAAW,CAAC,IAAI,CAAC,gBAAgB,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;QACvD,CAAC;QAED,KAAK,CAAC,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;IACxD,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,eAAgB,SAAQ,YAAY;IAC/C,YAAmB,OAAe,EAAE,UAAmC,EAAE;QACvE,KAAK,CAAC,uBAAuB,OAAO,EAAE,EAAE;YACtC,GAAG,OAAO;YACV,QAAQ,EAAE,IAAI;SACf,CAAC,CAAC;IACL,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,gBAAiB,SAAQ,YAAY;IAChD,YAAmB,OAAe,EAAE,UAAmC,EAAE;QACvE,KAAK,CAAC,wBAAwB,OAAO,EAAE,EAAE;YACvC,GAAG,OAAO;YACV,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;IACL,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,qBAAsB,SAAQ,YAAY;IACrD,YAAmB,OAAe,EAAE,UAAmC,EAAE;QACvE,KAAK,CAAC,8BAA8B,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC;QAExD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;QACtE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;QAChE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;IACpD,CAAC;CACF"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Validation Error Reporter - US-075
|
|
3
|
+
* Clear validation error messages with documentation links
|
|
4
|
+
*
|
|
5
|
+
* @ac US-075-AC-1: User-friendly error messages
|
|
6
|
+
* @ac US-075-AC-2: Include file paths
|
|
7
|
+
* @ac US-075-AC-3: Include line numbers
|
|
8
|
+
* @ac US-075-AC-4: Suggest fixes
|
|
9
|
+
* @ac US-075-AC-5: Link to documentation
|
|
10
|
+
* @ac US-075-AC-6: Categorize by severity
|
|
11
|
+
* @issue #75
|
|
12
|
+
*/
|
|
13
|
+
import { ValidationError } from './validation-error.js';
|
|
14
|
+
export declare class ValidationErrorReporter {
|
|
15
|
+
/**
|
|
16
|
+
* @ac US-075-AC-5: Link to documentation
|
|
17
|
+
* Get documentation link for error
|
|
18
|
+
*/
|
|
19
|
+
getDocumentationLink(errorCode: string): string;
|
|
20
|
+
/**
|
|
21
|
+
* @ac US-075-AC-1: User-friendly error messages
|
|
22
|
+
* @ac US-075-AC-2: Include file paths
|
|
23
|
+
* @ac US-075-AC-3: Include line numbers
|
|
24
|
+
* @ac US-075-AC-4: Suggest fixes
|
|
25
|
+
* @ac US-075-AC-5: Link to documentation
|
|
26
|
+
* Format validation error with all details
|
|
27
|
+
*/
|
|
28
|
+
format(error: ValidationError): string;
|
|
29
|
+
/**
|
|
30
|
+
* @ac US-075-AC-6: Categorize by severity
|
|
31
|
+
* Format multiple validation errors grouped by severity
|
|
32
|
+
*/
|
|
33
|
+
formatMultiple(errors: ValidationError[]): string;
|
|
34
|
+
}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Validation Error Reporter - US-075
|
|
3
|
+
* Clear validation error messages with documentation links
|
|
4
|
+
*
|
|
5
|
+
* @ac US-075-AC-1: User-friendly error messages
|
|
6
|
+
* @ac US-075-AC-2: Include file paths
|
|
7
|
+
* @ac US-075-AC-3: Include line numbers
|
|
8
|
+
* @ac US-075-AC-4: Suggest fixes
|
|
9
|
+
* @ac US-075-AC-5: Link to documentation
|
|
10
|
+
* @ac US-075-AC-6: Categorize by severity
|
|
11
|
+
* @issue #75
|
|
12
|
+
*/
|
|
13
|
+
const DOCS_BASE_URL = 'https://github.com/jterrats/smart-deployment/blob/main/docs';
|
|
14
|
+
export class ValidationErrorReporter {
|
|
15
|
+
/**
|
|
16
|
+
* @ac US-075-AC-5: Link to documentation
|
|
17
|
+
* Get documentation link for error
|
|
18
|
+
*/
|
|
19
|
+
getDocumentationLink(errorCode) {
|
|
20
|
+
const docMap = {
|
|
21
|
+
INVALID_DEPENDENCY: `${DOCS_BASE_URL}/errors/INVALID_DEPENDENCY.md`,
|
|
22
|
+
CIRCULAR_DEPENDENCY: `${DOCS_BASE_URL}/errors/CIRCULAR_DEPENDENCY.md`,
|
|
23
|
+
MISSING_COMPONENT: `${DOCS_BASE_URL}/errors/MISSING_COMPONENT.md`,
|
|
24
|
+
INVALID_METADATA: `${DOCS_BASE_URL}/errors/INVALID_METADATA.md`,
|
|
25
|
+
};
|
|
26
|
+
return docMap[errorCode] || `${DOCS_BASE_URL}/ERROR_CATALOG.md`;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* @ac US-075-AC-1: User-friendly error messages
|
|
30
|
+
* @ac US-075-AC-2: Include file paths
|
|
31
|
+
* @ac US-075-AC-3: Include line numbers
|
|
32
|
+
* @ac US-075-AC-4: Suggest fixes
|
|
33
|
+
* @ac US-075-AC-5: Link to documentation
|
|
34
|
+
* Format validation error with all details
|
|
35
|
+
*/
|
|
36
|
+
format(error) {
|
|
37
|
+
const lines = [];
|
|
38
|
+
lines.push(`❌ ${error.name} [${error.code}]`);
|
|
39
|
+
lines.push(` ${error.message}`);
|
|
40
|
+
lines.push('');
|
|
41
|
+
// File and line info
|
|
42
|
+
if (error.context.file) {
|
|
43
|
+
lines.push(`📁 File: ${error.context.file}`);
|
|
44
|
+
if (error.context.line) {
|
|
45
|
+
lines.push(`📍 Line: ${error.context.line}`);
|
|
46
|
+
}
|
|
47
|
+
lines.push('');
|
|
48
|
+
}
|
|
49
|
+
// Suggestions
|
|
50
|
+
if (error.suggestions.length > 0) {
|
|
51
|
+
lines.push('💡 Suggested Fixes:');
|
|
52
|
+
for (const suggestion of error.suggestions) {
|
|
53
|
+
lines.push(` • ${suggestion}`);
|
|
54
|
+
}
|
|
55
|
+
lines.push('');
|
|
56
|
+
}
|
|
57
|
+
// Documentation link
|
|
58
|
+
const docLink = this.getDocumentationLink(error.code);
|
|
59
|
+
lines.push(`📖 Documentation: ${docLink}`);
|
|
60
|
+
return lines.join('\n');
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* @ac US-075-AC-6: Categorize by severity
|
|
64
|
+
* Format multiple validation errors grouped by severity
|
|
65
|
+
*/
|
|
66
|
+
formatMultiple(errors) {
|
|
67
|
+
const lines = [];
|
|
68
|
+
lines.push('📋 Validation Errors Report');
|
|
69
|
+
lines.push('═══════════════════════════════════════');
|
|
70
|
+
lines.push(`Total Errors: ${errors.length}`);
|
|
71
|
+
lines.push('');
|
|
72
|
+
// Group by severity (based on code)
|
|
73
|
+
const critical = errors.filter((e) => e.code.includes('CRITICAL'));
|
|
74
|
+
const high = errors.filter((e) => e.code.includes('ERROR'));
|
|
75
|
+
const medium = errors.filter((e) => e.code.includes('WARNING'));
|
|
76
|
+
if (critical.length > 0) {
|
|
77
|
+
lines.push(`🔴 Critical (${critical.length}):`);
|
|
78
|
+
for (const error of critical) {
|
|
79
|
+
lines.push(` ${error.message}`);
|
|
80
|
+
}
|
|
81
|
+
lines.push('');
|
|
82
|
+
}
|
|
83
|
+
if (high.length > 0) {
|
|
84
|
+
lines.push(`🟠 Errors (${high.length}):`);
|
|
85
|
+
for (const error of high) {
|
|
86
|
+
lines.push(` ${error.message}`);
|
|
87
|
+
}
|
|
88
|
+
lines.push('');
|
|
89
|
+
}
|
|
90
|
+
if (medium.length > 0) {
|
|
91
|
+
lines.push(`🟡 Warnings (${medium.length}):`);
|
|
92
|
+
for (const error of medium) {
|
|
93
|
+
lines.push(` ${error.message}`);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
return lines.join('\n');
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
//# sourceMappingURL=validation-error-reporter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation-error-reporter.js","sourceRoot":"","sources":["../../src/errors/validation-error-reporter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { SmartDeploymentError } from './base-error.js';
|
|
2
|
+
/**
|
|
3
|
+
* Error thrown when metadata or configuration validation fails
|
|
4
|
+
*
|
|
5
|
+
* @example
|
|
6
|
+
* ```typescript
|
|
7
|
+
* throw new ValidationError('Invalid API version', {
|
|
8
|
+
* currentVersion: '30.0',
|
|
9
|
+
* minimumVersion: '40.0',
|
|
10
|
+
* field: 'sourceApiVersion'
|
|
11
|
+
* });
|
|
12
|
+
* ```
|
|
13
|
+
*/
|
|
14
|
+
export declare class ValidationError extends SmartDeploymentError {
|
|
15
|
+
constructor(message: string, context?: Record<string, unknown>);
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Error thrown when required configuration is missing
|
|
19
|
+
*/
|
|
20
|
+
export declare class ConfigurationError extends ValidationError {
|
|
21
|
+
constructor(missingConfig: string, context?: Record<string, unknown>);
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Error thrown when API version is invalid or outdated
|
|
25
|
+
*/
|
|
26
|
+
export declare class ApiVersionError extends ValidationError {
|
|
27
|
+
constructor(currentVersion: string, minimumVersion: string, context?: Record<string, unknown>);
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Error thrown when metadata type is unknown or unsupported
|
|
31
|
+
*/
|
|
32
|
+
export declare class UnknownMetadataTypeError extends ValidationError {
|
|
33
|
+
constructor(metadataType: string, context?: Record<string, unknown>);
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Error thrown when component count exceeds limits
|
|
37
|
+
*/
|
|
38
|
+
export declare class ComponentCountError extends ValidationError {
|
|
39
|
+
constructor(count: number, limit: number, componentType?: string, context?: Record<string, unknown>);
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Error thrown when required metadata is missing
|
|
43
|
+
*/
|
|
44
|
+
export declare class MissingMetadataError extends ValidationError {
|
|
45
|
+
constructor(metadataType: string, metadataName: string, context?: Record<string, unknown>);
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Error thrown when file or directory does not exist
|
|
49
|
+
*/
|
|
50
|
+
export declare class FileNotFoundError extends ValidationError {
|
|
51
|
+
constructor(filePath: string, context?: Record<string, unknown>);
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Error thrown when file permissions are insufficient
|
|
55
|
+
*/
|
|
56
|
+
export declare class PermissionError extends ValidationError {
|
|
57
|
+
constructor(filePath: string, operation: string, context?: Record<string, unknown>);
|
|
58
|
+
}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import { SmartDeploymentError } from './base-error.js';
|
|
2
|
+
/**
|
|
3
|
+
* Error thrown when metadata or configuration validation fails
|
|
4
|
+
*
|
|
5
|
+
* @example
|
|
6
|
+
* ```typescript
|
|
7
|
+
* throw new ValidationError('Invalid API version', {
|
|
8
|
+
* currentVersion: '30.0',
|
|
9
|
+
* minimumVersion: '40.0',
|
|
10
|
+
* field: 'sourceApiVersion'
|
|
11
|
+
* });
|
|
12
|
+
* ```
|
|
13
|
+
*/
|
|
14
|
+
export class ValidationError extends SmartDeploymentError {
|
|
15
|
+
constructor(message, context = {}) {
|
|
16
|
+
const suggestions = [];
|
|
17
|
+
// Add context-specific suggestions
|
|
18
|
+
if (context.field) {
|
|
19
|
+
suggestions.push(`Check field: ${String(context.field)}`);
|
|
20
|
+
}
|
|
21
|
+
if (context.minimumVersion) {
|
|
22
|
+
suggestions.push(`Update to minimum version: ${String(context.minimumVersion)}`);
|
|
23
|
+
}
|
|
24
|
+
if (context.allowedValues) {
|
|
25
|
+
suggestions.push(`Allowed values: ${JSON.stringify(context.allowedValues)}`);
|
|
26
|
+
}
|
|
27
|
+
super(message, 'VALIDATION_ERROR', context, suggestions);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Error thrown when required configuration is missing
|
|
32
|
+
*/
|
|
33
|
+
export class ConfigurationError extends ValidationError {
|
|
34
|
+
constructor(missingConfig, context = {}) {
|
|
35
|
+
super(`Missing required configuration: ${missingConfig}`, {
|
|
36
|
+
...context,
|
|
37
|
+
missingConfig,
|
|
38
|
+
});
|
|
39
|
+
this.suggestions.push(`Add '${missingConfig}' to your configuration`);
|
|
40
|
+
this.suggestions.push('Check .sfsmartdeploy.json or CLI flags');
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Error thrown when API version is invalid or outdated
|
|
45
|
+
*/
|
|
46
|
+
export class ApiVersionError extends ValidationError {
|
|
47
|
+
constructor(currentVersion, minimumVersion, context = {}) {
|
|
48
|
+
super(`API version ${currentVersion} is below minimum ${minimumVersion}`, {
|
|
49
|
+
...context,
|
|
50
|
+
currentVersion,
|
|
51
|
+
minimumVersion,
|
|
52
|
+
});
|
|
53
|
+
this.suggestions.push(`Update sourceApiVersion in sfdx-project.json to ${minimumVersion} or higher`);
|
|
54
|
+
this.suggestions.push('Salesforce deprecates API versions older than 3 years');
|
|
55
|
+
this.suggestions.push('Consider using the latest API version for new features');
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Error thrown when metadata type is unknown or unsupported
|
|
60
|
+
*/
|
|
61
|
+
export class UnknownMetadataTypeError extends ValidationError {
|
|
62
|
+
constructor(metadataType, context = {}) {
|
|
63
|
+
super(`Unknown metadata type: ${metadataType}`, {
|
|
64
|
+
...context,
|
|
65
|
+
metadataType,
|
|
66
|
+
});
|
|
67
|
+
this.suggestions.push('Check metadata type spelling and casing');
|
|
68
|
+
this.suggestions.push('Verify the type exists in Salesforce documentation');
|
|
69
|
+
this.suggestions.push('Type may be new - update plugin to latest version');
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Error thrown when component count exceeds limits
|
|
74
|
+
*/
|
|
75
|
+
export class ComponentCountError extends ValidationError {
|
|
76
|
+
constructor(count, limit, componentType, context = {}) {
|
|
77
|
+
const typeStr = componentType ? ` ${componentType}` : '';
|
|
78
|
+
super(`Too many${typeStr} components: ${count} exceeds limit of ${limit}`, {
|
|
79
|
+
...context,
|
|
80
|
+
count,
|
|
81
|
+
limit,
|
|
82
|
+
componentType,
|
|
83
|
+
});
|
|
84
|
+
this.suggestions.push('Split deployment into multiple waves');
|
|
85
|
+
this.suggestions.push('Use selective deployment for changed components only');
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Error thrown when required metadata is missing
|
|
90
|
+
*/
|
|
91
|
+
export class MissingMetadataError extends ValidationError {
|
|
92
|
+
constructor(metadataType, metadataName, context = {}) {
|
|
93
|
+
super(`Missing required ${metadataType}: ${metadataName}`, {
|
|
94
|
+
...context,
|
|
95
|
+
metadataType,
|
|
96
|
+
metadataName,
|
|
97
|
+
});
|
|
98
|
+
this.suggestions.push(`Add ${metadataType} '${metadataName}' to your deployment`);
|
|
99
|
+
this.suggestions.push('Check if the component was deleted or renamed');
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Error thrown when file or directory does not exist
|
|
104
|
+
*/
|
|
105
|
+
export class FileNotFoundError extends ValidationError {
|
|
106
|
+
constructor(filePath, context = {}) {
|
|
107
|
+
super(`File or directory not found: ${filePath}`, {
|
|
108
|
+
...context,
|
|
109
|
+
filePath,
|
|
110
|
+
});
|
|
111
|
+
this.suggestions.push(`Verify path exists: ${filePath}`);
|
|
112
|
+
this.suggestions.push('Check for typos in file path');
|
|
113
|
+
this.suggestions.push('Ensure you are in the correct directory');
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Error thrown when file permissions are insufficient
|
|
118
|
+
*/
|
|
119
|
+
export class PermissionError extends ValidationError {
|
|
120
|
+
constructor(filePath, operation, context = {}) {
|
|
121
|
+
super(`Permission denied: cannot ${operation} ${filePath}`, {
|
|
122
|
+
...context,
|
|
123
|
+
filePath,
|
|
124
|
+
operation,
|
|
125
|
+
});
|
|
126
|
+
this.suggestions.push(`Check file permissions: ls -la ${filePath}`);
|
|
127
|
+
this.suggestions.push(`Grant ${operation} permission: chmod +r ${filePath}`);
|
|
128
|
+
this.suggestions.push('Run command with appropriate user privileges');
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
//# sourceMappingURL=validation-error.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation-error.js","sourceRoot":"","sources":["../../src/errors/validation-error.ts"],"names":[],"mappings":"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"}
|
package/lib/index.d.ts
ADDED
package/lib/index.js
ADDED
package/lib/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,eAAe,EAAE,CAAC"}
|