@salesforce/plugin-deploy-retrieve 1.5.4 → 1.6.1
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 +10 -0
- package/README.md +175 -27
- 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.js.map +1 -1
- package/lib/commands/deploy.d.ts +1 -1
- package/lib/commands/deploy.js +1 -1
- 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 +12 -9
- 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/output.d.ts +15 -2
- package/lib/utils/output.js +44 -15
- 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/types.d.ts +5 -1
- package/messages/deploy.metadata.md +12 -2
- 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 +40 -2
- package/messages/retrieve.metadata.preview.md +59 -0
- package/messages/validation.md +11 -0
- package/oclif.manifest.json +1 -1
- package/package.json +13 -12
- package/schemas/deploy-metadata-preview.json +72 -0
- package/schemas/retrieve-metadata-preview.json +72 -0
- package/schemas/retrieve-metadata.json +121 -52
|
@@ -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,7 +20,10 @@ 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
28
|
if (testLevel === types_1.TestLevel.RunSpecifiedTests && (tests ?? []).length === 0)
|
|
26
29
|
return false;
|
|
@@ -34,15 +37,12 @@ async function resolveApi() {
|
|
|
34
37
|
}
|
|
35
38
|
exports.resolveApi = resolveApi;
|
|
36
39
|
async function buildComponentSet(opts, stl) {
|
|
37
|
-
// if you specify nothing, you'll get the changes, like sfdx push
|
|
38
|
-
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) {
|
|
39
42
|
/** localChangesAsComponentSet returned an array to support multiple sequential deploys.
|
|
40
|
-
* `sf`
|
|
43
|
+
* `sf` chooses not to support this so we force one ComponentSet
|
|
41
44
|
*/
|
|
42
|
-
const
|
|
43
|
-
if (!cs) {
|
|
44
|
-
throw new core_1.SfError(trackingMessages.getMessage('error.noChanges'));
|
|
45
|
-
}
|
|
45
|
+
const cs = (await stl.localChangesAsComponentSet(false))?.[0] ?? new source_deploy_retrieve_1.ComponentSet();
|
|
46
46
|
// stl produces a cs with api version already set. command might have specified a version.
|
|
47
47
|
if (opts['api-version']) {
|
|
48
48
|
cs.apiVersion = opts['api-version'];
|
|
@@ -80,7 +80,7 @@ async function executeDeploy(opts, project, id) {
|
|
|
80
80
|
const org = await core_1.Org.create({ aliasOrUsername: opts['target-org'] });
|
|
81
81
|
const usernameOrConnection = org.getConnection();
|
|
82
82
|
// instantiate source tracking
|
|
83
|
-
// 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
|
|
84
84
|
const stl = await source_tracking_1.SourceTracking.create({
|
|
85
85
|
org,
|
|
86
86
|
project,
|
|
@@ -103,6 +103,9 @@ async function executeDeploy(opts, project, id) {
|
|
|
103
103
|
}
|
|
104
104
|
else {
|
|
105
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
|
+
}
|
|
106
109
|
deploy = id
|
|
107
110
|
? new source_deploy_retrieve_1.MetadataApiDeploy({ id, usernameOrConnection, components: componentSet })
|
|
108
111
|
: await componentSet.deploy({
|
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":"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"}
|
package/lib/utils/output.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { DeployResult, FileResponse, RetrieveResult, Failures, Successes, ComponentSet } from '@salesforce/source-deploy-retrieve';
|
|
2
|
-
import { API, AsyncDeployResultJson, DeployResultJson, RetrieveResultJson, TestLevel } from './types';
|
|
2
|
+
import { API, AsyncDeployResultJson, DeployResultJson, MetadataRetrieveResultJson, RetrieveResultJson, TestLevel } from './types';
|
|
3
3
|
export declare function asRelativePaths(fileResponses: FileResponse[]): FileResponse[];
|
|
4
4
|
/**
|
|
5
5
|
* Sorts file responds by type, then by filePath, then by fullName
|
|
@@ -64,11 +64,24 @@ export declare class RetrieveResultFormatter implements Formatter<RetrieveResult
|
|
|
64
64
|
private result;
|
|
65
65
|
private packageNames;
|
|
66
66
|
private files;
|
|
67
|
-
constructor(result: RetrieveResult, packageNames
|
|
67
|
+
constructor(result: RetrieveResult, packageNames?: string[], deleteResponses?: FileResponse[]);
|
|
68
68
|
getJson(): RetrieveResultJson;
|
|
69
69
|
display(): Promise<void>;
|
|
70
70
|
private displaySuccesses;
|
|
71
71
|
private displayPackages;
|
|
72
72
|
private getPackages;
|
|
73
73
|
}
|
|
74
|
+
export declare class MetadataRetrieveResultFormatter implements Formatter<MetadataRetrieveResultJson> {
|
|
75
|
+
private result;
|
|
76
|
+
private opts;
|
|
77
|
+
private zipFilePath;
|
|
78
|
+
private files;
|
|
79
|
+
constructor(result: RetrieveResult, opts: {
|
|
80
|
+
'target-metadata-dir': string;
|
|
81
|
+
'zip-file-name': string;
|
|
82
|
+
unzip: boolean;
|
|
83
|
+
});
|
|
84
|
+
getJson(): MetadataRetrieveResultJson;
|
|
85
|
+
display(): Promise<void>;
|
|
86
|
+
}
|
|
74
87
|
export {};
|
package/lib/utils/output.js
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
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
|
-
exports.RetrieveResultFormatter = exports.AsyncDeployCancelResultFormatter = exports.DeployCancelResultFormatter = exports.AsyncDeployResultFormatter = exports.DeployReportResultFormatter = exports.DeployResultFormatter = exports.getVersionMessage = exports.toArray = exports.sortTestResults = exports.sortFileResponses = exports.asRelativePaths = void 0;
|
|
9
|
+
exports.MetadataRetrieveResultFormatter = exports.RetrieveResultFormatter = exports.AsyncDeployCancelResultFormatter = exports.DeployCancelResultFormatter = exports.AsyncDeployResultFormatter = exports.DeployReportResultFormatter = exports.DeployResultFormatter = exports.getVersionMessage = exports.toArray = exports.sortTestResults = exports.sortFileResponses = exports.asRelativePaths = void 0;
|
|
10
10
|
const os = require("os");
|
|
11
11
|
const path = require("path");
|
|
12
12
|
const core_1 = require("@oclif/core");
|
|
@@ -16,7 +16,17 @@ const core_2 = require("@salesforce/core");
|
|
|
16
16
|
const sf_plugins_core_1 = require("@salesforce/sf-plugins-core");
|
|
17
17
|
const types_1 = require("./types");
|
|
18
18
|
core_2.Messages.importMessagesDirectory(__dirname);
|
|
19
|
-
const
|
|
19
|
+
const deployAsyncMessages = core_2.Messages.load('@salesforce/plugin-deploy-retrieve', 'deploy.async', [
|
|
20
|
+
'info.AsyncDeployResume',
|
|
21
|
+
'info.AsyncDeployStatus',
|
|
22
|
+
'info.AsyncDeployCancel',
|
|
23
|
+
'info.AsyncDeployQueued',
|
|
24
|
+
'info.AsyncDeployCancelQueued',
|
|
25
|
+
]);
|
|
26
|
+
const retrieveMessages = core_2.Messages.load('@salesforce/plugin-deploy-retrieve', 'retrieve.metadata', [
|
|
27
|
+
'info.WroteZipFile',
|
|
28
|
+
'info.ExtractedZipFile',
|
|
29
|
+
]);
|
|
20
30
|
function tableHeader(message) {
|
|
21
31
|
return (0, chalk_1.blue)((0, chalk_1.bold)(message));
|
|
22
32
|
}
|
|
@@ -298,11 +308,11 @@ class AsyncDeployResultFormatter {
|
|
|
298
308
|
return { id: this.id, done: false, status: 'Queued', files: [] };
|
|
299
309
|
}
|
|
300
310
|
display() {
|
|
301
|
-
core_1.CliUx.ux.log(
|
|
311
|
+
core_1.CliUx.ux.log(deployAsyncMessages.getMessage('info.AsyncDeployQueued'));
|
|
302
312
|
core_1.CliUx.ux.log();
|
|
303
|
-
core_1.CliUx.ux.log(
|
|
304
|
-
core_1.CliUx.ux.log(
|
|
305
|
-
core_1.CliUx.ux.log(
|
|
313
|
+
core_1.CliUx.ux.log(deployAsyncMessages.getMessage('info.AsyncDeployResume', [this.id]));
|
|
314
|
+
core_1.CliUx.ux.log(deployAsyncMessages.getMessage('info.AsyncDeployStatus', [this.id]));
|
|
315
|
+
core_1.CliUx.ux.log(deployAsyncMessages.getMessage('info.AsyncDeployCancel', [this.id]));
|
|
306
316
|
}
|
|
307
317
|
}
|
|
308
318
|
exports.AsyncDeployResultFormatter = AsyncDeployResultFormatter;
|
|
@@ -331,17 +341,17 @@ class AsyncDeployCancelResultFormatter {
|
|
|
331
341
|
return { id: this.id, done: false, status: 'Queued', files: [] };
|
|
332
342
|
}
|
|
333
343
|
display() {
|
|
334
|
-
core_1.CliUx.ux.log(
|
|
335
|
-
core_1.CliUx.ux.log(
|
|
336
|
-
core_1.CliUx.ux.log(
|
|
344
|
+
core_1.CliUx.ux.log(deployAsyncMessages.getMessage('info.AsyncDeployCancelQueued'));
|
|
345
|
+
core_1.CliUx.ux.log(deployAsyncMessages.getMessage('info.AsyncDeployResume', [this.id]));
|
|
346
|
+
core_1.CliUx.ux.log(deployAsyncMessages.getMessage('info.AsyncDeployStatus', [this.id]));
|
|
337
347
|
}
|
|
338
348
|
}
|
|
339
349
|
exports.AsyncDeployCancelResultFormatter = AsyncDeployCancelResultFormatter;
|
|
340
350
|
class RetrieveResultFormatter {
|
|
341
|
-
constructor(result, packageNames) {
|
|
351
|
+
constructor(result, packageNames = [], deleteResponses = []) {
|
|
342
352
|
this.result = result;
|
|
343
353
|
this.packageNames = packageNames;
|
|
344
|
-
this.files = sortFileResponses(asRelativePaths(this.result.getFileResponses() ?? []));
|
|
354
|
+
this.files = sortFileResponses(asRelativePaths((this.result.getFileResponses() ?? []).concat(deleteResponses)));
|
|
345
355
|
}
|
|
346
356
|
getJson() {
|
|
347
357
|
return { ...this.result.response, files: this.files };
|
|
@@ -379,14 +389,33 @@ class RetrieveResultFormatter {
|
|
|
379
389
|
}
|
|
380
390
|
}
|
|
381
391
|
async getPackages() {
|
|
382
|
-
const packages = [];
|
|
383
392
|
const projectPath = await core_2.SfProject.resolveProjectPath();
|
|
384
|
-
this.packageNames
|
|
393
|
+
return this.packageNames.map((name) => {
|
|
385
394
|
const packagePath = path.join(projectPath, name);
|
|
386
|
-
|
|
395
|
+
return { name, path: packagePath, fullPath: path.resolve(packagePath) };
|
|
387
396
|
});
|
|
388
|
-
return packages;
|
|
389
397
|
}
|
|
390
398
|
}
|
|
391
399
|
exports.RetrieveResultFormatter = RetrieveResultFormatter;
|
|
400
|
+
class MetadataRetrieveResultFormatter {
|
|
401
|
+
constructor(result, opts) {
|
|
402
|
+
this.result = result;
|
|
403
|
+
this.opts = opts;
|
|
404
|
+
this.zipFilePath = path.join(opts['target-metadata-dir'], opts['zip-file-name']);
|
|
405
|
+
this.files = sortFileResponses(asRelativePaths(this.result.getFileResponses() ?? []));
|
|
406
|
+
}
|
|
407
|
+
getJson() {
|
|
408
|
+
delete this.result.response.zipFile;
|
|
409
|
+
return { ...this.result.response, zipFilePath: this.zipFilePath, files: this.files };
|
|
410
|
+
}
|
|
411
|
+
// eslint-disable-next-line @typescript-eslint/require-await
|
|
412
|
+
async display() {
|
|
413
|
+
core_1.CliUx.ux.log(retrieveMessages.getMessage('info.WroteZipFile', [this.zipFilePath]));
|
|
414
|
+
if (this.opts.unzip) {
|
|
415
|
+
const extractPath = path.join(this.opts['target-metadata-dir'], path.parse(this.opts['zip-file-name']).name);
|
|
416
|
+
core_1.CliUx.ux.log(retrieveMessages.getMessage('info.ExtractedZipFile', [this.zipFilePath, extractPath]));
|
|
417
|
+
}
|
|
418
|
+
}
|
|
419
|
+
}
|
|
420
|
+
exports.MetadataRetrieveResultFormatter = MetadataRetrieveResultFormatter;
|
|
392
421
|
//# sourceMappingURL=output.js.map
|