@salesforce/plugin-deploy-retrieve 1.5.3 → 1.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/CHANGELOG.md +16 -0
- package/README.md +163 -23
- package/lib/commands/deploy/metadata/preview.d.ts +17 -0
- package/lib/commands/deploy/metadata/preview.js +86 -0
- package/lib/commands/deploy/metadata/preview.js.map +1 -0
- package/lib/commands/deploy/metadata/quick.js +2 -3
- package/lib/commands/deploy/metadata/quick.js.map +1 -1
- package/lib/commands/deploy/metadata.js.map +1 -1
- package/lib/commands/deploy.js +19 -11
- package/lib/commands/deploy.js.map +1 -1
- package/lib/commands/retrieve/metadata/preview.d.ts +14 -0
- package/lib/commands/retrieve/metadata/preview.js +63 -0
- package/lib/commands/retrieve/metadata/preview.js.map +1 -0
- package/lib/commands/retrieve/metadata.d.ts +4 -0
- package/lib/commands/retrieve/metadata.js +74 -21
- package/lib/commands/retrieve/metadata.js.map +1 -1
- package/lib/utils/deploy.js +17 -17
- package/lib/utils/deploy.js.map +1 -1
- package/lib/utils/flags.d.ts +14 -4
- package/lib/utils/flags.js +66 -20
- package/lib/utils/flags.js.map +1 -1
- package/lib/utils/metadataDeployer.d.ts +2 -2
- package/lib/utils/metadataDeployer.js +9 -7
- package/lib/utils/metadataDeployer.js.map +1 -1
- package/lib/utils/output.d.ts +15 -2
- package/lib/utils/output.js +59 -39
- package/lib/utils/output.js.map +1 -1
- package/lib/utils/previewOutput.d.ts +30 -0
- package/lib/utils/previewOutput.js +199 -0
- package/lib/utils/previewOutput.js.map +1 -0
- package/lib/utils/progressBar.js +1 -2
- package/lib/utils/progressBar.js.map +1 -1
- package/lib/utils/types.d.ts +5 -1
- package/messages/deploy.md +36 -0
- package/messages/deploy.metadata.md +9 -1
- package/messages/deploy.metadata.preview.md +93 -0
- package/messages/deploy.metadata.validate.md +1 -1
- package/messages/previewMessages.md +39 -0
- package/messages/retrieve.metadata.md +37 -1
- package/messages/retrieve.metadata.preview.md +59 -0
- package/messages/validation.md +11 -0
- package/oclif.manifest.json +1 -1
- package/package.json +30 -28
- package/schemas/deploy-metadata-preview.json +72 -0
- package/schemas/retrieve-metadata-preview.json +72 -0
- package/schemas/retrieve-metadata.json +121 -52
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
/*
|
|
4
|
+
* Copyright (c) 2022, salesforce.com, inc.
|
|
5
|
+
* All rights reserved.
|
|
6
|
+
* Licensed under the BSD 3-Clause license.
|
|
7
|
+
* For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
|
|
8
|
+
*/
|
|
9
|
+
const core_1 = require("@salesforce/core");
|
|
10
|
+
const sf_plugins_core_1 = require("@salesforce/sf-plugins-core");
|
|
11
|
+
const source_tracking_1 = require("@salesforce/source-tracking");
|
|
12
|
+
const source_deploy_retrieve_1 = require("@salesforce/source-deploy-retrieve");
|
|
13
|
+
const previewOutput_1 = require("../../../utils/previewOutput");
|
|
14
|
+
core_1.Messages.importMessagesDirectory(__dirname);
|
|
15
|
+
const messages = core_1.Messages.loadMessages('@salesforce/plugin-deploy-retrieve', 'retrieve.metadata.preview');
|
|
16
|
+
class RetrieveMetadataPreview extends sf_plugins_core_1.SfCommand {
|
|
17
|
+
async run() {
|
|
18
|
+
const { flags } = await this.parse(RetrieveMetadataPreview);
|
|
19
|
+
const stl = await source_tracking_1.SourceTracking.create({
|
|
20
|
+
org: flags['target-org'],
|
|
21
|
+
project: this.project,
|
|
22
|
+
ignoreConflicts: flags['ignore-conflicts'],
|
|
23
|
+
});
|
|
24
|
+
const forceIgnore = source_deploy_retrieve_1.ForceIgnore.findAndCreate(this.project.getDefaultPackage().path);
|
|
25
|
+
const [componentSet, filesWithConflicts, remoteDeletes] = await Promise.all([
|
|
26
|
+
stl.remoteNonDeletesAsComponentSet(),
|
|
27
|
+
(0, previewOutput_1.getConflictFiles)(stl, flags['ignore-conflicts']),
|
|
28
|
+
stl.getChanges({ origin: 'remote', state: 'delete', format: 'SourceComponent' }),
|
|
29
|
+
]);
|
|
30
|
+
const output = (0, previewOutput_1.compileResults)({
|
|
31
|
+
componentSet,
|
|
32
|
+
projectPath: this.project.getPath(),
|
|
33
|
+
filesWithConflicts,
|
|
34
|
+
forceIgnore,
|
|
35
|
+
baseOperation: 'retrieve',
|
|
36
|
+
remoteDeletes,
|
|
37
|
+
});
|
|
38
|
+
if (!this.jsonEnabled()) {
|
|
39
|
+
(0, previewOutput_1.printTables)(output, 'retrieve');
|
|
40
|
+
}
|
|
41
|
+
return output;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
exports.default = RetrieveMetadataPreview;
|
|
45
|
+
RetrieveMetadataPreview.description = messages.getMessage('description');
|
|
46
|
+
RetrieveMetadataPreview.summary = messages.getMessage('summary');
|
|
47
|
+
RetrieveMetadataPreview.examples = messages.getMessages('examples');
|
|
48
|
+
RetrieveMetadataPreview.requiresProject = true;
|
|
49
|
+
RetrieveMetadataPreview.state = 'beta';
|
|
50
|
+
RetrieveMetadataPreview.flags = {
|
|
51
|
+
'ignore-conflicts': sf_plugins_core_1.Flags.boolean({
|
|
52
|
+
char: 'c',
|
|
53
|
+
summary: messages.getMessage('flags.ignore-conflicts.summary'),
|
|
54
|
+
description: messages.getMessage('flags.ignore-conflicts.description'),
|
|
55
|
+
default: false,
|
|
56
|
+
}),
|
|
57
|
+
'target-org': sf_plugins_core_1.Flags.requiredOrg({
|
|
58
|
+
char: 'o',
|
|
59
|
+
description: messages.getMessage('flags.target-org.description'),
|
|
60
|
+
summary: messages.getMessage('flags.target-org.summary'),
|
|
61
|
+
}),
|
|
62
|
+
};
|
|
63
|
+
//# sourceMappingURL=preview.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"preview.js","sourceRoot":"","sources":["../../../../src/commands/retrieve/metadata/preview.ts"],"names":[],"mappings":";;AAAA;;;;;GAKG;AACH,2CAA4C;AAC5C,iEAA+D;AAC/D,iEAA6D;AAC7D,+EAAiE;AACjE,gEAA4G;AAE5G,eAAQ,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;AAC5C,MAAM,QAAQ,GAAG,eAAQ,CAAC,YAAY,CAAC,oCAAoC,EAAE,2BAA2B,CAAC,CAAC;AAE1G,MAAqB,uBAAwB,SAAQ,2BAAwB;IAqBpE,KAAK,CAAC,GAAG;QACd,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;QAE5D,MAAM,GAAG,GAAG,MAAM,gCAAc,CAAC,MAAM,CAAC;YACtC,GAAG,EAAE,KAAK,CAAC,YAAY,CAAC;YACxB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,eAAe,EAAE,KAAK,CAAC,kBAAkB,CAAC;SAC3C,CAAC,CAAC;QAEH,MAAM,WAAW,GAAG,oCAAW,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC,IAAI,CAAC,CAAC;QAErF,MAAM,CAAC,YAAY,EAAE,kBAAkB,EAAE,aAAa,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAC1E,GAAG,CAAC,8BAA8B,EAAE;YACpC,IAAA,gCAAgB,EAAC,GAAG,EAAE,KAAK,CAAC,kBAAkB,CAAC,CAAC;YAChD,GAAG,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,iBAAiB,EAAE,CAAC;SACjF,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,IAAA,8BAAc,EAAC;YAC5B,YAAY;YACZ,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;YACnC,kBAAkB;YAClB,WAAW;YACX,aAAa,EAAE,UAAU;YACzB,aAAa;SACd,CAAC,CAAC;QAEH,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE;YACvB,IAAA,2BAAW,EAAC,MAAM,EAAE,UAAU,CAAC,CAAC;SACjC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;;AAnDH,0CAoDC;AAnDwB,mCAAW,GAAG,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AACjD,+BAAO,GAAG,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;AACzC,gCAAQ,GAAG,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;AAC5C,uCAAe,GAAG,IAAI,CAAC;AACvB,6BAAK,GAAG,MAAM,CAAC;AAExB,6BAAK,GAAG;IACpB,kBAAkB,EAAE,uBAAK,CAAC,OAAO,CAAC;QAChC,IAAI,EAAE,GAAG;QACT,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,gCAAgC,CAAC;QAC9D,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC,oCAAoC,CAAC;QACtE,OAAO,EAAE,KAAK;KACf,CAAC;IACF,YAAY,EAAE,uBAAK,CAAC,WAAW,CAAC;QAC9B,IAAI,EAAE,GAAG;QACT,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC,8BAA8B,CAAC;QAChE,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,0BAA0B,CAAC;KACzD,CAAC;CACH,CAAC"}
|
|
@@ -14,9 +14,13 @@ export default class RetrieveMetadata extends SfCommand<RetrieveResultJson> {
|
|
|
14
14
|
manifest: import("@oclif/core/lib/interfaces").OptionFlag<string>;
|
|
15
15
|
metadata: import("@oclif/core/lib/interfaces").OptionFlag<string[]>;
|
|
16
16
|
'package-name': import("@oclif/core/lib/interfaces").OptionFlag<string[]>;
|
|
17
|
+
'single-package': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
17
18
|
'source-dir': import("@oclif/core/lib/interfaces").OptionFlag<string[]>;
|
|
19
|
+
'target-metadata-dir': import("@oclif/core/lib/interfaces").OptionFlag<string>;
|
|
18
20
|
'target-org': import("@oclif/core/lib/interfaces").OptionFlag<import("@salesforce/core").Org>;
|
|
19
21
|
wait: import("@oclif/core/lib/interfaces").OptionFlag<import("@salesforce/kit").Duration>;
|
|
22
|
+
unzip: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
23
|
+
'zip-file-name': import("@oclif/core/lib/interfaces").OptionFlag<string>;
|
|
20
24
|
};
|
|
21
25
|
static configurationVariablesSection: import("@salesforce/sf-plugins-core/lib/util").HelpSection;
|
|
22
26
|
static envVariablesSection: import("@salesforce/sf-plugins-core/lib/util").HelpSection;
|
|
@@ -6,11 +6,14 @@
|
|
|
6
6
|
* For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
|
|
7
7
|
*/
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
const promises_1 = require("fs/promises");
|
|
10
|
+
const path_1 = require("path");
|
|
9
11
|
const core_1 = require("@salesforce/core");
|
|
10
12
|
const source_deploy_retrieve_1 = require("@salesforce/source-deploy-retrieve");
|
|
11
13
|
const sf_plugins_core_1 = require("@salesforce/sf-plugins-core");
|
|
12
14
|
const ts_types_1 = require("@salesforce/ts-types");
|
|
13
15
|
const source_tracking_1 = require("@salesforce/source-tracking");
|
|
16
|
+
const flags_1 = require("../../utils/flags");
|
|
14
17
|
const output_1 = require("../../utils/output");
|
|
15
18
|
const project_1 = require("../../utils/project");
|
|
16
19
|
const conflicts_1 = require("../../utils/conflicts");
|
|
@@ -21,41 +24,54 @@ class RetrieveMetadata extends sf_plugins_core_1.SfCommand {
|
|
|
21
24
|
async run() {
|
|
22
25
|
const { flags } = await this.parse(RetrieveMetadata);
|
|
23
26
|
this.spinner.start(messages.getMessage('spinner.start'));
|
|
27
|
+
const format = flags['target-metadata-dir'] ? 'metadata' : 'source';
|
|
24
28
|
const stl = await source_tracking_1.SourceTracking.create({
|
|
25
29
|
org: flags['target-org'],
|
|
26
30
|
project: this.project,
|
|
27
31
|
subscribeSDREvents: true,
|
|
28
|
-
ignoreConflicts: flags['ignore-conflicts'],
|
|
32
|
+
ignoreConflicts: format === 'metadata' || flags['ignore-conflicts'],
|
|
29
33
|
});
|
|
30
34
|
const isChanges = !flags['source-dir'] && !flags['manifest'] && !flags['metadata'];
|
|
31
|
-
const
|
|
32
|
-
? await stl.maybeApplyRemoteDeletesToLocal()
|
|
33
|
-
:
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
35
|
+
const { componentSetFromNonDeletes, fileResponsesFromDelete } = isChanges
|
|
36
|
+
? await stl.maybeApplyRemoteDeletesToLocal(true)
|
|
37
|
+
: {
|
|
38
|
+
componentSetFromNonDeletes: await source_deploy_retrieve_1.ComponentSetBuilder.build({
|
|
39
|
+
apiversion: flags['api-version'],
|
|
40
|
+
sourcepath: flags['source-dir'],
|
|
41
|
+
packagenames: flags['package-name'],
|
|
42
|
+
manifest: flags.manifest && {
|
|
43
|
+
manifestPath: flags.manifest,
|
|
44
|
+
directoryPaths: await (0, project_1.getPackageDirs)(),
|
|
45
|
+
},
|
|
46
|
+
metadata: flags.metadata && {
|
|
47
|
+
metadataEntries: flags.metadata,
|
|
48
|
+
directoryPaths: await (0, project_1.getPackageDirs)(),
|
|
49
|
+
},
|
|
50
|
+
}),
|
|
51
|
+
fileResponsesFromDelete: [],
|
|
52
|
+
};
|
|
46
53
|
// stl sets version based on config/files--if the command overrides it, we need to update
|
|
47
54
|
if (isChanges && flags['api-version']) {
|
|
48
|
-
|
|
55
|
+
componentSetFromNonDeletes.apiVersion = flags['api-version'];
|
|
49
56
|
}
|
|
50
57
|
this.spinner.status = messages.getMessage('spinner.sending', [
|
|
51
|
-
|
|
58
|
+
componentSetFromNonDeletes.sourceApiVersion ?? componentSetFromNonDeletes.apiVersion,
|
|
52
59
|
]);
|
|
53
|
-
const
|
|
60
|
+
const retrieveOpts = {
|
|
54
61
|
usernameOrConnection: flags['target-org'].getUsername(),
|
|
55
62
|
merge: true,
|
|
56
63
|
output: this.project.getDefaultPackage().fullPath,
|
|
57
64
|
packageOptions: flags['package-name'],
|
|
58
|
-
|
|
65
|
+
format,
|
|
66
|
+
};
|
|
67
|
+
const zipFileName = flags['zip-file-name'] ?? 'unpackaged.zip';
|
|
68
|
+
if (format === 'metadata') {
|
|
69
|
+
retrieveOpts.singlePackage = flags['single-package'];
|
|
70
|
+
retrieveOpts.unzip = flags.unzip;
|
|
71
|
+
retrieveOpts.zipFileName = zipFileName;
|
|
72
|
+
retrieveOpts.output = flags['target-metadata-dir'];
|
|
73
|
+
}
|
|
74
|
+
const retrieve = await componentSetFromNonDeletes.retrieve(retrieveOpts);
|
|
59
75
|
this.spinner.status = messages.getMessage('spinner.polling');
|
|
60
76
|
retrieve.onUpdate((data) => {
|
|
61
77
|
this.spinner.status = mdTransferMessages.getMessage(data.status);
|
|
@@ -70,7 +86,9 @@ class RetrieveMetadata extends sf_plugins_core_1.SfCommand {
|
|
|
70
86
|
await retrieve.start();
|
|
71
87
|
const result = await retrieve.pollStatus(500, flags.wait.seconds);
|
|
72
88
|
this.spinner.stop();
|
|
73
|
-
const formatter =
|
|
89
|
+
const formatter = format === 'source'
|
|
90
|
+
? new output_1.RetrieveResultFormatter(result, flags['package-name'], fileResponsesFromDelete)
|
|
91
|
+
: new output_1.MetadataRetrieveResultFormatter(result, { ...flags, 'zip-file-name': zipFileName });
|
|
74
92
|
if (!this.jsonEnabled()) {
|
|
75
93
|
if (result.response.status === 'Succeeded') {
|
|
76
94
|
await formatter.display();
|
|
@@ -79,6 +97,14 @@ class RetrieveMetadata extends sf_plugins_core_1.SfCommand {
|
|
|
79
97
|
throw new core_1.SfError((0, ts_types_1.getString)(result.response, 'errorMessage', result.response.status), (0, ts_types_1.getString)(result.response, 'errorStatusCode', 'unknown'));
|
|
80
98
|
}
|
|
81
99
|
}
|
|
100
|
+
if (format === 'metadata' && flags.unzip) {
|
|
101
|
+
try {
|
|
102
|
+
await (0, promises_1.rm)((0, path_1.resolve)((0, path_1.join)(flags['target-metadata-dir'], zipFileName)), { recursive: true });
|
|
103
|
+
}
|
|
104
|
+
catch (e) {
|
|
105
|
+
// do nothing
|
|
106
|
+
}
|
|
107
|
+
}
|
|
82
108
|
return formatter.getJson();
|
|
83
109
|
}
|
|
84
110
|
catch(error) {
|
|
@@ -132,6 +158,11 @@ RetrieveMetadata.flags = {
|
|
|
132
158
|
summary: messages.getMessage('flags.package-name.summary'),
|
|
133
159
|
multiple: true,
|
|
134
160
|
}),
|
|
161
|
+
'single-package': sf_plugins_core_1.Flags.boolean({
|
|
162
|
+
summary: messages.getMessage('flags.single-package.summary'),
|
|
163
|
+
dependsOn: ['target-metadata-dir'],
|
|
164
|
+
exclusive: ['ignore-conflicts'],
|
|
165
|
+
}),
|
|
135
166
|
'source-dir': sf_plugins_core_1.Flags.string({
|
|
136
167
|
char: 'd',
|
|
137
168
|
summary: messages.getMessage('flags.source-dir.summary'),
|
|
@@ -139,6 +170,17 @@ RetrieveMetadata.flags = {
|
|
|
139
170
|
multiple: true,
|
|
140
171
|
exclusive: ['manifest', 'metadata'],
|
|
141
172
|
}),
|
|
173
|
+
'target-metadata-dir': (0, flags_1.ensuredDirFlag)({
|
|
174
|
+
char: 't',
|
|
175
|
+
summary: messages.getMessage('flags.target-metadata-dir.summary'),
|
|
176
|
+
relationships: [
|
|
177
|
+
{
|
|
178
|
+
type: 'some',
|
|
179
|
+
flags: ['manifest', 'metadata', 'source-dir', 'package-name'],
|
|
180
|
+
},
|
|
181
|
+
],
|
|
182
|
+
exclusive: ['ignore-conflicts'],
|
|
183
|
+
}),
|
|
142
184
|
'target-org': sf_plugins_core_1.Flags.requiredOrg({
|
|
143
185
|
char: 'o',
|
|
144
186
|
summary: messages.getMessage('flags.target-org.summary'),
|
|
@@ -151,6 +193,17 @@ RetrieveMetadata.flags = {
|
|
|
151
193
|
summary: messages.getMessage('flags.wait.summary'),
|
|
152
194
|
description: messages.getMessage('flags.wait.description'),
|
|
153
195
|
}),
|
|
196
|
+
unzip: sf_plugins_core_1.Flags.boolean({
|
|
197
|
+
char: 'z',
|
|
198
|
+
summary: messages.getMessage('flags.unzip.summary'),
|
|
199
|
+
dependsOn: ['target-metadata-dir'],
|
|
200
|
+
exclusive: ['ignore-conflicts'],
|
|
201
|
+
}),
|
|
202
|
+
'zip-file-name': (0, flags_1.zipFileFlag)({
|
|
203
|
+
summary: messages.getMessage('flags.zip-file-name.summary'),
|
|
204
|
+
dependsOn: ['target-metadata-dir'],
|
|
205
|
+
exclusive: ['ignore-conflicts'],
|
|
206
|
+
}),
|
|
154
207
|
};
|
|
155
208
|
RetrieveMetadata.configurationVariablesSection = (0, sf_plugins_core_1.toHelpSection)('CONFIGURATION VARIABLES', core_1.OrgConfigProperties.TARGET_ORG, core_1.OrgConfigProperties.ORG_API_VERSION);
|
|
156
209
|
RetrieveMetadata.envVariablesSection = (0, sf_plugins_core_1.toHelpSection)('ENVIRONMENT VARIABLES', core_1.EnvironmentVariable.SF_TARGET_ORG, core_1.EnvironmentVariable.SF_USE_PROGRESS_BAR);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../../src/commands/retrieve/metadata.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAEH,2CAA+F;AAC/F,+
|
|
1
|
+
{"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../../src/commands/retrieve/metadata.ts"],"names":[],"mappings":"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"}
|
package/lib/utils/deploy.js
CHANGED
|
@@ -20,30 +20,29 @@ const cacheMessages = core_1.Messages.load('@salesforce/plugin-deploy-retrieve',
|
|
|
20
20
|
'error.NoRecentJobId',
|
|
21
21
|
'error.InvalidJobId',
|
|
22
22
|
]);
|
|
23
|
-
const
|
|
23
|
+
const deployMessages = core_1.Messages.load('@salesforce/plugin-deploy-retrieve', 'deploy.metadata', [
|
|
24
|
+
'error.nothingToDeploy',
|
|
25
|
+
'error.nothingToDeploy.Actions',
|
|
26
|
+
]);
|
|
24
27
|
function validateTests(testLevel, tests) {
|
|
25
|
-
if (testLevel === types_1.TestLevel.RunSpecifiedTests && (tests
|
|
28
|
+
if (testLevel === types_1.TestLevel.RunSpecifiedTests && (tests ?? []).length === 0)
|
|
26
29
|
return false;
|
|
27
30
|
return true;
|
|
28
31
|
}
|
|
29
32
|
exports.validateTests = validateTests;
|
|
30
33
|
async function resolveApi() {
|
|
31
|
-
var _a;
|
|
32
34
|
const agg = await core_1.ConfigAggregator.create({ customConfigMeta: configMeta_1.default });
|
|
33
|
-
const restDeployConfig =
|
|
35
|
+
const restDeployConfig = agg.getInfo(configMeta_1.ConfigVars.ORG_METADATA_REST_DEPLOY)?.value;
|
|
34
36
|
return restDeployConfig === 'true' ? types_1.API.REST : types_1.API.SOAP;
|
|
35
37
|
}
|
|
36
38
|
exports.resolveApi = resolveApi;
|
|
37
39
|
async function buildComponentSet(opts, stl) {
|
|
38
|
-
// if you specify nothing, you'll get the changes, like sfdx push
|
|
39
|
-
if (!opts['source-dir'] && !opts.manifest && !opts.metadata) {
|
|
40
|
+
// if you specify nothing, you'll get the changes, like sfdx push, as long as there's an stl
|
|
41
|
+
if (!opts['source-dir'] && !opts.manifest && !opts.metadata && stl) {
|
|
40
42
|
/** localChangesAsComponentSet returned an array to support multiple sequential deploys.
|
|
41
|
-
* `sf`
|
|
43
|
+
* `sf` chooses not to support this so we force one ComponentSet
|
|
42
44
|
*/
|
|
43
|
-
const
|
|
44
|
-
if (!cs) {
|
|
45
|
-
throw new core_1.SfError(trackingMessages.getMessage('error.noChanges'));
|
|
46
|
-
}
|
|
45
|
+
const cs = (await stl.localChangesAsComponentSet(false))?.[0] ?? new source_deploy_retrieve_1.ComponentSet();
|
|
47
46
|
// stl produces a cs with api version already set. command might have specified a version.
|
|
48
47
|
if (opts['api-version']) {
|
|
49
48
|
cs.apiVersion = opts['api-version'];
|
|
@@ -67,8 +66,7 @@ async function buildComponentSet(opts, stl) {
|
|
|
67
66
|
}
|
|
68
67
|
exports.buildComponentSet = buildComponentSet;
|
|
69
68
|
async function executeDeploy(opts, project, id) {
|
|
70
|
-
|
|
71
|
-
project !== null && project !== void 0 ? project : (project = await core_1.SfProject.resolve());
|
|
69
|
+
project ?? (project = await core_1.SfProject.resolve());
|
|
72
70
|
const apiOptions = {
|
|
73
71
|
checkOnly: opts['dry-run'] || false,
|
|
74
72
|
ignoreWarnings: opts['ignore-warnings'] || false,
|
|
@@ -82,7 +80,7 @@ async function executeDeploy(opts, project, id) {
|
|
|
82
80
|
const org = await core_1.Org.create({ aliasOrUsername: opts['target-org'] });
|
|
83
81
|
const usernameOrConnection = org.getConnection();
|
|
84
82
|
// instantiate source tracking
|
|
85
|
-
// stl will decide, based on the org's properties, what to
|
|
83
|
+
// stl will decide, based on the org's properties, what needs to be done
|
|
86
84
|
const stl = await source_tracking_1.SourceTracking.create({
|
|
87
85
|
org,
|
|
88
86
|
project,
|
|
@@ -105,6 +103,9 @@ async function executeDeploy(opts, project, id) {
|
|
|
105
103
|
}
|
|
106
104
|
else {
|
|
107
105
|
componentSet = await buildComponentSet(opts, stl);
|
|
106
|
+
if (componentSet.size === 0) {
|
|
107
|
+
throw new core_1.SfError(deployMessages.getMessage('error.nothingToDeploy'), 'NothingToDeploy', deployMessages.getMessages('error.nothingToDeploy.Actions'));
|
|
108
|
+
}
|
|
108
109
|
deploy = id
|
|
109
110
|
? new source_deploy_retrieve_1.MetadataApiDeploy({ id, usernameOrConnection, components: componentSet })
|
|
110
111
|
: await componentSet.deploy({
|
|
@@ -112,16 +113,15 @@ async function executeDeploy(opts, project, id) {
|
|
|
112
113
|
apiOptions,
|
|
113
114
|
});
|
|
114
115
|
}
|
|
115
|
-
await DeployCache.set(deploy.id, { ...opts, wait:
|
|
116
|
+
await DeployCache.set(deploy.id, { ...opts, wait: opts.wait?.minutes ?? 33 });
|
|
116
117
|
return { deploy, componentSet };
|
|
117
118
|
}
|
|
118
119
|
exports.executeDeploy = executeDeploy;
|
|
119
120
|
async function cancelDeploy(opts, id) {
|
|
120
|
-
var _a, _b;
|
|
121
121
|
const org = await core_1.Org.create({ aliasOrUsername: opts['target-org'] });
|
|
122
122
|
const deploy = new source_deploy_retrieve_1.MetadataApiDeploy({ usernameOrConnection: org.getUsername(), id });
|
|
123
123
|
const componentSet = await buildComponentSet({ ...opts });
|
|
124
|
-
await DeployCache.set(deploy.id, { ...opts, wait:
|
|
124
|
+
await DeployCache.set(deploy.id, { ...opts, wait: opts.wait?.minutes ?? 33 });
|
|
125
125
|
await deploy.cancel();
|
|
126
126
|
return poll(org, deploy.id, opts.wait, componentSet);
|
|
127
127
|
}
|
package/lib/utils/deploy.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../src/utils/deploy.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,2CAU0B;AAC1B,yCAA2C;AAE3C,+EAO4C;AAC5C,iEAA6D;AAC7D,8CAAuD;AACvD,uCAAgE;AAChE,mCAAmD;AACnD,6CAAmD;AACnD,eAAQ,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;AAC5C,MAAM,aAAa,GAAG,eAAQ,CAAC,IAAI,CAAC,oCAAoC,EAAE,OAAO,EAAE;IACjF,qBAAqB;IACrB,oBAAoB;CACrB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../src/utils/deploy.ts"],"names":[],"mappings":"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"}
|
package/lib/utils/flags.d.ts
CHANGED
|
@@ -1,6 +1,16 @@
|
|
|
1
|
-
import { Interfaces } from '@oclif/core';
|
|
2
1
|
import { PathInfo, TestLevel } from './types';
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
/**
|
|
3
|
+
* Flag value is a directory path that may or may not exist. If it doesn't exist, then it will be created.
|
|
4
|
+
*/
|
|
5
|
+
export declare const ensuredDirFlag: import("@oclif/core/lib/interfaces").Definition<string, Record<string, unknown>>;
|
|
6
|
+
export declare const testLevelFlag: import("@oclif/core/lib/interfaces").Definition<TestLevel, Record<string, unknown>>;
|
|
7
|
+
/**
|
|
8
|
+
* Flag value could either be a file path or a directory path.
|
|
9
|
+
*/
|
|
10
|
+
export declare const fileOrDirFlag: import("@oclif/core/lib/interfaces").Definition<PathInfo, {
|
|
5
11
|
exists?: boolean;
|
|
6
|
-
}
|
|
12
|
+
}>;
|
|
13
|
+
/**
|
|
14
|
+
* Flag value is the name of a zip file that defaults to 'unpackaged.zip'.
|
|
15
|
+
*/
|
|
16
|
+
export declare const zipFileFlag: import("@oclif/core/lib/interfaces").Definition<string, Record<string, unknown>>;
|
package/lib/utils/flags.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.fileOrDirFlag = exports.testLevelFlag = void 0;
|
|
3
|
+
exports.zipFileFlag = exports.fileOrDirFlag = exports.testLevelFlag = exports.ensuredDirFlag = void 0;
|
|
4
4
|
/*
|
|
5
5
|
* Copyright (c) 2022, salesforce.com, inc.
|
|
6
6
|
* All rights reserved.
|
|
@@ -8,20 +8,19 @@ exports.fileOrDirFlag = exports.testLevelFlag = void 0;
|
|
|
8
8
|
* For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
|
|
9
9
|
*/
|
|
10
10
|
const fs = require("fs");
|
|
11
|
+
const path_1 = require("path");
|
|
11
12
|
const core_1 = require("@oclif/core");
|
|
13
|
+
const core_2 = require("@salesforce/core");
|
|
12
14
|
const types_1 = require("./types");
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
const parsePathInfo = async (input, exists) => {
|
|
23
|
-
if (exists && !fs.existsSync(input)) {
|
|
24
|
-
throw new Error(`No file or directory found at ${input}`);
|
|
15
|
+
core_2.Messages.importMessagesDirectory(__dirname);
|
|
16
|
+
const messages = core_2.Messages.load('@salesforce/plugin-deploy-retrieve', 'validation', [
|
|
17
|
+
'error.InvalidFlagPath',
|
|
18
|
+
'error.ExpectedDirectory',
|
|
19
|
+
'error.ExpectedFileOrDirToExist',
|
|
20
|
+
]);
|
|
21
|
+
const parsePathInfo = async (input, opts) => {
|
|
22
|
+
if (opts.exists && !fs.existsSync(input)) {
|
|
23
|
+
throw messages.createError('error.InvalidFlagPath', [input, messages.getMessage('error.ExpectedFileOrDirToExist')]);
|
|
25
24
|
}
|
|
26
25
|
const stat = await fs.promises.stat(input);
|
|
27
26
|
if (stat.isDirectory()) {
|
|
@@ -29,11 +28,58 @@ const parsePathInfo = async (input, exists) => {
|
|
|
29
28
|
}
|
|
30
29
|
return { type: 'file', path: input };
|
|
31
30
|
};
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
31
|
+
/**
|
|
32
|
+
* Ensures that the specified directory exists. If it does not, it is created.
|
|
33
|
+
*/
|
|
34
|
+
async function ensureDirectoryPath(path) {
|
|
35
|
+
const trimmedPath = path?.trim();
|
|
36
|
+
const resolvedPath = trimmedPath?.length ? (0, path_1.resolve)(trimmedPath) : null;
|
|
37
|
+
try {
|
|
38
|
+
const stats = await fs.promises.stat(resolvedPath);
|
|
39
|
+
const isDir = stats.isDirectory();
|
|
40
|
+
if (!isDir) {
|
|
41
|
+
throw messages.createError('error.InvalidFlagPath', [path, messages.getMessage('error.ExpectedDirectory')]);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
catch (error) {
|
|
45
|
+
const err = error;
|
|
46
|
+
if (err.code !== 'ENOENT') {
|
|
47
|
+
throw err;
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
await fs.promises.mkdir(resolvedPath, { recursive: true });
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
return resolvedPath;
|
|
54
|
+
}
|
|
55
|
+
function resolveZipFileName(zipFileName) {
|
|
56
|
+
// If no file extension was provided append, '.zip'
|
|
57
|
+
if (zipFileName && !(0, path_1.extname)(zipFileName)) {
|
|
58
|
+
zipFileName += '.zip';
|
|
59
|
+
}
|
|
60
|
+
return zipFileName || 'unpackaged.zip';
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Flag value is a directory path that may or may not exist. If it doesn't exist, then it will be created.
|
|
64
|
+
*/
|
|
65
|
+
exports.ensuredDirFlag = core_1.Flags.custom({
|
|
66
|
+
parse: async (input) => ensureDirectoryPath(input),
|
|
67
|
+
});
|
|
68
|
+
exports.testLevelFlag = core_1.Flags.custom({
|
|
69
|
+
char: 'l',
|
|
70
|
+
parse: (input) => Promise.resolve(input),
|
|
71
|
+
options: Object.values(types_1.TestLevel),
|
|
72
|
+
});
|
|
73
|
+
/**
|
|
74
|
+
* Flag value could either be a file path or a directory path.
|
|
75
|
+
*/
|
|
76
|
+
exports.fileOrDirFlag = core_1.Flags.custom({
|
|
77
|
+
parse: async (input, _, opts) => parsePathInfo(input, opts),
|
|
78
|
+
});
|
|
79
|
+
/**
|
|
80
|
+
* Flag value is the name of a zip file that defaults to 'unpackaged.zip'.
|
|
81
|
+
*/
|
|
82
|
+
exports.zipFileFlag = core_1.Flags.custom({
|
|
83
|
+
parse: async (input) => Promise.resolve(resolveZipFileName(input)),
|
|
84
|
+
});
|
|
39
85
|
//# sourceMappingURL=flags.js.map
|
package/lib/utils/flags.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flags.js","sourceRoot":"","sources":["../../src/utils/flags.ts"],"names":[],"mappings":";;;AAAA;;;;;GAKG;AACH,yBAAyB;AACzB,
|
|
1
|
+
{"version":3,"file":"flags.js","sourceRoot":"","sources":["../../src/utils/flags.ts"],"names":[],"mappings":";;;AAAA;;;;;GAKG;AACH,yBAAyB;AACzB,+BAAwC;AACxC,sCAAoC;AACpC,2CAA4C;AAC5C,mCAA8C;AAE9C,eAAQ,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;AAC5C,MAAM,QAAQ,GAAG,eAAQ,CAAC,IAAI,CAAC,oCAAoC,EAAE,YAAY,EAAE;IACjF,uBAAuB;IACvB,yBAAyB;IACzB,gCAAgC;CACjC,CAAC,CAAC;AAEH,MAAM,aAAa,GAAG,KAAK,EAAE,KAAa,EAAE,IAA0B,EAAqB,EAAE;IAC3F,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;QACxC,MAAM,QAAQ,CAAC,WAAW,CAAC,uBAAuB,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,UAAU,CAAC,gCAAgC,CAAC,CAAC,CAAC,CAAC;KACrH;IAED,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAE3C,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE;QACtB,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;KAC3C;IAED,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AACvC,CAAC,CAAC;AAMF;;GAEG;AACH,KAAK,UAAU,mBAAmB,CAAC,IAAY;IAC7C,MAAM,WAAW,GAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACjC,MAAM,YAAY,GAAG,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,IAAA,cAAO,EAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAEvE,IAAI;QACF,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACnD,MAAM,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;QAClC,IAAI,CAAC,KAAK,EAAE;YACV,MAAM,QAAQ,CAAC,WAAW,CAAC,uBAAuB,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC;SAC7G;KACF;IAAC,OAAO,KAAc,EAAE;QACvB,MAAM,GAAG,GAAG,KAAgB,CAAC;QAC7B,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE;YACzB,MAAM,GAAG,CAAC;SACX;aAAM;YACL,MAAM,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;SAC5D;KACF;IACD,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,SAAS,kBAAkB,CAAC,WAAoB;IAC9C,mDAAmD;IACnD,IAAI,WAAW,IAAI,CAAC,IAAA,cAAO,EAAC,WAAW,CAAC,EAAE;QACxC,WAAW,IAAI,MAAM,CAAC;KACvB;IACD,OAAO,WAAW,IAAI,gBAAgB,CAAC;AACzC,CAAC;AAED;;GAEG;AACU,QAAA,cAAc,GAAG,YAAK,CAAC,MAAM,CAAS;IACjD,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,mBAAmB,CAAC,KAAK,CAAC;CACnD,CAAC,CAAC;AAEU,QAAA,aAAa,GAAG,YAAK,CAAC,MAAM,CAAY;IACnD,IAAI,EAAE,GAAG;IACT,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,KAAkB,CAAC;IACrD,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,iBAAS,CAAC;CAClC,CAAC,CAAC;AAEH;;GAEG;AACU,QAAA,aAAa,GAAG,YAAK,CAAC,MAAM,CAAiC;IACxE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC;CAC5D,CAAC,CAAC;AAEH;;GAEG;AACU,QAAA,WAAW,GAAG,YAAK,CAAC,MAAM,CAAS;IAC9C,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;CACnE,CAAC,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { NamedPackageDir } from '@salesforce/core';
|
|
2
|
-
import { Deployable, Deployer } from '@salesforce/sf-plugins-core';
|
|
2
|
+
import { Deployable, Deployer, DeployerResult } from '@salesforce/sf-plugins-core';
|
|
3
3
|
import { TestLevel } from './types';
|
|
4
4
|
export interface MetadataDeployOptions extends Deployer.Options {
|
|
5
5
|
testLevel?: TestLevel;
|
|
@@ -24,7 +24,7 @@ export declare class MetadataDeployer extends Deployer {
|
|
|
24
24
|
constructor(packages: NamedPackageDir[]);
|
|
25
25
|
getName(): string;
|
|
26
26
|
setup(flags: Deployer.Flags, options: MetadataDeployOptions): Promise<MetadataDeployOptions>;
|
|
27
|
-
deploy(): Promise<void>;
|
|
27
|
+
deploy<R extends DeployerResult>(): Promise<void | R>;
|
|
28
28
|
promptForUsername(): Promise<string>;
|
|
29
29
|
promptForTestLevel(): Promise<TestLevel>;
|
|
30
30
|
}
|
|
@@ -75,13 +75,12 @@ class MetadataDeployer extends sf_plugins_core_1.Deployer {
|
|
|
75
75
|
return MetadataDeployer.NAME;
|
|
76
76
|
}
|
|
77
77
|
async setup(flags, options) {
|
|
78
|
-
var _a;
|
|
79
78
|
if (flags.interactive) {
|
|
80
79
|
this.testLevel = await this.promptForTestLevel();
|
|
81
80
|
this.username = await this.promptForUsername();
|
|
82
81
|
}
|
|
83
82
|
else {
|
|
84
|
-
if (
|
|
83
|
+
if (options.directories?.length) {
|
|
85
84
|
const directories = options.directories || [];
|
|
86
85
|
const selected = this.deployables.filter((d) => directories.includes(d.getPath()));
|
|
87
86
|
this.selectDeployables(selected);
|
|
@@ -114,10 +113,13 @@ class MetadataDeployer extends sf_plugins_core_1.Deployer {
|
|
|
114
113
|
concise: false,
|
|
115
114
|
});
|
|
116
115
|
formatter.display();
|
|
116
|
+
const deployerResult = {
|
|
117
|
+
exitCode: (0, deploy_1.determineExitCode)(result),
|
|
118
|
+
};
|
|
119
|
+
return deployerResult;
|
|
117
120
|
}
|
|
118
121
|
async promptForUsername() {
|
|
119
|
-
|
|
120
|
-
const aliasOrUsername = (_a = core_1.ConfigAggregator.getValue(core_1.OrgConfigProperties.TARGET_ORG)) === null || _a === void 0 ? void 0 : _a.value;
|
|
122
|
+
const aliasOrUsername = core_1.ConfigAggregator.getValue(core_1.OrgConfigProperties.TARGET_ORG)?.value;
|
|
121
123
|
const stateAggregator = await core_1.StateAggregator.getInstance();
|
|
122
124
|
await stateAggregator.orgs.readAll();
|
|
123
125
|
const allAliases = stateAggregator.aliases.getAll();
|
|
@@ -126,7 +128,7 @@ class MetadataDeployer extends sf_plugins_core_1.Deployer {
|
|
|
126
128
|
if (aliasOrUsername) {
|
|
127
129
|
targetOrgAuth = (await core_1.AuthInfo.listAllAuthorizations((a) => a.username === aliasOrUsername || a.aliases.some((alias) => alias === aliasOrUsername))).find((a) => a);
|
|
128
130
|
if (targetOrgAuth) {
|
|
129
|
-
if (targetOrgAuth
|
|
131
|
+
if (targetOrgAuth?.isExpired) {
|
|
130
132
|
const continueAnswer = await this.prompt([
|
|
131
133
|
{
|
|
132
134
|
name: 'continue',
|
|
@@ -143,7 +145,7 @@ class MetadataDeployer extends sf_plugins_core_1.Deployer {
|
|
|
143
145
|
}
|
|
144
146
|
}
|
|
145
147
|
}
|
|
146
|
-
if (!aliasOrUsername ||
|
|
148
|
+
if (!aliasOrUsername || targetOrgAuth?.isExpired) {
|
|
147
149
|
const promises = (await core_1.AuthInfo.listAllAuthorizations((orgAuth) => !orgAuth.error && orgAuth.isExpired !== true)).map(async (orgAuth) => {
|
|
148
150
|
const stat = await stateAggregator.orgs.stat(orgAuth.username);
|
|
149
151
|
const timestamp = stat ? new Date(stat.mtimeMs) : new Date();
|
|
@@ -170,7 +172,7 @@ class MetadataDeployer extends sf_plugins_core_1.Deployer {
|
|
|
170
172
|
choices: (0, sf_plugins_core_1.generateTableChoices)(columns, options, false),
|
|
171
173
|
},
|
|
172
174
|
]);
|
|
173
|
-
if (targetOrgAuth
|
|
175
|
+
if (targetOrgAuth?.isExpired) {
|
|
174
176
|
const setTargetOrg = await this.prompt([
|
|
175
177
|
{
|
|
176
178
|
name: 'save',
|