@jterrats/smart-deployment 1.3.1 → 1.5.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.
- package/README.md +38 -0
- package/lib/analysis/metadata-capability-definitions.d.ts +2 -0
- package/lib/analysis/metadata-capability-definitions.js +284 -0
- package/lib/analysis/metadata-capability-definitions.js.map +1 -0
- package/lib/analysis/metadata-capability-registry.d.ts +11 -0
- package/lib/analysis/metadata-capability-registry.js +142 -0
- package/lib/analysis/metadata-capability-registry.js.map +1 -0
- package/lib/analysis/metadata-gap-analysis-service.d.ts +51 -0
- package/lib/analysis/metadata-gap-analysis-service.js +277 -0
- package/lib/analysis/metadata-gap-analysis-service.js.map +1 -0
- package/lib/commands/ci/preset.js +2 -1
- package/lib/commands/ci/preset.js.map +1 -1
- package/lib/commands/ci-publish.d.ts +6 -2
- package/lib/commands/ci-publish.js +23 -8
- package/lib/commands/ci-publish.js.map +1 -1
- package/lib/commands/metadata/gaps.d.ts +15 -0
- package/lib/commands/metadata/gaps.js +84 -0
- package/lib/commands/metadata/gaps.js.map +1 -0
- package/lib/commands/resume.d.ts +7 -0
- package/lib/commands/resume.js +59 -6
- package/lib/commands/resume.js.map +1 -1
- package/lib/commands/start.d.ts +9 -0
- package/lib/commands/start.js +89 -29
- package/lib/commands/start.js.map +1 -1
- package/lib/commands/status.js +10 -4
- package/lib/commands/status.js.map +1 -1
- package/lib/commands/validate.d.ts +7 -0
- package/lib/commands/validate.js +26 -3
- package/lib/commands/validate.js.map +1 -1
- package/lib/config/repo-config.d.ts +3 -0
- package/lib/config/repo-config.js +12 -0
- package/lib/config/repo-config.js.map +1 -1
- package/lib/constants/deployment-order.js +1 -0
- package/lib/constants/deployment-order.js.map +1 -1
- package/lib/deployment/ci-preset-service.d.ts +2 -0
- package/lib/deployment/ci-preset-service.js +7 -0
- package/lib/deployment/ci-preset-service.js.map +1 -1
- package/lib/deployment/commit-scope-service.d.ts +7 -0
- package/lib/deployment/commit-scope-service.js +104 -21
- package/lib/deployment/commit-scope-service.js.map +1 -1
- package/lib/deployment/deployment-runner.d.ts +18 -4
- package/lib/deployment/deployment-runner.js +135 -33
- package/lib/deployment/deployment-runner.js.map +1 -1
- package/lib/deployment/deployment-state-summary.d.ts +7 -1
- package/lib/deployment/deployment-state-summary.js +24 -6
- package/lib/deployment/deployment-state-summary.js.map +1 -1
- package/lib/deployment/deployment-status-service.d.ts +15 -8
- package/lib/deployment/deployment-status-service.js +53 -28
- package/lib/deployment/deployment-status-service.js.map +1 -1
- package/lib/deployment/deployment-validation-service.d.ts +2 -0
- package/lib/deployment/deployment-validation-service.js +2 -0
- package/lib/deployment/deployment-validation-service.js.map +1 -1
- package/lib/deployment/resume-deployment-service.d.ts +24 -4
- package/lib/deployment/resume-deployment-service.js +108 -23
- package/lib/deployment/resume-deployment-service.js.map +1 -1
- package/lib/deployment/sf-cli-integration.d.ts +5 -2
- package/lib/deployment/sf-cli-integration.js +26 -14
- package/lib/deployment/sf-cli-integration.js.map +1 -1
- package/lib/deployment/special-deployment-plan.js +36 -49
- package/lib/deployment/special-deployment-plan.js.map +1 -1
- package/lib/deployment/start-execution-service.d.ts +11 -1
- package/lib/deployment/start-execution-service.js +13 -5
- package/lib/deployment/start-execution-service.js.map +1 -1
- package/lib/deployment/state-manager.d.ts +22 -0
- package/lib/deployment/state-manager.js +40 -5
- package/lib/deployment/state-manager.js.map +1 -1
- package/lib/presentation/release-report-presenter.d.ts +10 -0
- package/lib/presentation/release-report-presenter.js +35 -0
- package/lib/presentation/release-report-presenter.js.map +1 -0
- package/lib/presentation/validate-command-presenter.js +13 -0
- package/lib/presentation/validate-command-presenter.js.map +1 -1
- package/lib/reports/deployment-plan-report-service.d.ts +3 -0
- package/lib/reports/deployment-plan-report-service.js +9 -0
- package/lib/reports/deployment-plan-report-service.js.map +1 -1
- package/lib/reports/release-report-builder.d.ts +6 -0
- package/lib/reports/release-report-builder.js +115 -0
- package/lib/reports/release-report-builder.js.map +1 -0
- package/lib/reports/release-report-command-adapter.d.ts +14 -0
- package/lib/reports/release-report-command-adapter.js +28 -0
- package/lib/reports/release-report-command-adapter.js.map +1 -0
- package/lib/reports/release-report-facts-factory.d.ts +14 -0
- package/lib/reports/release-report-facts-factory.js +140 -0
- package/lib/reports/release-report-facts-factory.js.map +1 -0
- package/lib/reports/release-report-sanitizer.d.ts +5 -0
- package/lib/reports/release-report-sanitizer.js +120 -0
- package/lib/reports/release-report-sanitizer.js.map +1 -0
- package/lib/reports/release-report-service.d.ts +43 -0
- package/lib/reports/release-report-service.js +80 -0
- package/lib/reports/release-report-service.js.map +1 -0
- package/lib/reports/release-report-store.d.ts +30 -0
- package/lib/reports/release-report-store.js +57 -0
- package/lib/reports/release-report-store.js.map +1 -0
- package/lib/reports/start-release-report-coordinator.d.ts +15 -0
- package/lib/reports/start-release-report-coordinator.js +23 -0
- package/lib/reports/start-release-report-coordinator.js.map +1 -0
- package/lib/services/metadata-scanner-service.js +12 -2
- package/lib/services/metadata-scanner-service.js.map +1 -1
- package/lib/services/scanners/additional-metadata-scanner.js +37 -3
- package/lib/services/scanners/additional-metadata-scanner.js.map +1 -1
- package/lib/services/scanners/automation-ai-metadata-scanner.d.ts +2 -1
- package/lib/services/scanners/automation-ai-metadata-scanner.js +48 -0
- package/lib/services/scanners/automation-ai-metadata-scanner.js.map +1 -1
- package/lib/types/index.d.ts +2 -0
- package/lib/types/index.js +2 -0
- package/lib/types/index.js.map +1 -1
- package/lib/types/manual-checkpoint.d.ts +27 -0
- package/lib/types/manual-checkpoint.js +89 -0
- package/lib/types/manual-checkpoint.js.map +1 -0
- package/lib/types/metadata-capability.d.ts +39 -0
- package/lib/types/metadata-capability.js +2 -0
- package/lib/types/metadata-capability.js.map +1 -0
- package/lib/types/metadata.d.ts +7 -1
- package/lib/types/release-report.d.ts +89 -0
- package/lib/types/release-report.js +42 -0
- package/lib/types/release-report.js.map +1 -0
- package/lib/waves/wave-priority-policy.js +2 -25
- package/lib/waves/wave-priority-policy.js.map +1 -1
- package/messages/metadata.gaps.json +12 -0
- package/messages/resume.json +5 -3
- package/messages/start.json +2 -0
- package/messages/validate.json +3 -1
- package/npm-shrinkwrap.json +417 -901
- package/oclif.lock +415 -718
- package/oclif.manifest.json +103 -12
- package/package.json +18 -14
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { LLMProviderName } from '../ai/llm-provider.js';
|
|
2
|
+
import type { ManualCheckpoint } from '../types/manual-checkpoint.js';
|
|
2
3
|
export type UserPriorities = {
|
|
3
4
|
[metadataId: string]: number;
|
|
4
5
|
};
|
|
@@ -40,8 +41,10 @@ export type DeploymentConfig = {
|
|
|
40
41
|
cache?: RepoCacheConfig;
|
|
41
42
|
ci?: RepoCiConfig;
|
|
42
43
|
reports?: RepoReportConfig;
|
|
44
|
+
checkpoints?: ManualCheckpoint[];
|
|
43
45
|
};
|
|
44
46
|
export declare function getRepoConfigPath(baseDir?: string): string;
|
|
45
47
|
export declare function loadRepoConfig(baseDir?: string): Promise<DeploymentConfig>;
|
|
48
|
+
export declare function loadRepoConfigStrict(baseDir?: string): Promise<DeploymentConfig>;
|
|
46
49
|
export declare function saveRepoConfig(config: DeploymentConfig, baseDir?: string): Promise<void>;
|
|
47
50
|
export declare function loadRepoConfigSync(baseDir?: string): DeploymentConfig;
|
|
@@ -14,6 +14,18 @@ export async function loadRepoConfig(baseDir) {
|
|
|
14
14
|
return {};
|
|
15
15
|
}
|
|
16
16
|
}
|
|
17
|
+
export async function loadRepoConfigStrict(baseDir) {
|
|
18
|
+
const configPath = getRepoConfigPath(baseDir);
|
|
19
|
+
try {
|
|
20
|
+
return JSON.parse(await fs.readFile(configPath, 'utf-8'));
|
|
21
|
+
}
|
|
22
|
+
catch (error) {
|
|
23
|
+
if (error.code === 'ENOENT') {
|
|
24
|
+
return {};
|
|
25
|
+
}
|
|
26
|
+
throw new Error(`Failed to load deployment config ${configPath}: ${error instanceof Error ? error.message : String(error)}`);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
17
29
|
export async function saveRepoConfig(config, baseDir) {
|
|
18
30
|
const configPath = getRepoConfigPath(baseDir);
|
|
19
31
|
await fs.writeFile(configPath, JSON.stringify(config, null, 2), 'utf-8');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repo-config.js","sourceRoot":"","sources":["../../src/config/repo-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,KAAK,MAAM,MAAM,SAAS,CAAC;AAClC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"repo-config.js","sourceRoot":"","sources":["../../src/config/repo-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,KAAK,MAAM,MAAM,SAAS,CAAC;AAClC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAuDlC,MAAM,UAAU,iBAAiB,CAAC,OAAgB;IAChD,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,EAAE,EAAE,wBAAwB,CAAC,CAAC;AACvE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,OAAgB;IACnD,MAAM,UAAU,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAE9C,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QACvD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAqB,CAAC;IACjD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,OAAgB;IACzD,MAAM,UAAU,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAC9C,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAqB,CAAC;IAChF,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACvD,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,MAAM,IAAI,KAAK,CACb,oCAAoC,UAAU,KAAK,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAC5G,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,MAAwB,EAAE,OAAgB;IAC7E,MAAM,UAAU,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAC9C,MAAM,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AAC3E,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,OAAgB;IACjD,MAAM,UAAU,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAE9C,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QACzD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAqB,CAAC;IACjD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC"}
|
|
@@ -95,6 +95,7 @@ export const DEPLOYMENT_ORDER = Object.freeze({
|
|
|
95
95
|
Bot: 51, // Einstein Bots
|
|
96
96
|
BotVersion: 52, // Bot versions
|
|
97
97
|
AiAuthoringBundle: 53, // Agentforce authoring bundles
|
|
98
|
+
AiEvaluationDefinition: 54, // AI evaluations deploy in the special phase after agent publish
|
|
98
99
|
GenAiPlugin: 53, // Einstein plugins
|
|
99
100
|
FlexiPage: 54, // Lightning pages
|
|
100
101
|
QuickAction: 55, // Quick actions
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deployment-order.js","sourceRoot":"","sources":["../../src/constants/deployment-order.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"deployment-order.js","sourceRoot":"","sources":["../../src/constants/deployment-order.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { DeploymentPlanReportService, type DeploymentPlanReport } from '../reports/deployment-plan-report-service.js';
|
|
2
|
+
import { type ManualCheckpoint } from '../types/manual-checkpoint.js';
|
|
2
3
|
import type { CommitScopeOptions } from './commit-scope-service.js';
|
|
3
4
|
import { DeploymentContextService } from './deployment-context-service.js';
|
|
4
5
|
export type CiPresetValidationMode = 'strict' | 'warn-only' | 'local-only';
|
|
@@ -28,6 +29,7 @@ export type CiPresetResult = {
|
|
|
28
29
|
};
|
|
29
30
|
blockers: string[];
|
|
30
31
|
warnings: string[];
|
|
32
|
+
checkpoints: ManualCheckpoint[];
|
|
31
33
|
};
|
|
32
34
|
type CiPresetServiceDependencies = {
|
|
33
35
|
deploymentContextService?: DeploymentContextService;
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import * as path from 'node:path';
|
|
2
2
|
import { DeploymentPlanReportService } from '../reports/deployment-plan-report-service.js';
|
|
3
|
+
import { loadRepoConfigStrict } from '../config/repo-config.js';
|
|
4
|
+
import { validateManualCheckpoints } from '../types/manual-checkpoint.js';
|
|
3
5
|
import { DeploymentContextService } from './deployment-context-service.js';
|
|
4
6
|
export class CiPresetService {
|
|
5
7
|
deploymentContextService;
|
|
@@ -16,6 +18,9 @@ export class CiPresetService {
|
|
|
16
18
|
industry: options.industry,
|
|
17
19
|
commitScope: options.commitScope,
|
|
18
20
|
});
|
|
21
|
+
const config = await loadRepoConfigStrict(context.scanResult.projectRoot);
|
|
22
|
+
const checkpoints = config.checkpoints ?? [];
|
|
23
|
+
validateManualCheckpoints(checkpoints, context.orderedWaves);
|
|
19
24
|
const reportResult = await this.deploymentPlanReportService.generate(context, {
|
|
20
25
|
reportDir: options.reportDir,
|
|
21
26
|
targetOrg: options.targetOrg,
|
|
@@ -24,6 +29,7 @@ export class CiPresetService {
|
|
|
24
29
|
validateOnly: options.validationMode !== 'local-only',
|
|
25
30
|
skipTests: options.skipTests,
|
|
26
31
|
destructive: false,
|
|
32
|
+
checkpoints,
|
|
27
33
|
});
|
|
28
34
|
const exitCode = this.resolveExitCode(reportResult.report, options.validationMode);
|
|
29
35
|
const reportDir = path.dirname(reportResult.jsonPath);
|
|
@@ -44,6 +50,7 @@ export class CiPresetService {
|
|
|
44
50
|
},
|
|
45
51
|
blockers: reportResult.report.blockers,
|
|
46
52
|
warnings: reportResult.report.warnings,
|
|
53
|
+
checkpoints,
|
|
47
54
|
};
|
|
48
55
|
}
|
|
49
56
|
resolveExitCode(report, validationMode) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ci-preset-service.js","sourceRoot":"","sources":["../../src/deployment/ci-preset-service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,2BAA2B,EAA6B,MAAM,8CAA8C,CAAC;
|
|
1
|
+
{"version":3,"file":"ci-preset-service.js","sourceRoot":"","sources":["../../src/deployment/ci-preset-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,7 @@ import type { NodeId } from '../types/dependency.js';
|
|
|
3
3
|
export type CommitScopeOptions = {
|
|
4
4
|
commits?: string[];
|
|
5
5
|
manifestPath?: string;
|
|
6
|
+
outputManifestPath?: string;
|
|
6
7
|
};
|
|
7
8
|
export type CommitScopeChangeStatus = 'added' | 'changed' | 'deleted';
|
|
8
9
|
export type CommitScopeGitChange = {
|
|
@@ -13,9 +14,11 @@ export type CommitScopeGitChange = {
|
|
|
13
14
|
export type CommitScopeSummary = {
|
|
14
15
|
enabled: boolean;
|
|
15
16
|
commits: string[];
|
|
17
|
+
manifestPath?: string;
|
|
16
18
|
changedFiles: CommitScopeGitChange[];
|
|
17
19
|
changedComponents: NodeId[];
|
|
18
20
|
dependencyComponents: NodeId[];
|
|
21
|
+
explicitComponents: NodeId[];
|
|
19
22
|
includedComponents: NodeId[];
|
|
20
23
|
ignoredComponents: NodeId[];
|
|
21
24
|
};
|
|
@@ -35,9 +38,13 @@ export declare class CommitScopeService {
|
|
|
35
38
|
apply(scanResult: ScanResult, options?: CommitScopeOptions): Promise<CommitScopeResult>;
|
|
36
39
|
private resolveCommits;
|
|
37
40
|
private readManifest;
|
|
41
|
+
private writeManifest;
|
|
42
|
+
private resolveManifestScope;
|
|
43
|
+
private resolveScopeFromCommits;
|
|
38
44
|
private resolveChangedComponents;
|
|
39
45
|
private collectDependencyClosure;
|
|
40
46
|
private deduplicate;
|
|
41
47
|
private deduplicateComponents;
|
|
48
|
+
private filterKnownNodeIds;
|
|
42
49
|
}
|
|
43
50
|
export {};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { execFile } from 'node:child_process';
|
|
2
|
-
import { readFile } from 'node:fs/promises';
|
|
2
|
+
import { mkdir, readFile, writeFile } from 'node:fs/promises';
|
|
3
3
|
import * as path from 'node:path';
|
|
4
4
|
import { promisify } from 'node:util';
|
|
5
5
|
import { DependencyGraphBuilder } from '../dependencies/dependency-graph-builder.js';
|
|
@@ -10,18 +10,27 @@ export class CommitScopeService {
|
|
|
10
10
|
this.gitChangeProvider = dependencies.gitChangeProvider ?? new CliCommitScopeGitChangeProvider();
|
|
11
11
|
}
|
|
12
12
|
async apply(scanResult, options = {}) {
|
|
13
|
-
const
|
|
14
|
-
|
|
13
|
+
const manifest = options.manifestPath
|
|
14
|
+
? await this.readManifest(scanResult.projectRoot, options.manifestPath)
|
|
15
|
+
: undefined;
|
|
16
|
+
const commits = this.resolveCommits(options, manifest);
|
|
17
|
+
const manifestScope = manifest ? this.resolveManifestScope(manifest) : undefined;
|
|
18
|
+
if (commits.length === 0 && (manifestScope?.includedComponents.length ?? 0) === 0) {
|
|
15
19
|
return {
|
|
16
20
|
scanResult,
|
|
17
21
|
summary: createDisabledSummary(),
|
|
18
22
|
};
|
|
19
23
|
}
|
|
20
|
-
const
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
24
|
+
const commitScope = manifestScope?.hasIncludedComponentContract === true
|
|
25
|
+
? {
|
|
26
|
+
changedFiles: manifest?.changes ?? [],
|
|
27
|
+
changedNodeIds: manifestScope.changedComponents,
|
|
28
|
+
dependencyNodeIds: manifestScope.dependencyComponents,
|
|
29
|
+
explicitNodeIds: manifestScope.explicitComponents,
|
|
30
|
+
includedNodeIds: manifestScope.includedComponents,
|
|
31
|
+
}
|
|
32
|
+
: await this.resolveScopeFromCommits(scanResult, commits, manifestScope?.explicitComponents ?? []);
|
|
33
|
+
const includedNodeIds = this.deduplicate(commitScope.includedNodeIds);
|
|
25
34
|
const included = new Set(includedNodeIds);
|
|
26
35
|
const scopedComponents = scanResult.components
|
|
27
36
|
.filter((component) => included.has(toNodeId(component)))
|
|
@@ -33,28 +42,32 @@ export class CommitScopeService {
|
|
|
33
42
|
.map((component) => toNodeId(component))
|
|
34
43
|
.filter((nodeId) => !included.has(nodeId))
|
|
35
44
|
.sort();
|
|
45
|
+
const summary = {
|
|
46
|
+
enabled: true,
|
|
47
|
+
commits,
|
|
48
|
+
manifestPath: options.outputManifestPath ?? options.manifestPath,
|
|
49
|
+
changedFiles: commitScope.changedFiles,
|
|
50
|
+
changedComponents: commitScope.changedNodeIds,
|
|
51
|
+
dependencyComponents: commitScope.dependencyNodeIds,
|
|
52
|
+
explicitComponents: commitScope.explicitNodeIds,
|
|
53
|
+
includedComponents: includedNodeIds,
|
|
54
|
+
ignoredComponents,
|
|
55
|
+
};
|
|
56
|
+
if (options.outputManifestPath) {
|
|
57
|
+
await this.writeManifest(scanResult.projectRoot, options.outputManifestPath, summary);
|
|
58
|
+
}
|
|
36
59
|
return {
|
|
37
60
|
scanResult: {
|
|
38
61
|
...scanResult,
|
|
39
62
|
components: scopedComponents,
|
|
40
63
|
dependencyResult: scopedDependencyResult,
|
|
41
64
|
},
|
|
42
|
-
summary
|
|
43
|
-
enabled: true,
|
|
44
|
-
commits,
|
|
45
|
-
changedFiles,
|
|
46
|
-
changedComponents: changedNodeIds,
|
|
47
|
-
dependencyComponents: dependencyNodeIds,
|
|
48
|
-
includedComponents: includedNodeIds,
|
|
49
|
-
ignoredComponents,
|
|
50
|
-
},
|
|
65
|
+
summary,
|
|
51
66
|
};
|
|
52
67
|
}
|
|
53
|
-
|
|
68
|
+
resolveCommits(options, manifest) {
|
|
54
69
|
const directCommits = parseCommitList(options.commits ?? []);
|
|
55
|
-
const manifestCommits =
|
|
56
|
-
? parseCommitList(extractManifestCommits(await this.readManifest(projectRoot, options.manifestPath)))
|
|
57
|
-
: [];
|
|
70
|
+
const manifestCommits = manifest ? parseCommitList(extractManifestCommits(manifest)) : [];
|
|
58
71
|
return this.deduplicate([...directCommits, ...manifestCommits]);
|
|
59
72
|
}
|
|
60
73
|
async readManifest(projectRoot, manifestPath) {
|
|
@@ -66,6 +79,55 @@ export class CommitScopeService {
|
|
|
66
79
|
}
|
|
67
80
|
return parsed;
|
|
68
81
|
}
|
|
82
|
+
async writeManifest(projectRoot, manifestPath, summary) {
|
|
83
|
+
const resolvedPath = path.isAbsolute(manifestPath) ? manifestPath : path.join(projectRoot, manifestPath);
|
|
84
|
+
await mkdir(path.dirname(resolvedPath), { recursive: true });
|
|
85
|
+
await writeFile(resolvedPath, `${JSON.stringify(toManifest(summary), null, 2)}\n`, 'utf8');
|
|
86
|
+
}
|
|
87
|
+
resolveManifestScope(manifest) {
|
|
88
|
+
const changedComponents = parseNodeIdList(manifest.scope?.changedComponents ?? []);
|
|
89
|
+
const dependencyComponents = parseNodeIdList(manifest.scope?.dependencyComponents ?? []);
|
|
90
|
+
const explicitComponents = parseNodeIdList([
|
|
91
|
+
...(manifest.scope?.explicitComponents ?? []),
|
|
92
|
+
...(manifest.includeComponents ?? []),
|
|
93
|
+
...(manifest.stories?.flatMap((story) => story.includeComponents ?? []) ?? []),
|
|
94
|
+
]);
|
|
95
|
+
const contractComponents = parseNodeIdList(manifest.scope?.includedComponents ?? []);
|
|
96
|
+
const includedComponents = parseNodeIdList([
|
|
97
|
+
...contractComponents,
|
|
98
|
+
...changedComponents,
|
|
99
|
+
...dependencyComponents,
|
|
100
|
+
...explicitComponents,
|
|
101
|
+
]);
|
|
102
|
+
if (changedComponents.length === 0 &&
|
|
103
|
+
dependencyComponents.length === 0 &&
|
|
104
|
+
explicitComponents.length === 0 &&
|
|
105
|
+
includedComponents.length === 0) {
|
|
106
|
+
return undefined;
|
|
107
|
+
}
|
|
108
|
+
return {
|
|
109
|
+
changedComponents,
|
|
110
|
+
dependencyComponents,
|
|
111
|
+
explicitComponents,
|
|
112
|
+
includedComponents,
|
|
113
|
+
hasIncludedComponentContract: contractComponents.length > 0,
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
async resolveScopeFromCommits(scanResult, commits, explicitNodeIds) {
|
|
117
|
+
const changedFiles = await this.gitChangeProvider.listCommitChanges(scanResult.projectRoot, commits);
|
|
118
|
+
const changedComponents = this.resolveChangedComponents(scanResult, changedFiles);
|
|
119
|
+
const changedNodeIds = this.deduplicate(changedComponents.map((component) => toNodeId(component)));
|
|
120
|
+
const dependencyNodeIds = this.collectDependencyClosure(scanResult, changedNodeIds);
|
|
121
|
+
const knownExplicitNodeIds = this.filterKnownNodeIds(scanResult, explicitNodeIds);
|
|
122
|
+
const includedNodeIds = this.deduplicate([...changedNodeIds, ...dependencyNodeIds, ...knownExplicitNodeIds]);
|
|
123
|
+
return {
|
|
124
|
+
changedFiles,
|
|
125
|
+
changedNodeIds,
|
|
126
|
+
dependencyNodeIds,
|
|
127
|
+
explicitNodeIds: knownExplicitNodeIds,
|
|
128
|
+
includedNodeIds,
|
|
129
|
+
};
|
|
130
|
+
}
|
|
69
131
|
resolveChangedComponents(scanResult, changes) {
|
|
70
132
|
const components = [];
|
|
71
133
|
for (const change of changes) {
|
|
@@ -107,6 +169,9 @@ export class CommitScopeService {
|
|
|
107
169
|
}
|
|
108
170
|
return [...byNodeId.values()].sort((left, right) => toNodeId(left).localeCompare(toNodeId(right)));
|
|
109
171
|
}
|
|
172
|
+
filterKnownNodeIds(scanResult, nodeIds) {
|
|
173
|
+
return this.deduplicate(nodeIds.filter((nodeId) => scanResult.dependencyResult.components.has(nodeId)));
|
|
174
|
+
}
|
|
110
175
|
}
|
|
111
176
|
class CliCommitScopeGitChangeProvider {
|
|
112
177
|
async listCommitChanges(projectRoot, commits) {
|
|
@@ -137,6 +202,9 @@ function parseCommitList(values) {
|
|
|
137
202
|
.map((value) => value.trim())
|
|
138
203
|
.filter(Boolean);
|
|
139
204
|
}
|
|
205
|
+
function parseNodeIdList(values) {
|
|
206
|
+
return [...new Set(values.map((value) => value.trim()).filter((value) => value.includes(':')))].sort();
|
|
207
|
+
}
|
|
140
208
|
function extractManifestCommits(manifest) {
|
|
141
209
|
return [
|
|
142
210
|
...(Array.isArray(manifest.commits) ? manifest.commits : []),
|
|
@@ -195,6 +263,20 @@ function normalizePath(filePath) {
|
|
|
195
263
|
function toNodeId(component) {
|
|
196
264
|
return `${component.type}:${component.name}`;
|
|
197
265
|
}
|
|
266
|
+
function toManifest(summary) {
|
|
267
|
+
return {
|
|
268
|
+
schemaVersion: 1,
|
|
269
|
+
commits: summary.commits,
|
|
270
|
+
changes: summary.changedFiles,
|
|
271
|
+
scope: {
|
|
272
|
+
changedComponents: summary.changedComponents,
|
|
273
|
+
dependencyComponents: summary.dependencyComponents,
|
|
274
|
+
explicitComponents: summary.explicitComponents,
|
|
275
|
+
includedComponents: summary.includedComponents,
|
|
276
|
+
ignoredComponents: summary.ignoredComponents,
|
|
277
|
+
},
|
|
278
|
+
};
|
|
279
|
+
}
|
|
198
280
|
function createDisabledSummary() {
|
|
199
281
|
return {
|
|
200
282
|
enabled: false,
|
|
@@ -202,6 +284,7 @@ function createDisabledSummary() {
|
|
|
202
284
|
changedFiles: [],
|
|
203
285
|
changedComponents: [],
|
|
204
286
|
dependencyComponents: [],
|
|
287
|
+
explicitComponents: [],
|
|
205
288
|
includedComponents: [],
|
|
206
289
|
ignoredComponents: [],
|
|
207
290
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commit-scope-service.js","sourceRoot":"","sources":["../../src/deployment/commit-scope-service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"commit-scope-service.js","sourceRoot":"","sources":["../../src/deployment/commit-scope-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { DependencyGraph, NodeId } from '../types/dependency.js';
|
|
2
2
|
import type { MetadataComponent } from '../types/metadata.js';
|
|
3
3
|
import type { Wave } from '../waves/wave-builder.js';
|
|
4
|
+
import { type ManualCheckpoint, type ReachedManualCheckpoint } from '../types/manual-checkpoint.js';
|
|
4
5
|
import { DeploymentTracker } from './deployment-tracker.js';
|
|
5
6
|
import { SfCliIntegration } from './sf-cli-integration.js';
|
|
6
7
|
import { StateManager } from './state-manager.js';
|
|
@@ -8,7 +9,7 @@ import { TestPlanService } from './test-plan-service.js';
|
|
|
8
9
|
import { WaveManifestService } from './wave-manifest-service.js';
|
|
9
10
|
import { ForceIgnoreStagingService } from './forceignore-staging-service.js';
|
|
10
11
|
import type { TestExecutor } from './test-executor.js';
|
|
11
|
-
import type { DeploymentAIContext } from './deployment-context-service.js';
|
|
12
|
+
import type { DeploymentAIContext, DeploymentContextBuildOptions } from './deployment-context-service.js';
|
|
12
13
|
export type DeploymentRunnerParams = {
|
|
13
14
|
deploymentId: string;
|
|
14
15
|
targetOrg: string;
|
|
@@ -18,13 +19,24 @@ export type DeploymentRunnerParams = {
|
|
|
18
19
|
componentMap: ReadonlyMap<NodeId, MetadataComponent>;
|
|
19
20
|
apiVersion?: string;
|
|
20
21
|
skipTests: boolean;
|
|
22
|
+
destructive: boolean;
|
|
21
23
|
testExecutor: TestExecutor;
|
|
22
24
|
tracker: DeploymentTracker;
|
|
23
25
|
stateManager: StateManager;
|
|
24
26
|
sfCli: SfCliIntegration;
|
|
25
27
|
aiContext?: DeploymentAIContext;
|
|
26
|
-
mode?: 'deploy' | 'destructive';
|
|
27
28
|
log: (message: string) => void;
|
|
29
|
+
checkpoints?: ManualCheckpoint[];
|
|
30
|
+
approvedCheckpointIds?: ReadonlySet<string>;
|
|
31
|
+
startExecutionIndex?: number;
|
|
32
|
+
planFingerprint?: string;
|
|
33
|
+
contextOptions?: Omit<DeploymentContextBuildOptions, 'sourcePath'>;
|
|
34
|
+
};
|
|
35
|
+
export type DeploymentRunnerResult = {
|
|
36
|
+
kind: 'completed';
|
|
37
|
+
} | {
|
|
38
|
+
kind: 'paused';
|
|
39
|
+
checkpoint: ReachedManualCheckpoint;
|
|
28
40
|
};
|
|
29
41
|
type DeploymentRunnerDependencies = {
|
|
30
42
|
testPlanService?: TestPlanService;
|
|
@@ -36,8 +48,10 @@ export declare class DeploymentRunner {
|
|
|
36
48
|
private readonly waveManifestService;
|
|
37
49
|
private readonly forceIgnoreStagingService;
|
|
38
50
|
constructor(dependencies?: DeploymentRunnerDependencies);
|
|
39
|
-
execute(params: DeploymentRunnerParams): Promise<
|
|
51
|
+
execute(params: DeploymentRunnerParams): Promise<DeploymentRunnerResult>;
|
|
52
|
+
private findCheckpoint;
|
|
53
|
+
private pauseAtCheckpoint;
|
|
54
|
+
private buildExecutionState;
|
|
40
55
|
private buildAIMetadata;
|
|
41
|
-
private forEachSequentially;
|
|
42
56
|
}
|
|
43
57
|
export {};
|