@jterrats/smart-deployment 1.2.6 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (171) hide show
  1. package/README.md +69 -1
  2. package/lib/analysis/metadata-capability-definitions.d.ts +2 -0
  3. package/lib/analysis/metadata-capability-definitions.js +260 -0
  4. package/lib/analysis/metadata-capability-definitions.js.map +1 -0
  5. package/lib/analysis/metadata-capability-registry.d.ts +11 -0
  6. package/lib/analysis/metadata-capability-registry.js +142 -0
  7. package/lib/analysis/metadata-capability-registry.js.map +1 -0
  8. package/lib/analysis/metadata-gap-analysis-service.d.ts +51 -0
  9. package/lib/analysis/metadata-gap-analysis-service.js +277 -0
  10. package/lib/analysis/metadata-gap-analysis-service.js.map +1 -0
  11. package/lib/analysis/project-analysis-service.d.ts +5 -0
  12. package/lib/analysis/project-analysis-service.js +18 -0
  13. package/lib/analysis/project-analysis-service.js.map +1 -1
  14. package/lib/commands/ci/preset.d.ts +25 -0
  15. package/lib/commands/ci/preset.js +125 -0
  16. package/lib/commands/ci/preset.js.map +1 -0
  17. package/lib/commands/ci-publish.d.ts +6 -2
  18. package/lib/commands/ci-publish.js +23 -8
  19. package/lib/commands/ci-publish.js.map +1 -1
  20. package/lib/commands/graph/export.d.ts +20 -0
  21. package/lib/commands/graph/export.js +107 -0
  22. package/lib/commands/graph/export.js.map +1 -0
  23. package/lib/commands/impact.d.ts +18 -0
  24. package/lib/commands/impact.js +105 -0
  25. package/lib/commands/impact.js.map +1 -0
  26. package/lib/commands/init.d.ts +19 -0
  27. package/lib/commands/init.js +83 -0
  28. package/lib/commands/init.js.map +1 -0
  29. package/lib/commands/metadata/gaps.d.ts +15 -0
  30. package/lib/commands/metadata/gaps.js +84 -0
  31. package/lib/commands/metadata/gaps.js.map +1 -0
  32. package/lib/commands/plan/explain.d.ts +14 -0
  33. package/lib/commands/plan/explain.js +134 -0
  34. package/lib/commands/plan/explain.js.map +1 -0
  35. package/lib/commands/resume.d.ts +1 -0
  36. package/lib/commands/resume.js +19 -4
  37. package/lib/commands/resume.js.map +1 -1
  38. package/lib/commands/retrieve.d.ts +20 -0
  39. package/lib/commands/retrieve.js +111 -0
  40. package/lib/commands/retrieve.js.map +1 -0
  41. package/lib/commands/start.d.ts +27 -0
  42. package/lib/commands/start.js +159 -20
  43. package/lib/commands/start.js.map +1 -1
  44. package/lib/commands/status.d.ts +1 -0
  45. package/lib/commands/status.js +19 -4
  46. package/lib/commands/status.js.map +1 -1
  47. package/lib/commands/validate.d.ts +15 -0
  48. package/lib/commands/validate.js +37 -1
  49. package/lib/commands/validate.js.map +1 -1
  50. package/lib/config/init-config-generation-service.d.ts +27 -0
  51. package/lib/config/init-config-generation-service.js +88 -0
  52. package/lib/config/init-config-generation-service.js.map +1 -0
  53. package/lib/config/repo-config.d.ts +25 -0
  54. package/lib/config/repo-config.js.map +1 -1
  55. package/lib/constants/deployment-order.js +1 -0
  56. package/lib/constants/deployment-order.js.map +1 -1
  57. package/lib/dependencies/impact-analysis-service.d.ts +77 -0
  58. package/lib/dependencies/impact-analysis-service.js +234 -0
  59. package/lib/dependencies/impact-analysis-service.js.map +1 -0
  60. package/lib/deployment/ci-preset-service.d.ts +44 -0
  61. package/lib/deployment/ci-preset-service.js +65 -0
  62. package/lib/deployment/ci-preset-service.js.map +1 -0
  63. package/lib/deployment/commit-scope-service.d.ts +50 -0
  64. package/lib/deployment/commit-scope-service.js +292 -0
  65. package/lib/deployment/commit-scope-service.js.map +1 -0
  66. package/lib/deployment/deployment-context-service.d.ts +3 -0
  67. package/lib/deployment/deployment-context-service.js +1 -0
  68. package/lib/deployment/deployment-context-service.js.map +1 -1
  69. package/lib/deployment/deployment-error-diagnostics.d.ts +11 -0
  70. package/lib/deployment/deployment-error-diagnostics.js +187 -0
  71. package/lib/deployment/deployment-error-diagnostics.js.map +1 -0
  72. package/lib/deployment/deployment-runner.d.ts +1 -0
  73. package/lib/deployment/deployment-runner.js +37 -16
  74. package/lib/deployment/deployment-runner.js.map +1 -1
  75. package/lib/deployment/deployment-status-service.d.ts +10 -2
  76. package/lib/deployment/deployment-status-service.js +74 -3
  77. package/lib/deployment/deployment-status-service.js.map +1 -1
  78. package/lib/deployment/deployment-validation-service.d.ts +5 -0
  79. package/lib/deployment/deployment-validation-service.js +34 -4
  80. package/lib/deployment/deployment-validation-service.js.map +1 -1
  81. package/lib/deployment/plan-explain-service.d.ts +88 -0
  82. package/lib/deployment/plan-explain-service.js +171 -0
  83. package/lib/deployment/plan-explain-service.js.map +1 -0
  84. package/lib/deployment/resume-deployment-service.d.ts +7 -2
  85. package/lib/deployment/resume-deployment-service.js +24 -3
  86. package/lib/deployment/resume-deployment-service.js.map +1 -1
  87. package/lib/deployment/retrieve-forceignore-service.d.ts +51 -0
  88. package/lib/deployment/retrieve-forceignore-service.js +139 -0
  89. package/lib/deployment/retrieve-forceignore-service.js.map +1 -0
  90. package/lib/deployment/rollback-planning-service.d.ts +49 -0
  91. package/lib/deployment/rollback-planning-service.js +178 -0
  92. package/lib/deployment/rollback-planning-service.js.map +1 -0
  93. package/lib/deployment/sf-cli-integration.d.ts +7 -0
  94. package/lib/deployment/sf-cli-integration.js +35 -3
  95. package/lib/deployment/sf-cli-integration.js.map +1 -1
  96. package/lib/deployment/special-deployment-plan.js +36 -49
  97. package/lib/deployment/special-deployment-plan.js.map +1 -1
  98. package/lib/deployment/start-execution-service.d.ts +1 -0
  99. package/lib/deployment/start-execution-service.js +14 -8
  100. package/lib/deployment/start-execution-service.js.map +1 -1
  101. package/lib/deployment/wave-manifest-service.d.ts +8 -0
  102. package/lib/deployment/wave-manifest-service.js +39 -20
  103. package/lib/deployment/wave-manifest-service.js.map +1 -1
  104. package/lib/presentation/plan-explain-presenter.d.ts +9 -0
  105. package/lib/presentation/plan-explain-presenter.js +40 -0
  106. package/lib/presentation/plan-explain-presenter.js.map +1 -0
  107. package/lib/presentation/release-report-presenter.d.ts +10 -0
  108. package/lib/presentation/release-report-presenter.js +35 -0
  109. package/lib/presentation/release-report-presenter.js.map +1 -0
  110. package/lib/presentation/start-command-presenter.d.ts +4 -0
  111. package/lib/presentation/start-command-presenter.js +4 -0
  112. package/lib/presentation/start-command-presenter.js.map +1 -1
  113. package/lib/presentation/validate-command-presenter.js +13 -0
  114. package/lib/presentation/validate-command-presenter.js.map +1 -1
  115. package/lib/reports/deployment-plan-report-service.d.ts +76 -0
  116. package/lib/reports/deployment-plan-report-service.js +234 -0
  117. package/lib/reports/deployment-plan-report-service.js.map +1 -0
  118. package/lib/reports/graph-export-service.d.ts +85 -0
  119. package/lib/reports/graph-export-service.js +296 -0
  120. package/lib/reports/graph-export-service.js.map +1 -0
  121. package/lib/reports/release-report-builder.d.ts +6 -0
  122. package/lib/reports/release-report-builder.js +115 -0
  123. package/lib/reports/release-report-builder.js.map +1 -0
  124. package/lib/reports/release-report-command-adapter.d.ts +14 -0
  125. package/lib/reports/release-report-command-adapter.js +28 -0
  126. package/lib/reports/release-report-command-adapter.js.map +1 -0
  127. package/lib/reports/release-report-facts-factory.d.ts +14 -0
  128. package/lib/reports/release-report-facts-factory.js +140 -0
  129. package/lib/reports/release-report-facts-factory.js.map +1 -0
  130. package/lib/reports/release-report-sanitizer.d.ts +5 -0
  131. package/lib/reports/release-report-sanitizer.js +120 -0
  132. package/lib/reports/release-report-sanitizer.js.map +1 -0
  133. package/lib/reports/release-report-service.d.ts +43 -0
  134. package/lib/reports/release-report-service.js +80 -0
  135. package/lib/reports/release-report-service.js.map +1 -0
  136. package/lib/reports/release-report-store.d.ts +30 -0
  137. package/lib/reports/release-report-store.js +57 -0
  138. package/lib/reports/release-report-store.js.map +1 -0
  139. package/lib/reports/start-release-report-coordinator.d.ts +15 -0
  140. package/lib/reports/start-release-report-coordinator.js +23 -0
  141. package/lib/reports/start-release-report-coordinator.js.map +1 -0
  142. package/lib/services/metadata-scanner-service.js +14 -2
  143. package/lib/services/metadata-scanner-service.js.map +1 -1
  144. package/lib/services/scanners/automation-ai-metadata-scanner.d.ts +3 -1
  145. package/lib/services/scanners/automation-ai-metadata-scanner.js +87 -0
  146. package/lib/services/scanners/automation-ai-metadata-scanner.js.map +1 -1
  147. package/lib/types/index.d.ts +2 -0
  148. package/lib/types/index.js +2 -0
  149. package/lib/types/index.js.map +1 -1
  150. package/lib/types/metadata-capability.d.ts +39 -0
  151. package/lib/types/metadata-capability.js +2 -0
  152. package/lib/types/metadata-capability.js.map +1 -0
  153. package/lib/types/metadata.d.ts +7 -1
  154. package/lib/types/release-report.d.ts +89 -0
  155. package/lib/types/release-report.js +42 -0
  156. package/lib/types/release-report.js.map +1 -0
  157. package/messages/ci.preset.json +22 -0
  158. package/messages/graph.export.json +20 -0
  159. package/messages/impact.json +18 -0
  160. package/messages/init.json +16 -0
  161. package/messages/metadata.gaps.json +12 -0
  162. package/messages/plan.explain.json +20 -0
  163. package/messages/resume.json +1 -0
  164. package/messages/retrieve.json +26 -0
  165. package/messages/start.json +18 -2
  166. package/messages/status.json +1 -0
  167. package/messages/validate.json +5 -1
  168. package/npm-shrinkwrap.json +436 -945
  169. package/oclif.lock +446 -746
  170. package/oclif.manifest.json +975 -116
  171. package/package.json +26 -21
@@ -16,12 +16,15 @@
16
16
  * @issue #46
17
17
  */
18
18
  import { Messages } from '@salesforce/core';
19
- import { Flags, SfCommand, optionalOrgFlagWithDeprecations } from '@salesforce/sf-plugins-core';
19
+ import { Flags, SfCommand } from '@salesforce/sf-plugins-core';
20
20
  import { getLogger } from '../utils/logger.js';
21
21
  import { StartExecutionService } from '../deployment/start-execution-service.js';
22
22
  import { DeploymentContextService } from '../deployment/deployment-context-service.js';
23
23
  import { ProjectAnalysisPresenter } from '../presentation/project-analysis-presenter.js';
24
24
  import { StartCommandPresenter } from '../presentation/start-command-presenter.js';
25
+ import { StartReleaseReportCoordinator } from '../reports/start-release-report-coordinator.js';
26
+ import { DeploymentPlanReportService } from '../reports/deployment-plan-report-service.js';
27
+ import { RollbackPlanningService } from '../deployment/rollback-planning-service.js';
25
28
  Messages.importMessagesDirectoryFromMetaUrl(import.meta.url);
26
29
  const messages = Messages.loadMessages('@jterrats/smart-deployment', 'start');
27
30
  const logger = getLogger('StartCommand');
@@ -29,6 +32,9 @@ const deploymentContextService = new DeploymentContextService();
29
32
  const startExecutionService = new StartExecutionService();
30
33
  const projectAnalysisPresenter = new ProjectAnalysisPresenter();
31
34
  const presenter = new StartCommandPresenter();
35
+ const deploymentPlanReportService = new DeploymentPlanReportService();
36
+ const rollbackPlanningService = new RollbackPlanningService();
37
+ const startReleaseReportCoordinator = new StartReleaseReportCoordinator();
32
38
  export default class Start extends SfCommand {
33
39
  static aliases = ['smart-deployment start'];
34
40
  static summary = messages.getMessage('summary');
@@ -42,7 +48,10 @@ export default class Start extends SfCommand {
42
48
  * @ac US-057-AC-1: Send component list to Agentforce
43
49
  */
44
50
  static flags = {
45
- 'target-org': optionalOrgFlagWithDeprecations,
51
+ 'target-org': Flags.string({
52
+ summary: messages.getMessage('flags.target-org.summary'),
53
+ char: 'o',
54
+ }),
46
55
  'dry-run': Flags.boolean({
47
56
  summary: messages.getMessage('flags.dry-run.summary'),
48
57
  char: 'd',
@@ -62,6 +71,10 @@ export default class Start extends SfCommand {
62
71
  summary: messages.getMessage('flags.source-path.summary'),
63
72
  description: messages.getMessage('flags.source-path.description'),
64
73
  }),
74
+ 'report-dir': Flags.string({
75
+ summary: messages.getMessage('flags.report-dir.summary'),
76
+ description: messages.getMessage('flags.report-dir.description'),
77
+ }),
65
78
  'allow-cycle-remediation': Flags.boolean({
66
79
  summary: messages.getMessage('flags.allow-cycle-remediation.summary'),
67
80
  description: messages.getMessage('flags.allow-cycle-remediation.description'),
@@ -81,6 +94,31 @@ export default class Start extends SfCommand {
81
94
  summary: messages.getMessage('flags.industry.summary'),
82
95
  description: messages.getMessage('flags.industry.description'),
83
96
  }),
97
+ 'scope-commits': Flags.string({
98
+ summary: messages.getMessage('flags.scope-commits.summary'),
99
+ description: messages.getMessage('flags.scope-commits.description'),
100
+ }),
101
+ 'scope-manifest': Flags.string({
102
+ summary: messages.getMessage('flags.scope-manifest.summary'),
103
+ description: messages.getMessage('flags.scope-manifest.description'),
104
+ }),
105
+ 'scope-manifest-output': Flags.string({
106
+ summary: messages.getMessage('flags.scope-manifest-output.summary'),
107
+ description: messages.getMessage('flags.scope-manifest-output.description'),
108
+ }),
109
+ destructive: Flags.boolean({
110
+ summary: messages.getMessage('flags.destructive.summary'),
111
+ description: messages.getMessage('flags.destructive.description'),
112
+ default: false,
113
+ }),
114
+ 'rollback-from': Flags.string({
115
+ summary: messages.getMessage('flags.rollback-from.summary'),
116
+ description: messages.getMessage('flags.rollback-from.description'),
117
+ }),
118
+ 'rollback-to': Flags.string({
119
+ summary: messages.getMessage('flags.rollback-to.summary'),
120
+ description: messages.getMessage('flags.rollback-to.description'),
121
+ }),
84
122
  };
85
123
  /**
86
124
  * @ac US-046-AC-8: Shows progress bar
@@ -90,49 +128,143 @@ export default class Start extends SfCommand {
90
128
  async run() {
91
129
  const { flags } = await this.parse(Start);
92
130
  const sourcePath = typeof flags['source-path'] === 'string' ? flags['source-path'] : undefined;
131
+ const commitScope = this.getCommitScopeOptions(flags);
132
+ const rollbackOptions = this.getRollbackOptions(flags);
133
+ let rollbackPlan;
134
+ let deploymentContext;
93
135
  try {
94
136
  logger.info('Starting smart deployment', { flags: this.toLoggableFlags(flags) });
95
137
  this.log('📊 Analyzing metadata...');
96
- const deploymentContext = await deploymentContextService.buildContext({
138
+ const activeContext = await deploymentContextService.buildContext({
97
139
  sourcePath,
98
140
  useAI: Boolean(flags['use-ai']),
99
141
  orgType: typeof flags['org-type'] === 'string' ? flags['org-type'] : undefined,
100
142
  industry: typeof flags.industry === 'string' ? flags.industry : undefined,
143
+ commitScope,
101
144
  });
102
- projectAnalysisPresenter.reportDiagnostics(this, deploymentContext.scanResult, deploymentContext.messages);
103
- const metadataCount = deploymentContext.scanResult.components.length;
104
- const waves = deploymentContext.orderedWaves.length;
145
+ deploymentContext = activeContext;
146
+ if (rollbackOptions) {
147
+ rollbackPlan = await rollbackPlanningService.buildExecutionPlan({
148
+ projectRoot: activeContext.scanResult.projectRoot,
149
+ fromRef: rollbackOptions.from,
150
+ toRef: rollbackOptions.to,
151
+ currentContext: activeContext,
152
+ buildContext: async (rollbackSourcePath) => deploymentContextService.buildContext({
153
+ sourcePath: rollbackSourcePath,
154
+ useAI: Boolean(flags['use-ai']),
155
+ orgType: typeof flags['org-type'] === 'string' ? flags['org-type'] : undefined,
156
+ industry: typeof flags.industry === 'string' ? flags.industry : undefined,
157
+ }),
158
+ });
159
+ }
160
+ projectAnalysisPresenter.reportDiagnostics(this, activeContext.scanResult, activeContext.messages);
161
+ const metadataCount = activeContext.scanResult.components.length;
162
+ const waves = activeContext.orderedWaves.length;
105
163
  presenter.reportAnalysisSummary(this, {
106
164
  metadataCount,
107
165
  waves,
108
166
  aiEnabled: Boolean(flags['use-ai']),
109
167
  });
110
- const executionOptions = {
168
+ const executionTargets = rollbackPlan
169
+ ? [
170
+ { deploymentContext: rollbackPlan.destructiveContext, destructive: true },
171
+ { deploymentContext: rollbackPlan.restoreContext, destructive: false },
172
+ ].filter((target) => Boolean(target.deploymentContext))
173
+ : [{ deploymentContext: activeContext, destructive: flags.destructive === true }];
174
+ await executionTargets.reduce(async (previous, target) => {
175
+ await previous;
176
+ const executionOptions = {
177
+ dryRun: flags['dry-run'] === true,
178
+ validateOnly: flags['validate-only'] === true,
179
+ allowCycleRemediation: flags['allow-cycle-remediation'] === true,
180
+ skipTests: flags['skip-tests'] === true,
181
+ destructive: target.destructive,
182
+ targetOrg: this.getTargetOrgIdentifier(flags['target-org']),
183
+ sourcePath: target.deploymentContext.scanResult.projectRoot,
184
+ deploymentContext: target.deploymentContext,
185
+ log: this.log.bind(this),
186
+ };
187
+ if (!executionOptions.dryRun && !executionOptions.validateOnly) {
188
+ presenter.reportExecutionStart(this);
189
+ }
190
+ const executionResult = await startExecutionService.execute(executionOptions);
191
+ if (executionResult.kind === 'skipped') {
192
+ presenter.reportExecutionSkipped(this, executionResult.reason);
193
+ }
194
+ }, Promise.resolve());
195
+ const reportOptions = {
196
+ reportDir: typeof flags['report-dir'] === 'string' ? flags['report-dir'] : undefined,
197
+ targetOrg: this.getTargetOrgIdentifier(flags['target-org']),
198
+ sourcePath,
111
199
  dryRun: flags['dry-run'] === true,
112
200
  validateOnly: flags['validate-only'] === true,
113
- allowCycleRemediation: flags['allow-cycle-remediation'] === true,
201
+ destructive: flags.destructive === true || rollbackPlan !== undefined,
114
202
  skipTests: flags['skip-tests'] === true,
115
- targetOrg: this.getTargetOrgIdentifier(flags['target-org']),
116
- sourcePath,
117
- deploymentContext,
118
- log: this.log.bind(this),
119
203
  };
120
- if (!executionOptions.dryRun && !executionOptions.validateOnly) {
121
- presenter.reportExecutionStart(this);
122
- }
123
- const executionResult = await startExecutionService.execute(executionOptions);
124
- if (executionResult.kind === 'skipped') {
125
- presenter.reportExecutionSkipped(this, executionResult.reason);
126
- }
127
204
  presenter.reportReportGenerationStart(this);
205
+ const reportResult = reportOptions.dryRun || reportOptions.validateOnly
206
+ ? await deploymentPlanReportService.generate(activeContext, reportOptions)
207
+ : undefined;
128
208
  presenter.reportDeploymentReport(this, waves);
129
- return { success: true, waves, ai: deploymentContext.aiContext };
209
+ if (reportResult) {
210
+ presenter.reportPlanReportsSaved(this, reportResult);
211
+ }
212
+ const result = {
213
+ success: true,
214
+ waves,
215
+ reports: reportResult ? { jsonPath: reportResult.jsonPath, htmlPath: reportResult.htmlPath } : undefined,
216
+ commitScope: activeContext.commitScope,
217
+ rollback: rollbackPlan
218
+ ? {
219
+ enabled: true,
220
+ from: rollbackPlan.summary.from,
221
+ to: rollbackPlan.summary.to,
222
+ destructiveComponents: rollbackPlan.summary.destructiveComponents,
223
+ restoreComponents: rollbackPlan.summary.restoreComponents,
224
+ }
225
+ : undefined,
226
+ ai: activeContext.aiContext,
227
+ };
228
+ return await startReleaseReportCoordinator.finalizeSuccess(this, result, activeContext, {
229
+ targetOrg: this.getTargetOrgIdentifier(flags['target-org']),
230
+ dryRun: flags['dry-run'] === true,
231
+ validateOnly: flags['validate-only'] === true,
232
+ reportDir: typeof flags['report-dir'] === 'string' ? flags['report-dir'] : undefined,
233
+ });
130
234
  }
131
235
  catch (error) {
132
236
  // AC-10: Handle failures gracefully
133
237
  logger.error('Deployment failed', { error });
238
+ if (deploymentContext) {
239
+ await startReleaseReportCoordinator.finalizeFailure(this, error, deploymentContext, {
240
+ targetOrg: this.getTargetOrgIdentifier(flags['target-org']),
241
+ dryRun: flags['dry-run'] === true,
242
+ validateOnly: flags['validate-only'] === true,
243
+ reportDir: typeof flags['report-dir'] === 'string' ? flags['report-dir'] : undefined,
244
+ });
245
+ }
134
246
  this.error(`Deployment failed: ${error instanceof Error ? error.message : String(error)}`);
247
+ throw error;
248
+ }
249
+ finally {
250
+ await rollbackPlan?.cleanup();
251
+ }
252
+ }
253
+ getCommitScopeOptions(flags) {
254
+ const commits = typeof flags['scope-commits'] === 'string' ? [flags['scope-commits']] : undefined;
255
+ const manifestPath = typeof flags['scope-manifest'] === 'string' ? flags['scope-manifest'] : undefined;
256
+ const outputManifestPath = typeof flags['scope-manifest-output'] === 'string' ? flags['scope-manifest-output'] : undefined;
257
+ return commits !== undefined || manifestPath !== undefined || outputManifestPath !== undefined
258
+ ? { commits, manifestPath, outputManifestPath }
259
+ : undefined;
260
+ }
261
+ getRollbackOptions(flags) {
262
+ const from = typeof flags['rollback-from'] === 'string' ? flags['rollback-from'] : undefined;
263
+ const to = typeof flags['rollback-to'] === 'string' ? flags['rollback-to'] : undefined;
264
+ if ((from === undefined) !== (to === undefined)) {
265
+ throw new Error('Rollback requires both --rollback-from and --rollback-to.');
135
266
  }
267
+ return from && to ? { from, to } : undefined;
136
268
  }
137
269
  getTargetOrgIdentifier(value) {
138
270
  if (typeof value === 'string' && value.length > 0) {
@@ -151,10 +283,17 @@ export default class Start extends SfCommand {
151
283
  'validate-only': flags['validate-only'] === true,
152
284
  'skip-tests': flags['skip-tests'] === true,
153
285
  'source-path': typeof flags['source-path'] === 'string' ? flags['source-path'] : undefined,
286
+ 'report-dir': typeof flags['report-dir'] === 'string' ? flags['report-dir'] : undefined,
154
287
  'allow-cycle-remediation': flags['allow-cycle-remediation'] === true,
155
288
  'use-ai': flags['use-ai'] === true,
156
289
  'org-type': typeof flags['org-type'] === 'string' ? flags['org-type'] : undefined,
157
290
  industry: typeof flags.industry === 'string' ? flags.industry : undefined,
291
+ 'scope-commits': typeof flags['scope-commits'] === 'string' ? flags['scope-commits'] : undefined,
292
+ 'scope-manifest': typeof flags['scope-manifest'] === 'string' ? flags['scope-manifest'] : undefined,
293
+ 'scope-manifest-output': typeof flags['scope-manifest-output'] === 'string' ? flags['scope-manifest-output'] : undefined,
294
+ destructive: flags.destructive === true,
295
+ 'rollback-from': typeof flags['rollback-from'] === 'string' ? flags['rollback-from'] : undefined,
296
+ 'rollback-to': typeof flags['rollback-to'] === 'string' ? flags['rollback-to'] : undefined,
158
297
  };
159
298
  }
160
299
  }
@@ -1 +1 @@
1
- {"version":3,"file":"start.js","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"start.js","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":"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"}
@@ -36,5 +36,6 @@ export default class Status extends SfCommand<StatusResult> {
36
36
  static readonly examples: string[];
37
37
  static readonly flags: Interfaces.FlagInput;
38
38
  run(): Promise<StatusResult>;
39
+ private getTargetOrgIdentifier;
39
40
  }
40
41
  export {};
@@ -10,7 +10,7 @@
10
10
  * @issue #50
11
11
  */
12
12
  import { Messages } from '@salesforce/core';
13
- import { Flags, SfCommand, optionalOrgFlagWithDeprecations } from '@salesforce/sf-plugins-core';
13
+ import { Flags, SfCommand } from '@salesforce/sf-plugins-core';
14
14
  import { DeploymentStatusService } from '../deployment/deployment-status-service.js';
15
15
  import { StatusCommandPresenter } from '../presentation/status-command-presenter.js';
16
16
  import { getLogger } from '../utils/logger.js';
@@ -24,19 +24,24 @@ export default class Status extends SfCommand {
24
24
  static summary = messages.getMessage('summary');
25
25
  static examples = messages.getMessages('examples');
26
26
  static flags = {
27
- 'target-org': optionalOrgFlagWithDeprecations,
27
+ 'target-org': Flags.string({
28
+ summary: messages.getMessage('flags.target-org.summary'),
29
+ char: 'o',
30
+ }),
28
31
  'source-path': Flags.directory({
29
32
  summary: messages.getMessage('flags.source-path.summary'),
30
33
  exists: true,
31
34
  }),
32
35
  };
33
36
  async run() {
34
- const { flags } = await this.parse(Status);
37
+ const parseResult = await this.parse(Status);
38
+ const { flags } = parseResult;
35
39
  const sourcePath = typeof flags['source-path'] === 'string' ? flags['source-path'] : undefined;
40
+ const targetOrg = this.getTargetOrgIdentifier(flags['target-org']);
36
41
  try {
37
42
  logger.info('Getting status', { flags });
38
43
  const statusService = new DeploymentStatusService(new StateManager({ baseDir: sourcePath }));
39
- const summary = await statusService.getStatus();
44
+ const summary = await statusService.getStatus({ refreshRemote: targetOrg !== undefined, targetOrg });
40
45
  const formattedStatus = statusService.formatStatus(summary);
41
46
  presenter.reportStatus(this, summary, formattedStatus);
42
47
  if (!summary.hasState) {
@@ -91,5 +96,15 @@ export default class Status extends SfCommand {
91
96
  this.error(`Status failed: ${error instanceof Error ? error.message : String(error)}`);
92
97
  }
93
98
  }
99
+ getTargetOrgIdentifier(value) {
100
+ if (typeof value === 'string' && value.length > 0) {
101
+ return value;
102
+ }
103
+ if (typeof value === 'object' && value !== null && 'getUsername' in value) {
104
+ const getUsername = value.getUsername;
105
+ return typeof getUsername === 'function' ? getUsername.call(value) : undefined;
106
+ }
107
+ return undefined;
108
+ }
94
109
  }
95
110
  //# sourceMappingURL=status.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,7 @@
12
12
  import { type Interfaces } from '@oclif/core';
13
13
  import { SfCommand } from '@salesforce/sf-plugins-core';
14
14
  import type { MetadataDependencyKind } from '../types/metadata.js';
15
+ import type { ReleaseReportV1 } from '../types/release-report.js';
15
16
  type ValidateResult = {
16
17
  success: boolean;
17
18
  components: number;
@@ -19,6 +20,15 @@ type ValidateResult = {
19
20
  dependencyBreakdown: Record<MetadataDependencyKind, number>;
20
21
  waves: number;
21
22
  issueCount: number;
23
+ commitScope?: {
24
+ commits: string[];
25
+ changedComponents: string[];
26
+ dependencyComponents: string[];
27
+ explicitComponents: string[];
28
+ includedComponents: string[];
29
+ ignoredComponents: string[];
30
+ manifestPath?: string;
31
+ };
22
32
  ai?: {
23
33
  analyzed: boolean;
24
34
  provider?: string;
@@ -26,6 +36,9 @@ type ValidateResult = {
26
36
  fallback?: boolean;
27
37
  overallRisk?: 'low' | 'medium' | 'high' | 'critical';
28
38
  };
39
+ releaseReport?: ReleaseReportV1;
40
+ releaseReportPath?: string;
41
+ releaseReportWarning?: string;
29
42
  };
30
43
  export default class Validate extends SfCommand<ValidateResult> {
31
44
  static readonly aliases: string[];
@@ -33,5 +46,7 @@ export default class Validate extends SfCommand<ValidateResult> {
33
46
  static readonly examples: string[];
34
47
  static readonly flags: Interfaces.FlagInput;
35
48
  run(): Promise<ValidateResult>;
49
+ private getCommitScopeOptions;
50
+ private getTargetOrgIdentifier;
36
51
  }
37
52
  export {};
@@ -13,11 +13,14 @@ import { Messages } from '@salesforce/core';
13
13
  import { Flags, SfCommand, optionalOrgFlagWithDeprecations } from '@salesforce/sf-plugins-core';
14
14
  import { DeploymentValidationService } from '../deployment/deployment-validation-service.js';
15
15
  import { ValidateCommandPresenter } from '../presentation/validate-command-presenter.js';
16
+ import { ReleaseReportCommandAdapter } from '../reports/release-report-command-adapter.js';
17
+ import { buildValidationReportFacts } from '../reports/release-report-facts-factory.js';
16
18
  import { getLogger } from '../utils/logger.js';
17
19
  const logger = getLogger('ValidateCommand');
18
20
  Messages.importMessagesDirectoryFromMetaUrl(import.meta.url);
19
21
  const messages = Messages.loadMessages('@jterrats/smart-deployment', 'validate');
20
22
  const presenter = new ValidateCommandPresenter();
23
+ const releaseReportAdapter = new ReleaseReportCommandAdapter();
21
24
  export default class Validate extends SfCommand {
22
25
  static aliases = ['smart-deployment validate'];
23
26
  static summary = messages.getMessage('summary');
@@ -32,24 +35,37 @@ export default class Validate extends SfCommand {
32
35
  summary: messages.getMessage('flags.use-ai.summary'),
33
36
  default: false,
34
37
  }),
38
+ 'scope-commits': Flags.string({
39
+ summary: messages.getMessage('flags.scope-commits.summary'),
40
+ }),
41
+ 'scope-manifest': Flags.string({
42
+ summary: messages.getMessage('flags.scope-manifest.summary'),
43
+ }),
44
+ 'scope-manifest-output': Flags.string({
45
+ summary: messages.getMessage('flags.scope-manifest-output.summary'),
46
+ description: messages.getMessage('flags.scope-manifest-output.description'),
47
+ }),
35
48
  };
36
49
  async run() {
37
50
  const { flags } = await this.parse(Validate);
38
51
  const validationService = new DeploymentValidationService();
39
52
  const sourcePath = typeof flags['source-path'] === 'string' ? flags['source-path'] : undefined;
40
53
  const useAI = flags['use-ai'] === true;
54
+ const commitScope = this.getCommitScopeOptions(flags);
41
55
  logger.info('Validating wave plan', { flags });
42
56
  const summary = await validationService.validateProject(sourcePath, {
43
57
  useAI,
58
+ commitScope,
44
59
  });
45
60
  presenter.reportValidationResult(this, summary);
46
- return {
61
+ const result = {
47
62
  success: summary.valid,
48
63
  components: summary.components,
49
64
  dependencies: summary.dependencies,
50
65
  dependencyBreakdown: summary.dependencyBreakdown,
51
66
  waves: summary.totalWaves,
52
67
  issueCount: summary.issues.length,
68
+ commitScope: summary.commitScope,
53
69
  ai: useAI
54
70
  ? {
55
71
  analyzed: summary.aiAnalyzed ?? false,
@@ -60,6 +76,26 @@ export default class Validate extends SfCommand {
60
76
  }
61
77
  : undefined,
62
78
  };
79
+ const targetOrg = this.getTargetOrgIdentifier(flags['target-org']);
80
+ const releaseReport = await releaseReportAdapter.finalize(this, { kind: 'succeeded', value: result }, buildValidationReportFacts(summary, targetOrg, useAI), { projectRoot: summary.projectRoot });
81
+ return { ...result, ...releaseReport };
82
+ }
83
+ getCommitScopeOptions(flags) {
84
+ const commits = typeof flags['scope-commits'] === 'string' ? [flags['scope-commits']] : undefined;
85
+ const manifestPath = typeof flags['scope-manifest'] === 'string' ? flags['scope-manifest'] : undefined;
86
+ const outputManifestPath = typeof flags['scope-manifest-output'] === 'string' ? flags['scope-manifest-output'] : undefined;
87
+ return commits !== undefined || manifestPath !== undefined || outputManifestPath !== undefined
88
+ ? { commits, manifestPath, outputManifestPath }
89
+ : undefined;
90
+ }
91
+ getTargetOrgIdentifier(value) {
92
+ if (typeof value === 'string' && value.length > 0)
93
+ return value;
94
+ if (typeof value === 'object' && value !== null && 'getUsername' in value) {
95
+ const getUsername = value.getUsername;
96
+ return typeof getUsername === 'function' ? getUsername.call(value) : undefined;
97
+ }
98
+ return undefined;
63
99
  }
64
100
  }
65
101
  //# sourceMappingURL=validate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/commands/validate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,+BAA+B,EAAE,MAAM,6BAA6B,CAAC;AAChG,OAAO,EAAE,2BAA2B,EAAE,MAAM,gDAAgD,CAAC;AAC7F,OAAO,EAAE,wBAAwB,EAAE,MAAM,+CAA+C,CAAC;AACzF,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAG/C,MAAM,MAAM,GAAG,SAAS,CAAC,iBAAiB,CAAC,CAAC;AAC5C,QAAQ,CAAC,kCAAkC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC7D,MAAM,QAAQ,GAAG,QAAQ,CAAC,YAAY,CAAC,4BAA4B,EAAE,UAAU,CAAC,CAAC;AACjF,MAAM,SAAS,GAAG,IAAI,wBAAwB,EAAE,CAAC;AAkBjD,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,SAAyB;IACtD,MAAM,CAAU,OAAO,GAAG,CAAC,2BAA2B,CAAC,CAAC;IACxD,MAAM,CAAU,OAAO,GAAG,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IACzD,MAAM,CAAU,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IAC5D,MAAM,CAAU,KAAK,GAAyB;QACnD,YAAY,EAAE,+BAA+B;QAC7C,aAAa,EAAE,KAAK,CAAC,SAAS,CAAC;YAC7B,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,2BAA2B,CAAC;YACzD,MAAM,EAAE,IAAI;SACb,CAAC;QACF,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC;YACtB,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,sBAAsB,CAAC;YACpD,OAAO,EAAE,KAAK;SACf,CAAC;KACH,CAAC;IAEK,KAAK,CAAC,GAAG;QACd,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC7C,MAAM,iBAAiB,GAAG,IAAI,2BAA2B,EAAE,CAAC;QAC5D,MAAM,UAAU,GAAG,OAAO,KAAK,CAAC,aAAa,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC/F,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC;QAEvC,MAAM,CAAC,IAAI,CAAC,sBAAsB,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QAE/C,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC,eAAe,CAAC,UAAU,EAAE;YAClE,KAAK;SACN,CAAC,CAAC;QACH,SAAS,CAAC,sBAAsB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAEhD,OAAO;YACL,OAAO,EAAE,OAAO,CAAC,KAAK;YACtB,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,YAAY,EAAE,OAAO,CAAC,YAAY;YAClC,mBAAmB,EAAE,OAAO,CAAC,mBAAmB;YAChD,KAAK,EAAE,OAAO,CAAC,UAAU;YACzB,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM;YACjC,EAAE,EAAE,KAAK;gBACP,CAAC,CAAC;oBACE,QAAQ,EAAE,OAAO,CAAC,UAAU,IAAI,KAAK;oBACrC,QAAQ,EAAE,OAAO,CAAC,UAAU;oBAC5B,KAAK,EAAE,OAAO,CAAC,OAAO;oBACtB,QAAQ,EAAE,OAAO,CAAC,UAAU;oBAC5B,WAAW,EAAE,OAAO,CAAC,WAAW;iBACjC;gBACH,CAAC,CAAC,SAAS;SACd,CAAC;IACJ,CAAC"}
1
+ {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/commands/validate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import type { DeploymentConfig } from './repo-config.js';
2
+ export type InitValidationMode = 'strict' | 'warn-only' | 'local-only';
3
+ export type InitConfigGenerationOptions = {
4
+ startPath?: string;
5
+ force?: boolean;
6
+ cacheEnabled?: boolean;
7
+ validationMode?: InitValidationMode;
8
+ reportDir?: string;
9
+ skipTests?: boolean;
10
+ };
11
+ export type InitConfigGenerationResult = {
12
+ success: boolean;
13
+ created: boolean;
14
+ overwritten: boolean;
15
+ configPath: string;
16
+ projectRoot: string;
17
+ sourcePath: string;
18
+ packageDirectories: string[];
19
+ config: DeploymentConfig;
20
+ warnings: string[];
21
+ };
22
+ export declare class InitConfigGenerationService {
23
+ generate(options?: InitConfigGenerationOptions): Promise<InitConfigGenerationResult>;
24
+ private readExistingConfig;
25
+ private resolveSourcePath;
26
+ private createConfig;
27
+ }
@@ -0,0 +1,88 @@
1
+ import { access, mkdir, readFile, writeFile } from 'node:fs/promises';
2
+ import * as path from 'node:path';
3
+ import { SfdxProjectDetector } from '../scanner/sfdx-project-detector.js';
4
+ const DEFAULT_REPORT_DIR = '.smart-deployment/reports/start-dry-run';
5
+ const DEFAULT_GRAPH_REPORT_DIR = '.smart-deployment/reports/graph-export';
6
+ export class InitConfigGenerationService {
7
+ async generate(options = {}) {
8
+ const detection = await SfdxProjectDetector.detect(options.startPath ?? process.cwd());
9
+ const projectRoot = detection.detected ? detection.projectRoot : path.resolve(options.startPath ?? process.cwd());
10
+ const configPath = path.join(projectRoot, '.smart-deployment.json');
11
+ const existingConfig = await this.readExistingConfig(configPath);
12
+ if (existingConfig.exists && options.force !== true) {
13
+ throw new Error('Smart Deployment config already exists. Re-run with --force to overwrite it.');
14
+ }
15
+ const sourcePath = this.resolveSourcePath(projectRoot, detection.defaultPackageDirectory, options.startPath);
16
+ const packageDirectories = detection.packageDirectories.map((packageDirectory) => path.relative(projectRoot, packageDirectory) || '.');
17
+ const config = this.createConfig({
18
+ sourcePath,
19
+ packageDirectories,
20
+ apiVersion: detection.apiVersion,
21
+ cacheEnabled: options.cacheEnabled ?? true,
22
+ validationMode: options.validationMode ?? 'strict',
23
+ reportDir: options.reportDir ?? DEFAULT_REPORT_DIR,
24
+ skipTests: options.skipTests ?? false,
25
+ });
26
+ await mkdir(path.dirname(configPath), { recursive: true });
27
+ await writeFile(configPath, JSON.stringify(config, null, 2) + '\n', 'utf8');
28
+ return {
29
+ success: true,
30
+ created: !existingConfig.exists,
31
+ overwritten: existingConfig.exists,
32
+ configPath,
33
+ projectRoot,
34
+ sourcePath,
35
+ packageDirectories,
36
+ config,
37
+ warnings: detection.warnings,
38
+ };
39
+ }
40
+ async readExistingConfig(configPath) {
41
+ try {
42
+ await access(configPath);
43
+ }
44
+ catch (error) {
45
+ if (error instanceof Error && 'code' in error && error.code === 'ENOENT') {
46
+ return { exists: false };
47
+ }
48
+ throw error;
49
+ }
50
+ const content = await readFile(configPath, 'utf8');
51
+ return { exists: true, config: JSON.parse(content) };
52
+ }
53
+ resolveSourcePath(projectRoot, defaultPackageDirectory, startPath) {
54
+ if (defaultPackageDirectory) {
55
+ return path.relative(projectRoot, defaultPackageDirectory) || '.';
56
+ }
57
+ if (startPath) {
58
+ const relativeStartPath = path.relative(projectRoot, path.resolve(startPath));
59
+ return relativeStartPath && !relativeStartPath.startsWith('..') ? relativeStartPath : 'force-app';
60
+ }
61
+ return 'force-app';
62
+ }
63
+ createConfig(options) {
64
+ return {
65
+ source: {
66
+ path: options.sourcePath,
67
+ packageDirectories: options.packageDirectories,
68
+ apiVersion: options.apiVersion,
69
+ },
70
+ cache: {
71
+ enabled: options.cacheEnabled,
72
+ strategy: 'file-hash',
73
+ },
74
+ ci: {
75
+ preset: {
76
+ validationMode: options.validationMode,
77
+ skipTests: options.skipTests,
78
+ reportDir: options.reportDir,
79
+ },
80
+ },
81
+ reports: {
82
+ planDir: options.reportDir,
83
+ graphDir: DEFAULT_GRAPH_REPORT_DIR,
84
+ },
85
+ };
86
+ }
87
+ }
88
+ //# sourceMappingURL=init-config-generation-service.js.map