@simplysf/simply-cicd-core 0.2.2 → 0.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.
- package/README.md +32 -3
- package/lib/build/checkPermissionSets.d.ts +22 -0
- package/lib/build/checkPermissionSets.js +102 -0
- package/lib/build/checkPermissionSets.js.map +1 -0
- package/lib/build/cleanupScratchOrgs.d.ts +6 -0
- package/lib/build/cleanupScratchOrgs.js +91 -0
- package/lib/build/cleanupScratchOrgs.js.map +1 -0
- package/lib/build/createFallbackTag.d.ts +24 -0
- package/lib/build/createFallbackTag.js +147 -0
- package/lib/build/createFallbackTag.js.map +1 -0
- package/lib/build/createPackageVersion.d.ts +42 -0
- package/lib/build/createPackageVersion.js +191 -0
- package/lib/build/createPackageVersion.js.map +1 -0
- package/lib/build/createScratchOrg.d.ts +14 -0
- package/lib/build/createScratchOrg.js +182 -0
- package/lib/build/createScratchOrg.js.map +1 -0
- package/lib/build/deleteScratchOrg.d.ts +13 -0
- package/lib/build/deleteScratchOrg.js +62 -0
- package/lib/build/deleteScratchOrg.js.map +1 -0
- package/lib/build/deltaRunner.d.ts +73 -0
- package/lib/build/deltaRunner.js +109 -0
- package/lib/build/deltaRunner.js.map +1 -0
- package/lib/build/determinePackageChanges.d.ts +11 -0
- package/lib/build/determinePackageChanges.js +90 -0
- package/lib/build/determinePackageChanges.js.map +1 -0
- package/lib/build/devHubs.d.ts +12 -0
- package/lib/build/devHubs.js +42 -0
- package/lib/build/devHubs.js.map +1 -0
- package/lib/build/flexipageDelta.d.ts +18 -0
- package/lib/build/flexipageDelta.js +35 -0
- package/lib/build/flexipageDelta.js.map +1 -0
- package/lib/build/flowDelta.d.ts +17 -0
- package/lib/build/flowDelta.js +34 -0
- package/lib/build/flowDelta.js.map +1 -0
- package/lib/build/installDependencies.d.ts +10 -0
- package/lib/build/installDependencies.js +39 -0
- package/lib/build/installDependencies.js.map +1 -0
- package/lib/build/lwcJest.d.ts +25 -0
- package/lib/build/lwcJest.js +126 -0
- package/lib/build/lwcJest.js.map +1 -0
- package/lib/build/publishUtamPageObjects.d.ts +50 -0
- package/lib/build/publishUtamPageObjects.js +274 -0
- package/lib/build/publishUtamPageObjects.js.map +1 -0
- package/lib/build/pushScratch.d.ts +9 -0
- package/lib/build/pushScratch.js +60 -0
- package/lib/build/pushScratch.js.map +1 -0
- package/lib/build/scratchOrgAuth.d.ts +18 -0
- package/lib/build/scratchOrgAuth.js +52 -0
- package/lib/build/scratchOrgAuth.js.map +1 -0
- package/lib/build/scratchOrgInfo.d.ts +14 -0
- package/lib/build/scratchOrgInfo.js +21 -0
- package/lib/build/scratchOrgInfo.js.map +1 -0
- package/lib/build/skipGuard.d.ts +8 -0
- package/lib/build/skipGuard.js +42 -0
- package/lib/build/skipGuard.js.map +1 -0
- package/lib/build/testScratch.d.ts +15 -0
- package/lib/build/testScratch.js +42 -0
- package/lib/build/testScratch.js.map +1 -0
- package/lib/build/utamPageObjects.d.ts +143 -0
- package/lib/build/utamPageObjects.js +258 -0
- package/lib/build/utamPageObjects.js.map +1 -0
- package/lib/build/versionTagFormat.d.ts +57 -0
- package/lib/build/versionTagFormat.js +194 -0
- package/lib/build/versionTagFormat.js.map +1 -0
- package/lib/config/defaultDeploymentPlugins.d.ts +2 -0
- package/lib/config/defaultDeploymentPlugins.js +18 -0
- package/lib/config/defaultDeploymentPlugins.js.map +1 -0
- package/lib/config/trustedPlugins.d.ts +2 -0
- package/lib/config/trustedPlugins.js +18 -0
- package/lib/config/trustedPlugins.js.map +1 -0
- package/lib/deploy/deployCommon.d.ts +105 -0
- package/lib/deploy/deployCommon.js +358 -0
- package/lib/deploy/deployCommon.js.map +1 -0
- package/lib/deploy/deployHappySoup.d.ts +56 -0
- package/lib/deploy/deployHappySoup.js +159 -0
- package/lib/deploy/deployHappySoup.js.map +1 -0
- package/lib/deploy/deployProject.d.ts +27 -0
- package/lib/deploy/deployProject.js +114 -0
- package/lib/deploy/deployProject.js.map +1 -0
- package/lib/deploy/runDeployStage.d.ts +16 -0
- package/lib/deploy/runDeployStage.js +65 -0
- package/lib/deploy/runDeployStage.js.map +1 -0
- package/lib/deploy/stageOptions.d.ts +49 -0
- package/lib/deploy/stageOptions.js +70 -0
- package/lib/deploy/stageOptions.js.map +1 -0
- package/lib/deploy/validate.d.ts +11 -0
- package/lib/deploy/validate.js +54 -0
- package/lib/deploy/validate.js.map +1 -0
- package/lib/env.d.ts +9 -0
- package/lib/env.js +47 -0
- package/lib/env.js.map +1 -0
- package/lib/exec/sfCli.d.ts +27 -0
- package/lib/exec/sfCli.js +50 -0
- package/lib/exec/sfCli.js.map +1 -0
- package/lib/flags/env.d.ts +44 -0
- package/lib/flags/env.js +81 -0
- package/lib/flags/env.js.map +1 -0
- package/lib/git.d.ts +32 -0
- package/lib/git.js +106 -0
- package/lib/git.js.map +1 -0
- package/lib/happySoup/resolveOriginProject.d.ts +22 -0
- package/lib/happySoup/resolveOriginProject.js +61 -0
- package/lib/happySoup/resolveOriginProject.js.map +1 -0
- package/lib/index.d.ts +52 -0
- package/lib/index.js +64 -2
- package/lib/index.js.map +1 -1
- package/lib/logger.d.ts +10 -0
- package/lib/logger.js +33 -0
- package/lib/logger.js.map +1 -0
- package/lib/notify/buildNotification.d.ts +53 -0
- package/lib/notify/buildNotification.js +176 -0
- package/lib/notify/buildNotification.js.map +1 -0
- package/lib/notify/getCommitStories.d.ts +30 -0
- package/lib/notify/getCommitStories.js +70 -0
- package/lib/notify/getCommitStories.js.map +1 -0
- package/lib/notify/getRemoteCommitStories.d.ts +10 -0
- package/lib/notify/getRemoteCommitStories.js +45 -0
- package/lib/notify/getRemoteCommitStories.js.map +1 -0
- package/lib/notify/happySoupNotification.d.ts +26 -0
- package/lib/notify/happySoupNotification.js +140 -0
- package/lib/notify/happySoupNotification.js.map +1 -0
- package/lib/notify/projectNotification.d.ts +46 -0
- package/lib/notify/projectNotification.js +167 -0
- package/lib/notify/projectNotification.js.map +1 -0
- package/lib/notify/renderTemplate.d.ts +3 -0
- package/lib/notify/renderTemplate.js +24 -0
- package/lib/notify/renderTemplate.js.map +1 -0
- package/lib/notify/sendNotification.d.ts +2 -0
- package/lib/notify/sendNotification.js +50 -0
- package/lib/notify/sendNotification.js.map +1 -0
- package/lib/notify/templates.d.ts +13 -0
- package/lib/notify/templates.js +118 -0
- package/lib/notify/templates.js.map +1 -0
- package/lib/schemas/deployConfig.d.ts +25 -0
- package/lib/schemas/deployConfig.js +55 -0
- package/lib/schemas/deployConfig.js.map +1 -0
- package/lib/schemas/deployProgress.d.ts +33 -0
- package/lib/schemas/deployProgress.js +46 -0
- package/lib/schemas/deployProgress.js.map +1 -0
- package/lib/schemas/deployRules.d.ts +34 -0
- package/lib/schemas/deployRules.js +40 -0
- package/lib/schemas/deployRules.js.map +1 -0
- package/lib/sfApex.d.ts +22 -0
- package/lib/sfApex.js +169 -0
- package/lib/sfApex.js.map +1 -0
- package/lib/sfAuth.d.ts +19 -0
- package/lib/sfAuth.js +78 -0
- package/lib/sfAuth.js.map +1 -0
- package/lib/sfConfig.d.ts +23 -0
- package/lib/sfConfig.js +82 -0
- package/lib/sfConfig.js.map +1 -0
- package/lib/sfOrg.d.ts +13 -0
- package/lib/sfOrg.js +39 -0
- package/lib/sfOrg.js.map +1 -0
- package/lib/sfPackages.d.ts +63 -0
- package/lib/sfPackages.js +185 -0
- package/lib/sfPackages.js.map +1 -0
- package/lib/sfPlugins.d.ts +11 -0
- package/lib/sfPlugins.js +134 -0
- package/lib/sfPlugins.js.map +1 -0
- package/lib/sfdxDependabot/dependabotRun.d.ts +95 -0
- package/lib/sfdxDependabot/dependabotRun.js +287 -0
- package/lib/sfdxDependabot/dependabotRun.js.map +1 -0
- package/lib/sfdxDependabot/updater.d.ts +14 -0
- package/lib/sfdxDependabot/updater.js +94 -0
- package/lib/sfdxDependabot/updater.js.map +1 -0
- package/package.json +16 -4
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2026, SimplySF.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import { getPluginConfig } from '@simplysf/simply-core';
|
|
17
|
+
/** The tag shape every `simply cicd build` command used before the format was configurable. */
|
|
18
|
+
export const DEFAULT_VERSION_TAG_FORMAT = 'v{MAJOR}.{MINOR}.{PATCH}.{BUILD}';
|
|
19
|
+
/** Where in `sfdx-project.json` a project declares its own format. */
|
|
20
|
+
export const VERSION_TAG_FORMAT_CONFIG_PATH = 'plugins.simply.versionTagFormat';
|
|
21
|
+
/** Overrides the project's format, in every command that reads it, when set to a non-empty value. */
|
|
22
|
+
export const VERSION_TAG_FORMAT_ENV_VAR = 'SIMPLY_CICD_VERSION_TAG_FORMAT';
|
|
23
|
+
const PLACEHOLDERS = ['MAJOR', 'MINOR', 'PATCH', 'BUILD'];
|
|
24
|
+
/** `sf package version report` returns `Version` as `major.minor.patch.build`. */
|
|
25
|
+
const SALESFORCE_VERSION_PATTERN = /^(?<major>\d+)\.(?<minor>\d+)\.(?<patch>\d+)\.(?<build>\d+)$/;
|
|
26
|
+
/** Thrown for a format that can't be used, so callers that otherwise swallow errors can let it through. */
|
|
27
|
+
export class VersionTagFormatError extends Error {
|
|
28
|
+
constructor(format, problem, source = VERSION_TAG_FORMAT_CONFIG_PATH) {
|
|
29
|
+
super(`Invalid version tag format "${format}" (${source}): ${problem}`);
|
|
30
|
+
this.name = 'VersionTagFormatError';
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Why `tag` isn't a legal git tag name, or `undefined` when it is. Mirrors `git check-ref-format`'s
|
|
35
|
+
* rules for `refs/tags/<tag>`, plus git's refusal of tag names starting with `-`.
|
|
36
|
+
*/
|
|
37
|
+
function findRefNameProblem(tag) {
|
|
38
|
+
if (tag.startsWith('-'))
|
|
39
|
+
return 'a tag cannot start with "-"';
|
|
40
|
+
// eslint-disable-next-line no-control-regex -- control characters are exactly what git refuses
|
|
41
|
+
if (/[\x00-\x20\x7f~^:?*[\\]/.test(tag))
|
|
42
|
+
return 'contains a space, a control character, or one of ~^:?*[\\';
|
|
43
|
+
if (tag.includes('..'))
|
|
44
|
+
return 'contains ".."';
|
|
45
|
+
if (tag.includes('@{'))
|
|
46
|
+
return 'contains "@{"';
|
|
47
|
+
if (tag === '@')
|
|
48
|
+
return 'cannot be "@"';
|
|
49
|
+
if (tag.endsWith('.'))
|
|
50
|
+
return 'cannot end with "."';
|
|
51
|
+
if (tag.startsWith('/') || tag.endsWith('/') || tag.includes('//'))
|
|
52
|
+
return 'has an empty "/"-separated component';
|
|
53
|
+
if (tag.split('/').some((component) => component.startsWith('.') || component.endsWith('.lock'))) {
|
|
54
|
+
return 'has a "/"-separated component starting with "." or ending with ".lock"';
|
|
55
|
+
}
|
|
56
|
+
return undefined;
|
|
57
|
+
}
|
|
58
|
+
function tokenize(format, source) {
|
|
59
|
+
const segments = [];
|
|
60
|
+
const placeholderPattern = /\{(?<name>[^{}]*)\}/g;
|
|
61
|
+
let lastIndex = 0;
|
|
62
|
+
for (const match of format.matchAll(placeholderPattern)) {
|
|
63
|
+
const name = match.groups?.name ?? '';
|
|
64
|
+
if (!PLACEHOLDERS.includes(name)) {
|
|
65
|
+
throw new VersionTagFormatError(format, `unknown placeholder "{${name}}"; use {MAJOR}, {MINOR}, {PATCH}, and {BUILD}`, source);
|
|
66
|
+
}
|
|
67
|
+
if (match.index > lastIndex) {
|
|
68
|
+
segments.push({ kind: 'literal', text: format.slice(lastIndex, match.index) });
|
|
69
|
+
}
|
|
70
|
+
segments.push({ kind: 'placeholder', name: name });
|
|
71
|
+
lastIndex = match.index + match[0].length;
|
|
72
|
+
}
|
|
73
|
+
if (lastIndex < format.length) {
|
|
74
|
+
segments.push({ kind: 'literal', text: format.slice(lastIndex) });
|
|
75
|
+
}
|
|
76
|
+
return segments;
|
|
77
|
+
}
|
|
78
|
+
function validate(format, segments, source) {
|
|
79
|
+
if (segments.some((segment) => segment.kind === 'literal' && /[{}]/.test(segment.text))) {
|
|
80
|
+
throw new VersionTagFormatError(format, 'contains an unmatched "{" or "}"', source);
|
|
81
|
+
}
|
|
82
|
+
for (const name of PLACEHOLDERS) {
|
|
83
|
+
const count = segments.filter((segment) => segment.kind === 'placeholder' && segment.name === name).length;
|
|
84
|
+
if (count !== 1) {
|
|
85
|
+
throw new VersionTagFormatError(format, `{${name}} must appear exactly once, found ${count}`, source);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
segments.forEach((segment, index) => {
|
|
89
|
+
const next = segments[index + 1];
|
|
90
|
+
if (segment.kind === 'placeholder' && next?.kind === 'placeholder') {
|
|
91
|
+
throw new VersionTagFormatError(format, `{${segment.name}}{${next.name}} must be separated by a non-digit`, source);
|
|
92
|
+
}
|
|
93
|
+
const following = segments[index + 2];
|
|
94
|
+
if (segment.kind === 'placeholder' &&
|
|
95
|
+
next?.kind === 'literal' &&
|
|
96
|
+
following?.kind === 'placeholder' &&
|
|
97
|
+
/^\d+$/.test(next.text)) {
|
|
98
|
+
throw new VersionTagFormatError(format, `{${segment.name}} and {${following.name}} must be separated by a non-digit`, source);
|
|
99
|
+
}
|
|
100
|
+
});
|
|
101
|
+
const problem = findRefNameProblem(renderSegments(segments, { major: '1', minor: '2', patch: '3', build: '4' }));
|
|
102
|
+
if (problem) {
|
|
103
|
+
throw new VersionTagFormatError(format, `the tags it produces aren't valid git tag names: ${problem}`, source);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
function renderSegments(segments, values, missing = '') {
|
|
107
|
+
return segments
|
|
108
|
+
.map((segment) => segment.kind === 'literal' ? segment.text : (values[segment.name.toLowerCase()] ?? missing))
|
|
109
|
+
.join('');
|
|
110
|
+
}
|
|
111
|
+
function escapeRegExp(text) {
|
|
112
|
+
return text.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* A validated version tag format. Every command that writes or reads a package version's git tag
|
|
116
|
+
* goes through one of these, so they agree on the tag's shape.
|
|
117
|
+
*/
|
|
118
|
+
export class VersionTagFormat {
|
|
119
|
+
format;
|
|
120
|
+
segments;
|
|
121
|
+
tagPattern;
|
|
122
|
+
constructor(format, source) {
|
|
123
|
+
this.format = format;
|
|
124
|
+
this.segments = tokenize(format, source);
|
|
125
|
+
validate(format, this.segments, source);
|
|
126
|
+
const versionPattern = this.segments
|
|
127
|
+
.map((segment) => segment.kind === 'literal' ? escapeRegExp(segment.text) : `(?<${segment.name.toLowerCase()}>\\d+)`)
|
|
128
|
+
.join('');
|
|
129
|
+
this.tagPattern = new RegExp(`^(?<versionTag>${versionPattern})(?:-(?<rest>.*))?$`);
|
|
130
|
+
}
|
|
131
|
+
/** @throws {VersionTagFormatError} If the format can't produce distinct, parseable, legal tags. */
|
|
132
|
+
static parse(format) {
|
|
133
|
+
return new VersionTagFormat(format);
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* The format in `SIMPLY_CICD_VERSION_TAG_FORMAT` when it's set, otherwise the one declared under
|
|
137
|
+
* `plugins.simply.versionTagFormat`, otherwise the default.
|
|
138
|
+
*
|
|
139
|
+
* @throws {VersionTagFormatError} If the chosen format is invalid.
|
|
140
|
+
*/
|
|
141
|
+
static fromProject(project) {
|
|
142
|
+
const override = process.env[VERSION_TAG_FORMAT_ENV_VAR];
|
|
143
|
+
if (override) {
|
|
144
|
+
return new VersionTagFormat(override, VERSION_TAG_FORMAT_ENV_VAR);
|
|
145
|
+
}
|
|
146
|
+
const declared = project ? getPluginConfig(project, VERSION_TAG_FORMAT_CONFIG_PATH) : undefined;
|
|
147
|
+
if (declared === undefined || declared === null || declared === '') {
|
|
148
|
+
return new VersionTagFormat(DEFAULT_VERSION_TAG_FORMAT);
|
|
149
|
+
}
|
|
150
|
+
if (typeof declared !== 'string') {
|
|
151
|
+
throw new VersionTagFormatError(JSON.stringify(declared), 'must be a string');
|
|
152
|
+
}
|
|
153
|
+
return new VersionTagFormat(declared);
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* The tag for `salesforceVersion` (`major.minor.patch.build`), with `-<suffix>` appended when given.
|
|
157
|
+
*
|
|
158
|
+
* @throws {Error} If the version isn't four numeric parts.
|
|
159
|
+
*/
|
|
160
|
+
render(salesforceVersion, suffix) {
|
|
161
|
+
const match = SALESFORCE_VERSION_PATTERN.exec(salesforceVersion.trim());
|
|
162
|
+
if (!match?.groups) {
|
|
163
|
+
throw new Error(`Cannot render a version tag for Salesforce package version "${salesforceVersion}": expected major.minor.patch.build.`);
|
|
164
|
+
}
|
|
165
|
+
const versionTag = renderSegments(this.segments, match.groups);
|
|
166
|
+
return suffix ? `${versionTag}-${suffix}` : versionTag;
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* A `git describe --match` / `git tag --list` glob for tags of the `major.minor.patch` that
|
|
170
|
+
* `versionNumber` (e.g. `6.40.0.NEXT`) declares, with any build and suffix. Without a usable
|
|
171
|
+
* `versionNumber`, any tag starting the way the format starts.
|
|
172
|
+
*/
|
|
173
|
+
matchPattern(versionNumber) {
|
|
174
|
+
const parts = versionNumber?.split('.') ?? [];
|
|
175
|
+
if (parts.length >= 3) {
|
|
176
|
+
const glob = renderSegments(this.segments, { major: parts[0], minor: parts[1], patch: parts[2] }, '*');
|
|
177
|
+
return glob.endsWith('*') ? glob : `${glob}*`;
|
|
178
|
+
}
|
|
179
|
+
const first = this.segments[0];
|
|
180
|
+
return `${first.kind === 'literal' ? first.text : ''}*`;
|
|
181
|
+
}
|
|
182
|
+
/** Splits a tag this format rendered back into its version and suffix; `undefined` if it doesn't match. */
|
|
183
|
+
parseTag(tag) {
|
|
184
|
+
const groups = this.tagPattern.exec(tag)?.groups;
|
|
185
|
+
if (!groups)
|
|
186
|
+
return undefined;
|
|
187
|
+
return {
|
|
188
|
+
versionTag: groups.versionTag,
|
|
189
|
+
version: { major: groups.major, minor: groups.minor, patch: groups.patch, build: groups.build },
|
|
190
|
+
rest: groups.rest ?? '',
|
|
191
|
+
};
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
//# sourceMappingURL=versionTagFormat.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"versionTagFormat.js","sourceRoot":"","sources":["../../src/build/versionTagFormat.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2026, SimplySF.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
/** Plugins installed by default before running a deployment. */
|
|
17
|
+
export const DEFAULT_DEPLOYMENT_PLUGINS = ['@simplysf/simply'];
|
|
18
|
+
//# sourceMappingURL=defaultDeploymentPlugins.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defaultDeploymentPlugins.js","sourceRoot":"","sources":["../../src/config/defaultDeploymentPlugins.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,gEAAgE;AAChE,MAAM,CAAC,MAAM,0BAA0B,GAAa,CAAC,kBAAkB,CAAC,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2026, SimplySF.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
/** Plugins pre-approved as trusted unsigned publishers, to avoid interactive install prompts. */
|
|
17
|
+
export const TRUSTED_PLUGINS = ['sfdmu', '@simplysf/simply'];
|
|
18
|
+
//# sourceMappingURL=trustedPlugins.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trustedPlugins.js","sourceRoot":"","sources":["../../src/config/trustedPlugins.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,iGAAiG;AACjG,MAAM,CAAC,MAAM,eAAe,GAAa,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import type { z } from 'zod';
|
|
2
|
+
import { type VcsProviderKind } from '../vcs/index.js';
|
|
3
|
+
import { type DeployConfig } from '../schemas/deployConfig.js';
|
|
4
|
+
import { type DeployProgress } from '../schemas/deployProgress.js';
|
|
5
|
+
/**
|
|
6
|
+
* A Salesforce org this command operates on, referenced by an alias the calling pipeline has
|
|
7
|
+
* already authenticated — `simply-cicd` never authenticates orgs itself. Optional here because not
|
|
8
|
+
* every stage needs one (e.g. `deployment-close-out`); commands that do require it declare
|
|
9
|
+
* `alias` as `required: true` on the flag itself.
|
|
10
|
+
*/
|
|
11
|
+
export type OrgAuthConfig = {
|
|
12
|
+
alias?: string;
|
|
13
|
+
};
|
|
14
|
+
/** A deployment entry from `deploy.json`, plus the synthetic `{ name: 'local' }` project deployment. */
|
|
15
|
+
export type StageDeployment = {
|
|
16
|
+
[key: string]: unknown;
|
|
17
|
+
name: string;
|
|
18
|
+
slug?: string;
|
|
19
|
+
ref?: string;
|
|
20
|
+
postDeploy?: boolean;
|
|
21
|
+
postDestructive?: boolean;
|
|
22
|
+
preDestructive?: boolean;
|
|
23
|
+
unpackagedDeploy?: boolean;
|
|
24
|
+
testLevel?: string;
|
|
25
|
+
tests?: string;
|
|
26
|
+
};
|
|
27
|
+
export type StageProperty = 'postDeploy' | 'postDestructive' | 'preDestructive' | 'unpackagedDeploy';
|
|
28
|
+
/** Validates `data` against a zod schema, throwing a formatted error (one bullet per issue) if it fails. */
|
|
29
|
+
export declare function validateWithSchema<T>(schema: z.ZodType<T>, data: unknown, fileName: string): T;
|
|
30
|
+
/**
|
|
31
|
+
* Read a JSON file and validate it against a zod schema.
|
|
32
|
+
*
|
|
33
|
+
* @param filePath - The file to read. Its name appears in the error on a schema violation.
|
|
34
|
+
* @param schema - The schema to validate against.
|
|
35
|
+
* @returns The validated contents.
|
|
36
|
+
* @throws {Error} With one bullet per schema issue, via {@link validateWithSchema}.
|
|
37
|
+
* @throws {NodeJS.ErrnoException} If the file can't be read — callers check for `ENOENT` to
|
|
38
|
+
* treat a missing file as non-fatal.
|
|
39
|
+
* @throws {SyntaxError} If the file isn't valid JSON.
|
|
40
|
+
*/
|
|
41
|
+
export declare function loadValidatedJsonFile<T>(filePath: string, schema: z.ZodType<T>): Promise<T>;
|
|
42
|
+
/** Validates a deployment configuration against a set of deployment rules (e.g. "prod must run postDeploy"). */
|
|
43
|
+
export declare function validateDeploymentRules(deploymentConfig: DeployConfig, rulesFile: string): Promise<void>;
|
|
44
|
+
export declare const STAGE_TO_SCRIPT_NAME_MAP: Record<string, string>;
|
|
45
|
+
export declare const STAGE_TO_PROPERTY_MAP: Record<string, string>;
|
|
46
|
+
export declare const STAGE_CONFIG: Record<string, {
|
|
47
|
+
property: StageProperty;
|
|
48
|
+
}>;
|
|
49
|
+
/** Atomically updates a progress file: writes to a temp file first, then renames it into place. */
|
|
50
|
+
export declare function updateProgress(deployProgressFile: string, newProgress: DeployProgress): Promise<void>;
|
|
51
|
+
export type ExecuteStageScriptConfig = {
|
|
52
|
+
alias?: string;
|
|
53
|
+
testLevel?: string;
|
|
54
|
+
tests?: string;
|
|
55
|
+
};
|
|
56
|
+
/**
|
|
57
|
+
* Executes a stage-specific script (e.g. `bin/preDestructive.sh`) for a deployment: installs npm
|
|
58
|
+
* production dependencies if a `package.json` exists, sets executable/writable permissions on the
|
|
59
|
+
* repo's working directories, and runs the script with `--target-org`/`--test-level`/`--tests`.
|
|
60
|
+
*/
|
|
61
|
+
export declare function executeStageScript(deployment: StageDeployment, stage: string, repoDir: string, config: ExecuteStageScriptConfig): Promise<void>;
|
|
62
|
+
export type DeployInstallPackageDependenciesConfig = OrgAuthConfig & {
|
|
63
|
+
wait?: string;
|
|
64
|
+
installType?: 'All' | 'Delta' | 'Upgrade';
|
|
65
|
+
upgradeType?: 'DeprecateOnly' | 'Mixed' | 'Delete';
|
|
66
|
+
};
|
|
67
|
+
/** Installs the target org's packaged dependencies. The org must already be authenticated. */
|
|
68
|
+
export declare function installDeployPackageDependencies(config: DeployInstallPackageDependenciesConfig): Promise<void>;
|
|
69
|
+
/** Logs a per-job duration summary for the given stage, from the recorded progress file durations. */
|
|
70
|
+
export declare function printDeploymentSummary(deployProgress: DeployProgress, stage: string): void;
|
|
71
|
+
export type RunApexTestsConfig = OrgAuthConfig & {
|
|
72
|
+
testLevel?: string;
|
|
73
|
+
testSuite?: string;
|
|
74
|
+
wait?: string;
|
|
75
|
+
debugMode?: boolean;
|
|
76
|
+
};
|
|
77
|
+
/** Runs Apex tests on the target org. The org must already be authenticated. */
|
|
78
|
+
export declare function runDeployApexTests(config: RunApexTestsConfig): Promise<void>;
|
|
79
|
+
export declare function loadProgress(deployProgressFile: string): Promise<DeployProgress>;
|
|
80
|
+
export type RunDeploymentStepsConfig = OrgAuthConfig & {
|
|
81
|
+
deployConfigFile: string;
|
|
82
|
+
deployRulesFile: string;
|
|
83
|
+
deployProgressFile: string;
|
|
84
|
+
stage: string;
|
|
85
|
+
startFrom?: string;
|
|
86
|
+
isProjectDeployment?: boolean;
|
|
87
|
+
debug?: boolean;
|
|
88
|
+
testLevel?: string;
|
|
89
|
+
tests?: string;
|
|
90
|
+
ciJobToken: string;
|
|
91
|
+
vcsHost?: string;
|
|
92
|
+
vcsProvider: VcsProviderKind;
|
|
93
|
+
};
|
|
94
|
+
export type RunDeploymentStepsResult = {
|
|
95
|
+
deployProgress: DeployProgress;
|
|
96
|
+
};
|
|
97
|
+
/**
|
|
98
|
+
* Runs a complete set of deployment jobs for a stage: loads (and validates) the progress and
|
|
99
|
+
* config files, determines where to resume from, then clones/prepares/executes each job in order
|
|
100
|
+
* — persisting progress after every job so a mid-run crash can resume cleanly. The target org
|
|
101
|
+
* (`config.alias`) must already be authenticated.
|
|
102
|
+
*/
|
|
103
|
+
export declare function runDeploymentSteps(config: RunDeploymentStepsConfig): Promise<RunDeploymentStepsResult>;
|
|
104
|
+
/** Determines the deploy config file path: explicit path wins, else derived from the branch name. */
|
|
105
|
+
export declare function determineDeployConfigFile(sourceBranchName?: string, deployConfigFile?: string): string | undefined;
|