@jterrats/smart-deployment 1.2.6 → 1.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (115) hide show
  1. package/README.md +31 -1
  2. package/lib/analysis/project-analysis-service.d.ts +5 -0
  3. package/lib/analysis/project-analysis-service.js +18 -0
  4. package/lib/analysis/project-analysis-service.js.map +1 -1
  5. package/lib/commands/ci/preset.d.ts +25 -0
  6. package/lib/commands/ci/preset.js +125 -0
  7. package/lib/commands/ci/preset.js.map +1 -0
  8. package/lib/commands/graph/export.d.ts +20 -0
  9. package/lib/commands/graph/export.js +107 -0
  10. package/lib/commands/graph/export.js.map +1 -0
  11. package/lib/commands/impact.d.ts +18 -0
  12. package/lib/commands/impact.js +105 -0
  13. package/lib/commands/impact.js.map +1 -0
  14. package/lib/commands/init.d.ts +19 -0
  15. package/lib/commands/init.js +83 -0
  16. package/lib/commands/init.js.map +1 -0
  17. package/lib/commands/plan/explain.d.ts +14 -0
  18. package/lib/commands/plan/explain.js +134 -0
  19. package/lib/commands/plan/explain.js.map +1 -0
  20. package/lib/commands/resume.d.ts +1 -0
  21. package/lib/commands/resume.js +17 -3
  22. package/lib/commands/resume.js.map +1 -1
  23. package/lib/commands/retrieve.d.ts +20 -0
  24. package/lib/commands/retrieve.js +111 -0
  25. package/lib/commands/retrieve.js.map +1 -0
  26. package/lib/commands/start.d.ts +21 -0
  27. package/lib/commands/start.js +124 -14
  28. package/lib/commands/start.js.map +1 -1
  29. package/lib/commands/status.d.ts +1 -0
  30. package/lib/commands/status.js +15 -3
  31. package/lib/commands/status.js.map +1 -1
  32. package/lib/commands/validate.d.ts +8 -0
  33. package/lib/commands/validate.js +14 -0
  34. package/lib/commands/validate.js.map +1 -1
  35. package/lib/config/init-config-generation-service.d.ts +27 -0
  36. package/lib/config/init-config-generation-service.js +88 -0
  37. package/lib/config/init-config-generation-service.js.map +1 -0
  38. package/lib/config/repo-config.d.ts +25 -0
  39. package/lib/config/repo-config.js.map +1 -1
  40. package/lib/dependencies/impact-analysis-service.d.ts +77 -0
  41. package/lib/dependencies/impact-analysis-service.js +234 -0
  42. package/lib/dependencies/impact-analysis-service.js.map +1 -0
  43. package/lib/deployment/ci-preset-service.d.ts +44 -0
  44. package/lib/deployment/ci-preset-service.js +65 -0
  45. package/lib/deployment/ci-preset-service.js.map +1 -0
  46. package/lib/deployment/commit-scope-service.d.ts +43 -0
  47. package/lib/deployment/commit-scope-service.js +209 -0
  48. package/lib/deployment/commit-scope-service.js.map +1 -0
  49. package/lib/deployment/deployment-context-service.d.ts +3 -0
  50. package/lib/deployment/deployment-context-service.js +1 -0
  51. package/lib/deployment/deployment-context-service.js.map +1 -1
  52. package/lib/deployment/deployment-error-diagnostics.d.ts +11 -0
  53. package/lib/deployment/deployment-error-diagnostics.js +187 -0
  54. package/lib/deployment/deployment-error-diagnostics.js.map +1 -0
  55. package/lib/deployment/deployment-runner.d.ts +1 -0
  56. package/lib/deployment/deployment-runner.js +35 -15
  57. package/lib/deployment/deployment-runner.js.map +1 -1
  58. package/lib/deployment/deployment-status-service.d.ts +9 -2
  59. package/lib/deployment/deployment-status-service.js +56 -3
  60. package/lib/deployment/deployment-status-service.js.map +1 -1
  61. package/lib/deployment/deployment-validation-service.d.ts +3 -0
  62. package/lib/deployment/deployment-validation-service.js +32 -4
  63. package/lib/deployment/deployment-validation-service.js.map +1 -1
  64. package/lib/deployment/plan-explain-service.d.ts +88 -0
  65. package/lib/deployment/plan-explain-service.js +171 -0
  66. package/lib/deployment/plan-explain-service.js.map +1 -0
  67. package/lib/deployment/resume-deployment-service.d.ts +6 -2
  68. package/lib/deployment/resume-deployment-service.js +27 -3
  69. package/lib/deployment/resume-deployment-service.js.map +1 -1
  70. package/lib/deployment/retrieve-forceignore-service.d.ts +51 -0
  71. package/lib/deployment/retrieve-forceignore-service.js +139 -0
  72. package/lib/deployment/retrieve-forceignore-service.js.map +1 -0
  73. package/lib/deployment/rollback-planning-service.d.ts +49 -0
  74. package/lib/deployment/rollback-planning-service.js +178 -0
  75. package/lib/deployment/rollback-planning-service.js.map +1 -0
  76. package/lib/deployment/sf-cli-integration.d.ts +4 -0
  77. package/lib/deployment/sf-cli-integration.js +22 -2
  78. package/lib/deployment/sf-cli-integration.js.map +1 -1
  79. package/lib/deployment/start-execution-service.d.ts +1 -0
  80. package/lib/deployment/start-execution-service.js +14 -8
  81. package/lib/deployment/start-execution-service.js.map +1 -1
  82. package/lib/deployment/wave-manifest-service.d.ts +8 -0
  83. package/lib/deployment/wave-manifest-service.js +39 -20
  84. package/lib/deployment/wave-manifest-service.js.map +1 -1
  85. package/lib/presentation/plan-explain-presenter.d.ts +9 -0
  86. package/lib/presentation/plan-explain-presenter.js +40 -0
  87. package/lib/presentation/plan-explain-presenter.js.map +1 -0
  88. package/lib/presentation/start-command-presenter.d.ts +4 -0
  89. package/lib/presentation/start-command-presenter.js +4 -0
  90. package/lib/presentation/start-command-presenter.js.map +1 -1
  91. package/lib/reports/deployment-plan-report-service.d.ts +76 -0
  92. package/lib/reports/deployment-plan-report-service.js +234 -0
  93. package/lib/reports/deployment-plan-report-service.js.map +1 -0
  94. package/lib/reports/graph-export-service.d.ts +85 -0
  95. package/lib/reports/graph-export-service.js +296 -0
  96. package/lib/reports/graph-export-service.js.map +1 -0
  97. package/lib/services/metadata-scanner-service.js +4 -2
  98. package/lib/services/metadata-scanner-service.js.map +1 -1
  99. package/lib/services/scanners/automation-ai-metadata-scanner.d.ts +1 -0
  100. package/lib/services/scanners/automation-ai-metadata-scanner.js +39 -0
  101. package/lib/services/scanners/automation-ai-metadata-scanner.js.map +1 -1
  102. package/messages/ci.preset.json +22 -0
  103. package/messages/graph.export.json +20 -0
  104. package/messages/impact.json +18 -0
  105. package/messages/init.json +16 -0
  106. package/messages/plan.explain.json +20 -0
  107. package/messages/resume.json +1 -0
  108. package/messages/retrieve.json +26 -0
  109. package/messages/start.json +16 -2
  110. package/messages/status.json +1 -0
  111. package/messages/validate.json +3 -1
  112. package/npm-shrinkwrap.json +45 -70
  113. package/oclif.lock +44 -41
  114. package/oclif.manifest.json +801 -25
  115. package/package.json +9 -8
@@ -10,6 +10,7 @@ export class DeploymentContextService {
10
10
  scanResult: analysis.scanResult,
11
11
  orderedWaves: analysis.orderedWaves,
12
12
  aiContext: analysis.aiContext,
13
+ commitScope: analysis.commitScope,
13
14
  messages: analysis.messages,
14
15
  };
15
16
  }
@@ -1 +1 @@
1
- {"version":3,"file":"deployment-context-service.js","sourceRoot":"","sources":["../../src/deployment/deployment-context-service.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,GAGvB,MAAM,yCAAyC,CAAC;AAwBjD,MAAM,OAAO,wBAAwB;IAClB,sBAAsB,CAAyB;IAEhE,YAAmB,eAAqD,EAAE;QACxE,IAAI,CAAC,sBAAsB,GAAG,IAAI,sBAAsB,CAAC,YAAY,CAAC,CAAC;IACzE,CAAC;IAEM,KAAK,CAAC,YAAY,CAAC,UAAyC,EAAE;QACnE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAC1E,OAAO;YACL,UAAU,EAAE,QAAQ,CAAC,UAAU;YAC/B,YAAY,EAAE,QAAQ,CAAC,YAAY;YACnC,SAAS,EAAE,QAAQ,CAAC,SAAS;YAC7B,QAAQ,EAAE,QAAQ,CAAC,QAAQ;SAC5B,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"deployment-context-service.js","sourceRoot":"","sources":["../../src/deployment/deployment-context-service.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,GAGvB,MAAM,yCAAyC,CAAC;AA2BjD,MAAM,OAAO,wBAAwB;IAClB,sBAAsB,CAAyB;IAEhE,YAAmB,eAAqD,EAAE;QACxE,IAAI,CAAC,sBAAsB,GAAG,IAAI,sBAAsB,CAAC,YAAY,CAAC,CAAC;IACzE,CAAC;IAEM,KAAK,CAAC,YAAY,CAAC,UAAyC,EAAE;QACnE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAC1E,OAAO;YACL,UAAU,EAAE,QAAQ,CAAC,UAAU;YAC/B,YAAY,EAAE,QAAQ,CAAC,YAAY;YACnC,SAAS,EAAE,QAAQ,CAAC,SAAS;YAC7B,WAAW,EAAE,QAAQ,CAAC,WAAW;YACjC,QAAQ,EAAE,QAAQ,CAAC,QAAQ;SAC5B,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,11 @@
1
+ export type DeploymentDiagnosticCategory = 'missing-field' | 'missing-object' | 'duplicate-metadata' | 'permission' | 'invalid-reference' | 'source-tracking-conflict' | 'unknown';
2
+ export type DeploymentDiagnostic = {
3
+ component: string;
4
+ problem: string;
5
+ probableCause: string;
6
+ remediation: string;
7
+ rawDetails: string;
8
+ category: DeploymentDiagnosticCategory;
9
+ };
10
+ export declare function normalizeDeploymentDiagnostics(output: string): DeploymentDiagnostic[];
11
+ export declare function formatDeploymentDiagnostics(diagnostics: readonly DeploymentDiagnostic[]): string;
@@ -0,0 +1,187 @@
1
+ const UNKNOWN_COMPONENT = 'Unknown component';
2
+ const UNKNOWN_NEXT_STEP = 'Review the raw Salesforce deploy output, confirm the metadata exists in the target org, and retry with a focused validation for the affected component.';
3
+ export function normalizeDeploymentDiagnostics(output) {
4
+ const records = extractFailureRecords(output);
5
+ const sourceRecords = records.length > 0
6
+ ? records
7
+ : [
8
+ {
9
+ component: UNKNOWN_COMPONENT,
10
+ problem: output.trim() || 'Salesforce deployment failed without a detailed error message.',
11
+ rawDetails: output,
12
+ },
13
+ ];
14
+ return sourceRecords.map((record) => classifyFailure(record));
15
+ }
16
+ export function formatDeploymentDiagnostics(diagnostics) {
17
+ if (diagnostics.length === 0) {
18
+ return '';
19
+ }
20
+ return diagnostics
21
+ .map((item, index) => [
22
+ `Diagnostic ${index + 1}: ${item.component}`,
23
+ `Problem: ${item.problem}`,
24
+ `Probable cause: ${item.probableCause}`,
25
+ `Remediation: ${item.remediation}`,
26
+ ].join('\n'))
27
+ .join('\n\n');
28
+ }
29
+ function extractFailureRecords(output) {
30
+ const parsed = parseJsonObject(output);
31
+ if (parsed === undefined) {
32
+ return extractTextFailureRecords(output);
33
+ }
34
+ const failures = [
35
+ ...asArray(readPath(parsed, ['result', 'details', 'componentFailures'])),
36
+ ...asArray(readPath(parsed, ['result', 'details', 'runTestResult', 'failures'])),
37
+ ...asArray(readPath(parsed, ['result', 'componentFailures'])),
38
+ ];
39
+ return failures
40
+ .map((failure) => buildFailureRecord(failure))
41
+ .filter((record) => record !== undefined);
42
+ }
43
+ function parseJsonObject(output) {
44
+ const jsonMatch = output.match(/\{[\s\S]*\}/);
45
+ if (!jsonMatch) {
46
+ return undefined;
47
+ }
48
+ try {
49
+ const parsed = JSON.parse(jsonMatch[0]);
50
+ return isRecord(parsed) ? parsed : undefined;
51
+ }
52
+ catch {
53
+ return undefined;
54
+ }
55
+ }
56
+ function readPath(value, path) {
57
+ return path.reduce((current, key) => (isRecord(current) ? current[key] : undefined), value);
58
+ }
59
+ function asArray(value) {
60
+ if (Array.isArray(value)) {
61
+ return value;
62
+ }
63
+ return value === undefined || value === null ? [] : [value];
64
+ }
65
+ function buildFailureRecord(value) {
66
+ if (!isRecord(value)) {
67
+ return undefined;
68
+ }
69
+ const failure = value;
70
+ const problem = stringValue(failure.problem);
71
+ if (problem === undefined) {
72
+ return undefined;
73
+ }
74
+ const componentParts = [
75
+ stringValue(failure.componentType),
76
+ stringValue(failure.fullName),
77
+ stringValue(failure.fileName),
78
+ ].filter((part) => part !== undefined && part.length > 0);
79
+ const location = [numberValue(failure.lineNumber), numberValue(failure.columnNumber)]
80
+ .filter((part) => part !== undefined)
81
+ .join(':');
82
+ return {
83
+ component: componentParts.length > 0 ? componentParts.join(':') : UNKNOWN_COMPONENT,
84
+ problem,
85
+ rawDetails: JSON.stringify({ ...value, location: location || undefined }),
86
+ };
87
+ }
88
+ function extractTextFailureRecords(output) {
89
+ const trimmed = output.trim();
90
+ if (trimmed.length === 0) {
91
+ return [];
92
+ }
93
+ return trimmed
94
+ .split(/\r?\n/)
95
+ .map((line) => line.trim())
96
+ .filter((line) => line.length > 0)
97
+ .map((line) => ({
98
+ component: inferComponentFromText(line),
99
+ problem: line,
100
+ rawDetails: line,
101
+ }));
102
+ }
103
+ function classifyFailure(record) {
104
+ const normalized = record.problem.toLowerCase();
105
+ if (matchesMissingField(normalized)) {
106
+ return diagnostic(record, 'missing-field', {
107
+ probableCause: 'A referenced field is not present in the target org or is deployed in a later wave.',
108
+ remediation: 'Deploy the missing CustomField before this component, add it to the same or earlier wave, or remove the stale field reference.',
109
+ });
110
+ }
111
+ if (matchesMissingObject(normalized)) {
112
+ return diagnostic(record, 'missing-object', {
113
+ probableCause: 'A referenced object is not present in the target org or the object metadata is missing from the package.',
114
+ remediation: 'Deploy the CustomObject before dependent metadata, include the object in the manifest, or correct the object API name.',
115
+ });
116
+ }
117
+ if (matchesDuplicateMetadata(normalized)) {
118
+ return diagnostic(record, 'duplicate-metadata', {
119
+ probableCause: 'The package contains duplicate metadata members or a component conflicts with metadata already owned elsewhere.',
120
+ remediation: 'Remove duplicate package entries, consolidate the metadata source, then rerun validation with one authoritative component path.',
121
+ });
122
+ }
123
+ if (matchesPermission(normalized)) {
124
+ return diagnostic(record, 'permission', {
125
+ probableCause: 'The deployment user lacks metadata, object, field, Apex, or setup permissions required for this change.',
126
+ remediation: 'Grant the deployment user the required permission set or org permission, then validate again with the same target org.',
127
+ });
128
+ }
129
+ if (matchesSourceTrackingConflict(normalized)) {
130
+ return diagnostic(record, 'source-tracking-conflict', {
131
+ probableCause: 'Local source tracking is out of sync with the target org or conflicts with remote changes.',
132
+ remediation: 'Pull or reset source tracking for the org, reconcile conflicts, then rerun the deployment validation.',
133
+ });
134
+ }
135
+ if (matchesInvalidReference(normalized)) {
136
+ return diagnostic(record, 'invalid-reference', {
137
+ probableCause: 'The metadata references a component, value, label, class, flow, layout, or relationship that cannot be resolved.',
138
+ remediation: 'Deploy the referenced component first, correct the API name, or remove the stale reference from this metadata.',
139
+ });
140
+ }
141
+ return diagnostic(record, 'unknown', {
142
+ probableCause: 'Salesforce returned an error that does not match a known smart-deployment diagnostic pattern.',
143
+ remediation: UNKNOWN_NEXT_STEP,
144
+ });
145
+ }
146
+ function diagnostic(record, category, details) {
147
+ return {
148
+ component: record.component ?? UNKNOWN_COMPONENT,
149
+ problem: record.problem,
150
+ rawDetails: record.rawDetails,
151
+ category,
152
+ ...details,
153
+ };
154
+ }
155
+ function matchesMissingField(problem) {
156
+ return (/no such column|invalid field|field .* does not exist|unknown field|could not resolve standard field/i.test(problem) || /in field: field - no customfield named/i.test(problem));
157
+ }
158
+ function matchesMissingObject(problem) {
159
+ return (/entity is not org-accessible|invalid type|sobject type .* is not supported|no customobject named/i.test(problem) ||
160
+ /reference to undefined object|object .* does not exist/i.test(problem));
161
+ }
162
+ function matchesDuplicateMetadata(problem) {
163
+ return /duplicate value|duplicate name|duplicate full name|already exists|more than one/i.test(problem);
164
+ }
165
+ function matchesPermission(problem) {
166
+ return /insufficient access|insufficient privileges|not authorized|required permission|permission denied|invalid cross reference id/i.test(problem);
167
+ }
168
+ function matchesInvalidReference(problem) {
169
+ return /invalid reference|invalid relationship|invalid definition|not found|does not exist|unknown user permission|invalid value/i.test(problem);
170
+ }
171
+ function matchesSourceTrackingConflict(problem) {
172
+ return /source tracking|conflict|sync.*source|source.*out of sync|tracking.*reset/i.test(problem);
173
+ }
174
+ function inferComponentFromText(line) {
175
+ const match = line.match(/(?:component|file|entity|object|field)\s+['"]?([A-Za-z0-9_.:-]+)['"]?/i);
176
+ return match?.[1] ?? UNKNOWN_COMPONENT;
177
+ }
178
+ function stringValue(value) {
179
+ return typeof value === 'string' && value.length > 0 ? value : undefined;
180
+ }
181
+ function numberValue(value) {
182
+ return typeof value === 'number' && Number.isFinite(value) ? value : undefined;
183
+ }
184
+ function isRecord(value) {
185
+ return typeof value === 'object' && value !== null;
186
+ }
187
+ //# sourceMappingURL=deployment-error-diagnostics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deployment-error-diagnostics.js","sourceRoot":"","sources":["../../src/deployment/deployment-error-diagnostics.ts"],"names":[],"mappings":"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"}
@@ -23,6 +23,7 @@ export type DeploymentRunnerParams = {
23
23
  stateManager: StateManager;
24
24
  sfCli: SfCliIntegration;
25
25
  aiContext?: DeploymentAIContext;
26
+ mode?: 'deploy' | 'destructive';
26
27
  log: (message: string) => void;
27
28
  };
28
29
  type DeploymentRunnerDependencies = {
@@ -1,6 +1,7 @@
1
1
  import { TestPlanService } from './test-plan-service.js';
2
2
  import { WaveManifestService } from './wave-manifest-service.js';
3
3
  import { ForceIgnoreStagingService } from './forceignore-staging-service.js';
4
+ import { formatDeploymentDiagnostics } from './deployment-error-diagnostics.js';
4
5
  import { buildPersistedWaveGraphContext } from './wave-graph-state.js';
5
6
  export class DeploymentRunner {
6
7
  testPlanService;
@@ -12,24 +13,39 @@ export class DeploymentRunner {
12
13
  this.forceIgnoreStagingService = dependencies.forceIgnoreStagingService ?? new ForceIgnoreStagingService();
13
14
  }
14
15
  async execute(params) {
15
- const { deploymentId, targetOrg, sourcePath, orderedWaves, dependencyGraph, componentMap, apiVersion, skipTests, testExecutor, tracker, stateManager, sfCli, aiContext, log, } = params;
16
+ const { deploymentId, targetOrg, sourcePath, orderedWaves, dependencyGraph, componentMap, apiVersion, skipTests, testExecutor, tracker, stateManager, sfCli, aiContext, mode = 'deploy', log, } = params;
16
17
  await this.forEachSequentially(orderedWaves, async (wave) => {
17
- log(`\n🌊 Deploying Wave ${wave.number}/${orderedWaves.length} (${wave.components.length} components)...`);
18
+ const destructive = mode === 'destructive';
19
+ log(`\n🌊 ${destructive ? 'Deleting' : 'Deploying'} Wave ${wave.number}/${orderedWaves.length} (${wave.components.length} components)...`);
18
20
  const workspace = await this.forceIgnoreStagingService.prepare({
19
21
  projectRoot: sourcePath ?? process.cwd(),
20
22
  });
21
23
  try {
22
- const manifestPath = await this.waveManifestService.generateManifest({
23
- baseDir: workspace.projectRoot,
24
- waveNumber: wave.number,
25
- components: wave.components,
26
- componentMap,
27
- apiVersion,
28
- });
29
- const testPlan = this.testPlanService.resolveTestPlan(wave, skipTests, testExecutor);
24
+ const manifest = destructive
25
+ ? await this.waveManifestService.generateDestructiveManifest({
26
+ baseDir: workspace.projectRoot,
27
+ waveNumber: wave.number,
28
+ components: wave.components,
29
+ componentMap,
30
+ apiVersion,
31
+ })
32
+ : {
33
+ packagePath: await this.waveManifestService.generateManifest({
34
+ baseDir: workspace.projectRoot,
35
+ waveNumber: wave.number,
36
+ components: wave.components,
37
+ componentMap,
38
+ apiVersion,
39
+ }),
40
+ destructiveChangesPath: undefined,
41
+ };
42
+ const testPlan = destructive
43
+ ? { testLevel: 'NoTestRun', tests: [] }
44
+ : this.testPlanService.resolveTestPlan(wave, skipTests, testExecutor);
30
45
  tracker.startTracking(deploymentId, wave.number, orderedWaves.length);
31
46
  const result = await sfCli.deploy({
32
- manifestPath,
47
+ manifestPath: manifest.packagePath,
48
+ postDestructiveChangesPath: manifest.destructiveChangesPath,
33
49
  targetOrg,
34
50
  workingDirectory: workspace.projectRoot,
35
51
  testLevel: testPlan.testLevel,
@@ -37,6 +53,9 @@ export class DeploymentRunner {
37
53
  });
38
54
  tracker.updateProgress(deploymentId, result);
39
55
  if (!result.success) {
56
+ const diagnostics = result.diagnostics ?? [];
57
+ const formattedDiagnostics = formatDeploymentDiagnostics(diagnostics);
58
+ const failureMessage = formattedDiagnostics ? `${result.output}\n\n${formattedDiagnostics}` : result.output;
40
59
  await stateManager.saveState({
41
60
  deploymentId,
42
61
  targetOrg,
@@ -46,7 +65,7 @@ export class DeploymentRunner {
46
65
  currentWave: wave.number,
47
66
  failedWave: {
48
67
  waveNumber: wave.number,
49
- error: result.output,
68
+ error: failureMessage,
50
69
  timestamp: new Date().toISOString(),
51
70
  },
52
71
  metadata: {
@@ -54,11 +73,12 @@ export class DeploymentRunner {
54
73
  testsRun: result.testsRun,
55
74
  testFailures: result.testFailures,
56
75
  testLevel: testPlan.testLevel,
76
+ diagnostics,
57
77
  waveGraphContext: buildPersistedWaveGraphContext(orderedWaves, dependencyGraph),
58
78
  ...this.buildAIMetadata(aiContext),
59
79
  },
60
80
  });
61
- throw new Error(`Wave ${wave.number} failed: ${result.output}`);
81
+ throw new Error(`Wave ${wave.number} failed: ${failureMessage}`);
62
82
  }
63
83
  await stateManager.saveState({
64
84
  deploymentId,
@@ -76,14 +96,14 @@ export class DeploymentRunner {
76
96
  ...this.buildAIMetadata(aiContext),
77
97
  },
78
98
  });
79
- log(`✅ Wave ${wave.number} deployed successfully`);
99
+ log(`✅ Wave ${wave.number} ${destructive ? 'deleted' : 'deployed'} successfully`);
80
100
  }
81
101
  finally {
82
102
  await workspace.cleanup();
83
103
  }
84
104
  });
85
105
  await stateManager.clearState();
86
- log('\n✅ All waves deployed successfully!');
106
+ log(`\n✅ All waves ${mode === 'destructive' ? 'deleted' : 'deployed'} successfully!`);
87
107
  }
88
108
  buildAIMetadata(aiContext) {
89
109
  if (aiContext === undefined) {
@@ -1 +1 @@
1
- {"version":3,"file":"deployment-runner.js","sourceRoot":"","sources":["../../src/deployment/deployment-runner.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAG7E,OAAO,EAAE,8BAA8B,EAAE,MAAM,uBAAuB,CAAC;AAyBvE,MAAM,OAAO,gBAAgB;IACV,eAAe,CAAkB;IACjC,mBAAmB,CAAsB;IACzC,yBAAyB,CAA4B;IAEtE,YAAmB,eAA6C,EAAE;QAChE,IAAI,CAAC,eAAe,GAAG,YAAY,CAAC,eAAe,IAAI,IAAI,eAAe,EAAE,CAAC;QAC7E,IAAI,CAAC,mBAAmB,GAAG,YAAY,CAAC,mBAAmB,IAAI,IAAI,mBAAmB,EAAE,CAAC;QACzF,IAAI,CAAC,yBAAyB,GAAG,YAAY,CAAC,yBAAyB,IAAI,IAAI,yBAAyB,EAAE,CAAC;IAC7G,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,MAA8B;QACjD,MAAM,EACJ,YAAY,EACZ,SAAS,EACT,UAAU,EACV,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,UAAU,EACV,SAAS,EACT,YAAY,EACZ,OAAO,EACP,YAAY,EACZ,KAAK,EACL,SAAS,EACT,GAAG,GACJ,GAAG,MAAM,CAAC;QAEX,MAAM,IAAI,CAAC,mBAAmB,CAAC,YAAY,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;YAC1D,GAAG,CAAC,uBAAuB,IAAI,CAAC,MAAM,IAAI,YAAY,CAAC,MAAM,KAAK,IAAI,CAAC,UAAU,CAAC,MAAM,iBAAiB,CAAC,CAAC;YAC3G,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,yBAAyB,CAAC,OAAO,CAAC;gBAC7D,WAAW,EAAE,UAAU,IAAI,OAAO,CAAC,GAAG,EAAE;aACzC,CAAC,CAAC;YAEH,IAAI,CAAC;gBACH,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,CAAC;oBACnE,OAAO,EAAE,SAAS,CAAC,WAAW;oBAC9B,UAAU,EAAE,IAAI,CAAC,MAAM;oBACvB,UAAU,EAAE,IAAI,CAAC,UAAU;oBAC3B,YAAY;oBACZ,UAAU;iBACX,CAAC,CAAC;gBACH,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,IAAI,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;gBAErF,OAAO,CAAC,aAAa,CAAC,YAAY,EAAE,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;gBACtE,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC;oBAChC,YAAY;oBACZ,SAAS;oBACT,gBAAgB,EAAE,SAAS,CAAC,WAAW;oBACvC,SAAS,EAAE,QAAQ,CAAC,SAAS;oBAC7B,KAAK,EAAE,QAAQ,CAAC,SAAS,KAAK,mBAAmB,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;iBAC/E,CAAC,CAAC;gBACH,OAAO,CAAC,cAAc,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;gBAE7C,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;oBACpB,MAAM,YAAY,CAAC,SAAS,CAAC;wBAC3B,YAAY;wBACZ,SAAS;wBACT,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;wBACnC,UAAU,EAAE,YAAY,CAAC,MAAM;wBAC/B,cAAc,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;wBACrF,WAAW,EAAE,IAAI,CAAC,MAAM;wBACxB,UAAU,EAAE;4BACV,UAAU,EAAE,IAAI,CAAC,MAAM;4BACvB,KAAK,EAAE,MAAM,CAAC,MAAM;4BACpB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;yBACpC;wBACD,QAAQ,EAAE;4BACR,eAAe,EAAE,MAAM,CAAC,MAAM;4BAC9B,QAAQ,EAAE,MAAM,CAAC,QAAQ;4BACzB,YAAY,EAAE,MAAM,CAAC,YAAY;4BACjC,SAAS,EAAE,QAAQ,CAAC,SAAS;4BAC7B,gBAAgB,EAAE,8BAA8B,CAAC,YAAY,EAAE,eAAe,CAAC;4BAC/E,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC;yBACnC;qBACF,CAAC,CAAC;oBACH,MAAM,IAAI,KAAK,CAAC,QAAQ,IAAI,CAAC,MAAM,YAAY,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;gBAClE,CAAC;gBAED,MAAM,YAAY,CAAC,SAAS,CAAC;oBAC3B,YAAY;oBACZ,SAAS;oBACT,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;oBACnC,UAAU,EAAE,YAAY,CAAC,MAAM;oBAC/B,cAAc,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;oBACpE,WAAW,EAAE,IAAI,CAAC,MAAM;oBACxB,QAAQ,EAAE;wBACR,eAAe,EAAE,MAAM,CAAC,MAAM;wBAC9B,QAAQ,EAAE,MAAM,CAAC,QAAQ;wBACzB,YAAY,EAAE,MAAM,CAAC,YAAY;wBACjC,SAAS,EAAE,QAAQ,CAAC,SAAS;wBAC7B,gBAAgB,EAAE,8BAA8B,CAAC,YAAY,EAAE,eAAe,CAAC;wBAC/E,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC;qBACnC;iBACF,CAAC,CAAC;gBAEH,GAAG,CAAC,UAAU,IAAI,CAAC,MAAM,wBAAwB,CAAC,CAAC;YACrD,CAAC;oBAAS,CAAC;gBACT,MAAM,SAAS,CAAC,OAAO,EAAE,CAAC;YAC5B,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,MAAM,YAAY,CAAC,UAAU,EAAE,CAAC;QAChC,GAAG,CAAC,sCAAsC,CAAC,CAAC;IAC9C,CAAC;IAEO,eAAe,CAAC,SAA+B;QACrD,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,OAAO;YACL,UAAU,EAAE,SAAS,CAAC,QAAQ;YAC9B,OAAO,EAAE,SAAS,CAAC,KAAK;YACxB,UAAU,EAAE,SAAS,CAAC,QAAQ;YAC9B,aAAa,EAAE,SAAS,CAAC,aAAa;YACtC,cAAc,EAAE,SAAS,CAAC,YAAY;YACtC,mBAAmB,EAAE,SAAS,CAAC,iBAAiB;YAChD,sBAAsB,EAAE,SAAS,CAAC,oBAAoB;SACvD,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAC/B,KAAmB,EACnB,QAAmD;QAEnD,IAAI,KAAK,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;QAC9B,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YAC5B,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;QACH,MAAM,KAAK,CAAC;IACd,CAAC;CACF"}
1
+ {"version":3,"file":"deployment-runner.js","sourceRoot":"","sources":["../../src/deployment/deployment-runner.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import type { WaveGraph } from '../waves/wave-graph.js';
2
2
  import { type CycleRemediationStatusSummary } from './deployment-state-summary.js';
3
3
  import { StateManager } from './state-manager.js';
4
+ import { SfCliIntegration } from './sf-cli-integration.js';
4
5
  export type DeploymentStatusSummary = {
5
6
  hasState: boolean;
6
7
  status: 'not-started' | 'in-progress' | 'failed' | 'completed';
@@ -31,10 +32,16 @@ export type ResumeSummary = {
31
32
  };
32
33
  export declare class DeploymentStatusService {
33
34
  private readonly stateManager;
34
- constructor(stateManager?: StateManager);
35
- getStatus(): Promise<DeploymentStatusSummary>;
35
+ private readonly sfCli;
36
+ constructor(stateManager?: StateManager, sfCli?: Pick<SfCliIntegration, 'checkDeploymentStatus'>);
37
+ getStatus(options?: {
38
+ targetOrg?: string;
39
+ }): Promise<DeploymentStatusSummary>;
36
40
  getResumeSummary(): Promise<ResumeSummary>;
37
41
  formatStatus(summary: DeploymentStatusSummary): string;
42
+ private refreshRemoteState;
43
+ private applyRemoteResult;
44
+ private isFailedRemoteStatus;
38
45
  private expandRemainingWaves;
39
46
  private normalizeStatus;
40
47
  private normalizeTestStatus;
@@ -1,15 +1,19 @@
1
1
  import { getLogger } from '../utils/logger.js';
2
2
  import { formatDeploymentStatus, summarizeDeploymentState, } from './deployment-state-summary.js';
3
3
  import { StateManager } from './state-manager.js';
4
+ import { SfCliIntegration } from './sf-cli-integration.js';
4
5
  import { buildWaveGraphFromState } from './wave-graph-state.js';
5
6
  const logger = getLogger('DeploymentStatusService');
6
7
  export class DeploymentStatusService {
7
8
  stateManager;
8
- constructor(stateManager = new StateManager()) {
9
+ sfCli;
10
+ constructor(stateManager = new StateManager(), sfCli = new SfCliIntegration()) {
9
11
  this.stateManager = stateManager;
12
+ this.sfCli = sfCli;
10
13
  }
11
- async getStatus() {
12
- const state = await this.stateManager.loadState();
14
+ async getStatus(options = {}) {
15
+ const loadedState = await this.stateManager.loadState();
16
+ const state = loadedState && options.targetOrg ? await this.refreshRemoteState(loadedState, options.targetOrg) : loadedState;
13
17
  if (!state) {
14
18
  return {
15
19
  hasState: false,
@@ -101,6 +105,55 @@ export class DeploymentStatusService {
101
105
  cycleRemediation: summary.cycleRemediation,
102
106
  }).join('\n');
103
107
  }
108
+ async refreshRemoteState(state, targetOrg) {
109
+ const remoteResult = await this.sfCli.checkDeploymentStatus(state.deploymentId, targetOrg);
110
+ const updatedState = this.applyRemoteResult(state, targetOrg, remoteResult);
111
+ await this.stateManager.saveState(updatedState);
112
+ return updatedState;
113
+ }
114
+ applyRemoteResult(state, targetOrg, result) {
115
+ const metadata = {
116
+ ...(state.metadata ?? {}),
117
+ lastKnownStatus: result.status,
118
+ remoteStatus: result.status,
119
+ remoteStatusCheckedAt: new Date().toISOString(),
120
+ remoteComponentSuccesses: result.componentSuccesses,
121
+ remoteComponentFailures: result.componentFailures,
122
+ remoteTestsRun: result.testsRun,
123
+ remoteTestFailures: result.testFailures,
124
+ };
125
+ if (result.status === 'Succeeded' || result.status === 'Success') {
126
+ return {
127
+ ...state,
128
+ targetOrg,
129
+ completedWaves: Array.from({ length: state.totalWaves }, (_, index) => index + 1),
130
+ currentWave: state.totalWaves,
131
+ failedWave: undefined,
132
+ metadata,
133
+ };
134
+ }
135
+ if (this.isFailedRemoteStatus(result.status)) {
136
+ return {
137
+ ...state,
138
+ targetOrg,
139
+ failedWave: state.failedWave ?? {
140
+ waveNumber: state.currentWave ?? 1,
141
+ error: result.output,
142
+ timestamp: new Date().toISOString(),
143
+ },
144
+ metadata,
145
+ };
146
+ }
147
+ return {
148
+ ...state,
149
+ targetOrg,
150
+ failedWave: undefined,
151
+ metadata,
152
+ };
153
+ }
154
+ isFailedRemoteStatus(status) {
155
+ return ['Failed', 'Canceled', 'Error'].includes(status);
156
+ }
104
157
  expandRemainingWaves(currentWave, remainingCount, totalWaves) {
105
158
  return Array.from({ length: remainingCount }, (_, index) => currentWave + index).filter((wave) => wave <= totalWaves);
106
159
  }
@@ -1 +1 @@
1
- {"version":3,"file":"deployment-status-service.js","sourceRoot":"","sources":["../../src/deployment/deployment-status-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deployment-status-service.js","sourceRoot":"","sources":["../../src/deployment/deployment-status-service.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import type { MetadataDependencyKind } from '../types/metadata.js';
2
+ import type { CommitScopeOptions, CommitScopeSummary } from './commit-scope-service.js';
2
3
  export type DeploymentValidationIssue = {
3
4
  severity: 'error' | 'warning';
4
5
  message: string;
@@ -19,12 +20,14 @@ export type DeploymentValidationSummary = {
19
20
  aiProvider?: string;
20
21
  aiModel?: string;
21
22
  aiFallback?: boolean;
23
+ commitScope?: CommitScopeSummary;
22
24
  };
23
25
  export declare class DeploymentValidationService {
24
26
  private readonly projectAnalysisService;
25
27
  private readonly xmlValidator;
26
28
  validateProject(sourcePath?: string, options?: {
27
29
  useAI?: boolean;
30
+ commitScope?: CommitScopeOptions;
28
31
  }): Promise<DeploymentValidationSummary>;
29
32
  private createWaveDependencyRiskIssues;
30
33
  private findXmlMetadataFiles;
@@ -10,7 +10,11 @@ export class DeploymentValidationService {
10
10
  projectAnalysisService = new ProjectAnalysisService();
11
11
  xmlValidator = new XmlMetadataValidator();
12
12
  async validateProject(sourcePath, options = {}) {
13
- const analysis = await this.projectAnalysisService.buildAnalysis({ sourcePath });
13
+ const analysis = await this.projectAnalysisService.buildAnalysis({
14
+ sourcePath,
15
+ useAI: options.useAI,
16
+ commitScope: options.commitScope,
17
+ });
14
18
  const { scanResult, waveResult } = analysis;
15
19
  const issues = [];
16
20
  const dependencyBreakdown = scanResult.dependencyResult.edges.reduce((accumulator, edge) => ({
@@ -41,7 +45,7 @@ export class DeploymentValidationService {
41
45
  });
42
46
  }
43
47
  issues.push(...this.createWaveDependencyRiskIssues(scanResult.dependencyResult.edges, waveResult.waves));
44
- const xmlFiles = await this.findXmlMetadataFiles(scanResult.projectRoot);
48
+ const xmlFiles = await this.findXmlMetadataFiles(scanResult.projectRoot, analysis.commitScope?.enabled ? scanResult.components : undefined);
45
49
  const xmlResults = await this.xmlValidator.validateFiles(xmlFiles);
46
50
  for (const result of xmlResults) {
47
51
  for (const error of result.errors) {
@@ -112,6 +116,7 @@ export class DeploymentValidationService {
112
116
  aiProvider,
113
117
  aiModel,
114
118
  aiFallback,
119
+ commitScope: analysis.commitScope,
115
120
  };
116
121
  }
117
122
  createWaveDependencyRiskIssues(edges, waves) {
@@ -149,16 +154,39 @@ export class DeploymentValidationService {
149
154
  ];
150
155
  });
151
156
  }
152
- async findXmlMetadataFiles(projectRoot) {
157
+ async findXmlMetadataFiles(projectRoot, scopedComponents) {
153
158
  const files = await globAsync('**/*-meta.xml', {
154
159
  cwd: projectRoot,
155
160
  absolute: true,
156
161
  ignore: ['**/node_modules/**', '**/.git/**'],
157
162
  });
163
+ const scopedPaths = scopedComponents ? createScopedXmlPathMatcher(projectRoot, scopedComponents) : undefined;
158
164
  return files.filter((filePath) => {
159
165
  const normalized = filePath.split(path.sep).join('/');
160
- return !normalized.includes('/node_modules/') && !normalized.includes('/.git/');
166
+ return (!normalized.includes('/node_modules/') &&
167
+ !normalized.includes('/.git/') &&
168
+ (!scopedPaths || scopedPaths(filePath)));
161
169
  });
162
170
  }
163
171
  }
172
+ function createScopedXmlPathMatcher(projectRoot, components) {
173
+ const exactPaths = new Set();
174
+ const directoryPrefixes = [];
175
+ for (const component of components) {
176
+ const relativePath = normalizeRelativePath(projectRoot, component.filePath);
177
+ exactPaths.add(relativePath);
178
+ exactPaths.add(`${relativePath}-meta.xml`);
179
+ if (component.type === 'LightningComponentBundle' || component.type === 'AuraDefinitionBundle') {
180
+ directoryPrefixes.push(`${relativePath}/`);
181
+ }
182
+ }
183
+ return (filePath) => {
184
+ const relativePath = normalizeRelativePath(projectRoot, filePath);
185
+ return exactPaths.has(relativePath) || directoryPrefixes.some((prefix) => relativePath.startsWith(prefix));
186
+ };
187
+ }
188
+ function normalizeRelativePath(projectRoot, filePath) {
189
+ const relativePath = path.isAbsolute(filePath) ? path.relative(projectRoot, filePath) : filePath;
190
+ return relativePath.split(path.sep).join('/');
191
+ }
164
192
  //# sourceMappingURL=deployment-validation-service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"deployment-validation-service.js","sourceRoot":"","sources":["../../src/deployment/deployment-validation-service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,IAAI,IAAI,SAAS,EAAE,MAAM,MAAM,CAAC;AACzC,OAAO,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AACjF,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAC;AAC/E,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAG9D,MAAM,MAAM,GAAG,SAAS,CAAC,6BAA6B,CAAC,CAAC;AAyBxD,MAAM,OAAO,2BAA2B;IACrB,sBAAsB,GAAG,IAAI,sBAAsB,EAAE,CAAC;IACtD,YAAY,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAEpD,KAAK,CAAC,eAAe,CAC1B,UAAmB,EACnB,UAA+B,EAAE;QAEjC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,aAAa,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;QACjF,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,QAAQ,CAAC;QAC5C,MAAM,MAAM,GAAgC,EAAE,CAAC;QAC/C,MAAM,mBAAmB,GAAG,UAAU,CAAC,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAClE,CAAC,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;YACtB,GAAG,WAAW;YACd,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;SACxC,CAAC,EACF;YACE,IAAI,EAAE,CAAC;YACP,IAAI,EAAE,CAAC;YACP,QAAQ,EAAE,CAAC;SACZ,CACF,CAAC;QAEF,MAAM,CAAC,IAAI,CACT,GAAG,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAgB,EAAE,OAAO,EAAE,CAAC,CAAC,EAChF,GAAG,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,SAAkB,EAAE,OAAO,EAAE,CAAC,CAAC,CACrF,CAAC;QAEF,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YACzC,MAAM,CAAC,IAAI,CAAC;gBACV,QAAQ,EAAE,OAAO;gBACjB,OAAO,EAAE,oDAAoD;aAC9D,CAAC,CAAC;QACL,CAAC;QAED,IAAI,UAAU,CAAC,oBAAoB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/C,MAAM,CAAC,IAAI,CAAC;gBACV,QAAQ,EAAE,OAAO;gBACjB,OAAO,EAAE,GAAG,UAAU,CAAC,oBAAoB,CAAC,MAAM,yCAAyC;aAC5F,CAAC,CAAC;QACL,CAAC;QAED,IAAI,UAAU,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7C,MAAM,CAAC,IAAI,CAAC;gBACV,QAAQ,EAAE,SAAS;gBACnB,OAAO,EAAE,GAAG,UAAU,CAAC,kBAAkB,CAAC,MAAM,0CAA0C;aAC3F,CAAC,CAAC;QACL,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,8BAA8B,CAAC,UAAU,CAAC,gBAAgB,CAAC,KAAK,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;QAEzG,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QACzE,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACnE,KAAK,MAAM,MAAM,IAAI,UAAU,EAAE,CAAC;YAChC,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;gBAClC,MAAM,CAAC,IAAI,CAAC;oBACV,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,QAAQ,EAAE,MAAM,CAAC,QAAQ;iBAC1B,CAAC,CAAC;YACL,CAAC;YAED,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACtC,MAAM,CAAC,IAAI,CAAC;oBACV,QAAQ,EAAE,SAAS;oBACnB,OAAO,EAAE,OAAO,CAAC,OAAO;oBACxB,QAAQ,EAAE,MAAM,CAAC,QAAQ;iBAC1B,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,IAAI,UAAU,GAAG,KAAK,CAAC;QACvB,IAAI,WAAuD,CAAC;QAC5D,IAAI,UAA8B,CAAC;QACnC,IAAI,OAA2B,CAAC;QAChC,IAAI,UAA+B,CAAC;QAEpC,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YAClB,MAAM,mBAAmB,GAAG,IAAI,qBAAqB,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC;YAC3F,MAAM,YAAY,GAAG,MAAM,mBAAmB,CAAC,aAAa,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YAC/E,MAAM,cAAc,GAAG,mBAAmB,CAAC,iBAAiB,EAAE,CAAC;YAE/D,UAAU,GAAG,YAAY,CAAC,UAAU,CAAC;YACrC,WAAW,GAAG,YAAY,CAAC,WAAW,CAAC;YACvC,UAAU,GAAG,cAAc,CAAC,QAAQ,CAAC;YACrC,OAAO,GAAG,cAAc,CAAC,KAAK,CAAC;YAC/B,UAAU,GAAG,CAAC,YAAY,CAAC,UAAU,CAAC;YAEtC,KAAK,MAAM,KAAK,IAAI,YAAY,CAAC,MAAM,EAAE,CAAC;gBACxC,MAAM,CAAC,IAAI,CAAC;oBACV,QAAQ,EAAE,KAAK,CAAC,QAAQ,KAAK,MAAM,IAAI,KAAK,CAAC,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;oBAC1F,OAAO,EAAE,OAAO,KAAK,CAAC,QAAQ,KAAK,KAAK,CAAC,OAAO,EAAE;oBAClD,UAAU,EAAE,KAAK,CAAC,UAAU;iBAC7B,CAAC,CAAC;YACL,CAAC;YAED,KAAK,MAAM,UAAU,IAAI,YAAY,CAAC,eAAe,EAAE,CAAC;gBACtD,IAAI,UAAU,CAAC,SAAS,KAAK,MAAM,IAAI,UAAU,CAAC,SAAS,KAAK,UAAU,EAAE,CAAC;oBAC3E,MAAM,CAAC,IAAI,CAAC;wBACV,QAAQ,EAAE,UAAU,CAAC,SAAS,KAAK,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;wBACnE,OAAO,EAAE,kBAAkB,UAAU,CAAC,UAAU,gBAAgB,UAAU,CAAC,SAAS,KAClF,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,+BACvC,EAAE;wBACF,UAAU,EAAE,UAAU,CAAC,UAAU;qBAClC,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC;QAElE,MAAM,CAAC,IAAI,CAAC,gCAAgC,EAAE;YAC5C,UAAU,EAAE,UAAU,CAAC,UAAU,CAAC,MAAM;YACxC,UAAU,EAAE,UAAU,CAAC,KAAK,CAAC,MAAM;YACnC,iBAAiB,EAAE,QAAQ,CAAC,MAAM;YAClC,KAAK;YACL,MAAM,EAAE,MAAM,CAAC,MAAM;SACtB,CAAC,CAAC;QAEH,OAAO;YACL,KAAK;YACL,UAAU,EAAE,UAAU,CAAC,UAAU,CAAC,MAAM;YACxC,YAAY,EAAE,UAAU,CAAC,gBAAgB,CAAC,KAAK,CAAC,iBAAiB;YACjE,mBAAmB;YACnB,UAAU,EAAE,UAAU,CAAC,KAAK,CAAC,MAAM;YACnC,aAAa,EAAE,UAAU,CAAC,KAAK,CAAC,kBAAkB;YAClD,iBAAiB,EAAE,QAAQ,CAAC,MAAM;YAClC,MAAM;YACN,UAAU;YACV,WAAW;YACX,UAAU;YACV,OAAO;YACP,UAAU;SACX,CAAC;IACJ,CAAC;IAEO,8BAA8B,CACpC,KAAkE,EAClE,KAAsD;QAEtD,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YAC5B,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAChD,IAAI,SAAS,GAAG,CAAC,CAAC;YAClB,IAAI,aAAa,GAAG,CAAC,CAAC;YAEtB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;oBACnC,SAAS;gBACX,CAAC;gBAED,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;oBACzB,SAAS,IAAI,CAAC,CAAC;gBACjB,CAAC;qBAAM,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;oBACpC,aAAa,IAAI,CAAC,CAAC;gBACrB,CAAC;YACH,CAAC;YAED,IAAI,SAAS,KAAK,CAAC,IAAI,aAAa,KAAK,CAAC,EAAE,CAAC;gBAC3C,OAAO,EAAE,CAAC;YACZ,CAAC;YAED,MAAM,KAAK,GAAa,EAAE,CAAC;YAC3B,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;gBAClB,KAAK,CAAC,IAAI,CAAC,GAAG,SAAS,kBAAkB,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;YAC5E,CAAC;YACD,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC;gBACtB,KAAK,CAAC,IAAI,CAAC,GAAG,aAAa,sBAAsB,aAAa,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;YACxF,CAAC;YAED,OAAO;gBACL;oBACE,QAAQ,EAAE,SAAkB;oBAC5B,UAAU,EAAE,IAAI,CAAC,MAAM;oBACvB,OAAO,EAAE,QAAQ,IAAI,CAAC,MAAM,aAAa,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,6CAA6C;iBAC1G;aACF,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,oBAAoB,CAAC,WAAmB;QACpD,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,eAAe,EAAE;YAC7C,GAAG,EAAE,WAAW;YAChB,QAAQ,EAAE,IAAI;YACd,MAAM,EAAE,CAAC,oBAAoB,EAAE,YAAY,CAAC;SAC7C,CAAC,CAAC;QAEH,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE;YAC/B,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACtD,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAClF,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
1
+ {"version":3,"file":"deployment-validation-service.js","sourceRoot":"","sources":["../../src/deployment/deployment-validation-service.ts"],"names":[],"mappings":"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"}