@salesforce/plugin-release-management 4.5.27 → 4.6.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 +18 -41
- package/bin/dev.js +8 -6
- package/bin/run.js +7 -5
- package/lib/amazonS3.d.ts +4 -8
- package/lib/amazonS3.js +76 -81
- package/lib/amazonS3.js.map +1 -1
- package/lib/codeSigning/NpmName.js +5 -9
- package/lib/codeSigning/NpmName.js.map +1 -1
- package/lib/codeSigning/SimplifiedSigning.d.ts +1 -1
- package/lib/codeSigning/SimplifiedSigning.js +16 -21
- package/lib/codeSigning/SimplifiedSigning.js.map +1 -1
- package/lib/codeSigning/error.js +2 -6
- package/lib/codeSigning/error.js.map +1 -1
- package/lib/codeSigning/packAndSign.d.ts +2 -2
- package/lib/codeSigning/packAndSign.js +45 -44
- package/lib/codeSigning/packAndSign.js.map +1 -1
- package/lib/codeSigning/upload.d.ts +1 -1
- package/lib/codeSigning/upload.js +4 -8
- package/lib/codeSigning/upload.js.map +1 -1
- package/lib/commands/channel/promote.d.ts +11 -4
- package/lib/commands/channel/promote.js +113 -115
- package/lib/commands/channel/promote.js.map +1 -1
- package/lib/commands/cli/artifacts/compare.js +58 -52
- package/lib/commands/cli/artifacts/compare.js.map +1 -1
- package/lib/commands/cli/install/jit/test.d.ts +1 -1
- package/lib/commands/cli/install/jit/test.js +18 -21
- package/lib/commands/cli/install/jit/test.js.map +1 -1
- package/lib/commands/cli/install/test.d.ts +4 -4
- package/lib/commands/cli/install/test.js +114 -106
- package/lib/commands/cli/install/test.js.map +1 -1
- package/lib/commands/cli/release/automerge.d.ts +5 -5
- package/lib/commands/cli/release/automerge.js +44 -47
- package/lib/commands/cli/release/automerge.js.map +1 -1
- package/lib/commands/cli/release/build.d.ts +12 -12
- package/lib/commands/cli/release/build.js +78 -81
- package/lib/commands/cli/release/build.js.map +1 -1
- package/lib/commands/cli/releasenotes.d.ts +4 -4
- package/lib/commands/cli/releasenotes.js +49 -54
- package/lib/commands/cli/releasenotes.js.map +1 -1
- package/lib/commands/cli/tarballs/prepare.js +31 -33
- package/lib/commands/cli/tarballs/prepare.js.map +1 -1
- package/lib/commands/cli/tarballs/smoke.js +32 -31
- package/lib/commands/cli/tarballs/smoke.js.map +1 -1
- package/lib/commands/cli/tarballs/verify.d.ts +1 -1
- package/lib/commands/cli/tarballs/verify.js +58 -62
- package/lib/commands/cli/tarballs/verify.js.map +1 -1
- package/lib/commands/cli/versions/inspect.d.ts +4 -3
- package/lib/commands/cli/versions/inspect.js +79 -84
- package/lib/commands/cli/versions/inspect.js.map +1 -1
- package/lib/commands/dependabot/automerge.d.ts +6 -6
- package/lib/commands/dependabot/automerge.js +48 -48
- package/lib/commands/dependabot/automerge.js.map +1 -1
- package/lib/commands/github/check/closed.d.ts +7 -5
- package/lib/commands/github/check/closed.js +25 -28
- package/lib/commands/github/check/closed.js.map +1 -1
- package/lib/commands/npm/dependencies/pin.d.ts +3 -3
- package/lib/commands/npm/dependencies/pin.js +21 -24
- package/lib/commands/npm/dependencies/pin.js.map +1 -1
- package/lib/commands/npm/package/release.d.ts +11 -12
- package/lib/commands/npm/package/release.js +58 -61
- package/lib/commands/npm/package/release.js.map +1 -1
- package/lib/commands/repositories/index.d.ts +4 -3
- package/lib/commands/repositories/index.js +17 -20
- package/lib/commands/repositories/index.js.map +1 -1
- package/lib/dependabot.d.ts +1 -1
- package/lib/dependabot.js +13 -17
- package/lib/dependabot.js.map +1 -1
- package/lib/dependencies.d.ts +1 -1
- package/lib/dependencies.js +3 -7
- package/lib/dependencies.js.map +1 -1
- package/lib/index.d.ts +1 -2
- package/lib/index.js +1 -2
- package/lib/index.js.map +1 -1
- package/lib/jit.js +18 -22
- package/lib/jit.js.map +1 -1
- package/lib/package.d.ts +0 -2
- package/lib/package.js +36 -59
- package/lib/package.js.map +1 -1
- package/lib/registry.js +19 -18
- package/lib/registry.js.map +1 -1
- package/lib/repositories.js +5 -9
- package/lib/repositories.js.map +1 -1
- package/lib/repository.d.ts +5 -7
- package/lib/repository.js +41 -43
- package/lib/repository.js.map +1 -1
- package/lib/types.js +4 -7
- package/lib/types.js.map +1 -1
- package/npm-shrinkwrap.json +2952 -2228
- package/oclif.manifest.json +17 -69
- package/package.json +9 -9
- package/lib/commands/cli/schemas/compare.d.ts +0 -19
- package/lib/commands/cli/schemas/compare.js +0 -114
- package/lib/commands/cli/schemas/compare.js.map +0 -1
- package/messages/cli.schemas.compare.md +0 -7
|
@@ -1,31 +1,110 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/*
|
|
3
2
|
* Copyright (c) 2020, salesforce.com, inc.
|
|
4
3
|
* All rights reserved.
|
|
5
4
|
* Licensed under the BSD 3-Clause license.
|
|
6
5
|
* For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
|
|
7
6
|
*/
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
const messages = core_1.Messages.loadMessages('@salesforce/plugin-release-management', 'channel.promote');
|
|
7
|
+
import chalk from 'chalk';
|
|
8
|
+
import { valid as validSemVer } from 'semver';
|
|
9
|
+
import shelljs from 'shelljs';
|
|
10
|
+
import { Logger, Messages, SfError } from '@salesforce/core';
|
|
11
|
+
import { ensureString, isString } from '@salesforce/ts-types';
|
|
12
|
+
import { SfCommand, Flags, arrayWithDeprecation } from '@salesforce/sf-plugins-core';
|
|
13
|
+
import { AmazonS3 } from '../../amazonS3.js';
|
|
14
|
+
import { verifyDependencies } from '../../dependencies.js';
|
|
15
|
+
import { CLI, Channel } from '../../types.js';
|
|
16
|
+
Messages.importMessagesDirectoryFromMetaUrl(import.meta.url);
|
|
17
|
+
const messages = Messages.loadMessages('@salesforce/plugin-release-management', 'channel.promote');
|
|
20
18
|
const TARGETS = ['linux-x64', 'linux-arm', 'win32-x64', 'win32-x86', 'darwin-x64'];
|
|
21
|
-
class Promote extends
|
|
19
|
+
export default class Promote extends SfCommand {
|
|
20
|
+
static description = messages.getMessage('description');
|
|
21
|
+
static summary = messages.getMessage('summary');
|
|
22
|
+
static examples = messages.getMessages('examples');
|
|
23
|
+
static flags = {
|
|
24
|
+
dryrun: Flags.boolean({
|
|
25
|
+
char: 'd',
|
|
26
|
+
default: false,
|
|
27
|
+
summary: messages.getMessage('flags.dryrun.summary'),
|
|
28
|
+
}),
|
|
29
|
+
'promote-to-channel': Flags.string({
|
|
30
|
+
char: 't',
|
|
31
|
+
default: Channel.STABLE,
|
|
32
|
+
summary: messages.getMessage('flags.promote-to-channel.summary'),
|
|
33
|
+
// options: Object.values(Channel),
|
|
34
|
+
required: true,
|
|
35
|
+
aliases: ['target'],
|
|
36
|
+
}),
|
|
37
|
+
'promote-from-channel': Flags.string({
|
|
38
|
+
char: 'C',
|
|
39
|
+
summary: messages.getMessage('flags.promote-from-channel.summary'),
|
|
40
|
+
// options: Object.values(Channel),
|
|
41
|
+
exactlyOne: ['sha', 'version', 'promote-from-channel'],
|
|
42
|
+
aliases: ['candidate'],
|
|
43
|
+
}),
|
|
44
|
+
platform: arrayWithDeprecation({
|
|
45
|
+
char: 'p',
|
|
46
|
+
summary: messages.getMessage('flags.platform.summary'),
|
|
47
|
+
options: ['win', 'macos', 'deb'],
|
|
48
|
+
}),
|
|
49
|
+
cli: Flags.custom({
|
|
50
|
+
options: Object.values(CLI),
|
|
51
|
+
})({
|
|
52
|
+
char: 'c',
|
|
53
|
+
summary: messages.getMessage('flags.cli.summary'),
|
|
54
|
+
required: true,
|
|
55
|
+
}),
|
|
56
|
+
sha: Flags.string({
|
|
57
|
+
char: 's',
|
|
58
|
+
summary: messages.getMessage('flags.sha.summary'),
|
|
59
|
+
exactlyOne: ['sha', 'version', 'promote-from-channel'],
|
|
60
|
+
parse: (input) => Promise.resolve(input.slice(0, 7)),
|
|
61
|
+
validate: (input) => {
|
|
62
|
+
if (input.length < 7) {
|
|
63
|
+
return false;
|
|
64
|
+
}
|
|
65
|
+
return true;
|
|
66
|
+
},
|
|
67
|
+
}),
|
|
68
|
+
'max-age': Flags.integer({
|
|
69
|
+
char: 'm',
|
|
70
|
+
summary: messages.getMessage('flags.max-age.summary'),
|
|
71
|
+
default: 300,
|
|
72
|
+
aliases: ['maxage'],
|
|
73
|
+
}),
|
|
74
|
+
indexes: Flags.boolean({
|
|
75
|
+
char: 'i',
|
|
76
|
+
summary: messages.getMessage('flags.indexes.summary'),
|
|
77
|
+
default: true,
|
|
78
|
+
allowNo: true,
|
|
79
|
+
}),
|
|
80
|
+
xz: Flags.boolean({
|
|
81
|
+
char: 'x',
|
|
82
|
+
summary: messages.getMessage('flags.xz.summary'),
|
|
83
|
+
default: true,
|
|
84
|
+
allowNo: true,
|
|
85
|
+
}),
|
|
86
|
+
'architecture-target': arrayWithDeprecation({
|
|
87
|
+
char: 'T',
|
|
88
|
+
summary: messages.getMessage('targets'),
|
|
89
|
+
options: TARGETS,
|
|
90
|
+
aliases: ['targets'],
|
|
91
|
+
}),
|
|
92
|
+
version: Flags.string({
|
|
93
|
+
char: 'v',
|
|
94
|
+
summary: messages.getMessage('flags.version.summary'),
|
|
95
|
+
exactlyOne: ['sha', 'version', 'promote-from-channel'],
|
|
96
|
+
parse: (input) => Promise.resolve(input.trim()),
|
|
97
|
+
validate: (input) => validSemVer(input) !== null,
|
|
98
|
+
}),
|
|
99
|
+
};
|
|
100
|
+
flags;
|
|
22
101
|
async run() {
|
|
23
102
|
const { flags } = await this.parse(Promote);
|
|
24
103
|
this.flags = flags;
|
|
25
104
|
this.validateFlags();
|
|
26
105
|
// preparing parameters for call to oclif promote commands
|
|
27
106
|
const cli = this.flags.cli;
|
|
28
|
-
const target =
|
|
107
|
+
const target = ensureString(this.flags['promote-to-channel']);
|
|
29
108
|
const indexes = this.flags.indexes ? '--indexes' : '';
|
|
30
109
|
const xz = this.flags.xz ? '--xz' : '--no-xz';
|
|
31
110
|
const { sha, version } = await determineShaAndVersion(cli, this.flags['promote-from-channel'], this.flags.version, this.flags.sha);
|
|
@@ -45,11 +124,11 @@ class Promote extends sf_plugins_core_1.SfCommand {
|
|
|
45
124
|
indexes,
|
|
46
125
|
xz,
|
|
47
126
|
];
|
|
48
|
-
const results =
|
|
127
|
+
const results = shelljs.exec(`yarn oclif promote ${params.join(' ')}`);
|
|
49
128
|
this.log(results.stdout);
|
|
50
129
|
}
|
|
51
130
|
else if (!this.flags.json) {
|
|
52
|
-
this.log(messages.getMessage('DryRunMessage', [cli, version, sha, target, this.flags.platform?.join(', ') ?? 'all'].map((s) =>
|
|
131
|
+
this.log(messages.getMessage('DryRunMessage', [cli, version, sha, target, this.flags.platform?.join(', ') ?? 'all'].map((s) => chalk.bold(s))));
|
|
53
132
|
}
|
|
54
133
|
return {
|
|
55
134
|
dryRun: !!this.flags.dryrun,
|
|
@@ -68,101 +147,20 @@ class Promote extends sf_plugins_core_1.SfCommand {
|
|
|
68
147
|
validateFlags() {
|
|
69
148
|
// cannot promote when channel names are the same
|
|
70
149
|
if (this.flags['promote-from-channel'] && this.flags['promote-from-channel'] === this.flags['promote-to-channel']) {
|
|
71
|
-
throw new
|
|
150
|
+
throw new SfError(messages.getMessage('CannotPromoteToSameChannel'));
|
|
72
151
|
}
|
|
73
152
|
// make sure necessary runtime dependencies are present
|
|
74
|
-
const deps =
|
|
153
|
+
const deps = verifyDependencies(this.flags, (dep) => dep.name.startsWith('AWS'), (args) => !args.dryrun);
|
|
75
154
|
if (deps.failures > 0) {
|
|
76
155
|
const errType = 'MissingDependencies';
|
|
77
156
|
const missing = deps.results
|
|
78
157
|
.filter((d) => d.passed === false)
|
|
79
158
|
.map((d) => d.message)
|
|
80
|
-
.filter(
|
|
81
|
-
throw new
|
|
159
|
+
.filter(isString);
|
|
160
|
+
throw new SfError(messages.getMessage(errType), errType, missing);
|
|
82
161
|
}
|
|
83
162
|
}
|
|
84
163
|
}
|
|
85
|
-
Promote.description = messages.getMessage('description');
|
|
86
|
-
Promote.summary = messages.getMessage('summary');
|
|
87
|
-
Promote.examples = messages.getMessages('examples');
|
|
88
|
-
Promote.flags = {
|
|
89
|
-
dryrun: sf_plugins_core_1.Flags.boolean({
|
|
90
|
-
char: 'd',
|
|
91
|
-
default: false,
|
|
92
|
-
summary: messages.getMessage('flags.dryrun.summary'),
|
|
93
|
-
}),
|
|
94
|
-
'promote-to-channel': sf_plugins_core_1.Flags.string({
|
|
95
|
-
char: 't',
|
|
96
|
-
default: types_1.Channel.STABLE,
|
|
97
|
-
summary: messages.getMessage('flags.promote-to-channel.summary'),
|
|
98
|
-
// options: Object.values(Channel),
|
|
99
|
-
required: true,
|
|
100
|
-
aliases: ['target'],
|
|
101
|
-
}),
|
|
102
|
-
'promote-from-channel': sf_plugins_core_1.Flags.string({
|
|
103
|
-
char: 'C',
|
|
104
|
-
summary: messages.getMessage('flags.promote-from-channel.summary'),
|
|
105
|
-
// options: Object.values(Channel),
|
|
106
|
-
exactlyOne: ['sha', 'version', 'promote-from-channel'],
|
|
107
|
-
aliases: ['candidate'],
|
|
108
|
-
}),
|
|
109
|
-
platform: (0, sf_plugins_core_1.arrayWithDeprecation)({
|
|
110
|
-
char: 'p',
|
|
111
|
-
summary: messages.getMessage('flags.platform.summary'),
|
|
112
|
-
options: ['win', 'macos', 'deb'],
|
|
113
|
-
}),
|
|
114
|
-
cli: sf_plugins_core_1.Flags.custom({
|
|
115
|
-
options: Object.values(types_1.CLI),
|
|
116
|
-
})({
|
|
117
|
-
char: 'c',
|
|
118
|
-
summary: messages.getMessage('flags.cli.summary'),
|
|
119
|
-
required: true,
|
|
120
|
-
}),
|
|
121
|
-
sha: sf_plugins_core_1.Flags.string({
|
|
122
|
-
char: 's',
|
|
123
|
-
summary: messages.getMessage('flags.sha.summary'),
|
|
124
|
-
exactlyOne: ['sha', 'version', 'promote-from-channel'],
|
|
125
|
-
parse: (input) => Promise.resolve(input.slice(0, 7)),
|
|
126
|
-
validate: (input) => {
|
|
127
|
-
if (input.length < 7) {
|
|
128
|
-
return false;
|
|
129
|
-
}
|
|
130
|
-
return true;
|
|
131
|
-
},
|
|
132
|
-
}),
|
|
133
|
-
'max-age': sf_plugins_core_1.Flags.integer({
|
|
134
|
-
char: 'm',
|
|
135
|
-
summary: messages.getMessage('flags.max-age.summary'),
|
|
136
|
-
default: 300,
|
|
137
|
-
aliases: ['maxage'],
|
|
138
|
-
}),
|
|
139
|
-
indexes: sf_plugins_core_1.Flags.boolean({
|
|
140
|
-
char: 'i',
|
|
141
|
-
summary: messages.getMessage('flags.indexes.summary'),
|
|
142
|
-
default: true,
|
|
143
|
-
allowNo: true,
|
|
144
|
-
}),
|
|
145
|
-
xz: sf_plugins_core_1.Flags.boolean({
|
|
146
|
-
char: 'x',
|
|
147
|
-
summary: messages.getMessage('flags.xz.summary'),
|
|
148
|
-
default: true,
|
|
149
|
-
allowNo: true,
|
|
150
|
-
}),
|
|
151
|
-
'architecture-target': (0, sf_plugins_core_1.arrayWithDeprecation)({
|
|
152
|
-
char: 'T',
|
|
153
|
-
summary: messages.getMessage('targets'),
|
|
154
|
-
options: TARGETS,
|
|
155
|
-
aliases: ['targets'],
|
|
156
|
-
}),
|
|
157
|
-
version: sf_plugins_core_1.Flags.string({
|
|
158
|
-
char: 'v',
|
|
159
|
-
summary: messages.getMessage('flags.version.summary'),
|
|
160
|
-
exactlyOne: ['sha', 'version', 'promote-from-channel'],
|
|
161
|
-
parse: (input) => Promise.resolve(input.trim()),
|
|
162
|
-
validate: (input) => (0, semver_1.valid)(input) !== null,
|
|
163
|
-
}),
|
|
164
|
-
};
|
|
165
|
-
exports.default = Promote;
|
|
166
164
|
/**
|
|
167
165
|
* find a manifest file in the channel
|
|
168
166
|
*
|
|
@@ -171,7 +169,7 @@ exports.default = Promote;
|
|
|
171
169
|
* @private
|
|
172
170
|
*/
|
|
173
171
|
const findManifestForCandidate = async (cli, channel) => {
|
|
174
|
-
const amazonS3 = new
|
|
172
|
+
const amazonS3 = new AmazonS3({ cli, channel });
|
|
175
173
|
return amazonS3.getManifestFromChannel(channel);
|
|
176
174
|
};
|
|
177
175
|
/**
|
|
@@ -182,7 +180,7 @@ const findManifestForCandidate = async (cli, channel) => {
|
|
|
182
180
|
* @private
|
|
183
181
|
*/
|
|
184
182
|
const findVersionForSha = async (cli, sha) => {
|
|
185
|
-
const amazonS3 = new
|
|
183
|
+
const amazonS3 = new AmazonS3({ cli });
|
|
186
184
|
const foundVersionPrefix = (await Promise.all((await amazonS3.listCommonPrefixes('versions')).map(async (versionPrefix) => amazonS3.listCommonPrefixes(versionPrefix))))
|
|
187
185
|
.flat()
|
|
188
186
|
.find((s) => s.replace(/\/$/, '').endsWith(sha));
|
|
@@ -191,8 +189,8 @@ const findVersionForSha = async (cli, sha) => {
|
|
|
191
189
|
// when reversed after split version number should occupy entry 1 of the array
|
|
192
190
|
return foundVersionPrefix?.replace(/\/$/, '').split('/').reverse()[1];
|
|
193
191
|
}
|
|
194
|
-
const error = new
|
|
195
|
-
const logger =
|
|
192
|
+
const error = new SfError(messages.getMessage('CouldNotLocateVersionForSha', [sha]));
|
|
193
|
+
const logger = Logger.childFromRoot('Promote.findVersionForSha');
|
|
196
194
|
logger.debug(error);
|
|
197
195
|
throw error;
|
|
198
196
|
};
|
|
@@ -212,15 +210,15 @@ const determineShaAndVersion = async (cli, candidate, version, sha) => {
|
|
|
212
210
|
return { sha: manifest.sha, version: manifest.version };
|
|
213
211
|
}
|
|
214
212
|
else if (version) {
|
|
215
|
-
const shaFromVersion = await findShaForVersion(cli,
|
|
216
|
-
return { sha: shaFromVersion, version:
|
|
213
|
+
const shaFromVersion = await findShaForVersion(cli, ensureString(version));
|
|
214
|
+
return { sha: shaFromVersion, version: ensureString(version) };
|
|
217
215
|
}
|
|
218
216
|
else if (sha) {
|
|
219
|
-
|
|
217
|
+
ensureString(sha);
|
|
220
218
|
const versionFromSha = await findVersionForSha(cli, sha);
|
|
221
219
|
return { sha, version: versionFromSha };
|
|
222
220
|
}
|
|
223
|
-
throw new
|
|
221
|
+
throw new SfError(messages.getMessage('CouldNotDetermineShaAndVersion'));
|
|
224
222
|
};
|
|
225
223
|
/**
|
|
226
224
|
* find the sha that was uploaded most recently for the named version
|
|
@@ -230,8 +228,8 @@ const determineShaAndVersion = async (cli, candidate, version, sha) => {
|
|
|
230
228
|
* @private
|
|
231
229
|
*/
|
|
232
230
|
const findShaForVersion = async (cli, version) => {
|
|
233
|
-
const logger =
|
|
234
|
-
const amazonS3 = new
|
|
231
|
+
const logger = Logger.childFromRoot('Promote.findShaForVersion');
|
|
232
|
+
const amazonS3 = new AmazonS3({ cli });
|
|
235
233
|
const versions = await amazonS3.listCommonPrefixes('versions');
|
|
236
234
|
const foundVersion = versions.find((v) => v.endsWith(`${version}/`));
|
|
237
235
|
if (foundVersion) {
|
|
@@ -240,7 +238,7 @@ const findShaForVersion = async (cli, version) => {
|
|
|
240
238
|
logger.debug(`Looking for version ${version} for cli ${cli} shas. Found ${versionShas.length} entries`);
|
|
241
239
|
const manifestForMostRecentSha = (await Promise.all(versionShas.map(async (versionSha) => {
|
|
242
240
|
if (!versionSha) {
|
|
243
|
-
throw new
|
|
241
|
+
throw new SfError(`Could not find prefix for ${versionSha}`);
|
|
244
242
|
}
|
|
245
243
|
const versionShaContents = (await amazonS3.listKeyContents(versionSha));
|
|
246
244
|
return versionShaContents.map((content) => ({
|
|
@@ -257,14 +255,14 @@ const findShaForVersion = async (cli, version) => {
|
|
|
257
255
|
ResponseContentType: 'application/json',
|
|
258
256
|
});
|
|
259
257
|
if (!manifest.Body) {
|
|
260
|
-
throw new
|
|
258
|
+
throw new SfError(`Could not load manifest body from S3 getObject response for ${manifestForMostRecentSha.Key}`);
|
|
261
259
|
}
|
|
262
260
|
logger.debug(`Loaded manifest ${manifestForMostRecentSha.Key} contents: ${String(manifest)}`);
|
|
263
261
|
const json = JSON.parse(String(manifest.Body));
|
|
264
262
|
return json.sha;
|
|
265
263
|
}
|
|
266
264
|
}
|
|
267
|
-
const error = new
|
|
265
|
+
const error = new SfError(messages.getMessage('CouldNotLocateShaForVersion', [version]));
|
|
268
266
|
logger.debug(error);
|
|
269
267
|
throw error;
|
|
270
268
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"promote.js","sourceRoot":"","sources":["../../../src/commands/channel/promote.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"promote.js","sourceRoot":"","sources":["../../../src/commands/channel/promote.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,29 +1,26 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/*
|
|
3
2
|
* Copyright (c) 2020, salesforce.com, inc.
|
|
4
3
|
* All rights reserved.
|
|
5
4
|
* Licensed under the BSD 3-Clause license.
|
|
6
5
|
* For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
|
|
7
6
|
*/
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
const
|
|
22
|
-
const
|
|
23
|
-
|
|
24
|
-
const
|
|
25
|
-
core_1.Messages.importMessagesDirectory(__dirname);
|
|
26
|
-
const messages = core_1.Messages.loadMessages('@salesforce/plugin-release-management', 'cli.artifacts.compare');
|
|
7
|
+
import fs from 'node:fs';
|
|
8
|
+
import { exec as execSync } from 'node:child_process';
|
|
9
|
+
import { promisify } from 'node:util';
|
|
10
|
+
import chalk from 'chalk';
|
|
11
|
+
import semver from 'semver';
|
|
12
|
+
import got from 'got';
|
|
13
|
+
import { diff } from 'just-diff';
|
|
14
|
+
import { SfCommand, Flags } from '@salesforce/sf-plugins-core';
|
|
15
|
+
import { Messages, SfError } from '@salesforce/core';
|
|
16
|
+
import { env, parseJson } from '@salesforce/kit';
|
|
17
|
+
import { Octokit } from '@octokit/core';
|
|
18
|
+
import { paginateRest } from '@octokit/plugin-paginate-rest';
|
|
19
|
+
import { ensureString, get, isNumber } from '@salesforce/ts-types';
|
|
20
|
+
const MyOctokit = Octokit.plugin(paginateRest);
|
|
21
|
+
const exec = promisify(execSync);
|
|
22
|
+
Messages.importMessagesDirectoryFromMetaUrl(import.meta.url);
|
|
23
|
+
const messages = Messages.loadMessages('@salesforce/plugin-release-management', 'cli.artifacts.compare');
|
|
27
24
|
async function getOwnerAndRepo(plugin) {
|
|
28
25
|
const result = await exec(`npm view ${plugin} repository.url --json`);
|
|
29
26
|
const parsed = JSON.parse(result.stdout)
|
|
@@ -43,7 +40,9 @@ function verifyCurrentIsNewer(current, previous) {
|
|
|
43
40
|
throw new Error(messages.getMessage('error.InvalidVersions', [current, previous]));
|
|
44
41
|
}
|
|
45
42
|
}
|
|
46
|
-
class SnapshotComparator {
|
|
43
|
+
export class SnapshotComparator {
|
|
44
|
+
current;
|
|
45
|
+
previous;
|
|
47
46
|
constructor(current, previous) {
|
|
48
47
|
this.current = current;
|
|
49
48
|
this.previous = previous;
|
|
@@ -123,8 +122,9 @@ class SnapshotComparator {
|
|
|
123
122
|
return previous.alias.filter((alias) => !current.alias.includes(alias));
|
|
124
123
|
}
|
|
125
124
|
}
|
|
126
|
-
|
|
127
|
-
|
|
125
|
+
export class SchemaComparator {
|
|
126
|
+
current;
|
|
127
|
+
previous;
|
|
128
128
|
constructor(current, previous) {
|
|
129
129
|
this.current = current;
|
|
130
130
|
this.previous = previous;
|
|
@@ -136,14 +136,14 @@ class SchemaComparator {
|
|
|
136
136
|
if (SchemaComparator.isMeaningless(lastPathElement))
|
|
137
137
|
continue;
|
|
138
138
|
const objPath = change.path.join('.');
|
|
139
|
-
const existing =
|
|
140
|
-
const latest =
|
|
139
|
+
const existing = get(previous, objPath);
|
|
140
|
+
const latest = get(current, objPath);
|
|
141
141
|
const [commandId] = objPath.split('.definitions');
|
|
142
142
|
const readablePath = objPath.replace(`${commandId}.`, '');
|
|
143
143
|
if (!humanReadableChanges[commandId]) {
|
|
144
144
|
humanReadableChanges[commandId] = [];
|
|
145
145
|
}
|
|
146
|
-
const lastElementIsNum =
|
|
146
|
+
const lastElementIsNum = isNumber(lastPathElement);
|
|
147
147
|
const basePath = lastElementIsNum ? readablePath.replace(`.${lastPathElement}`, '') : readablePath;
|
|
148
148
|
switch (change.op) {
|
|
149
149
|
case 'replace':
|
|
@@ -173,18 +173,42 @@ class SchemaComparator {
|
|
|
173
173
|
return meaninglessKeys.includes(n);
|
|
174
174
|
}
|
|
175
175
|
getChanges() {
|
|
176
|
-
return
|
|
176
|
+
return diff(this.previous, this.current);
|
|
177
177
|
}
|
|
178
178
|
}
|
|
179
|
-
|
|
180
|
-
|
|
179
|
+
export default class ArtifactsTest extends SfCommand {
|
|
180
|
+
static summary = messages.getMessage('summary');
|
|
181
|
+
static examples = messages.getMessages('examples');
|
|
182
|
+
static flags = {
|
|
183
|
+
plugin: Flags.string({
|
|
184
|
+
char: 'p',
|
|
185
|
+
multiple: true,
|
|
186
|
+
summary: messages.getMessage('flags.plugin.summary'),
|
|
187
|
+
}),
|
|
188
|
+
previous: Flags.string({
|
|
189
|
+
char: 'r',
|
|
190
|
+
summary: messages.getMessage('flags.previous.summary'),
|
|
191
|
+
}),
|
|
192
|
+
current: Flags.string({
|
|
193
|
+
char: 'c',
|
|
194
|
+
summary: messages.getMessage('flags.current.summary'),
|
|
195
|
+
}),
|
|
196
|
+
};
|
|
197
|
+
octokit;
|
|
198
|
+
currentPlugins;
|
|
199
|
+
previousPlugins;
|
|
200
|
+
flags;
|
|
201
|
+
packageJson;
|
|
202
|
+
versions;
|
|
203
|
+
current;
|
|
204
|
+
previous;
|
|
181
205
|
async run() {
|
|
182
206
|
const { flags } = await this.parse(ArtifactsTest);
|
|
183
207
|
this.flags = flags;
|
|
184
|
-
const auth =
|
|
208
|
+
const auth = ensureString(env.getString('GH_TOKEN') ?? env.getString('GITHUB_TOKEN'), 'The GH_TOKEN env var is required.');
|
|
185
209
|
this.octokit = new MyOctokit({ auth });
|
|
186
210
|
const fileData = await fs.promises.readFile('package.json', 'utf8');
|
|
187
|
-
this.packageJson =
|
|
211
|
+
this.packageJson = parseJson(fileData);
|
|
188
212
|
if (!['@salesforce/cli', 'sfdx-cli'].includes(this.packageJson.name)) {
|
|
189
213
|
throw messages.createError('error.InvalidRepo');
|
|
190
214
|
}
|
|
@@ -316,7 +340,7 @@ class ArtifactsTest extends sf_plugins_core_1.SfCommand {
|
|
|
316
340
|
}
|
|
317
341
|
resolveVersions() {
|
|
318
342
|
this.current = this.flags.current ?? this.packageJson.version;
|
|
319
|
-
this.previous =
|
|
343
|
+
this.previous = ensureString(this.flags.previous ?? this.versions.find((version) => semver.lt(version, this.current)), 'previous version not found');
|
|
320
344
|
this.log('Current Version:', this.current);
|
|
321
345
|
this.log('Previous Version:', this.previous);
|
|
322
346
|
if (this.flags.current && !this.versions.includes(this.flags.current)) {
|
|
@@ -331,7 +355,7 @@ class ArtifactsTest extends sf_plugins_core_1.SfCommand {
|
|
|
331
355
|
}
|
|
332
356
|
async getPluginsForVersion(version) {
|
|
333
357
|
if (!this.packageJson.repository) {
|
|
334
|
-
throw new
|
|
358
|
+
throw new SfError('the package json does not have a repository field');
|
|
335
359
|
}
|
|
336
360
|
const [owner, repo] = this.packageJson.repository.split('/');
|
|
337
361
|
const response = await this.octokit.request('GET /repos/{owner}/{repo}/contents/{path}', {
|
|
@@ -396,7 +420,7 @@ class ArtifactsTest extends sf_plugins_core_1.SfCommand {
|
|
|
396
420
|
}
|
|
397
421
|
const files = schemaFiles.reduce((acc, file) => ({ ...acc, [file.name]: file.download_url }), {});
|
|
398
422
|
const promises = Object.entries(files).map(async ([name, url]) => {
|
|
399
|
-
const contents = await
|
|
423
|
+
const contents = await got.get(url, { followRedirect: true, responseType: 'json' });
|
|
400
424
|
return { [name.replace(/-/g, ':').replace(/__/g, '-').replace('.json', '')]: contents.body };
|
|
401
425
|
});
|
|
402
426
|
return (await Promise.all(promises)).reduce((acc, result) => ({ ...acc, ...result }), {});
|
|
@@ -436,22 +460,4 @@ class ArtifactsTest extends sf_plugins_core_1.SfCommand {
|
|
|
436
460
|
return response.map((tag) => tag.name);
|
|
437
461
|
}
|
|
438
462
|
}
|
|
439
|
-
ArtifactsTest.summary = messages.getMessage('summary');
|
|
440
|
-
ArtifactsTest.examples = messages.getMessages('examples');
|
|
441
|
-
ArtifactsTest.flags = {
|
|
442
|
-
plugin: sf_plugins_core_1.Flags.string({
|
|
443
|
-
char: 'p',
|
|
444
|
-
multiple: true,
|
|
445
|
-
summary: messages.getMessage('flags.plugin.summary'),
|
|
446
|
-
}),
|
|
447
|
-
previous: sf_plugins_core_1.Flags.string({
|
|
448
|
-
char: 'r',
|
|
449
|
-
summary: messages.getMessage('flags.previous.summary'),
|
|
450
|
-
}),
|
|
451
|
-
current: sf_plugins_core_1.Flags.string({
|
|
452
|
-
char: 'c',
|
|
453
|
-
summary: messages.getMessage('flags.current.summary'),
|
|
454
|
-
}),
|
|
455
|
-
};
|
|
456
|
-
exports.default = ArtifactsTest;
|
|
457
463
|
//# sourceMappingURL=compare.js.map
|