@salesforce/plugin-deploy-retrieve 1.1.3 → 1.3.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.
Files changed (49) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/README.md +35 -7
  3. package/lib/commands/deploy/metadata.d.ts +15 -12
  4. package/lib/commands/deploy/metadata.js +79 -70
  5. package/lib/commands/deploy/metadata.js.map +1 -1
  6. package/lib/commands/deploy.d.ts +2 -0
  7. package/lib/commands/deploy.js +19 -0
  8. package/lib/commands/deploy.js.map +1 -1
  9. package/lib/commands/retrieve/metadata.d.ts +5 -3
  10. package/lib/commands/retrieve/metadata.js +49 -47
  11. package/lib/commands/retrieve/metadata.js.map +1 -1
  12. package/lib/hooks/deploy.js +1 -1
  13. package/lib/hooks/deploy.js.map +1 -1
  14. package/lib/utils/deploy.d.ts +29 -0
  15. package/lib/utils/deploy.js +81 -0
  16. package/lib/utils/deploy.js.map +1 -0
  17. package/lib/utils/metadataDeployer.d.ts +1 -1
  18. package/lib/utils/metadataDeployer.js +14 -13
  19. package/lib/utils/metadataDeployer.js.map +1 -1
  20. package/lib/utils/output.d.ts +8 -9
  21. package/lib/utils/output.js +127 -29
  22. package/lib/utils/output.js.map +1 -1
  23. package/lib/utils/progressBar.d.ts +1 -1
  24. package/lib/utils/project.d.ts +3 -0
  25. package/lib/utils/project.js +22 -0
  26. package/lib/utils/project.js.map +1 -0
  27. package/lib/utils/{testLevel.d.ts → types.d.ts} +10 -0
  28. package/lib/utils/{testLevel.js → types.js} +7 -2
  29. package/lib/utils/types.js.map +1 -0
  30. package/messages/deploy.md +16 -3
  31. package/messages/deploy.metadata.md +42 -2
  32. package/messages/retrieve.metadata.md +10 -2
  33. package/oclif.manifest.json +1 -1
  34. package/package.json +30 -14
  35. package/schemas/deploy-metadata.json +5 -2
  36. package/lib/utils/componentSetBuilder.d.ts +0 -28
  37. package/lib/utils/componentSetBuilder.js +0 -124
  38. package/lib/utils/componentSetBuilder.js.map +0 -1
  39. package/lib/utils/config.d.ts +0 -1
  40. package/lib/utils/config.js +0 -18
  41. package/lib/utils/config.js.map +0 -1
  42. package/lib/utils/orgs.d.ts +0 -4
  43. package/lib/utils/orgs.js +0 -39
  44. package/lib/utils/orgs.js.map +0 -1
  45. package/lib/utils/requiredFlagValidator.d.ts +0 -3
  46. package/lib/utils/requiredFlagValidator.js +0 -19
  47. package/lib/utils/requiredFlagValidator.js.map +0 -1
  48. package/lib/utils/testLevel.js.map +0 -1
  49. package/messages/required.flag.md +0 -3
@@ -6,26 +6,28 @@
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.displayFailures = exports.displayTestResults = exports.displayPackages = exports.displaySuccesses = exports.toArray = exports.sortTestResults = exports.sortFileResponses = exports.asRelativePaths = void 0;
9
+ exports.getVersionMessage = exports.displayDeletes = exports.displayFailures = exports.displayTestResults = exports.displayPackages = exports.displaySuccesses = exports.displayDeployResults = 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");
13
13
  const chalk_1 = require("chalk");
14
- const sdr_1 = require("@sf/sdr");
15
- const types_1 = require("@sf/sdr/lib/src/client/types");
16
- const ts_types_1 = require("@salesforce/ts-types");
17
- const testLevel_1 = require("./testLevel");
14
+ const source_deploy_retrieve_1 = require("@salesforce/source-deploy-retrieve");
15
+ const types_1 = require("./types");
18
16
  function info(message) {
19
17
  return (0, chalk_1.blue)((0, chalk_1.bold)(message));
20
18
  }
21
19
  function error(message) {
22
20
  return (0, chalk_1.red)((0, chalk_1.bold)(message));
23
21
  }
22
+ function success(message) {
23
+ return (0, chalk_1.green)((0, chalk_1.bold)(message));
24
+ }
24
25
  function table(responses, columns, options) {
25
26
  // Interfaces cannot be casted to Record<string, unknown> so we have to cast to unknown first
26
27
  // See https://github.com/microsoft/TypeScript/issues/15300
27
- core_1.CliUx.ux.table(responses, columns, options);
28
+ core_1.CliUx.ux.table(responses, columns, options !== null && options !== void 0 ? options : {});
28
29
  }
30
+ const check = (0, chalk_1.green)('✓');
29
31
  function asRelativePaths(fileResponses) {
30
32
  fileResponses.forEach((file) => {
31
33
  if (file.filePath) {
@@ -66,6 +68,13 @@ function toArray(entryOrArray) {
66
68
  return [];
67
69
  }
68
70
  exports.toArray = toArray;
71
+ function displayDeployResults(result, testLevel, verbose) {
72
+ displaySuccesses(result);
73
+ displayFailures(result);
74
+ displayDeletes(result);
75
+ displayTestResults(result, testLevel, verbose);
76
+ }
77
+ exports.displayDeployResults = displayDeployResults;
69
78
  function displaySuccesses(result) {
70
79
  var _a;
71
80
  const fileResponses = asRelativePaths((_a = result.getFileResponses()) !== null && _a !== void 0 ? _a : []);
@@ -78,7 +87,7 @@ function displaySuccesses(result) {
78
87
  type: { header: 'Type' },
79
88
  filePath: { header: 'Path' },
80
89
  };
81
- const title = result instanceof sdr_1.DeployResult ? 'Deployed Source' : 'Retrieved Source';
90
+ const title = result instanceof source_deploy_retrieve_1.DeployResult ? 'Deployed Source' : 'Retrieved Source';
82
91
  const options = { title: info(title) };
83
92
  core_1.CliUx.ux.log();
84
93
  table(successes, columns, options);
@@ -88,7 +97,7 @@ function displayPackages(result, packages) {
88
97
  if (packages === null || packages === void 0 ? void 0 : packages.length) {
89
98
  const columns = {
90
99
  name: { header: 'Package Name' },
91
- path: { header: 'Converted Location' },
100
+ fullPath: { header: 'Converted Location' },
92
101
  };
93
102
  const title = 'Retrieved Packages';
94
103
  const options = { title: info(title) };
@@ -97,33 +106,23 @@ function displayPackages(result, packages) {
97
106
  }
98
107
  }
99
108
  exports.displayPackages = displayPackages;
100
- function displayTestResults(result, testLevel) {
109
+ function displayTestResults(result, testLevel, verbose = false) {
101
110
  var _a, _b, _c, _d;
102
- if (testLevel === testLevel_1.TestLevel.NoTestRun) {
111
+ if (testLevel === types_1.TestLevel.NoTestRun) {
103
112
  core_1.CliUx.ux.log();
104
113
  return;
105
114
  }
106
- if ((_a = result === null || result === void 0 ? void 0 : result.response) === null || _a === void 0 ? void 0 : _a.numberTestErrors) {
107
- const failures = toArray((_c = (_b = result.response.details) === null || _b === void 0 ? void 0 : _b.runTestResult) === null || _c === void 0 ? void 0 : _c.failures);
108
- const failureCount = (_d = result.response.details.runTestResult) === null || _d === void 0 ? void 0 : _d.numFailures;
109
- const tests = sortTestResults(failures);
110
- core_1.CliUx.ux.log();
111
- core_1.CliUx.ux.log(error(`Test Failures [${failureCount}]`));
112
- for (const test of tests) {
113
- const testName = (0, chalk_1.underline)(`${test.name}.${test.methodName}`);
114
- const stackTrace = test.stackTrace.replace(/\n/g, `${os.EOL} `);
115
- core_1.CliUx.ux.log(`• ${testName}`);
116
- core_1.CliUx.ux.log(` ${(0, chalk_1.dim)('message')}: ${test.message}`);
117
- core_1.CliUx.ux.log(` ${(0, chalk_1.dim)('stacktrace')}: ${os.EOL} ${stackTrace}`);
118
- core_1.CliUx.ux.log();
119
- }
115
+ displayVerboseTestFailures(result);
116
+ if (verbose) {
117
+ displayVerboseTestSuccesses(result);
118
+ displayVerboseTestCoverage(result);
120
119
  }
121
120
  core_1.CliUx.ux.log();
122
121
  core_1.CliUx.ux.log(info('Test Results Summary'));
123
- const passing = (0, ts_types_1.get)(result, 'response.numberTestsCompleted', 0);
124
- const failing = (0, ts_types_1.get)(result, 'response.numberTestErrors', 0);
125
- const total = (0, ts_types_1.get)(result, 'response.numberTestsTotal', 0);
126
- const time = (0, ts_types_1.get)(result, 'response.details.runTestResult.totalTime', 0);
122
+ const passing = (_a = result.response.numberTestsCompleted) !== null && _a !== void 0 ? _a : 0;
123
+ const failing = (_b = result.response.numberTestErrors) !== null && _b !== void 0 ? _b : 0;
124
+ const total = (_c = result.response.numberTestsTotal) !== null && _c !== void 0 ? _c : 0;
125
+ const time = (_d = result.response.details.runTestResult.totalTime) !== null && _d !== void 0 ? _d : 0;
127
126
  core_1.CliUx.ux.log(`Passing: ${passing}`);
128
127
  core_1.CliUx.ux.log(`Failing: ${failing}`);
129
128
  core_1.CliUx.ux.log(`Total: ${total}`);
@@ -131,9 +130,72 @@ function displayTestResults(result, testLevel) {
131
130
  core_1.CliUx.ux.log(`Time: ${time}`);
132
131
  }
133
132
  exports.displayTestResults = displayTestResults;
133
+ function displayVerboseTestFailures(result) {
134
+ var _a, _b, _c;
135
+ if (!result.response.numberTestErrors)
136
+ return;
137
+ const failures = toArray((_b = (_a = result.response.details) === null || _a === void 0 ? void 0 : _a.runTestResult) === null || _b === void 0 ? void 0 : _b.failures);
138
+ const failureCount = (_c = result.response.details.runTestResult) === null || _c === void 0 ? void 0 : _c.numFailures;
139
+ const testFailures = sortTestResults(failures);
140
+ core_1.CliUx.ux.log();
141
+ core_1.CliUx.ux.log(error(`Test Failures [${failureCount}]`));
142
+ for (const test of testFailures) {
143
+ const testName = (0, chalk_1.underline)(`${test.name}.${test.methodName}`);
144
+ const stackTrace = test.stackTrace.replace(/\n/g, `${os.EOL} `);
145
+ core_1.CliUx.ux.log(`• ${testName}`);
146
+ core_1.CliUx.ux.log(` ${(0, chalk_1.dim)('message')}: ${test.message}`);
147
+ core_1.CliUx.ux.log(` ${(0, chalk_1.dim)('stacktrace')}: ${os.EOL} ${stackTrace}`);
148
+ core_1.CliUx.ux.log();
149
+ }
150
+ }
151
+ function displayVerboseTestSuccesses(result) {
152
+ var _a, _b;
153
+ const successes = toArray((_b = (_a = result.response.details) === null || _a === void 0 ? void 0 : _a.runTestResult) === null || _b === void 0 ? void 0 : _b.successes);
154
+ if (successes.length > 0) {
155
+ const testSuccesses = sortTestResults(successes);
156
+ core_1.CliUx.ux.log();
157
+ core_1.CliUx.ux.log(success(`Test Success [${successes.length}]`));
158
+ for (const test of testSuccesses) {
159
+ const testName = (0, chalk_1.underline)(`${test.name}.${test.methodName}`);
160
+ core_1.CliUx.ux.log(`${check} ${testName}`);
161
+ }
162
+ }
163
+ }
164
+ function displayVerboseTestCoverage(result) {
165
+ var _a;
166
+ const codeCoverage = toArray((_a = result.response.details.runTestResult) === null || _a === void 0 ? void 0 : _a.codeCoverage);
167
+ if (codeCoverage.length) {
168
+ const coverage = codeCoverage.sort((a, b) => {
169
+ return a.name.toUpperCase() > b.name.toUpperCase() ? 1 : -1;
170
+ });
171
+ core_1.CliUx.ux.log();
172
+ core_1.CliUx.ux.log(info('Apex Code Coverage'));
173
+ coverage.map((cov) => {
174
+ const numLocationsNum = parseInt(cov.numLocations, 10);
175
+ const numLocationsNotCovered = parseInt(cov.numLocationsNotCovered, 10);
176
+ const color = numLocationsNotCovered > 0 ? chalk_1.red : chalk_1.green;
177
+ let pctCovered = 100;
178
+ const coverageDecimal = parseFloat(((numLocationsNum - numLocationsNotCovered) / numLocationsNum).toFixed(2));
179
+ if (numLocationsNum > 0) {
180
+ pctCovered = coverageDecimal * 100;
181
+ }
182
+ cov.numLocations = color(`${pctCovered}%`);
183
+ if (!cov.locationsNotCovered) {
184
+ cov.lineNotCovered = '';
185
+ }
186
+ const locations = toArray(cov.locationsNotCovered);
187
+ cov.lineNotCovered = locations.map((location) => location.line).join(',');
188
+ });
189
+ table(coverage, {
190
+ name: { header: 'Name' },
191
+ numLocations: { header: '% Covered' },
192
+ lineNotCovered: { header: 'Uncovered Lines' },
193
+ });
194
+ }
195
+ }
134
196
  function displayFailures(result) {
135
197
  var _a;
136
- if (result.response.status === types_1.RequestStatus.Succeeded)
198
+ if (result.response.status === source_deploy_retrieve_1.RequestStatus.Succeeded)
137
199
  return;
138
200
  const fileResponses = asRelativePaths((_a = result.getFileResponses()) !== null && _a !== void 0 ? _a : []);
139
201
  const failures = sortFileResponses(fileResponses.filter((f) => f.state === 'Failed'));
@@ -149,4 +211,40 @@ function displayFailures(result) {
149
211
  table(failures, columns, options);
150
212
  }
151
213
  exports.displayFailures = displayFailures;
214
+ function displayDeletes(result) {
215
+ var _a;
216
+ const fileResponses = asRelativePaths((_a = result.getFileResponses()) !== null && _a !== void 0 ? _a : []);
217
+ const deletions = sortFileResponses(fileResponses.filter((f) => f.state === 'Deleted'));
218
+ if (!deletions.length)
219
+ return;
220
+ const columns = {
221
+ fullName: { header: 'Name' },
222
+ type: { header: 'Type' },
223
+ filePath: { header: 'Path' },
224
+ };
225
+ const options = { title: info('Deleted Source') };
226
+ core_1.CliUx.ux.log();
227
+ table(deletions, columns, options);
228
+ }
229
+ exports.displayDeletes = displayDeletes;
230
+ function getVersionMessage(action, componentSet, api) {
231
+ var _a;
232
+ // commands pass in the.componentSet, which may not exist in some tests or mdapi deploys
233
+ if (!componentSet) {
234
+ return `*** ${action} with ${api} ***`;
235
+ }
236
+ // neither
237
+ if (!componentSet.sourceApiVersion && !componentSet.apiVersion) {
238
+ return `*** ${action} with ${api} ***`;
239
+ }
240
+ // either OR both match (SDR will use either)
241
+ if (!componentSet.sourceApiVersion ||
242
+ !componentSet.apiVersion ||
243
+ componentSet.sourceApiVersion === componentSet.apiVersion) {
244
+ return `*** ${action} with ${api} API v${(_a = componentSet.apiVersion) !== null && _a !== void 0 ? _a : componentSet.sourceApiVersion} ***`;
245
+ }
246
+ // has both but they don't match
247
+ return `*** ${action} v${componentSet.sourceApiVersion} metadata with ${api} API v${componentSet.apiVersion} connection ***`;
248
+ }
249
+ exports.getVersionMessage = getVersionMessage;
152
250
  //# sourceMappingURL=output.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"output.js","sourceRoot":"","sources":["../../src/utils/output.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"output.js","sourceRoot":"","sources":["../../src/utils/output.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { MetadataApiDeploy } from '@sf/sdr';
1
+ import { MetadataApiDeploy } from '@salesforce/source-deploy-retrieve';
2
2
  import { Progress } from '@salesforce/sf-plugins-core';
3
3
  export declare class DeployProgress extends Progress {
4
4
  private deploy;
@@ -0,0 +1,3 @@
1
+ import { Nullable } from '@salesforce/ts-types';
2
+ export declare function getPackageDirs(): Promise<string[]>;
3
+ export declare function getSourceApiVersion(): Promise<Nullable<string>>;
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright (c) 2022, salesforce.com, inc.
4
+ * All rights reserved.
5
+ * Licensed under the BSD 3-Clause license.
6
+ * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.getSourceApiVersion = exports.getPackageDirs = void 0;
10
+ const core_1 = require("@salesforce/core");
11
+ async function getPackageDirs() {
12
+ const project = await core_1.SfProject.resolve();
13
+ return project.getUniquePackageDirectories().map((pDir) => pDir.fullPath);
14
+ }
15
+ exports.getPackageDirs = getPackageDirs;
16
+ async function getSourceApiVersion() {
17
+ const project = await core_1.SfProject.resolve();
18
+ const projectConfig = await project.resolveProjectConfig();
19
+ return projectConfig.sourceApiVersion;
20
+ }
21
+ exports.getSourceApiVersion = getSourceApiVersion;
22
+ //# sourceMappingURL=project.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/utils/project.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,2CAA6C;AAGtC,KAAK,UAAU,cAAc;IAClC,MAAM,OAAO,GAAG,MAAM,gBAAS,CAAC,OAAO,EAAE,CAAC;IAC1C,OAAO,OAAO,CAAC,2BAA2B,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC5E,CAAC;AAHD,wCAGC;AAEM,KAAK,UAAU,mBAAmB;IACvC,MAAM,OAAO,GAAG,MAAM,gBAAS,CAAC,OAAO,EAAE,CAAC;IAC1C,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAC3D,OAAO,aAAa,CAAC,gBAAoC,CAAC;AAC5D,CAAC;AAJD,kDAIC"}
@@ -4,3 +4,13 @@ export declare enum TestLevel {
4
4
  RunLocalTests = "RunLocalTests",
5
5
  RunAllTestsInOrg = "RunAllTestsInOrg"
6
6
  }
7
+ export declare enum API {
8
+ SOAP = "SOAP",
9
+ REST = "REST"
10
+ }
11
+ export declare type TestResults = {
12
+ passing: number;
13
+ failing: number;
14
+ total: number;
15
+ time?: string;
16
+ };
@@ -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.TestLevel = void 0;
9
+ exports.API = exports.TestLevel = void 0;
10
10
  var TestLevel;
11
11
  (function (TestLevel) {
12
12
  TestLevel["NoTestRun"] = "NoTestRun";
@@ -14,4 +14,9 @@ var TestLevel;
14
14
  TestLevel["RunLocalTests"] = "RunLocalTests";
15
15
  TestLevel["RunAllTestsInOrg"] = "RunAllTestsInOrg";
16
16
  })(TestLevel = exports.TestLevel || (exports.TestLevel = {}));
17
- //# sourceMappingURL=testLevel.js.map
17
+ var API;
18
+ (function (API) {
19
+ API["SOAP"] = "SOAP";
20
+ API["REST"] = "REST";
21
+ })(API = exports.API || (exports.API = {}));
22
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/utils/types.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,IAAY,SAKX;AALD,WAAY,SAAS;IACnB,oCAAuB,CAAA;IACvB,oDAAuC,CAAA;IACvC,4CAA+B,CAAA;IAC/B,kDAAqC,CAAA;AACvC,CAAC,EALW,SAAS,GAAT,iBAAS,KAAT,iBAAS,QAKpB;AAED,IAAY,GAGX;AAHD,WAAY,GAAG;IACb,oBAAa,CAAA;IACb,oBAAa,CAAA;AACf,CAAC,EAHW,GAAG,GAAH,WAAG,KAAH,WAAG,QAGd"}
@@ -1,5 +1,5 @@
1
1
  # summary
2
-
2
+
3
3
  Deploy a project interactively to any Salesforce environment.
4
4
 
5
5
  # description
@@ -18,12 +18,25 @@ Use this command for quick and simple deploys. For more complicated deployments,
18
18
 
19
19
  - Deploy a project and use stored values from a previous command run:
20
20
 
21
- <%= config.bin %> <%= command.id %>
21
+ <%= config.bin %> <%= command.id %>
22
22
 
23
23
  - Reprompt for all deployment inputs:
24
24
 
25
- <%= config.bin %> <%= command.id %> --interactive
25
+ <%= config.bin %> <%= command.id %> --interactive
26
26
 
27
27
  # flags.interactive.summary
28
28
 
29
29
  Force the CLI to prompt for all deployment inputs.
30
+
31
+ # errors.NoOrgsToSelect
32
+
33
+ Can't find any active scratch orgs, Dev Hubs, or other orgs.
34
+ Either log into an org or create a scratch org, and then try again.
35
+
36
+ # error.initialization
37
+
38
+ One or more initialization steps failed.
39
+
40
+ # error.initialization.title
41
+
42
+ Initialization Failures. The following table describes each failure:
@@ -104,9 +104,45 @@ Full file path for manifest (package.xml) of components to deploy.
104
104
 
105
105
  All child components are included. If you specify this flag, don’t specify --metadata or --source-dir.
106
106
 
107
- # deploy.metadata.api
107
+ # flags.dry-run.summary
108
108
 
109
- Deploying to %s using %s API.
109
+ Validate deploy and run Apex tests but don’t save to the org.
110
+
111
+ # flags.ignore-errors.summary
112
+
113
+ Ignore any errors and don’t roll back deployment.
114
+
115
+ # flags.ignore-errors.description
116
+
117
+ When deploying to a production org, keep this flag set to false (default value). When set to true, components without errors are deployed and components with errors are skipped, and could result in an inconsistent production org.
118
+
119
+ # flags.ignore-warnings.summary
120
+
121
+ Ignore warnings and allow a deployment to complete successfully.
122
+
123
+ # flags.ignore-warnings.description
124
+
125
+ If a warning occurs and this flag is set to true, the success status of the deployment is set to true. When this flag is set to false, success is set to false, and the warning is treated like an error.
126
+
127
+ # flags.tests.summary
128
+
129
+ Apex tests to run when --test-level is RunSpecifiedTests.
130
+
131
+ # flags.tests.description
132
+
133
+ Separate multiple test names with commas, and enclose the entire flag value in double quotes if a test contains a space.
134
+
135
+ # flags.verbose.summary
136
+
137
+ Show verbose output of the deploy result.
138
+
139
+ # flags.api-version.summary
140
+
141
+ Target API version for the deploy.
142
+
143
+ # flags.api-version.description
144
+
145
+ Use this flag to override the default API version, which is the latest version supported the CLI, with the API version of your package.xml file.
110
146
 
111
147
  # save.as.default
112
148
 
@@ -121,6 +157,10 @@ Either log into an org or create a scratch org, and then try again.
121
157
 
122
158
  The target-org found in the configuration is expired. The user terminated the deploy.
123
159
 
160
+ # error.NoTestsSpecified
161
+
162
+ You must specify tests using the --tests flag if the --test-level flag is set to RunSpecifiedTests.
163
+
124
164
  # warning.TargetOrgIsExpired
125
165
 
126
166
  The target-org, "%s", is expired. Do you want to pick another org?
@@ -95,6 +95,14 @@ Number of minutes to wait for the command to complete and display results to the
95
95
 
96
96
  If the command continues to run after the wait period, the CLI returns control of the terminal window to you.
97
97
 
98
- # RetrieveTitle
98
+ # spinner.start
99
99
 
100
- Retrieving Metadata
100
+ Preparing retrieve request
101
+
102
+ # spinner.sending
103
+
104
+ Sending request to org (metadata API version %s)
105
+
106
+ # spinner.polling
107
+
108
+ Waiting for the org to respond
@@ -1 +1 @@
1
- {"version":"1.1.3","commands":{"deploy":{"id":"deploy","summary":"Deploy a project interactively to any Salesforce environment.","description":"This command must be run from within a project.\n\nThe command first analyzes your project, your active or logged-into environments, and local defaults to determine what to deploy and where to deploy it. The command then prompts you for information about this particular deployment and provides intelligent choices based on its analysis.\n\nFor example, if your local project contains a source directory with metadata files in source format, the command asks if you want to deploy that Salesforce app to an org. The command lists your connected orgs and asks which one you want to deploy to. The list of orgs starts with scratch orgs, ordered by expiration date with the most recently created one first, and then Dev Hub and production orgs ordered by name. If the command finds Apex tests, it asks if you want to run them and at which level.\n\nThe command stores your responses in the \"deploy-options.json\" file in your local project directory and uses them as defaults when you rerun the command. Specify --interactive to force the command to reprompt.\n\nUse this command for quick and simple deploys. For more complicated deployments, use the environment-specific commands, such as \"sf deploy metadata\", that provide additional flags.","strict":true,"pluginName":"@salesforce/plugin-deploy-retrieve","pluginAlias":"@salesforce/plugin-deploy-retrieve","pluginType":"core","aliases":[],"examples":["Deploy a project and use stored values from a previous command run:\n<%= config.bin %> <%= command.id %>","Reprompt for all deployment inputs:\n<%= config.bin %> <%= command.id %> --interactive"],"flags":{"interactive":{"name":"interactive","type":"boolean","summary":"Force the CLI to prompt for all deployment inputs.","allowNo":false}},"args":[],"enableJsonFlag":false,"_globalFlags":{}},"deploy:metadata":{"id":"deploy:metadata","summary":"Deploy metadata in source format to an org from your local project.","description":"You must run this command from within a project.\n\nThis command doesn't support source-tracking. The source you deploy overwrites the corresponding metadata in your org. This command doesn’t attempt to merge your source with the versions in your org.\n\nTo run the command asynchronously, set --wait to 0, which immediately returns the job ID. This way, you can continue to use the CLI.\n\nTo deploy multiple metadata components, either set multiple --metadata <name> flags or a single --metadata flag with multiple names separated by spaces. Enclose names that contain spaces in one set of double quotes. The same syntax applies to --manifest and --source-dir.","strict":true,"pluginName":"@salesforce/plugin-deploy-retrieve","pluginAlias":"@salesforce/plugin-deploy-retrieve","pluginType":"core","aliases":[],"examples":["Deploy the source files in a directory:\n<%= config.bin %> <%= command.id %> --source-dir path/to/source","Deploy a specific Apex class and the objects whose source is in a directory (both examples are equivalent):\n<%= config.bin %> <%= command.id %> --source-dir path/to/apex/classes/MyClass.cls path/to/source/objects\n<%= config.bin %> <%= command.id %> --source-dir path/to/apex/classes/MyClass.cls --source-dir path/to/source/objects","Deploy all Apex classes:\n<%= config.bin %> <%= command.id %> --metadata ApexClass","Deploy a specific Apex class:\n<%= config.bin %> <%= command.id %> --metadata ApexClass:MyApexClass","Deploy all custom objects and Apex classes (both examples are equivalent):\n<%= config.bin %> <%= command.id %> --metadata CustomObject ApexClass\n<%= config.bin %> <%= command.id %> --metadata CustomObject --metadata ApexClass","Deploy all Apex classes and a profile that has a space in its name:\n<%= config.bin %> <%= command.id %> --metadata ApexClass --metadata \"Profile:My Profile\"","Deploy all components listed in a manifest:\n<%= config.bin %> <%= command.id %> --manifest path/to/package.xml","Run the tests that aren’t in any managed packages as part of a deployment:\n<%= config.bin %> <%= command.id %> --metadata ApexClass --test-level RunLocalTests"],"flags":{"json":{"name":"json","type":"boolean","description":"Format output as json.","helpGroup":"GLOBAL","allowNo":false},"metadata":{"name":"metadata","type":"option","char":"m","summary":"Metadata component names to deploy.","multiple":true,"exclusive":["manifest","source-dir"]},"manifest":{"name":"manifest","type":"option","char":"x","summary":"Full file path for manifest (package.xml) of components to deploy.","description":"All child components are included. If you specify this flag, don’t specify --metadata or --source-dir.","multiple":false,"exclusive":["metadata","source-dir"]},"source-dir":{"name":"source-dir","type":"option","char":"d","summary":"Path to the local source files to deploy.","description":"The supplied path can be to a single file (in which case the operation is applied to only one file) or to a folder (in which case the operation is applied to all metadata types in the directory and its subdirectories).\n\nIf you specify this flag, don’t specify --metadata or --manifest.","multiple":true,"exclusive":["manifest","metadata"]},"target-org":{"name":"target-org","type":"option","char":"o","summary":"Login username or alias for the target org.","description":"Overrides your default org.","multiple":false},"test-level":{"name":"test-level","type":"option","char":"l","summary":"Deployment Apex testing level.","description":"Valid values are:\n\n- NoTestRun — No tests are run. This test level applies only to deployments to development environments, such as sandbox, Developer Edition, or trial orgs. This test level is the default for development environments.\n\n- RunSpecifiedTests — Runs only the tests that you specify with the --run-tests flag. Code coverage requirements differ from the default coverage requirements when using this test level. Executed tests must comprise a minimum of 75% code coverage for each class and trigger in the deployment package. This coverage is computed for each class and trigger individually and is different than the overall coverage percentage.\n\n- RunLocalTests — All tests in your org are run, except the ones that originate from installed managed and unlocked packages. This test level is the default for production deployments that include Apex classes or triggers.\n\n- RunAllTestsInOrg — All tests in your org are run, including tests of managed packages.\n\n If you don’t specify a test level, the default behavior depends on the contents of your deployment package. For more information, see [Running Tests in a Deployment](https://developer.salesforce.com/docs/atlas.en-us.api_meta.meta/api_meta/meta_deploy_running_tests.htm) in the \"Metadata API Developer Guide\".","multiple":false,"options":["NoTestRun","RunSpecifiedTests","RunLocalTests","RunAllTestsInOrg"],"default":"NoTestRun"},"wait":{"name":"wait","type":"option","char":"w","summary":"Number of minutes to wait for command to complete and display results.","description":"If the command continues to run after the wait period, the CLI returns control of the terminal window to you.","multiple":false,"default":33}},"args":[],"_globalFlags":{"json":{"description":"Format output as json.","helpGroup":"GLOBAL","allowNo":false,"type":"boolean"}},"configurationVariablesSection":{"header":"CONFIGURATION VARIABLES","body":[{"name":"target-org","description":"Username or alias of the org that all commands run against by default. (sf only)"},{"name":"apiVersion","description":"API version of your project. Default: API version of your Dev Hub org."}]},"envVariablesSection":{"header":"ENVIRONMENT VARIABLES","body":[{"name":"SF_TARGET_ORG","description":"Username or alias of your default org. Overrides the target-org configuration variable."},{"name":"SFDX_DEFAULTUSERNAME","description":"Username or alias of your default org. Overrides the defaultusername configuration value."},{"name":"SFDX_USE_PROGRESS_BAR","description":"Set to false to disable the progress bar when running force:mdapi:deploy, force:source:deploy, or force:source:push."},{"name":"SF_USE_PROGRESS_BAR","description":"Set to false to disable the progress bar when running the metadata deploy command."}]}},"retrieve:metadata":{"id":"retrieve:metadata","summary":"Retrieve metadata in source format from an org to your local project.","description":"You must run this command from within a project.\n\nThis command doesn't support source-tracking. The source you retrieve overwrites the corresponding source files in your local project. This command doesn’t attempt to merge the source from your org with your local source files.\n\nTo retrieve multiple metadata components, either use multiple --metadata <name> flags or use a single --metadata flag with multiple names separated by spaces. Enclose names that contain spaces in one set of double quotes. The same syntax applies to --manifest and --source-dir.","strict":true,"pluginName":"@salesforce/plugin-deploy-retrieve","pluginAlias":"@salesforce/plugin-deploy-retrieve","pluginType":"core","aliases":[],"examples":["Retrieve the source files in a directory:\n<%= config.bin %> <%= command.id %> --source-dir path/to/source","Retrieve a specific Apex class and the objects whose source is in a directory (both examples are equivalent):\n<%= config.bin %> <%= command.id %> --source-dir path/to/apex/classes/MyClass.cls path/to/source/objects\n<%= config.bin %> <%= command.id %> --source-dir path/to/apex/classes/MyClass.cls --source-dir path/to/source/objects","Retrieve all Apex classes:\n<%= config.bin %> <%= command.id %> --metadata ApexClass","Retrieve a specific Apex class:\n<%= config.bin %> <%= command.id %> --metadata ApexClass:MyApexClass","Retrieve all custom objects and Apex classes (both examples are equivalent):\n<%= config.bin %> <%= command.id %> --metadata CustomObject ApexClass\n<%= config.bin %> <%= command.id %> --metadata CustomObject --metadata ApexClass","Retrieve all metadata components listed in a manifest:\n<%= config.bin %> <%= command.id %> --manifest path/to/package.xml","Retrieve metadata from a package:\n<%= config.bin %> <%= command.id %> --package-name MyPackageName","Retrieve metadata from multiple packages, one of which has a space in its name (both examples are equivalent):\n<%= config.bin %> <%= command.id %> --package-name Package1 \"PackageName With Spaces\" Package3\n<%= config.bin %> <%= command.id %> --package-name Package1 --package-name \"PackageName With Spaces\" --package-name Package3"],"flags":{"json":{"name":"json","type":"boolean","description":"Format output as json.","helpGroup":"GLOBAL","allowNo":false},"api-version":{"name":"api-version","type":"option","char":"a","summary":"Target API version for the retrieve.","description":"Use this flag to override the default API version, which is the latest version supported the CLI, with the API version in your package.xml file.","multiple":false},"manifest":{"name":"manifest","type":"option","char":"x","summary":"File path for the manifest (package.xml) that specifies the components to retrieve.","description":"If you specify this parameter, don’t specify --metadata or --source-dir.","multiple":false,"exclusive":["metadata","source-dir"]},"metadata":{"name":"metadata","type":"option","char":"m","summary":"Metadata component names to retrieve.","multiple":true,"exclusive":["manifest","source-dir"]},"package-name":{"name":"package-name","type":"option","char":"n","summary":"Package names to retrieve.","multiple":true},"source-dir":{"name":"source-dir","type":"option","char":"d","summary":"File paths for source to retrieve from the org.","description":"The supplied paths can be to a single file (in which case the operation is applied to only one file) or to a folder (in which case the operation is applied to all source files in the directory and its subdirectories).","multiple":true,"exclusive":["manifest","metadata"]},"target-org":{"name":"target-org","type":"option","char":"o","summary":"Login username or alias for the target org.","description":"Overrides your default org.","multiple":false},"wait":{"name":"wait","type":"option","char":"w","summary":"Number of minutes to wait for the command to complete and display results to the terminal window.","description":"If the command continues to run after the wait period, the CLI returns control of the terminal window to you.","multiple":false,"default":33}},"args":[],"_globalFlags":{"json":{"description":"Format output as json.","helpGroup":"GLOBAL","allowNo":false,"type":"boolean"}},"configurationVariablesSection":{"header":"CONFIGURATION VARIABLES","body":[{"name":"target-org","description":"Username or alias of the org that all commands run against by default. (sf only)"},{"name":"apiVersion","description":"API version of your project. Default: API version of your Dev Hub org."}]},"envVariablesSection":{"header":"ENVIRONMENT VARIABLES","body":[{"name":"SF_TARGET_ORG","description":"Username or alias of your default org. Overrides the target-org configuration variable."},{"name":"SFDX_DEFAULTUSERNAME","description":"Username or alias of your default org. Overrides the defaultusername configuration value."},{"name":"SFDX_USE_PROGRESS_BAR","description":"Set to false to disable the progress bar when running force:mdapi:deploy, force:source:deploy, or force:source:push."}]}}}}
1
+ {"version":"1.3.0","commands":{"deploy":{"id":"deploy","summary":"Deploy a project interactively to any Salesforce environment.","description":"This command must be run from within a project.\n\nThe command first analyzes your project, your active or logged-into environments, and local defaults to determine what to deploy and where to deploy it. The command then prompts you for information about this particular deployment and provides intelligent choices based on its analysis.\n\nFor example, if your local project contains a source directory with metadata files in source format, the command asks if you want to deploy that Salesforce app to an org. The command lists your connected orgs and asks which one you want to deploy to. The list of orgs starts with scratch orgs, ordered by expiration date with the most recently created one first, and then Dev Hub and production orgs ordered by name. If the command finds Apex tests, it asks if you want to run them and at which level.\n\nThe command stores your responses in the \"deploy-options.json\" file in your local project directory and uses them as defaults when you rerun the command. Specify --interactive to force the command to reprompt.\n\nUse this command for quick and simple deploys. For more complicated deployments, use the environment-specific commands, such as \"sf deploy metadata\", that provide additional flags.","strict":true,"pluginName":"@salesforce/plugin-deploy-retrieve","pluginAlias":"@salesforce/plugin-deploy-retrieve","pluginType":"core","aliases":[],"examples":["Deploy a project and use stored values from a previous command run:\n<%= config.bin %> <%= command.id %>","Reprompt for all deployment inputs:\n<%= config.bin %> <%= command.id %> --interactive"],"flags":{"interactive":{"name":"interactive","type":"boolean","summary":"Force the CLI to prompt for all deployment inputs.","allowNo":false}},"args":[],"enableJsonFlag":false,"_globalFlags":{}},"deploy:metadata":{"id":"deploy:metadata","summary":"Deploy metadata in source format to an org from your local project.","description":"You must run this command from within a project.\n\nThis command doesn't support source-tracking. The source you deploy overwrites the corresponding metadata in your org. This command doesn’t attempt to merge your source with the versions in your org.\n\nTo run the command asynchronously, set --wait to 0, which immediately returns the job ID. This way, you can continue to use the CLI.\n\nTo deploy multiple metadata components, either set multiple --metadata <name> flags or a single --metadata flag with multiple names separated by spaces. Enclose names that contain spaces in one set of double quotes. The same syntax applies to --manifest and --source-dir.","strict":true,"pluginName":"@salesforce/plugin-deploy-retrieve","pluginAlias":"@salesforce/plugin-deploy-retrieve","pluginType":"core","state":"beta","aliases":[],"examples":["Deploy the source files in a directory:\n<%= config.bin %> <%= command.id %> --source-dir path/to/source","Deploy a specific Apex class and the objects whose source is in a directory (both examples are equivalent):\n<%= config.bin %> <%= command.id %> --source-dir path/to/apex/classes/MyClass.cls path/to/source/objects\n<%= config.bin %> <%= command.id %> --source-dir path/to/apex/classes/MyClass.cls --source-dir path/to/source/objects","Deploy all Apex classes:\n<%= config.bin %> <%= command.id %> --metadata ApexClass","Deploy a specific Apex class:\n<%= config.bin %> <%= command.id %> --metadata ApexClass:MyApexClass","Deploy all custom objects and Apex classes (both examples are equivalent):\n<%= config.bin %> <%= command.id %> --metadata CustomObject ApexClass\n<%= config.bin %> <%= command.id %> --metadata CustomObject --metadata ApexClass","Deploy all Apex classes and a profile that has a space in its name:\n<%= config.bin %> <%= command.id %> --metadata ApexClass --metadata \"Profile:My Profile\"","Deploy all components listed in a manifest:\n<%= config.bin %> <%= command.id %> --manifest path/to/package.xml","Run the tests that aren’t in any managed packages as part of a deployment:\n<%= config.bin %> <%= command.id %> --metadata ApexClass --test-level RunLocalTests"],"flags":{"json":{"name":"json","type":"boolean","description":"Format output as json.","helpGroup":"GLOBAL","allowNo":false},"api-version":{"name":"api-version","type":"option","char":"a","summary":"Target API version for the deploy.","description":"Use this flag to override the default API version, which is the latest version supported the CLI, with the API version of your package.xml file.","multiple":false},"dry-run":{"name":"dry-run","type":"boolean","summary":"Validate deploy and run Apex tests but don’t save to the org.","allowNo":false},"ignore-errors":{"name":"ignore-errors","type":"boolean","char":"r","summary":"Ignore any errors and don’t roll back deployment.","description":"When deploying to a production org, keep this flag set to false (default value). When set to true, components without errors are deployed and components with errors are skipped, and could result in an inconsistent production org.","allowNo":false},"ignore-warnings":{"name":"ignore-warnings","type":"boolean","char":"g","summary":"Ignore warnings and allow a deployment to complete successfully.","description":"If a warning occurs and this flag is set to true, the success status of the deployment is set to true. When this flag is set to false, success is set to false, and the warning is treated like an error.","allowNo":false},"manifest":{"name":"manifest","type":"option","char":"x","summary":"Full file path for manifest (package.xml) of components to deploy.","description":"All child components are included. If you specify this flag, don’t specify --metadata or --source-dir.","multiple":false},"metadata":{"name":"metadata","type":"option","char":"m","summary":"Metadata component names to deploy.","multiple":true},"source-dir":{"name":"source-dir","type":"option","char":"d","summary":"Path to the local source files to deploy.","description":"The supplied path can be to a single file (in which case the operation is applied to only one file) or to a folder (in which case the operation is applied to all metadata types in the directory and its subdirectories).\n\nIf you specify this flag, don’t specify --metadata or --manifest.","multiple":true},"target-org":{"name":"target-org","type":"option","char":"o","summary":"Login username or alias for the target org.","description":"Overrides your default org.","multiple":false},"tests":{"name":"tests","type":"option","char":"t","summary":"Apex tests to run when --test-level is RunSpecifiedTests.","description":"Separate multiple test names with commas, and enclose the entire flag value in double quotes if a test contains a space.","multiple":true},"test-level":{"name":"test-level","type":"option","char":"l","summary":"Deployment Apex testing level.","description":"Valid values are:\n\n- NoTestRun — No tests are run. This test level applies only to deployments to development environments, such as sandbox, Developer Edition, or trial orgs. This test level is the default for development environments.\n\n- RunSpecifiedTests — Runs only the tests that you specify with the --run-tests flag. Code coverage requirements differ from the default coverage requirements when using this test level. Executed tests must comprise a minimum of 75% code coverage for each class and trigger in the deployment package. This coverage is computed for each class and trigger individually and is different than the overall coverage percentage.\n\n- RunLocalTests — All tests in your org are run, except the ones that originate from installed managed and unlocked packages. This test level is the default for production deployments that include Apex classes or triggers.\n\n- RunAllTestsInOrg — All tests in your org are run, including tests of managed packages.\n\n If you don’t specify a test level, the default behavior depends on the contents of your deployment package. For more information, see [Running Tests in a Deployment](https://developer.salesforce.com/docs/atlas.en-us.api_meta.meta/api_meta/meta_deploy_running_tests.htm) in the \"Metadata API Developer Guide\".","multiple":false,"options":["NoTestRun","RunSpecifiedTests","RunLocalTests","RunAllTestsInOrg"],"default":"NoTestRun"},"verbose":{"name":"verbose","type":"boolean","summary":"Show verbose output of the deploy result.","allowNo":false},"wait":{"name":"wait","type":"option","char":"w","summary":"Number of minutes to wait for command to complete and display results.","description":"If the command continues to run after the wait period, the CLI returns control of the terminal window to you.","helpValue":"<minutes>","multiple":false,"default":{"quantity":33,"unit":0}}},"args":[],"requiresProject":true,"_globalFlags":{"json":{"description":"Format output as json.","helpGroup":"GLOBAL","allowNo":false,"type":"boolean"}},"configurationVariablesSection":{"header":"CONFIGURATION VARIABLES","body":[{"name":"target-org","description":"Username or alias of the org that all commands run against by default. (sf only)"},{"name":"apiVersion","description":"API version of your project. Default: API version of your Dev Hub org. (sfdx only)"}]},"envVariablesSection":{"header":"ENVIRONMENT VARIABLES","body":[{"name":"SF_TARGET_ORG","description":"Username or alias of your default org. Overrides the target-org configuration variable."},{"name":"SF_USE_PROGRESS_BAR","description":"Set to false to disable the progress bar when running the metadata deploy command."}]},"hasDynamicHelp":true},"retrieve:metadata":{"id":"retrieve:metadata","summary":"Retrieve metadata in source format from an org to your local project.","description":"You must run this command from within a project.\n\nThis command doesn't support source-tracking. The source you retrieve overwrites the corresponding source files in your local project. This command doesn’t attempt to merge the source from your org with your local source files.\n\nTo retrieve multiple metadata components, either use multiple --metadata <name> flags or use a single --metadata flag with multiple names separated by spaces. Enclose names that contain spaces in one set of double quotes. The same syntax applies to --manifest and --source-dir.","strict":true,"pluginName":"@salesforce/plugin-deploy-retrieve","pluginAlias":"@salesforce/plugin-deploy-retrieve","pluginType":"core","state":"beta","aliases":[],"examples":["Retrieve the source files in a directory:\n<%= config.bin %> <%= command.id %> --source-dir path/to/source","Retrieve a specific Apex class and the objects whose source is in a directory (both examples are equivalent):\n<%= config.bin %> <%= command.id %> --source-dir path/to/apex/classes/MyClass.cls path/to/source/objects\n<%= config.bin %> <%= command.id %> --source-dir path/to/apex/classes/MyClass.cls --source-dir path/to/source/objects","Retrieve all Apex classes:\n<%= config.bin %> <%= command.id %> --metadata ApexClass","Retrieve a specific Apex class:\n<%= config.bin %> <%= command.id %> --metadata ApexClass:MyApexClass","Retrieve all custom objects and Apex classes (both examples are equivalent):\n<%= config.bin %> <%= command.id %> --metadata CustomObject ApexClass\n<%= config.bin %> <%= command.id %> --metadata CustomObject --metadata ApexClass","Retrieve all metadata components listed in a manifest:\n<%= config.bin %> <%= command.id %> --manifest path/to/package.xml","Retrieve metadata from a package:\n<%= config.bin %> <%= command.id %> --package-name MyPackageName","Retrieve metadata from multiple packages, one of which has a space in its name (both examples are equivalent):\n<%= config.bin %> <%= command.id %> --package-name Package1 \"PackageName With Spaces\" Package3\n<%= config.bin %> <%= command.id %> --package-name Package1 --package-name \"PackageName With Spaces\" --package-name Package3"],"flags":{"json":{"name":"json","type":"boolean","description":"Format output as json.","helpGroup":"GLOBAL","allowNo":false},"api-version":{"name":"api-version","type":"option","char":"a","summary":"Target API version for the retrieve.","description":"Use this flag to override the default API version, which is the latest version supported the CLI, with the API version in your package.xml file.","multiple":false},"manifest":{"name":"manifest","type":"option","char":"x","summary":"File path for the manifest (package.xml) that specifies the components to retrieve.","description":"If you specify this parameter, don’t specify --metadata or --source-dir.","multiple":false,"exclusive":["metadata","source-dir"]},"metadata":{"name":"metadata","type":"option","char":"m","summary":"Metadata component names to retrieve.","multiple":true,"exclusive":["manifest","source-dir"]},"package-name":{"name":"package-name","type":"option","char":"n","summary":"Package names to retrieve.","multiple":true},"source-dir":{"name":"source-dir","type":"option","char":"d","summary":"File paths for source to retrieve from the org.","description":"The supplied paths can be to a single file (in which case the operation is applied to only one file) or to a folder (in which case the operation is applied to all source files in the directory and its subdirectories).","multiple":true,"exclusive":["manifest","metadata"]},"target-org":{"name":"target-org","type":"option","char":"o","summary":"Login username or alias for the target org.","description":"Overrides your default org.","multiple":false},"wait":{"name":"wait","type":"option","char":"w","summary":"Number of minutes to wait for the command to complete and display results to the terminal window.","description":"If the command continues to run after the wait period, the CLI returns control of the terminal window to you.","multiple":false,"default":{"quantity":33,"unit":0}}},"args":[],"requiresProject":true,"_globalFlags":{"json":{"description":"Format output as json.","helpGroup":"GLOBAL","allowNo":false,"type":"boolean"}},"configurationVariablesSection":{"header":"CONFIGURATION VARIABLES","body":[{"name":"target-org","description":"Username or alias of the org that all commands run against by default. (sf only)"},{"name":"apiVersion","description":"API version of your project. Default: API version of your Dev Hub org. (sfdx only)"}]},"envVariablesSection":{"header":"ENVIRONMENT VARIABLES","body":[{"name":"SF_TARGET_ORG","description":"Username or alias of your default org. Overrides the target-org configuration variable."},{"name":"SFDX_DEFAULTUSERNAME","description":"Username or alias of your default org. Overrides the defaultusername configuration value."},{"name":"SFDX_USE_PROGRESS_BAR","description":"Set to false to disable the progress bar when running force:mdapi:deploy, force:source:deploy, or force:source:push."}]},"hasDynamicHelp":true}}}