@salesforce/plugin-deploy-retrieve 3.2.5 → 3.2.7

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.
@@ -1,15 +1,17 @@
1
1
  {
2
2
  "commands": {
3
- "project:convert:mdapi": {
3
+ "project:delete:source": {
4
4
  "aliases": [
5
- "force:mdapi:convert"
5
+ "force:source:delete"
6
6
  ],
7
7
  "args": {},
8
8
  "deprecateAliases": true,
9
- "description": "To use Salesforce CLI to work with components that you retrieved via Metadata API, first convert your files from the metadata format to the source format using this command.\n\nTo convert files from the source format back to the metadata format, run \"<%= config.bin %> project convert source\".\n\nTo convert 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.",
9
+ "description": "Use this command to delete components from orgs that don’t have source tracking. To remove deleted items from orgs that have source tracking enabled, \"<%= config.bin %> project deploy start\".\n\nWhen you run this command, both the local source file and the metadata component in the org are deleted.\n\nTo delete 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.",
10
10
  "examples": [
11
- "Convert metadata formatted files in the specified directory into source formatted files; writes converted files to your default package directory:\n$ <%= config.bin %> <%= command.id %> --root-dir path/to/metadata",
12
- "Similar to previous example, but writes converted files to the specified output directory:\n$ <%= config.bin %> <%= command.id %> --root-dir path/to/metadata --output-dir path/to/outputdir"
11
+ "Delete all local Apex source files and all Apex classes from the org with alias \"my-scratch\":\n<%= config.bin %> <%= command.id %> --metadata ApexClass --target-org my-scratch",
12
+ "Delete a specific Apex class and a Profile that has a space in it from your default org; don't prompt for confirmation:\n<%= config.bin %> <%= command.id %> --metadata ApexClass:MyFabulousApexClass --metadata \"Profile: My Profile\" --no-prompt",
13
+ "Run the tests that aren’t in any managed packages as part of the deletion; if the delete succeeds, and the org has source-tracking enabled, update the source tracking information:\n<%= config.bin %> <%= command.id %> --metadata ApexClass --test-level RunLocalTests --track-source",
14
+ "Delete the Apex source files in a directory and the corresponding components from your default org:\n<%= config.bin %> <%= command.id %> --source-dir force-app/main/default/classes"
13
15
  ],
14
16
  "flags": {
15
17
  "json": {
@@ -40,80 +42,153 @@
40
42
  "multiple": false,
41
43
  "type": "option"
42
44
  },
43
- "root-dir": {
45
+ "target-org": {
44
46
  "aliases": [
45
- "rootdir"
47
+ "targetusername",
48
+ "u"
46
49
  ],
47
- "char": "r",
50
+ "char": "o",
48
51
  "deprecateAliases": true,
49
- "name": "root-dir",
52
+ "name": "target-org",
53
+ "noCacheDefault": true,
50
54
  "required": true,
51
- "summary": "Root directory that contains the Metadata API–formatted metadata.",
52
- "hasDynamicHelp": false,
55
+ "summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
56
+ "hasDynamicHelp": true,
53
57
  "multiple": false,
54
58
  "type": "option"
55
59
  },
56
- "output-dir": {
60
+ "check-only": {
57
61
  "aliases": [
58
- "outputdir"
62
+ "checkonly"
59
63
  ],
60
- "char": "d",
64
+ "char": "c",
61
65
  "deprecateAliases": true,
62
- "name": "output-dir",
63
- "summary": "Directory to store your files in after they’re converted to source format; can be an absolute or relative path.",
66
+ "description": "IMPORTANT: Where possible, we changed noninclusive terms to align with our company value of Equality. We maintained certain terms to avoid any effect on customer implementations.\n\nValidates the deleted metadata and runs all Apex tests, but prevents the deletion from being saved to the org.\n\nIf you change a field type from Master-Detail to Lookup or vice versa, that change isn’t supported when using the --chec-konly parameter to test a deletion (validation). This kind of change isn’t supported for test deletions to avoid the risk of data loss or corruption. If a change that isn’t supported for test deletions is included in a deletion package, the test deletion fails and issues an error.\n\nIf your deletion package changes a field type from Master-Detail to Lookup or vice versa, you can still validate the changes prior to deploying to Production by performing a full deletion to another test Sandbox. A full deletion includes a validation of the changes as part of the deletion process.\n\nNote: A Metadata API deletion that includes Master-Detail relationships deletes all detail records in the Recycle Bin in the following cases.\n\n 1. For a deletion with a new Master-Detail field, soft delete (send to the Recycle Bin) all detail records before proceeding to delete the Master-Detail field, or the deletion fails. During the deletion, detail records are permanently deleted from the Recycle Bin and cannot be recovered.\n\n 2. For a deletion that converts a Lookup field relationship to a Master-Detail relationship, detail records must reference a master record or be soft-deleted (sent to the Recycle Bin) for the deletion to succeed. However, a successful deletion permanently deletes any detail records in the Recycle Bin.",
67
+ "name": "check-only",
68
+ "summary": "Validate delete command but don't delete anything from the org or the local project.",
69
+ "allowNo": false,
70
+ "type": "boolean"
71
+ },
72
+ "wait": {
73
+ "char": "w",
74
+ "description": "If the command continues to run after the wait period, the CLI returns control of the terminal window to you.",
75
+ "name": "wait",
76
+ "summary": "Number of minutes to wait for the command to finish.",
77
+ "default": {
78
+ "quantity": 33,
79
+ "unit": 0
80
+ },
64
81
  "hasDynamicHelp": false,
65
82
  "multiple": false,
66
83
  "type": "option"
67
84
  },
68
- "manifest": {
69
- "char": "x",
70
- "description": "If you specify this parameter, don’t specify --metadata or --source-dir.",
71
- "name": "manifest",
72
- "summary": "File path to manifest (package.xml) of metadata types to convert.",
85
+ "tests": {
86
+ "description": "If a test name contains a space, enclose it in double quotes.\nFor multiple test names, use one of the following formats:\n\n- Repeat the flag for multiple test names: --tests Test1 --tests Test2 --tests \"Test With Space\"\n- Separate the test names with spaces: --tests Test1 Test2 \"Test With Space\"",
87
+ "helpGroup": "Test",
88
+ "name": "tests",
89
+ "summary": "Apex tests to run when --test-level is RunSpecifiedTests.",
73
90
  "hasDynamicHelp": false,
74
- "multiple": false,
91
+ "multiple": true,
75
92
  "type": "option"
76
93
  },
77
- "metadata-dir": {
94
+ "test-level": {
78
95
  "aliases": [
79
- "metadatapath"
96
+ "testlevel"
80
97
  ],
81
- "char": "p",
98
+ "char": "l",
82
99
  "deprecateAliases": true,
83
- "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 metadata types in the directory and its sub-directories).\n\nIf you specify this flag, don’t specify --manifest or --metadata. If the comma-separated list you’re supplying contains spaces, enclose the entire comma-separated list in one set of double quotes.",
84
- "exclusive": [
85
- "manifest",
86
- "metadata"
100
+ "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 --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\nIf you don’t specify a test level, the default behavior depends on the contents of your deployment package and target org. For more information, see “Running Tests in a Deployment” in the Metadata API Developer Guide.",
101
+ "helpGroup": "Test",
102
+ "name": "test-level",
103
+ "summary": "Deployment Apex testing level.",
104
+ "hasDynamicHelp": false,
105
+ "multiple": false,
106
+ "options": [
107
+ "NoTestRun",
108
+ "RunSpecifiedTests",
109
+ "RunLocalTests",
110
+ "RunAllTestsInOrg"
87
111
  ],
88
- "name": "metadata-dir",
89
- "summary": "Root of directory or zip file of metadata formatted files to convert.",
112
+ "type": "option"
113
+ },
114
+ "no-prompt": {
115
+ "aliases": [
116
+ "noprompt"
117
+ ],
118
+ "char": "r",
119
+ "deprecateAliases": true,
120
+ "name": "no-prompt",
121
+ "summary": "Don't prompt for delete confirmation.",
122
+ "allowNo": false,
123
+ "type": "boolean"
124
+ },
125
+ "metadata": {
126
+ "char": "m",
127
+ "description": "If you specify this parameter, don’t specify --source-dir.",
128
+ "name": "metadata",
129
+ "summary": "Metadata components to delete.",
90
130
  "delimiter": ",",
91
131
  "hasDynamicHelp": false,
92
132
  "multiple": true,
93
133
  "type": "option"
94
134
  },
95
- "metadata": {
96
- "char": "m",
97
- "exclusive": [
98
- "manifest",
99
- "metadatapath"
135
+ "source-dir": {
136
+ "aliases": [
137
+ "sourcepath"
100
138
  ],
101
- "name": "metadata",
102
- "summary": "Metadata component names to convert.",
139
+ "char": "p",
140
+ "deprecateAliases": true,
141
+ "description": "The supplied paths can be a single file (in which case the operation is applied to only one file) or a folder (in which case the operation is applied to all metadata types in the directory and its sub-directories).\n\nIf you specify this parameter, don’t specify --metadata.",
142
+ "name": "source-dir",
143
+ "summary": "Source file paths to delete.",
103
144
  "delimiter": ",",
104
145
  "hasDynamicHelp": false,
105
146
  "multiple": true,
106
147
  "type": "option"
148
+ },
149
+ "track-source": {
150
+ "aliases": [
151
+ "tracksource"
152
+ ],
153
+ "char": "t",
154
+ "deprecateAliases": true,
155
+ "exclusive": [
156
+ "check-only"
157
+ ],
158
+ "name": "track-source",
159
+ "summary": "If the delete succeeds, update the source tracking information.",
160
+ "allowNo": false,
161
+ "type": "boolean"
162
+ },
163
+ "force-overwrite": {
164
+ "aliases": [
165
+ "forceoverwrite"
166
+ ],
167
+ "char": "f",
168
+ "dependsOn": [
169
+ "track-source"
170
+ ],
171
+ "deprecateAliases": true,
172
+ "name": "force-overwrite",
173
+ "summary": "Ignore conflict warnings and overwrite changes to the org.",
174
+ "allowNo": false,
175
+ "type": "boolean"
176
+ },
177
+ "verbose": {
178
+ "name": "verbose",
179
+ "summary": "Verbose output of the delete result.",
180
+ "allowNo": false,
181
+ "type": "boolean"
107
182
  }
108
183
  },
109
- "hasDynamicHelp": false,
184
+ "hasDynamicHelp": true,
110
185
  "hiddenAliases": [],
111
- "id": "project:convert:mdapi",
186
+ "id": "project:delete:source",
112
187
  "pluginAlias": "@salesforce/plugin-deploy-retrieve",
113
188
  "pluginName": "@salesforce/plugin-deploy-retrieve",
114
189
  "pluginType": "core",
115
190
  "strict": true,
116
- "summary": "Convert metadata retrieved via Metadata API into the source format used in Salesforce DX projects.",
191
+ "summary": "Delete source from your project and from a non-source-tracked org.",
117
192
  "enableJsonFlag": true,
118
193
  "requiresProject": true,
119
194
  "isESM": true,
@@ -121,36 +196,35 @@
121
196
  "lib",
122
197
  "commands",
123
198
  "project",
124
- "convert",
125
- "mdapi.js"
199
+ "delete",
200
+ "source.js"
126
201
  ],
127
202
  "aliasPermutations": [
128
- "force:mdapi:convert",
129
- "mdapi:force:convert",
130
- "mdapi:convert:force",
131
- "force:convert:mdapi",
132
- "convert:force:mdapi",
133
- "convert:mdapi:force"
203
+ "force:source:delete",
204
+ "source:force:delete",
205
+ "source:delete:force",
206
+ "force:delete:source",
207
+ "delete:force:source",
208
+ "delete:source:force"
134
209
  ],
135
210
  "permutations": [
136
- "project:convert:mdapi",
137
- "convert:project:mdapi",
138
- "convert:mdapi:project",
139
- "project:mdapi:convert",
140
- "mdapi:project:convert",
141
- "mdapi:convert:project"
211
+ "project:delete:source",
212
+ "delete:project:source",
213
+ "delete:source:project",
214
+ "project:source:delete",
215
+ "source:project:delete",
216
+ "source:delete:project"
142
217
  ]
143
218
  },
144
- "project:convert:source": {
219
+ "project:delete:tracking": {
145
220
  "aliases": [
146
- "force:source:convert"
221
+ "force:source:tracking:clear"
147
222
  ],
148
223
  "args": {},
149
224
  "deprecateAliases": true,
150
- "description": "To convert source-formatted files into the metadata format, so that you can deploy them using Metadata API, run this command. Then deploy the metadata using \"<%= config.bin %> project deploy\".\n\nTo convert Metadata API–formatted files into the source format, run \"<%= config.bin %> project convert mdapi\".\n\nTo specify a package name that includes spaces, enclose the name in single quotes.\n\nTo convert multiple 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.",
225
+ "description": "WARNING: This command deletes or overwrites all existing source tracking files. Use with extreme caution.\n\nDeletes all local source tracking information. When you next run 'project deploy preview', Salesforce CLI displays all local and remote files as changed, and any files with the same name are listed as conflicts.",
151
226
  "examples": [
152
- "Convert source-formatted files in the specified directory into metadata-formatted files; writes converted files into a new directory:\n$ <%= config.bin %> <%= command.id %> --root-dir path/to/source",
153
- "Similar to previous example, but writes converted files to the specified output directory and associates the files with the specified package:\n$ <%= config.bin %> <%= command.id %> --root-dir path/to/source --output-dir path/to/outputdir --package-name 'My Package'"
227
+ "Delete local source tracking for the org with alias \"my-scratch\":\n$ <%= config.bin %> <%= command.id %> --target-org my-scratch"
154
228
  ],
155
229
  "flags": {
156
230
  "json": {
@@ -167,7 +241,6 @@
167
241
  "deprecateAliases": true,
168
242
  "description": "Override the api version used for api requests made by this command",
169
243
  "name": "api-version",
170
- "summary": "API Version to use in the generated project's manifest. By default, will use the version from sfdx-project.json",
171
244
  "hasDynamicHelp": false,
172
245
  "multiple": false,
173
246
  "type": "option"
@@ -182,131 +255,193 @@
182
255
  "multiple": false,
183
256
  "type": "option"
184
257
  },
185
- "root-dir": {
186
- "aliases": [
187
- "rootdir"
188
- ],
189
- "char": "r",
190
- "deprecateAliases": true,
191
- "name": "root-dir",
192
- "summary": "Source directory other than the default package to convert.",
193
- "hasDynamicHelp": false,
194
- "multiple": false,
195
- "type": "option"
196
- },
197
- "output-dir": {
198
- "aliases": [
199
- "outputdir"
200
- ],
201
- "char": "d",
202
- "deprecateAliases": true,
203
- "name": "output-dir",
204
- "summary": "Output directory to store the Metadata API–formatted files in.",
205
- "default": "metadataPackage_1705937709059",
206
- "hasDynamicHelp": false,
207
- "multiple": false,
208
- "type": "option"
209
- },
210
- "package-name": {
258
+ "target-org": {
211
259
  "aliases": [
212
- "packagename"
260
+ "targetusername",
261
+ "u"
213
262
  ],
214
- "char": "n",
263
+ "char": "o",
215
264
  "deprecateAliases": true,
216
- "name": "package-name",
217
- "summary": "Name of the package to associate with the metadata-formatted files.",
218
- "hasDynamicHelp": false,
219
- "multiple": false,
220
- "type": "option"
221
- },
222
- "manifest": {
223
- "char": "x",
224
- "description": "If you specify this parameter, don’t specify --metadata or --source-dir.",
225
- "name": "manifest",
226
- "summary": "Path to the manifest (package.xml) file that specifies the metadata types to convert.",
227
- "hasDynamicHelp": false,
265
+ "name": "target-org",
266
+ "noCacheDefault": true,
267
+ "required": true,
268
+ "summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
269
+ "hasDynamicHelp": true,
228
270
  "multiple": false,
229
271
  "type": "option"
230
272
  },
231
- "source-dir": {
273
+ "no-prompt": {
232
274
  "aliases": [
233
- "sourcepath"
275
+ "noprompt"
234
276
  ],
235
277
  "char": "p",
236
278
  "deprecateAliases": true,
237
- "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 metadata types in the directory and its sub-directories).\n\nIf you specify this parameter, don’t specify --manifest or --metadata.",
238
- "exclusive": [
239
- "manifest",
240
- "metadata"
241
- ],
242
- "name": "source-dir",
243
- "summary": "Paths to the local source files to convert.",
244
- "delimiter": ",",
245
- "hasDynamicHelp": false,
246
- "multiple": true,
279
+ "name": "no-prompt",
280
+ "summary": "Don't prompt for source tracking override confirmation.",
281
+ "allowNo": false,
282
+ "type": "boolean"
283
+ }
284
+ },
285
+ "hasDynamicHelp": true,
286
+ "hiddenAliases": [],
287
+ "id": "project:delete:tracking",
288
+ "pluginAlias": "@salesforce/plugin-deploy-retrieve",
289
+ "pluginName": "@salesforce/plugin-deploy-retrieve",
290
+ "pluginType": "core",
291
+ "strict": true,
292
+ "summary": "Delete all local source tracking information.",
293
+ "enableJsonFlag": true,
294
+ "requiresProject": true,
295
+ "isESM": true,
296
+ "relativePath": [
297
+ "lib",
298
+ "commands",
299
+ "project",
300
+ "delete",
301
+ "tracking.js"
302
+ ],
303
+ "aliasPermutations": [
304
+ "force:source:tracking:clear",
305
+ "source:force:tracking:clear",
306
+ "source:tracking:force:clear",
307
+ "source:tracking:clear:force",
308
+ "force:tracking:source:clear",
309
+ "tracking:force:source:clear",
310
+ "tracking:source:force:clear",
311
+ "tracking:source:clear:force",
312
+ "force:tracking:clear:source",
313
+ "tracking:force:clear:source",
314
+ "tracking:clear:force:source",
315
+ "tracking:clear:source:force",
316
+ "force:source:clear:tracking",
317
+ "source:force:clear:tracking",
318
+ "source:clear:force:tracking",
319
+ "source:clear:tracking:force",
320
+ "force:clear:source:tracking",
321
+ "clear:force:source:tracking",
322
+ "clear:source:force:tracking",
323
+ "clear:source:tracking:force",
324
+ "force:clear:tracking:source",
325
+ "clear:force:tracking:source",
326
+ "clear:tracking:force:source",
327
+ "clear:tracking:source:force"
328
+ ],
329
+ "permutations": [
330
+ "project:delete:tracking",
331
+ "delete:project:tracking",
332
+ "delete:tracking:project",
333
+ "project:tracking:delete",
334
+ "tracking:project:delete",
335
+ "tracking:delete:project"
336
+ ]
337
+ },
338
+ "project:deploy:cancel": {
339
+ "aliases": [
340
+ "deploy:metadata:cancel"
341
+ ],
342
+ "args": {},
343
+ "deprecateAliases": true,
344
+ "description": "Use this command to cancel a deploy operation that hasn't yet completed in the org. Deploy operations include standard deploys, quick deploys, deploy validations, and deploy cancellations.\n\nRun this command by either passing it a job ID or specifying the --use-most-recent flag to use the job ID of the most recent deploy operation.",
345
+ "examples": [
346
+ "Cancel a deploy operation using a job ID:\n<%= config.bin %> <%= command.id %> --job-id 0Af0x000017yLUFCA2",
347
+ "Cancel the most recent deploy operation:\n<%= config.bin %> <%= command.id %> --use-most-recent"
348
+ ],
349
+ "flags": {
350
+ "json": {
351
+ "description": "Format output as json.",
352
+ "helpGroup": "GLOBAL",
353
+ "name": "json",
354
+ "allowNo": false,
355
+ "type": "boolean"
356
+ },
357
+ "async": {
358
+ "description": "The command immediately returns the control of the terminal to you. This way, you can continue to use the CLI. To resume watching the cancellation, run \"<%= config.bin %> project deploy resume\". To check the status of the cancellation, run \"<%= config.bin %> project deploy report\".",
359
+ "exclusive": [
360
+ "wait"
361
+ ],
362
+ "name": "async",
363
+ "summary": "Run the command asynchronously.",
364
+ "allowNo": false,
365
+ "type": "boolean"
366
+ },
367
+ "job-id": {
368
+ "char": "i",
369
+ "description": "These commands return a job ID if they time out or you specified the --async flag:\n\n- <%= config.bin %> project deploy start\n- <%= config.bin %> project deploy validate\n- <%= config.bin %> project deploy quick\n- <%= config.bin %> project deploy cancel\n\nThe job ID is valid for 10 days from when you started the deploy operation.",
370
+ "name": "job-id",
371
+ "summary": "Job ID of the deploy operation you want to cancel.",
372
+ "hasDynamicHelp": false,
373
+ "multiple": false,
247
374
  "type": "option"
248
375
  },
249
- "metadata": {
250
- "char": "m",
376
+ "use-most-recent": {
377
+ "char": "r",
378
+ "description": "For performance reasons, this flag uses job IDs for deploy operations that started only in the past 3 days or less. If your most recent deploy operations was more than 3 days ago, this flag won't find a job ID.",
379
+ "name": "use-most-recent",
380
+ "summary": "Use the job ID of the most recent deploy operation.",
381
+ "allowNo": false,
382
+ "type": "boolean"
383
+ },
384
+ "wait": {
385
+ "char": "w",
386
+ "description": "If the command continues to run after the wait period, the CLI returns control of the terminal window to you. To resume watching the cancellation, run \"<%= config.bin %> project deploy resume\". To check the status of the cancellation, run \"<%= config.bin %> project deploy report\".",
251
387
  "exclusive": [
252
- "manifest",
253
- "sourcepath"
388
+ "async"
254
389
  ],
255
- "name": "metadata",
256
- "summary": "Metadata component names to convert.",
257
- "delimiter": ",",
390
+ "name": "wait",
391
+ "summary": "Number of minutes to wait for the command to complete and display results.",
258
392
  "hasDynamicHelp": false,
259
- "multiple": true,
393
+ "helpValue": "<minutes>",
394
+ "multiple": false,
260
395
  "type": "option"
261
396
  }
262
397
  },
263
398
  "hasDynamicHelp": false,
264
399
  "hiddenAliases": [],
265
- "id": "project:convert:source",
400
+ "id": "project:deploy:cancel",
266
401
  "pluginAlias": "@salesforce/plugin-deploy-retrieve",
267
402
  "pluginName": "@salesforce/plugin-deploy-retrieve",
268
403
  "pluginType": "core",
269
404
  "strict": true,
270
- "summary": "Convert source-formatted files into metadata that you can deploy using Metadata API.",
405
+ "summary": "Cancel a deploy operation.",
271
406
  "enableJsonFlag": true,
272
- "requiresProject": true,
273
407
  "isESM": true,
274
408
  "relativePath": [
275
409
  "lib",
276
410
  "commands",
277
411
  "project",
278
- "convert",
279
- "source.js"
412
+ "deploy",
413
+ "cancel.js"
280
414
  ],
281
415
  "aliasPermutations": [
282
- "force:source:convert",
283
- "source:force:convert",
284
- "source:convert:force",
285
- "force:convert:source",
286
- "convert:force:source",
287
- "convert:source:force"
416
+ "deploy:metadata:cancel",
417
+ "metadata:deploy:cancel",
418
+ "metadata:cancel:deploy",
419
+ "deploy:cancel:metadata",
420
+ "cancel:deploy:metadata",
421
+ "cancel:metadata:deploy"
288
422
  ],
289
423
  "permutations": [
290
- "project:convert:source",
291
- "convert:project:source",
292
- "convert:source:project",
293
- "project:source:convert",
294
- "source:project:convert",
295
- "source:convert:project"
424
+ "project:deploy:cancel",
425
+ "deploy:project:cancel",
426
+ "deploy:cancel:project",
427
+ "project:cancel:deploy",
428
+ "cancel:project:deploy",
429
+ "cancel:deploy:project"
296
430
  ]
297
431
  },
298
- "project:delete:source": {
432
+ "project:deploy:preview": {
299
433
  "aliases": [
300
- "force:source:delete"
434
+ "deploy:metadata:preview"
301
435
  ],
302
436
  "args": {},
303
437
  "deprecateAliases": true,
304
- "description": "Use this command to delete components from orgs that don’t have source tracking. To remove deleted items from orgs that have source tracking enabled, \"<%= config.bin %> project deploy start\".\n\nWhen you run this command, both the local source file and the metadata component in the org are deleted.\n\nTo delete 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.",
438
+ "description": "You must run this command from within a project.\n\nThe command outputs a table that describes what will happen if you run the \"<%= config.bin %> project deploy start\" command. The table lists the metadata components that will be deployed and deleted. The table also lists the current conflicts between files in your local project and components in the org. Finally, the table lists the files that won't be deployed because they're included in your .forceignore file.\n\nIf your org allows source tracking, then this command displays potential conflicts between the org and your local project. Some orgs, such as production org, never allow source tracking. Source tracking is enabled by default on scratch and sandbox orgs; you can disable source tracking when you create the orgs by specifying the --no-track-source flag on the \"<%= config.bin %> org create scratch|sandbox\" commands.\n\nTo preview the deployment of 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.",
305
439
  "examples": [
306
- "Delete all local Apex source files and all Apex classes from the org with alias \"my-scratch\":\n<%= config.bin %> <%= command.id %> --metadata ApexClass --target-org my-scratch",
307
- "Delete a specific Apex class and a Profile that has a space in it from your default org; don't prompt for confirmation:\n<%= config.bin %> <%= command.id %> --metadata ApexClass:MyFabulousApexClass --metadata \"Profile: My Profile\" --no-prompt",
308
- "Run the tests that aren’t in any managed packages as part of the deletion; if the delete succeeds, and the org has source-tracking enabled, update the source tracking information:\n<%= config.bin %> <%= command.id %> --metadata ApexClass --test-level RunLocalTests --track-source",
309
- "Delete the Apex source files in a directory and the corresponding components from your default org:\n<%= config.bin %> <%= command.id %> --source-dir force-app/main/default/classes"
440
+ "NOTE: The commands to preview a deployment and actually deploy it use similar flags. We provide a few preview examples here, but see the help for \"<%= config.bin %> project deploy start\" for more examples that you can adapt for previewing.",
441
+ "Preview the deployment of source files in a directory, such as force-app, to your default org:\n<%= config.bin %> <%= command.id %> --source-dir force-app",
442
+ "Preview the deployment of all Apex classes to an org with alias \"my-scratch\":\n<%= config.bin %> <%= command.id %> --metadata ApexClass --target-org my-scratch",
443
+ "Preview deployment of a specific Apex class:\n<%= config.bin %> <%= command.id %> --metadata ApexClass:MyApexClass",
444
+ "Preview deployment of all components listed in a manifest:\n<%= config.bin %> <%= command.id %> --manifest path/to/package.xml"
310
445
  ],
311
446
  "flags": {
312
447
  "json": {
@@ -316,174 +451,78 @@
316
451
  "allowNo": false,
317
452
  "type": "boolean"
318
453
  },
319
- "api-version": {
320
- "aliases": [
321
- "apiversion"
454
+ "ignore-conflicts": {
455
+ "char": "c",
456
+ "description": "This flag applies only to orgs that allow source tracking. It has no effect on orgs that don't allow it, such as production orgs.",
457
+ "name": "ignore-conflicts",
458
+ "summary": "Don't display conflicts in preview of the deployment.",
459
+ "allowNo": false,
460
+ "type": "boolean"
461
+ },
462
+ "manifest": {
463
+ "char": "x",
464
+ "description": "All child components are included. If you specify this flag, don’t specify --metadata or --source-dir.",
465
+ "exclusive": [
466
+ "source-dir",
467
+ "metadata"
322
468
  ],
323
- "deprecateAliases": true,
324
- "description": "Override the api version used for api requests made by this command",
325
- "name": "api-version",
469
+ "name": "manifest",
470
+ "summary": "Full file path for manifest (package.xml) of components to preview.",
326
471
  "hasDynamicHelp": false,
327
472
  "multiple": false,
328
473
  "type": "option"
329
474
  },
330
- "loglevel": {
331
- "deprecated": {
332
- "message": "The loglevel flag is no longer in use on this command. You may use it without error, but it will be ignored.\nSet the log level using the `SFDX_LOG_LEVEL` environment variable."
333
- },
334
- "hidden": true,
335
- "name": "loglevel",
475
+ "metadata": {
476
+ "char": "m",
477
+ "exclusive": [
478
+ "manifest",
479
+ "source-dir"
480
+ ],
481
+ "name": "metadata",
482
+ "summary": "Metadata component names to preview.",
336
483
  "hasDynamicHelp": false,
337
- "multiple": false,
484
+ "multiple": true,
338
485
  "type": "option"
339
486
  },
340
- "target-org": {
341
- "aliases": [
342
- "targetusername",
343
- "u"
487
+ "source-dir": {
488
+ "char": "d",
489
+ "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.",
490
+ "exclusive": [
491
+ "manifest",
492
+ "metadata"
344
493
  ],
494
+ "name": "source-dir",
495
+ "summary": "Path to the local source files to preview.",
496
+ "hasDynamicHelp": false,
497
+ "multiple": true,
498
+ "type": "option"
499
+ },
500
+ "target-org": {
345
501
  "char": "o",
346
- "deprecateAliases": true,
502
+ "description": "Overrides your default org.",
347
503
  "name": "target-org",
348
504
  "noCacheDefault": true,
349
505
  "required": true,
350
- "summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
506
+ "summary": "Login username or alias for the target org.",
351
507
  "hasDynamicHelp": true,
352
508
  "multiple": false,
353
509
  "type": "option"
354
510
  },
355
- "check-only": {
356
- "aliases": [
357
- "checkonly"
358
- ],
359
- "char": "c",
360
- "deprecateAliases": true,
361
- "description": "IMPORTANT: Where possible, we changed noninclusive terms to align with our company value of Equality. We maintained certain terms to avoid any effect on customer implementations.\n\nValidates the deleted metadata and runs all Apex tests, but prevents the deletion from being saved to the org.\n\nIf you change a field type from Master-Detail to Lookup or vice versa, that change isn’t supported when using the --chec-konly parameter to test a deletion (validation). This kind of change isn’t supported for test deletions to avoid the risk of data loss or corruption. If a change that isn’t supported for test deletions is included in a deletion package, the test deletion fails and issues an error.\n\nIf your deletion package changes a field type from Master-Detail to Lookup or vice versa, you can still validate the changes prior to deploying to Production by performing a full deletion to another test Sandbox. A full deletion includes a validation of the changes as part of the deletion process.\n\nNote: A Metadata API deletion that includes Master-Detail relationships deletes all detail records in the Recycle Bin in the following cases.\n\n 1. For a deletion with a new Master-Detail field, soft delete (send to the Recycle Bin) all detail records before proceeding to delete the Master-Detail field, or the deletion fails. During the deletion, detail records are permanently deleted from the Recycle Bin and cannot be recovered.\n\n 2. For a deletion that converts a Lookup field relationship to a Master-Detail relationship, detail records must reference a master record or be soft-deleted (sent to the Recycle Bin) for the deletion to succeed. However, a successful deletion permanently deletes any detail records in the Recycle Bin.",
362
- "name": "check-only",
363
- "summary": "Validate delete command but don't delete anything from the org or the local project.",
364
- "allowNo": false,
365
- "type": "boolean"
366
- },
367
- "wait": {
368
- "char": "w",
369
- "description": "If the command continues to run after the wait period, the CLI returns control of the terminal window to you.",
370
- "name": "wait",
371
- "summary": "Number of minutes to wait for the command to finish.",
372
- "default": {
373
- "quantity": 33,
374
- "unit": 0
375
- },
376
- "hasDynamicHelp": false,
377
- "multiple": false,
378
- "type": "option"
379
- },
380
- "tests": {
381
- "description": "If a test name contains a space, enclose it in double quotes.\nFor multiple test names, use one of the following formats:\n\n- Repeat the flag for multiple test names: --tests Test1 --tests Test2 --tests \"Test With Space\"\n- Separate the test names with spaces: --tests Test1 Test2 \"Test With Space\"",
382
- "helpGroup": "Test",
383
- "name": "tests",
384
- "summary": "Apex tests to run when --test-level is RunSpecifiedTests.",
385
- "hasDynamicHelp": false,
386
- "multiple": true,
387
- "type": "option"
388
- },
389
- "test-level": {
390
- "aliases": [
391
- "testlevel"
392
- ],
393
- "char": "l",
394
- "deprecateAliases": true,
395
- "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 --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\nIf you don’t specify a test level, the default behavior depends on the contents of your deployment package and target org. For more information, see “Running Tests in a Deployment” in the Metadata API Developer Guide.",
396
- "helpGroup": "Test",
397
- "name": "test-level",
398
- "summary": "Deployment Apex testing level.",
399
- "hasDynamicHelp": false,
400
- "multiple": false,
401
- "options": [
402
- "NoTestRun",
403
- "RunSpecifiedTests",
404
- "RunLocalTests",
405
- "RunAllTestsInOrg"
406
- ],
407
- "type": "option"
408
- },
409
- "no-prompt": {
410
- "aliases": [
411
- "noprompt"
412
- ],
413
- "char": "r",
414
- "deprecateAliases": true,
415
- "name": "no-prompt",
416
- "summary": "Don't prompt for delete confirmation.",
417
- "allowNo": false,
418
- "type": "boolean"
419
- },
420
- "metadata": {
421
- "char": "m",
422
- "description": "If you specify this parameter, don’t specify --source-dir.",
423
- "name": "metadata",
424
- "summary": "Metadata components to delete.",
425
- "delimiter": ",",
426
- "hasDynamicHelp": false,
427
- "multiple": true,
428
- "type": "option"
429
- },
430
- "source-dir": {
431
- "aliases": [
432
- "sourcepath"
433
- ],
434
- "char": "p",
435
- "deprecateAliases": true,
436
- "description": "The supplied paths can be a single file (in which case the operation is applied to only one file) or a folder (in which case the operation is applied to all metadata types in the directory and its sub-directories).\n\nIf you specify this parameter, don’t specify --metadata.",
437
- "name": "source-dir",
438
- "summary": "Source file paths to delete.",
439
- "delimiter": ",",
440
- "hasDynamicHelp": false,
441
- "multiple": true,
442
- "type": "option"
443
- },
444
- "track-source": {
445
- "aliases": [
446
- "tracksource"
447
- ],
448
- "char": "t",
449
- "deprecateAliases": true,
450
- "exclusive": [
451
- "check-only"
452
- ],
453
- "name": "track-source",
454
- "summary": "If the delete succeeds, update the source tracking information.",
455
- "allowNo": false,
456
- "type": "boolean"
457
- },
458
- "force-overwrite": {
459
- "aliases": [
460
- "forceoverwrite"
461
- ],
462
- "char": "f",
463
- "dependsOn": [
464
- "track-source"
465
- ],
466
- "deprecateAliases": true,
467
- "name": "force-overwrite",
468
- "summary": "Ignore conflict warnings and overwrite changes to the org.",
469
- "allowNo": false,
470
- "type": "boolean"
471
- },
472
- "verbose": {
473
- "name": "verbose",
474
- "summary": "Verbose output of the delete result.",
511
+ "concise": {
512
+ "name": "concise",
513
+ "summary": "Show only the changes that will be deployed; omits files that are forceignored.",
475
514
  "allowNo": false,
476
515
  "type": "boolean"
477
516
  }
478
517
  },
479
518
  "hasDynamicHelp": true,
480
519
  "hiddenAliases": [],
481
- "id": "project:delete:source",
520
+ "id": "project:deploy:preview",
482
521
  "pluginAlias": "@salesforce/plugin-deploy-retrieve",
483
522
  "pluginName": "@salesforce/plugin-deploy-retrieve",
484
523
  "pluginType": "core",
485
524
  "strict": true,
486
- "summary": "Delete source from your project and from a non-source-tracked org.",
525
+ "summary": "Preview a deployment to see what will deploy to the org, the potential conflicts, and the ignored files.",
487
526
  "enableJsonFlag": true,
488
527
  "requiresProject": true,
489
528
  "isESM": true,
@@ -491,35 +530,36 @@
491
530
  "lib",
492
531
  "commands",
493
532
  "project",
494
- "delete",
495
- "source.js"
533
+ "deploy",
534
+ "preview.js"
496
535
  ],
497
536
  "aliasPermutations": [
498
- "force:source:delete",
499
- "source:force:delete",
500
- "source:delete:force",
501
- "force:delete:source",
502
- "delete:force:source",
503
- "delete:source:force"
537
+ "deploy:metadata:preview",
538
+ "metadata:deploy:preview",
539
+ "metadata:preview:deploy",
540
+ "deploy:preview:metadata",
541
+ "preview:deploy:metadata",
542
+ "preview:metadata:deploy"
504
543
  ],
505
544
  "permutations": [
506
- "project:delete:source",
507
- "delete:project:source",
508
- "delete:source:project",
509
- "project:source:delete",
510
- "source:project:delete",
511
- "source:delete:project"
545
+ "project:deploy:preview",
546
+ "deploy:project:preview",
547
+ "deploy:preview:project",
548
+ "project:preview:deploy",
549
+ "preview:project:deploy",
550
+ "preview:deploy:project"
512
551
  ]
513
552
  },
514
- "project:delete:tracking": {
553
+ "project:deploy:quick": {
515
554
  "aliases": [
516
- "force:source:tracking:clear"
555
+ "deploy:metadata:quick"
517
556
  ],
518
557
  "args": {},
519
558
  "deprecateAliases": true,
520
- "description": "WARNING: This command deletes or overwrites all existing source tracking files. Use with extreme caution.\n\nDeletes all local source tracking information. When you next run 'project deploy preview', Salesforce CLI displays all local and remote files as changed, and any files with the same name are listed as conflicts.",
559
+ "description": "Before you run this command, first create a validated deployment with the \"<%= config.bin %> project deploy validate\" command, which returns a job ID. Validated deployments haven't been deployed to the org yet; you deploy them with this command. Either pass the job ID to this command or use the --use-most-recent flag to use the job ID of the most recently validated deployment. For the quick deploy to succeed, the associated validated deployment must also have succeeded.\n\nExecuting this quick deploy command takes less time than a standard deploy because it skips running Apex tests. These tests were previously run as part of the validation. Validating first and then running a quick deploy is useful if the deployment to your production org take several hours and you don’t want to risk a failed deploy.\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.",
521
560
  "examples": [
522
- "Delete local source tracking for the org with alias \"my-scratch\":\n$ <%= config.bin %> <%= command.id %> --target-org my-scratch"
561
+ "Run a quick deploy to your default org using a job ID:\n<%= config.bin %> <%= command.id %> --job-id 0Af0x000017yLUFCA2",
562
+ "Asynchronously run a quick deploy of the most recently validated deployment to an org with alias \"my-prod-org\":\n<%= config.bin %> <%= command.id %> --async --use-most-recent --target-org my-prod-org"
523
563
  ],
524
564
  "flags": {
525
565
  "json": {
@@ -529,117 +569,166 @@
529
569
  "allowNo": false,
530
570
  "type": "boolean"
531
571
  },
532
- "api-version": {
533
- "aliases": [
534
- "apiversion"
572
+ "async": {
573
+ "description": "The command immediately returns the control of the terminal to you. This way, you can continue to use the CLI. To resume watching the deploy, run \"<%= config.bin %> project deploy resume\". To check the status of the deploy, run \"<%= config.bin %> project deploy report\".",
574
+ "exclusive": [
575
+ "wait"
535
576
  ],
536
- "deprecateAliases": true,
537
- "description": "Override the api version used for api requests made by this command",
538
- "name": "api-version",
539
- "hasDynamicHelp": false,
540
- "multiple": false,
541
- "type": "option"
577
+ "name": "async",
578
+ "summary": "Run the command asynchronously.",
579
+ "allowNo": false,
580
+ "type": "boolean"
542
581
  },
543
- "loglevel": {
544
- "deprecated": {
545
- "message": "The loglevel flag is no longer in use on this command. You may use it without error, but it will be ignored.\nSet the log level using the `SFDX_LOG_LEVEL` environment variable."
546
- },
547
- "hidden": true,
548
- "name": "loglevel",
582
+ "concise": {
583
+ "exclusive": [
584
+ "verbose"
585
+ ],
586
+ "name": "concise",
587
+ "summary": "Show concise output of the deploy result.",
588
+ "allowNo": false,
589
+ "type": "boolean"
590
+ },
591
+ "job-id": {
592
+ "char": "i",
593
+ "description": "The job ID is valid for 10 days from when you started the validation.",
594
+ "name": "job-id",
595
+ "summary": "Job ID of the deployment you want to quick deploy.",
549
596
  "hasDynamicHelp": false,
550
597
  "multiple": false,
551
598
  "type": "option"
552
599
  },
553
600
  "target-org": {
554
- "aliases": [
555
- "targetusername",
556
- "u"
557
- ],
558
601
  "char": "o",
559
- "deprecateAliases": true,
602
+ "description": "Overrides your default org.",
560
603
  "name": "target-org",
561
604
  "noCacheDefault": true,
562
- "required": true,
563
- "summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
605
+ "summary": "Login username or alias for the target org.",
564
606
  "hasDynamicHelp": true,
565
607
  "multiple": false,
566
608
  "type": "option"
567
609
  },
568
- "no-prompt": {
569
- "aliases": [
570
- "noprompt"
610
+ "use-most-recent": {
611
+ "char": "r",
612
+ "description": "For performance reasons, this flag uses only job IDs that were validated in the past 3 days or less. If your most recent deployment validation was more than 3 days ago, this flag won't find a job ID.",
613
+ "name": "use-most-recent",
614
+ "summary": "Use the job ID of the most recently validated deployment.",
615
+ "allowNo": false,
616
+ "type": "boolean"
617
+ },
618
+ "verbose": {
619
+ "exclusive": [
620
+ "concise"
571
621
  ],
572
- "char": "p",
573
- "deprecateAliases": true,
574
- "name": "no-prompt",
575
- "summary": "Don't prompt for source tracking override confirmation.",
622
+ "name": "verbose",
623
+ "summary": "Show verbose output of the deploy result.",
576
624
  "allowNo": false,
577
625
  "type": "boolean"
626
+ },
627
+ "wait": {
628
+ "char": "w",
629
+ "description": "If the command continues to run after the wait period, the CLI returns control of the terminal window to you. To resume watching the deploy, run \"<%= config.bin %> project deploy resume\". To check the status of the deploy, run \"<%= config.bin %> project deploy report\".",
630
+ "exclusive": [
631
+ "async"
632
+ ],
633
+ "name": "wait",
634
+ "summary": "Number of minutes to wait for the command to complete and display results.",
635
+ "default": {
636
+ "quantity": 33,
637
+ "unit": 0
638
+ },
639
+ "hasDynamicHelp": false,
640
+ "helpValue": "<minutes>",
641
+ "multiple": false,
642
+ "type": "option"
643
+ },
644
+ "api-version": {
645
+ "char": "a",
646
+ "description": "Use this flag to override the default API version with the API version of your package.xml file. The default API version is the latest version supported by the CLI.",
647
+ "name": "api-version",
648
+ "summary": "Target API version for the deploy.",
649
+ "hasDynamicHelp": false,
650
+ "multiple": false,
651
+ "type": "option"
578
652
  }
579
653
  },
580
654
  "hasDynamicHelp": true,
581
655
  "hiddenAliases": [],
582
- "id": "project:delete:tracking",
656
+ "id": "project:deploy:quick",
583
657
  "pluginAlias": "@salesforce/plugin-deploy-retrieve",
584
658
  "pluginName": "@salesforce/plugin-deploy-retrieve",
585
659
  "pluginType": "core",
586
660
  "strict": true,
587
- "summary": "Delete all local source tracking information.",
661
+ "summary": "Quickly deploy a validated deployment to an org.",
588
662
  "enableJsonFlag": true,
589
- "requiresProject": true,
590
- "isESM": true,
591
- "relativePath": [
592
- "lib",
593
- "commands",
594
- "project",
595
- "delete",
596
- "tracking.js"
597
- ],
598
- "aliasPermutations": [
599
- "force:source:tracking:clear",
600
- "source:force:tracking:clear",
601
- "source:tracking:force:clear",
602
- "source:tracking:clear:force",
603
- "force:tracking:source:clear",
604
- "tracking:force:source:clear",
605
- "tracking:source:force:clear",
606
- "tracking:source:clear:force",
607
- "force:tracking:clear:source",
608
- "tracking:force:clear:source",
609
- "tracking:clear:force:source",
610
- "tracking:clear:source:force",
611
- "force:source:clear:tracking",
612
- "source:force:clear:tracking",
613
- "source:clear:force:tracking",
614
- "source:clear:tracking:force",
615
- "force:clear:source:tracking",
616
- "clear:force:source:tracking",
617
- "clear:source:force:tracking",
618
- "clear:source:tracking:force",
619
- "force:clear:tracking:source",
620
- "clear:force:tracking:source",
621
- "clear:tracking:force:source",
622
- "clear:tracking:source:force"
663
+ "errorCodes": {
664
+ "header": "ERROR CODES",
665
+ "body": [
666
+ {
667
+ "name": "Succeeded (0)",
668
+ "description": "The deploy succeeded."
669
+ },
670
+ {
671
+ "name": "Canceled (1)",
672
+ "description": "The deploy was canceled."
673
+ },
674
+ {
675
+ "name": "Failed (1)",
676
+ "description": "The deploy failed."
677
+ },
678
+ {
679
+ "name": "SucceededPartial (68)",
680
+ "description": "The deploy partially succeeded."
681
+ },
682
+ {
683
+ "name": "InProgress (69)",
684
+ "description": "The deploy is in progress."
685
+ },
686
+ {
687
+ "name": "Pending (69)",
688
+ "description": "The deploy is pending."
689
+ },
690
+ {
691
+ "name": "Canceling (69)",
692
+ "description": "The deploy is being canceled."
693
+ }
694
+ ]
695
+ },
696
+ "isESM": true,
697
+ "relativePath": [
698
+ "lib",
699
+ "commands",
700
+ "project",
701
+ "deploy",
702
+ "quick.js"
703
+ ],
704
+ "aliasPermutations": [
705
+ "deploy:metadata:quick",
706
+ "metadata:deploy:quick",
707
+ "metadata:quick:deploy",
708
+ "deploy:quick:metadata",
709
+ "quick:deploy:metadata",
710
+ "quick:metadata:deploy"
623
711
  ],
624
712
  "permutations": [
625
- "project:delete:tracking",
626
- "delete:project:tracking",
627
- "delete:tracking:project",
628
- "project:tracking:delete",
629
- "tracking:project:delete",
630
- "tracking:delete:project"
713
+ "project:deploy:quick",
714
+ "deploy:project:quick",
715
+ "deploy:quick:project",
716
+ "project:quick:deploy",
717
+ "quick:project:deploy",
718
+ "quick:deploy:project"
631
719
  ]
632
720
  },
633
- "project:deploy:cancel": {
721
+ "project:deploy:report": {
634
722
  "aliases": [
635
- "deploy:metadata:cancel"
723
+ "deploy:metadata:report"
636
724
  ],
637
725
  "args": {},
638
726
  "deprecateAliases": true,
639
- "description": "Use this command to cancel a deploy operation that hasn't yet completed in the org. Deploy operations include standard deploys, quick deploys, deploy validations, and deploy cancellations.\n\nRun this command by either passing it a job ID or specifying the --use-most-recent flag to use the job ID of the most recent deploy operation.",
727
+ "description": "Deploy operations include standard deploys, quick deploys, deploy validations, and deploy cancellations.\n\nRun this command by either passing it a job ID or specifying the --use-most-recent flag to use the job ID of the most recent deploy operation. If you specify the --wait flag, the command polls for the status every second until the timeout of --wait minutes. If you don't specify the --wait flag, the command simply checks and displays the status of the deploy; the command doesn't poll for the status. \n\nYou typically don't specify the --target-org flag because the cached job already references the org to which you deployed. But if you run this command on a computer different than the one from which you deployed, then you must specify the --target-org and it must point to the same org. \n\nThis command doesn't update source tracking information.",
640
728
  "examples": [
641
- "Cancel a deploy operation using a job ID:\n<%= config.bin %> <%= command.id %> --job-id 0Af0x000017yLUFCA2",
642
- "Cancel the most recent deploy operation:\n<%= config.bin %> <%= command.id %> --use-most-recent"
729
+ "Check the status using a job ID:\n<%= config.bin %> <%= command.id %> --job-id 0Af0x000017yLUFCA2",
730
+ "Check the status of the most recent deploy operation:\n<%= config.bin %> <%= command.id %> --use-most-recent",
731
+ "Poll for the status using a job ID and target org:\n<%= config.bin %> <%= command.id %> --job-id 0Af0x000017yLUFCA2 --target-org me@my.org --wait 30"
643
732
  ],
644
733
  "flags": {
645
734
  "json": {
@@ -649,55 +738,98 @@
649
738
  "allowNo": false,
650
739
  "type": "boolean"
651
740
  },
652
- "async": {
653
- "description": "The command immediately returns the control of the terminal to you. This way, you can continue to use the CLI. To resume watching the cancellation, run \"<%= config.bin %> project deploy resume\". To check the status of the cancellation, run \"<%= config.bin %> project deploy report\".",
654
- "exclusive": [
655
- "wait"
656
- ],
657
- "name": "async",
658
- "summary": "Run the command asynchronously.",
659
- "allowNo": false,
660
- "type": "boolean"
741
+ "target-org": {
742
+ "char": "o",
743
+ "description": "Overrides your default org.",
744
+ "name": "target-org",
745
+ "noCacheDefault": true,
746
+ "summary": "Login username or alias for the target org.",
747
+ "hasDynamicHelp": true,
748
+ "multiple": false,
749
+ "type": "option"
661
750
  },
662
751
  "job-id": {
663
752
  "char": "i",
664
753
  "description": "These commands return a job ID if they time out or you specified the --async flag:\n\n- <%= config.bin %> project deploy start\n- <%= config.bin %> project deploy validate\n- <%= config.bin %> project deploy quick\n- <%= config.bin %> project deploy cancel\n\nThe job ID is valid for 10 days from when you started the deploy operation.",
665
754
  "name": "job-id",
666
- "summary": "Job ID of the deploy operation you want to cancel.",
755
+ "summary": "Job ID of the deploy operation you want to check the status of.",
667
756
  "hasDynamicHelp": false,
668
757
  "multiple": false,
669
758
  "type": "option"
670
759
  },
671
760
  "use-most-recent": {
672
761
  "char": "r",
673
- "description": "For performance reasons, this flag uses job IDs for deploy operations that started only in the past 3 days or less. If your most recent deploy operations was more than 3 days ago, this flag won't find a job ID.",
762
+ "description": "For performance reasons, this flag uses job IDs for deploy operations that started only in the past 3 days or less. If your most recent operation was more than 3 days ago, this flag won't find a job ID.",
674
763
  "name": "use-most-recent",
675
764
  "summary": "Use the job ID of the most recent deploy operation.",
676
765
  "allowNo": false,
677
766
  "type": "boolean"
678
767
  },
768
+ "coverage-formatters": {
769
+ "description": "For multiple formatters, repeat the flag for each formatter.\n--coverage-formatters lcov --coverage-formatters clover",
770
+ "helpGroup": "Test",
771
+ "name": "coverage-formatters",
772
+ "summary": "Format of the code coverage results.",
773
+ "hasDynamicHelp": false,
774
+ "multiple": true,
775
+ "options": [
776
+ "clover",
777
+ "cobertura",
778
+ "html-spa",
779
+ "html",
780
+ "json",
781
+ "json-summary",
782
+ "lcovonly",
783
+ "none",
784
+ "teamcity",
785
+ "text",
786
+ "text-summary"
787
+ ],
788
+ "type": "option"
789
+ },
790
+ "junit": {
791
+ "helpGroup": "Test",
792
+ "name": "junit",
793
+ "summary": "Output JUnit test results.",
794
+ "allowNo": false,
795
+ "type": "boolean"
796
+ },
797
+ "results-dir": {
798
+ "helpGroup": "Test",
799
+ "name": "results-dir",
800
+ "relationships": [
801
+ {
802
+ "type": "some",
803
+ "flags": [
804
+ "coverage-formatters",
805
+ "junit"
806
+ ]
807
+ }
808
+ ],
809
+ "summary": "Output directory for code coverage and JUnit results; defaults to the deploy ID.",
810
+ "hasDynamicHelp": false,
811
+ "multiple": false,
812
+ "type": "option"
813
+ },
679
814
  "wait": {
680
815
  "char": "w",
681
- "description": "If the command continues to run after the wait period, the CLI returns control of the terminal window to you. To resume watching the cancellation, run \"<%= config.bin %> project deploy resume\". To check the status of the cancellation, run \"<%= config.bin %> project deploy report\".",
682
- "exclusive": [
683
- "async"
684
- ],
816
+ "description": "If the command continues to run after the wait period, the CLI returns control of the terminal window to you and returns the job ID. To resume the deployment, run \"<%= config.bin %> project deploy resume\". To check the status of the deployment, run \"<%= config.bin %> project deploy report\".",
685
817
  "name": "wait",
686
- "summary": "Number of minutes to wait for the command to complete and display results.",
818
+ "summary": "Number of minutes to wait for command to complete and display results.",
687
819
  "hasDynamicHelp": false,
688
820
  "helpValue": "<minutes>",
689
821
  "multiple": false,
690
822
  "type": "option"
691
823
  }
692
824
  },
693
- "hasDynamicHelp": false,
825
+ "hasDynamicHelp": true,
694
826
  "hiddenAliases": [],
695
- "id": "project:deploy:cancel",
827
+ "id": "project:deploy:report",
696
828
  "pluginAlias": "@salesforce/plugin-deploy-retrieve",
697
829
  "pluginName": "@salesforce/plugin-deploy-retrieve",
698
830
  "pluginType": "core",
699
831
  "strict": true,
700
- "summary": "Cancel a deploy operation.",
832
+ "summary": "Check or poll for the status of a deploy operation.",
701
833
  "enableJsonFlag": true,
702
834
  "isESM": true,
703
835
  "relativePath": [
@@ -705,38 +837,35 @@
705
837
  "commands",
706
838
  "project",
707
839
  "deploy",
708
- "cancel.js"
840
+ "report.js"
709
841
  ],
710
842
  "aliasPermutations": [
711
- "deploy:metadata:cancel",
712
- "metadata:deploy:cancel",
713
- "metadata:cancel:deploy",
714
- "deploy:cancel:metadata",
715
- "cancel:deploy:metadata",
716
- "cancel:metadata:deploy"
843
+ "deploy:metadata:report",
844
+ "metadata:deploy:report",
845
+ "metadata:report:deploy",
846
+ "deploy:report:metadata",
847
+ "report:deploy:metadata",
848
+ "report:metadata:deploy"
717
849
  ],
718
850
  "permutations": [
719
- "project:deploy:cancel",
720
- "deploy:project:cancel",
721
- "deploy:cancel:project",
722
- "project:cancel:deploy",
723
- "cancel:project:deploy",
724
- "cancel:deploy:project"
851
+ "project:deploy:report",
852
+ "deploy:project:report",
853
+ "deploy:report:project",
854
+ "project:report:deploy",
855
+ "report:project:deploy",
856
+ "report:deploy:project"
725
857
  ]
726
858
  },
727
- "project:deploy:preview": {
859
+ "project:deploy:resume": {
728
860
  "aliases": [
729
- "deploy:metadata:preview"
861
+ "deploy:metadata:resume"
730
862
  ],
731
863
  "args": {},
732
864
  "deprecateAliases": true,
733
- "description": "You must run this command from within a project.\n\nThe command outputs a table that describes what will happen if you run the \"<%= config.bin %> project deploy start\" command. The table lists the metadata components that will be deployed and deleted. The table also lists the current conflicts between files in your local project and components in the org. Finally, the table lists the files that won't be deployed because they're included in your .forceignore file.\n\nIf your org allows source tracking, then this command displays potential conflicts between the org and your local project. Some orgs, such as production org, never allow source tracking. Source tracking is enabled by default on scratch and sandbox orgs; you can disable source tracking when you create the orgs by specifying the --no-track-source flag on the \"<%= config.bin %> org create scratch|sandbox\" commands.\n\nTo preview the deployment of 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.",
865
+ "description": "Use this command to resume watching a deploy operation if the original command times out or you specified the --async flag. Deploy operations include standard deploys, quick deploys, deploy validations, and deploy cancellations. This command doesn't resume the original operation itself, because the operation always continues after you've started it, regardless of whether you're watching it or not. When the deploy completes, source tracking information is updated as needed.\n\nRun this command by either passing it a job ID or specifying the --use-most-recent flag to use the job ID of the most recent deploy operation.",
734
866
  "examples": [
735
- "NOTE: The commands to preview a deployment and actually deploy it use similar flags. We provide a few preview examples here, but see the help for \"<%= config.bin %> project deploy start\" for more examples that you can adapt for previewing.",
736
- "Preview the deployment of source files in a directory, such as force-app, to your default org:\n<%= config.bin %> <%= command.id %> --source-dir force-app",
737
- "Preview the deployment of all Apex classes to an org with alias \"my-scratch\":\n<%= config.bin %> <%= command.id %> --metadata ApexClass --target-org my-scratch",
738
- "Preview deployment of a specific Apex class:\n<%= config.bin %> <%= command.id %> --metadata ApexClass:MyApexClass",
739
- "Preview deployment of all components listed in a manifest:\n<%= config.bin %> <%= command.id %> --manifest path/to/package.xml"
867
+ "Resume watching a deploy operation using a job ID:\n<%= config.bin %> <%= command.id %> --job-id 0Af0x000017yLUFCA2",
868
+ "Resume watching the most recent deploy operation:\n<%= config.bin %> <%= command.id %> --use-most-recent"
740
869
  ],
741
870
  "flags": {
742
871
  "json": {
@@ -746,215 +875,116 @@
746
875
  "allowNo": false,
747
876
  "type": "boolean"
748
877
  },
749
- "ignore-conflicts": {
750
- "char": "c",
751
- "description": "This flag applies only to orgs that allow source tracking. It has no effect on orgs that don't allow it, such as production orgs.",
752
- "name": "ignore-conflicts",
753
- "summary": "Don't display conflicts in preview of the deployment.",
878
+ "concise": {
879
+ "exclusive": [
880
+ "verbose"
881
+ ],
882
+ "name": "concise",
883
+ "summary": "Show concise output of the deploy operation result.",
754
884
  "allowNo": false,
755
885
  "type": "boolean"
756
886
  },
757
- "manifest": {
758
- "char": "x",
759
- "description": "All child components are included. If you specify this flag, don’t specify --metadata or --source-dir.",
760
- "exclusive": [
761
- "source-dir",
762
- "metadata"
763
- ],
764
- "name": "manifest",
765
- "summary": "Full file path for manifest (package.xml) of components to preview.",
887
+ "job-id": {
888
+ "char": "i",
889
+ "description": "These commands return a job ID if they time out or you specified the --async flag:\n\n- <%= config.bin %> project deploy start\n- <%= config.bin %> project deploy validate\n- <%= config.bin %> project deploy quick\n- <%= config.bin %> project deploy cancel\n\nThe job ID is valid for 10 days from when you started the deploy operation.",
890
+ "name": "job-id",
891
+ "summary": "Job ID of the deploy operation you want to resume.",
766
892
  "hasDynamicHelp": false,
767
893
  "multiple": false,
768
894
  "type": "option"
769
895
  },
770
- "metadata": {
771
- "char": "m",
896
+ "use-most-recent": {
897
+ "char": "r",
898
+ "description": "For performance reasons, this flag uses job IDs for deploy operations that started only in the past 3 days or less. If your most recent operation was more than 3 days ago, this flag won't find a job ID.",
899
+ "name": "use-most-recent",
900
+ "summary": "Use the job ID of the most recent deploy operation.",
901
+ "allowNo": false,
902
+ "type": "boolean"
903
+ },
904
+ "verbose": {
772
905
  "exclusive": [
773
- "manifest",
774
- "source-dir"
906
+ "concise"
775
907
  ],
776
- "name": "metadata",
777
- "summary": "Metadata component names to preview.",
908
+ "name": "verbose",
909
+ "summary": "Show verbose output of the deploy operation result.",
910
+ "allowNo": false,
911
+ "type": "boolean"
912
+ },
913
+ "wait": {
914
+ "char": "w",
915
+ "description": "If the command continues to run after the wait period, the CLI returns control of the terminal window to you. To resume watching the deploy operation, run this command again. To check the status of the deploy operation, run \"<%= config.bin %> project deploy report\".",
916
+ "name": "wait",
917
+ "summary": "Number of minutes to wait for the command to complete and display results.",
778
918
  "hasDynamicHelp": false,
779
- "multiple": true,
919
+ "helpValue": "<minutes>",
920
+ "multiple": false,
780
921
  "type": "option"
781
922
  },
782
- "source-dir": {
783
- "char": "d",
784
- "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.",
785
- "exclusive": [
786
- "manifest",
787
- "metadata"
788
- ],
789
- "name": "source-dir",
790
- "summary": "Path to the local source files to preview.",
923
+ "coverage-formatters": {
924
+ "description": "For multiple formatters, repeat the flag for each formatter.\n--coverage-formatters lcov --coverage-formatters clover",
925
+ "helpGroup": "Test",
926
+ "name": "coverage-formatters",
927
+ "summary": "Format of the code coverage results.",
791
928
  "hasDynamicHelp": false,
792
929
  "multiple": true,
793
- "type": "option"
794
- },
795
- "target-org": {
796
- "char": "o",
797
- "description": "Overrides your default org.",
798
- "name": "target-org",
799
- "noCacheDefault": true,
800
- "required": true,
801
- "summary": "Login username or alias for the target org.",
802
- "hasDynamicHelp": true,
803
- "multiple": false,
804
- "type": "option"
805
- },
806
- "concise": {
807
- "name": "concise",
808
- "summary": "Show only the changes that will be deployed; omits files that are forceignored.",
809
- "allowNo": false,
810
- "type": "boolean"
811
- }
812
- },
813
- "hasDynamicHelp": true,
814
- "hiddenAliases": [],
815
- "id": "project:deploy:preview",
816
- "pluginAlias": "@salesforce/plugin-deploy-retrieve",
817
- "pluginName": "@salesforce/plugin-deploy-retrieve",
818
- "pluginType": "core",
819
- "strict": true,
820
- "summary": "Preview a deployment to see what will deploy to the org, the potential conflicts, and the ignored files.",
821
- "enableJsonFlag": true,
822
- "requiresProject": true,
823
- "isESM": true,
824
- "relativePath": [
825
- "lib",
826
- "commands",
827
- "project",
828
- "deploy",
829
- "preview.js"
830
- ],
831
- "aliasPermutations": [
832
- "deploy:metadata:preview",
833
- "metadata:deploy:preview",
834
- "metadata:preview:deploy",
835
- "deploy:preview:metadata",
836
- "preview:deploy:metadata",
837
- "preview:metadata:deploy"
838
- ],
839
- "permutations": [
840
- "project:deploy:preview",
841
- "deploy:project:preview",
842
- "deploy:preview:project",
843
- "project:preview:deploy",
844
- "preview:project:deploy",
845
- "preview:deploy:project"
846
- ]
847
- },
848
- "project:deploy:quick": {
849
- "aliases": [
850
- "deploy:metadata:quick"
851
- ],
852
- "args": {},
853
- "deprecateAliases": true,
854
- "description": "Before you run this command, first create a validated deployment with the \"<%= config.bin %> project deploy validate\" command, which returns a job ID. Validated deployments haven't been deployed to the org yet; you deploy them with this command. Either pass the job ID to this command or use the --use-most-recent flag to use the job ID of the most recently validated deployment. For the quick deploy to succeed, the associated validated deployment must also have succeeded.\n\nExecuting this quick deploy command takes less time than a standard deploy because it skips running Apex tests. These tests were previously run as part of the validation. Validating first and then running a quick deploy is useful if the deployment to your production org take several hours and you don’t want to risk a failed deploy.\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.",
855
- "examples": [
856
- "Run a quick deploy to your default org using a job ID:\n<%= config.bin %> <%= command.id %> --job-id 0Af0x000017yLUFCA2",
857
- "Asynchronously run a quick deploy of the most recently validated deployment to an org with alias \"my-prod-org\":\n<%= config.bin %> <%= command.id %> --async --use-most-recent --target-org my-prod-org"
858
- ],
859
- "flags": {
860
- "json": {
861
- "description": "Format output as json.",
862
- "helpGroup": "GLOBAL",
863
- "name": "json",
864
- "allowNo": false,
865
- "type": "boolean"
866
- },
867
- "async": {
868
- "description": "The command immediately returns the control of the terminal to you. This way, you can continue to use the CLI. To resume watching the deploy, run \"<%= config.bin %> project deploy resume\". To check the status of the deploy, run \"<%= config.bin %> project deploy report\".",
869
- "exclusive": [
870
- "wait"
871
- ],
872
- "name": "async",
873
- "summary": "Run the command asynchronously.",
874
- "allowNo": false,
875
- "type": "boolean"
876
- },
877
- "concise": {
878
- "exclusive": [
879
- "verbose"
930
+ "options": [
931
+ "clover",
932
+ "cobertura",
933
+ "html-spa",
934
+ "html",
935
+ "json",
936
+ "json-summary",
937
+ "lcovonly",
938
+ "none",
939
+ "teamcity",
940
+ "text",
941
+ "text-summary"
880
942
  ],
881
- "name": "concise",
882
- "summary": "Show concise output of the deploy result.",
883
- "allowNo": false,
884
- "type": "boolean"
885
- },
886
- "job-id": {
887
- "char": "i",
888
- "description": "The job ID is valid for 10 days from when you started the validation.",
889
- "name": "job-id",
890
- "summary": "Job ID of the deployment you want to quick deploy.",
891
- "hasDynamicHelp": false,
892
- "multiple": false,
893
- "type": "option"
894
- },
895
- "target-org": {
896
- "char": "o",
897
- "description": "Overrides your default org.",
898
- "name": "target-org",
899
- "noCacheDefault": true,
900
- "summary": "Login username or alias for the target org.",
901
- "hasDynamicHelp": true,
902
- "multiple": false,
903
943
  "type": "option"
904
944
  },
905
- "use-most-recent": {
906
- "char": "r",
907
- "description": "For performance reasons, this flag uses only job IDs that were validated in the past 3 days or less. If your most recent deployment validation was more than 3 days ago, this flag won't find a job ID.",
908
- "name": "use-most-recent",
909
- "summary": "Use the job ID of the most recently validated deployment.",
910
- "allowNo": false,
911
- "type": "boolean"
912
- },
913
- "verbose": {
914
- "exclusive": [
915
- "concise"
916
- ],
917
- "name": "verbose",
918
- "summary": "Show verbose output of the deploy result.",
945
+ "junit": {
946
+ "helpGroup": "Test",
947
+ "name": "junit",
948
+ "summary": "Output JUnit test results.",
919
949
  "allowNo": false,
920
950
  "type": "boolean"
921
951
  },
922
- "wait": {
923
- "char": "w",
924
- "description": "If the command continues to run after the wait period, the CLI returns control of the terminal window to you. To resume watching the deploy, run \"<%= config.bin %> project deploy resume\". To check the status of the deploy, run \"<%= config.bin %> project deploy report\".",
925
- "exclusive": [
926
- "async"
952
+ "results-dir": {
953
+ "helpGroup": "Test",
954
+ "name": "results-dir",
955
+ "relationships": [
956
+ {
957
+ "type": "some",
958
+ "flags": [
959
+ "coverage-formatters",
960
+ "junit"
961
+ ]
962
+ }
927
963
  ],
928
- "name": "wait",
929
- "summary": "Number of minutes to wait for the command to complete and display results.",
930
- "default": {
931
- "quantity": 33,
932
- "unit": 0
933
- },
934
- "hasDynamicHelp": false,
935
- "helpValue": "<minutes>",
936
- "multiple": false,
937
- "type": "option"
938
- },
939
- "api-version": {
940
- "char": "a",
941
- "description": "Use this flag to override the default API version with the API version of your package.xml file. The default API version is the latest version supported by the CLI.",
942
- "name": "api-version",
943
- "summary": "Target API version for the deploy.",
964
+ "summary": "Output directory for code coverage and JUnit results; defaults to the deploy ID.",
944
965
  "hasDynamicHelp": false,
945
966
  "multiple": false,
946
967
  "type": "option"
947
968
  }
948
969
  },
949
- "hasDynamicHelp": true,
970
+ "hasDynamicHelp": false,
950
971
  "hiddenAliases": [],
951
- "id": "project:deploy:quick",
972
+ "id": "project:deploy:resume",
952
973
  "pluginAlias": "@salesforce/plugin-deploy-retrieve",
953
974
  "pluginName": "@salesforce/plugin-deploy-retrieve",
954
975
  "pluginType": "core",
955
976
  "strict": true,
956
- "summary": "Quickly deploy a validated deployment to an org.",
977
+ "summary": "Resume watching a deploy operation and update source tracking when the deploy completes.",
957
978
  "enableJsonFlag": true,
979
+ "envVariablesSection": {
980
+ "header": "ENVIRONMENT VARIABLES",
981
+ "body": [
982
+ {
983
+ "name": "SF_USE_PROGRESS_BAR",
984
+ "description": "Set to false to disable the progress bar when running the metadata deploy command."
985
+ }
986
+ ]
987
+ },
958
988
  "errorCodes": {
959
989
  "header": "ERROR CODES",
960
990
  "body": [
@@ -994,36 +1024,43 @@
994
1024
  "commands",
995
1025
  "project",
996
1026
  "deploy",
997
- "quick.js"
1027
+ "resume.js"
998
1028
  ],
999
1029
  "aliasPermutations": [
1000
- "deploy:metadata:quick",
1001
- "metadata:deploy:quick",
1002
- "metadata:quick:deploy",
1003
- "deploy:quick:metadata",
1004
- "quick:deploy:metadata",
1005
- "quick:metadata:deploy"
1030
+ "deploy:metadata:resume",
1031
+ "metadata:deploy:resume",
1032
+ "metadata:resume:deploy",
1033
+ "deploy:resume:metadata",
1034
+ "resume:deploy:metadata",
1035
+ "resume:metadata:deploy"
1006
1036
  ],
1007
1037
  "permutations": [
1008
- "project:deploy:quick",
1009
- "deploy:project:quick",
1010
- "deploy:quick:project",
1011
- "project:quick:deploy",
1012
- "quick:project:deploy",
1013
- "quick:deploy:project"
1038
+ "project:deploy:resume",
1039
+ "deploy:project:resume",
1040
+ "deploy:resume:project",
1041
+ "project:resume:deploy",
1042
+ "resume:project:deploy",
1043
+ "resume:deploy:project"
1014
1044
  ]
1015
1045
  },
1016
- "project:deploy:report": {
1046
+ "project:deploy:start": {
1017
1047
  "aliases": [
1018
- "deploy:metadata:report"
1048
+ "deploy:metadata"
1019
1049
  ],
1020
1050
  "args": {},
1021
1051
  "deprecateAliases": true,
1022
- "description": "Deploy operations include standard deploys, quick deploys, deploy validations, and deploy cancellations.\n\nRun this command by either passing it a job ID or specifying the --use-most-recent flag to use the job ID of the most recent deploy operation. If you specify the --wait flag, the command polls for the status every second until the timeout of --wait minutes. If you don't specify the --wait flag, the command simply checks and displays the status of the deploy; the command doesn't poll for the status. \n\nYou typically don't specify the --target-org flag because the cached job already references the org to which you deployed. But if you run this command on a computer different than the one from which you deployed, then you must specify the --target-org and it must point to the same org. \n\nThis command doesn't update source tracking information.",
1052
+ "description": "You must run this command from within a project.\n\nMetadata components are deployed in source format by default. Deploy them in metadata format by specifying the --metadata-dir flag, which specifies the root directory or ZIP file that contains the metadata formatted files you want to deploy.\n\nIf your org allows source tracking, then this command tracks the changes in your source. Some orgs, such as production org, never allow source tracking. Source tracking is enabled by default on scratch and sandbox orgs; you can disable source tracking when you create the orgs by specifying the --no-track-source flag on the \"<%= config.bin %> org create scratch|sandbox\" commands.\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.",
1023
1053
  "examples": [
1024
- "Check the status using a job ID:\n<%= config.bin %> <%= command.id %> --job-id 0Af0x000017yLUFCA2",
1025
- "Check the status of the most recent deploy operation:\n<%= config.bin %> <%= command.id %> --use-most-recent",
1026
- "Poll for the status using a job ID and target org:\n<%= config.bin %> <%= command.id %> --job-id 0Af0x000017yLUFCA2 --target-org me@my.org --wait 30"
1054
+ "Deploy local changes not in the org; uses your default org:\n<%= config.bin %> <%= command.id %>",
1055
+ "Deploy the source files in a directory to an org with alias \"my-scratch\":\n<%= config.bin %> <%= command.id %> --source-dir path/to/source --target-org my-scratch",
1056
+ "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",
1057
+ "Deploy all Apex classes:\n<%= config.bin %> <%= command.id %> --metadata ApexClass",
1058
+ "Deploy a specific Apex class:\n<%= config.bin %> <%= command.id %> --metadata ApexClass:MyApexClass",
1059
+ "Deploy specific Apex classes that match a pattern; in this example, deploy Apex classes whose names contain the string \"MyApex\":\n<%= config.bin %> <%= command.id %> --metadata 'ApexClass:MyApex*'",
1060
+ "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",
1061
+ "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\"",
1062
+ "Deploy all components listed in a manifest:\n<%= config.bin %> <%= command.id %> --manifest path/to/package.xml",
1063
+ "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"
1027
1064
  ],
1028
1065
  "flags": {
1029
1066
  "json": {
@@ -1033,33 +1070,235 @@
1033
1070
  "allowNo": false,
1034
1071
  "type": "boolean"
1035
1072
  },
1036
- "target-org": {
1037
- "char": "o",
1038
- "description": "Overrides your default org.",
1039
- "name": "target-org",
1040
- "noCacheDefault": true,
1041
- "summary": "Login username or alias for the target org.",
1042
- "hasDynamicHelp": true,
1043
- "multiple": false,
1044
- "type": "option"
1045
- },
1046
- "job-id": {
1047
- "char": "i",
1048
- "description": "These commands return a job ID if they time out or you specified the --async flag:\n\n- <%= config.bin %> project deploy start\n- <%= config.bin %> project deploy validate\n- <%= config.bin %> project deploy quick\n- <%= config.bin %> project deploy cancel\n\nThe job ID is valid for 10 days from when you started the deploy operation.",
1049
- "name": "job-id",
1050
- "summary": "Job ID of the deploy operation you want to check the status of.",
1073
+ "api-version": {
1074
+ "char": "a",
1075
+ "description": "Use this flag to override the default API version with the API version of your package.xml file. The default API version is the latest version supported by the CLI.",
1076
+ "name": "api-version",
1077
+ "summary": "Target API version for the deploy.",
1051
1078
  "hasDynamicHelp": false,
1052
1079
  "multiple": false,
1053
1080
  "type": "option"
1054
1081
  },
1055
- "use-most-recent": {
1082
+ "async": {
1083
+ "description": "The command immediately returns the job ID and control of the terminal to you. This way, you can continue to use the CLI. To resume the deployment, run \"<%= config.bin %> project deploy resume\". To check the status of the deployment, run \"<%= config.bin %> project deploy report\".",
1084
+ "exclusive": [
1085
+ "wait"
1086
+ ],
1087
+ "name": "async",
1088
+ "summary": "Run the command asynchronously.",
1089
+ "allowNo": false,
1090
+ "type": "boolean"
1091
+ },
1092
+ "concise": {
1093
+ "exclusive": [
1094
+ "verbose"
1095
+ ],
1096
+ "name": "concise",
1097
+ "summary": "Show concise output of the deploy result.",
1098
+ "allowNo": false,
1099
+ "type": "boolean"
1100
+ },
1101
+ "dry-run": {
1102
+ "name": "dry-run",
1103
+ "summary": "Validate deploy and run Apex tests but don’t save to the org.",
1104
+ "allowNo": false,
1105
+ "type": "boolean"
1106
+ },
1107
+ "ignore-conflicts": {
1108
+ "char": "c",
1109
+ "description": "This flag applies only to orgs that allow source tracking. It has no effect on orgs that don't allow it, such as production orgs.",
1110
+ "name": "ignore-conflicts",
1111
+ "summary": "Ignore conflicts and deploy local files, even if they overwrite changes in the org.",
1112
+ "allowNo": false,
1113
+ "type": "boolean"
1114
+ },
1115
+ "ignore-errors": {
1056
1116
  "char": "r",
1057
- "description": "For performance reasons, this flag uses job IDs for deploy operations that started only in the past 3 days or less. If your most recent operation was more than 3 days ago, this flag won't find a job ID.",
1058
- "name": "use-most-recent",
1059
- "summary": "Use the job ID of the most recent deploy operation.",
1117
+ "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.",
1118
+ "name": "ignore-errors",
1119
+ "summary": "Ignore any errors and don’t roll back deployment.",
1120
+ "allowNo": false,
1121
+ "type": "boolean"
1122
+ },
1123
+ "ignore-warnings": {
1124
+ "char": "g",
1125
+ "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.",
1126
+ "name": "ignore-warnings",
1127
+ "summary": "Ignore warnings and allow a deployment to complete successfully.",
1128
+ "allowNo": false,
1129
+ "type": "boolean"
1130
+ },
1131
+ "manifest": {
1132
+ "char": "x",
1133
+ "description": "All child components are included. If you specify this flag, don’t specify --metadata or --source-dir.",
1134
+ "exclusive": [
1135
+ "source-dir",
1136
+ "metadata",
1137
+ "metadata-dir"
1138
+ ],
1139
+ "helpGroup": "Source Format",
1140
+ "name": "manifest",
1141
+ "summary": "Full file path for manifest (package.xml) of components to deploy.",
1142
+ "hasDynamicHelp": false,
1143
+ "multiple": false,
1144
+ "type": "option"
1145
+ },
1146
+ "metadata": {
1147
+ "char": "m",
1148
+ "exclusive": [
1149
+ "manifest",
1150
+ "source-dir",
1151
+ "metadata-dir"
1152
+ ],
1153
+ "helpGroup": "Source Format",
1154
+ "name": "metadata",
1155
+ "summary": "Metadata component names to deploy. Wildcards ( `*` ) supported as long as you use quotes, such as `ApexClass:MyClass*`",
1156
+ "hasDynamicHelp": false,
1157
+ "multiple": true,
1158
+ "type": "option"
1159
+ },
1160
+ "metadata-dir": {
1161
+ "exclusive": [
1162
+ "manifest",
1163
+ "source-dir",
1164
+ "metadata"
1165
+ ],
1166
+ "helpGroup": "Metadata API Format",
1167
+ "name": "metadata-dir",
1168
+ "summary": "Root of directory or zip file of metadata formatted files to deploy.",
1169
+ "hasDynamicHelp": false,
1170
+ "multiple": false,
1171
+ "type": "option"
1172
+ },
1173
+ "single-package": {
1174
+ "dependsOn": [
1175
+ "metadata-dir"
1176
+ ],
1177
+ "helpGroup": "Metadata API Format",
1178
+ "name": "single-package",
1179
+ "summary": "Indicates that the metadata zip file points to a directory structure for a single package.",
1180
+ "allowNo": false,
1181
+ "type": "boolean"
1182
+ },
1183
+ "source-dir": {
1184
+ "char": "d",
1185
+ "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.",
1186
+ "exclusive": [
1187
+ "manifest",
1188
+ "metadata",
1189
+ "metadata-dir"
1190
+ ],
1191
+ "helpGroup": "Source Format",
1192
+ "name": "source-dir",
1193
+ "summary": "Path to the local source files to deploy.",
1194
+ "hasDynamicHelp": false,
1195
+ "multiple": true,
1196
+ "type": "option"
1197
+ },
1198
+ "target-org": {
1199
+ "char": "o",
1200
+ "description": "Overrides your default org.",
1201
+ "name": "target-org",
1202
+ "noCacheDefault": true,
1203
+ "required": true,
1204
+ "summary": "Login username or alias for the target org.",
1205
+ "hasDynamicHelp": true,
1206
+ "multiple": false,
1207
+ "type": "option"
1208
+ },
1209
+ "tests": {
1210
+ "char": "t",
1211
+ "description": "If a test name contains a space, enclose it in double quotes.\nFor multiple test names, use one of the following formats:\n\n- Repeat the flag for multiple test names: --tests Test1 --tests Test2 --tests \"Test With Space\"\n- Separate the test names with spaces: --tests Test1 Test2 \"Test With Space\"",
1212
+ "helpGroup": "Test",
1213
+ "name": "tests",
1214
+ "summary": "Apex tests to run when --test-level is RunSpecifiedTests.",
1215
+ "hasDynamicHelp": false,
1216
+ "multiple": true,
1217
+ "type": "option"
1218
+ },
1219
+ "test-level": {
1220
+ "char": "l",
1221
+ "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 --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 and target org. 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\".",
1222
+ "helpGroup": "Test",
1223
+ "name": "test-level",
1224
+ "summary": "Deployment Apex testing level.",
1225
+ "hasDynamicHelp": false,
1226
+ "multiple": false,
1227
+ "options": [
1228
+ "NoTestRun",
1229
+ "RunSpecifiedTests",
1230
+ "RunLocalTests",
1231
+ "RunAllTestsInOrg"
1232
+ ],
1233
+ "type": "option"
1234
+ },
1235
+ "verbose": {
1236
+ "exclusive": [
1237
+ "concise"
1238
+ ],
1239
+ "name": "verbose",
1240
+ "summary": "Show verbose output of the deploy result.",
1241
+ "allowNo": false,
1242
+ "type": "boolean"
1243
+ },
1244
+ "wait": {
1245
+ "char": "w",
1246
+ "description": "If the command continues to run after the wait period, the CLI returns control of the terminal window to you and returns the job ID. To resume the deployment, run \"<%= config.bin %> project deploy resume\". To check the status of the deployment, run \"<%= config.bin %> project deploy report\".",
1247
+ "exclusive": [
1248
+ "async"
1249
+ ],
1250
+ "name": "wait",
1251
+ "summary": "Number of minutes to wait for command to complete and display results.",
1252
+ "default": {
1253
+ "quantity": 33,
1254
+ "unit": 0
1255
+ },
1256
+ "hasDynamicHelp": false,
1257
+ "helpValue": "<minutes>",
1258
+ "multiple": false,
1259
+ "type": "option"
1260
+ },
1261
+ "purge-on-delete": {
1262
+ "dependsOn": [
1263
+ "manifest"
1264
+ ],
1265
+ "helpGroup": "Delete",
1266
+ "name": "purge-on-delete",
1267
+ "relationships": [
1268
+ {
1269
+ "type": "some",
1270
+ "flags": [
1271
+ "pre-destructive-changes",
1272
+ "post-destructive-changes"
1273
+ ]
1274
+ }
1275
+ ],
1276
+ "summary": "Specify that deleted components in the destructive changes manifest file are immediately eligible for deletion rather than being stored in the Recycle Bin.",
1060
1277
  "allowNo": false,
1061
1278
  "type": "boolean"
1062
1279
  },
1280
+ "pre-destructive-changes": {
1281
+ "dependsOn": [
1282
+ "manifest"
1283
+ ],
1284
+ "helpGroup": "Delete",
1285
+ "name": "pre-destructive-changes",
1286
+ "summary": "File path for a manifest (destructiveChangesPre.xml) of components to delete before the deploy",
1287
+ "hasDynamicHelp": false,
1288
+ "multiple": false,
1289
+ "type": "option"
1290
+ },
1291
+ "post-destructive-changes": {
1292
+ "dependsOn": [
1293
+ "manifest"
1294
+ ],
1295
+ "helpGroup": "Delete",
1296
+ "name": "post-destructive-changes",
1297
+ "summary": "File path for a manifest (destructiveChangesPost.xml) of components to delete after the deploy.",
1298
+ "hasDynamicHelp": false,
1299
+ "multiple": false,
1300
+ "type": "option"
1301
+ },
1063
1302
  "coverage-formatters": {
1064
1303
  "description": "For multiple formatters, repeat the flag for each formatter.\n--coverage-formatters lcov --coverage-formatters clover",
1065
1304
  "helpGroup": "Test",
@@ -1105,175 +1344,37 @@
1105
1344
  "hasDynamicHelp": false,
1106
1345
  "multiple": false,
1107
1346
  "type": "option"
1108
- },
1109
- "wait": {
1110
- "char": "w",
1111
- "description": "If the command continues to run after the wait period, the CLI returns control of the terminal window to you and returns the job ID. To resume the deployment, run \"<%= config.bin %> project deploy resume\". To check the status of the deployment, run \"<%= config.bin %> project deploy report\".",
1112
- "name": "wait",
1113
- "summary": "Number of minutes to wait for command to complete and display results.",
1114
- "hasDynamicHelp": false,
1115
- "helpValue": "<minutes>",
1116
- "multiple": false,
1117
- "type": "option"
1118
1347
  }
1119
1348
  },
1120
1349
  "hasDynamicHelp": true,
1121
1350
  "hiddenAliases": [],
1122
- "id": "project:deploy:report",
1351
+ "id": "project:deploy:start",
1123
1352
  "pluginAlias": "@salesforce/plugin-deploy-retrieve",
1124
1353
  "pluginName": "@salesforce/plugin-deploy-retrieve",
1125
1354
  "pluginType": "core",
1126
1355
  "strict": true,
1127
- "summary": "Check or poll for the status of a deploy operation.",
1356
+ "summary": "Deploy metadata to an org from your local project.",
1128
1357
  "enableJsonFlag": true,
1129
- "isESM": true,
1130
- "relativePath": [
1131
- "lib",
1132
- "commands",
1133
- "project",
1134
- "deploy",
1135
- "report.js"
1136
- ],
1137
- "aliasPermutations": [
1138
- "deploy:metadata:report",
1139
- "metadata:deploy:report",
1140
- "metadata:report:deploy",
1141
- "deploy:report:metadata",
1142
- "report:deploy:metadata",
1143
- "report:metadata:deploy"
1144
- ],
1145
- "permutations": [
1146
- "project:deploy:report",
1147
- "deploy:project:report",
1148
- "deploy:report:project",
1149
- "project:report:deploy",
1150
- "report:project:deploy",
1151
- "report:deploy:project"
1152
- ]
1153
- },
1154
- "project:deploy:resume": {
1155
- "aliases": [
1156
- "deploy:metadata:resume"
1157
- ],
1158
- "args": {},
1159
- "deprecateAliases": true,
1160
- "description": "Use this command to resume watching a deploy operation if the original command times out or you specified the --async flag. Deploy operations include standard deploys, quick deploys, deploy validations, and deploy cancellations. This command doesn't resume the original operation itself, because the operation always continues after you've started it, regardless of whether you're watching it or not. When the deploy completes, source tracking information is updated as needed.\n\nRun this command by either passing it a job ID or specifying the --use-most-recent flag to use the job ID of the most recent deploy operation.",
1161
- "examples": [
1162
- "Resume watching a deploy operation using a job ID:\n<%= config.bin %> <%= command.id %> --job-id 0Af0x000017yLUFCA2",
1163
- "Resume watching the most recent deploy operation:\n<%= config.bin %> <%= command.id %> --use-most-recent"
1164
- ],
1165
- "flags": {
1166
- "json": {
1167
- "description": "Format output as json.",
1168
- "helpGroup": "GLOBAL",
1169
- "name": "json",
1170
- "allowNo": false,
1171
- "type": "boolean"
1172
- },
1173
- "concise": {
1174
- "exclusive": [
1175
- "verbose"
1176
- ],
1177
- "name": "concise",
1178
- "summary": "Show concise output of the deploy operation result.",
1179
- "allowNo": false,
1180
- "type": "boolean"
1181
- },
1182
- "job-id": {
1183
- "char": "i",
1184
- "description": "These commands return a job ID if they time out or you specified the --async flag:\n\n- <%= config.bin %> project deploy start\n- <%= config.bin %> project deploy validate\n- <%= config.bin %> project deploy quick\n- <%= config.bin %> project deploy cancel\n\nThe job ID is valid for 10 days from when you started the deploy operation.",
1185
- "name": "job-id",
1186
- "summary": "Job ID of the deploy operation you want to resume.",
1187
- "hasDynamicHelp": false,
1188
- "multiple": false,
1189
- "type": "option"
1190
- },
1191
- "use-most-recent": {
1192
- "char": "r",
1193
- "description": "For performance reasons, this flag uses job IDs for deploy operations that started only in the past 3 days or less. If your most recent operation was more than 3 days ago, this flag won't find a job ID.",
1194
- "name": "use-most-recent",
1195
- "summary": "Use the job ID of the most recent deploy operation.",
1196
- "allowNo": false,
1197
- "type": "boolean"
1198
- },
1199
- "verbose": {
1200
- "exclusive": [
1201
- "concise"
1202
- ],
1203
- "name": "verbose",
1204
- "summary": "Show verbose output of the deploy operation result.",
1205
- "allowNo": false,
1206
- "type": "boolean"
1207
- },
1208
- "wait": {
1209
- "char": "w",
1210
- "description": "If the command continues to run after the wait period, the CLI returns control of the terminal window to you. To resume watching the deploy operation, run this command again. To check the status of the deploy operation, run \"<%= config.bin %> project deploy report\".",
1211
- "name": "wait",
1212
- "summary": "Number of minutes to wait for the command to complete and display results.",
1213
- "hasDynamicHelp": false,
1214
- "helpValue": "<minutes>",
1215
- "multiple": false,
1216
- "type": "option"
1217
- },
1218
- "coverage-formatters": {
1219
- "description": "For multiple formatters, repeat the flag for each formatter.\n--coverage-formatters lcov --coverage-formatters clover",
1220
- "helpGroup": "Test",
1221
- "name": "coverage-formatters",
1222
- "summary": "Format of the code coverage results.",
1223
- "hasDynamicHelp": false,
1224
- "multiple": true,
1225
- "options": [
1226
- "clover",
1227
- "cobertura",
1228
- "html-spa",
1229
- "html",
1230
- "json",
1231
- "json-summary",
1232
- "lcovonly",
1233
- "none",
1234
- "teamcity",
1235
- "text",
1236
- "text-summary"
1237
- ],
1238
- "type": "option"
1239
- },
1240
- "junit": {
1241
- "helpGroup": "Test",
1242
- "name": "junit",
1243
- "summary": "Output JUnit test results.",
1244
- "allowNo": false,
1245
- "type": "boolean"
1246
- },
1247
- "results-dir": {
1248
- "helpGroup": "Test",
1249
- "name": "results-dir",
1250
- "relationships": [
1251
- {
1252
- "type": "some",
1253
- "flags": [
1254
- "coverage-formatters",
1255
- "junit"
1256
- ]
1257
- }
1258
- ],
1259
- "summary": "Output directory for code coverage and JUnit results; defaults to the deploy ID.",
1260
- "hasDynamicHelp": false,
1261
- "multiple": false,
1262
- "type": "option"
1263
- }
1358
+ "configurationVariablesSection": {
1359
+ "header": "CONFIGURATION VARIABLES",
1360
+ "body": [
1361
+ {
1362
+ "name": "target-org",
1363
+ "description": "Username or alias of the org that all commands run against by default. (sf only)"
1364
+ },
1365
+ {
1366
+ "name": "org-api-version",
1367
+ "description": "API version of your project. Default: API version of your Dev Hub org."
1368
+ }
1369
+ ]
1264
1370
  },
1265
- "hasDynamicHelp": false,
1266
- "hiddenAliases": [],
1267
- "id": "project:deploy:resume",
1268
- "pluginAlias": "@salesforce/plugin-deploy-retrieve",
1269
- "pluginName": "@salesforce/plugin-deploy-retrieve",
1270
- "pluginType": "core",
1271
- "strict": true,
1272
- "summary": "Resume watching a deploy operation and update source tracking when the deploy completes.",
1273
- "enableJsonFlag": true,
1274
1371
  "envVariablesSection": {
1275
1372
  "header": "ENVIRONMENT VARIABLES",
1276
1373
  "body": [
1374
+ {
1375
+ "name": "SF_TARGET_ORG",
1376
+ "description": "Username or alias of your default org. Overrides the target-org configuration variable."
1377
+ },
1277
1378
  {
1278
1379
  "name": "SF_USE_PROGRESS_BAR",
1279
1380
  "description": "Set to false to disable the progress bar when running the metadata deploy command."
@@ -1319,43 +1420,33 @@
1319
1420
  "commands",
1320
1421
  "project",
1321
1422
  "deploy",
1322
- "resume.js"
1423
+ "start.js"
1323
1424
  ],
1324
1425
  "aliasPermutations": [
1325
- "deploy:metadata:resume",
1326
- "metadata:deploy:resume",
1327
- "metadata:resume:deploy",
1328
- "deploy:resume:metadata",
1329
- "resume:deploy:metadata",
1330
- "resume:metadata:deploy"
1426
+ "deploy:metadata",
1427
+ "metadata:deploy"
1331
1428
  ],
1332
1429
  "permutations": [
1333
- "project:deploy:resume",
1334
- "deploy:project:resume",
1335
- "deploy:resume:project",
1336
- "project:resume:deploy",
1337
- "resume:project:deploy",
1338
- "resume:deploy:project"
1430
+ "project:deploy:start",
1431
+ "deploy:project:start",
1432
+ "deploy:start:project",
1433
+ "project:start:deploy",
1434
+ "start:project:deploy",
1435
+ "start:deploy:project"
1339
1436
  ]
1340
1437
  },
1341
- "project:deploy:start": {
1438
+ "project:deploy:validate": {
1342
1439
  "aliases": [
1343
- "deploy:metadata"
1440
+ "deploy:metadata:validate"
1344
1441
  ],
1345
1442
  "args": {},
1346
1443
  "deprecateAliases": true,
1347
- "description": "You must run this command from within a project.\n\nMetadata components are deployed in source format by default. Deploy them in metadata format by specifying the --metadata-dir flag, which specifies the root directory or ZIP file that contains the metadata formatted files you want to deploy.\n\nIf your org allows source tracking, then this command tracks the changes in your source. Some orgs, such as production org, never allow source tracking. Source tracking is enabled by default on scratch and sandbox orgs; you can disable source tracking when you create the orgs by specifying the --no-track-source flag on the \"<%= config.bin %> org create scratch|sandbox\" commands.\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.",
1444
+ "description": "Use this command to verify whether a deployment will succeed without actually deploying the metadata to your org. This command is similar to \"<%= config.bin %> project deploy start\", except you're required to run Apex tests, and the command returns a job ID rather than executing the deployment. If the validation succeeds, then you pass this job ID to the \"<%= config.bin %> project deploy quick\" command to actually deploy the metadata. This quick deploy takes less time because it skips running Apex tests. The job ID is valid for 10 days from when you started the validation. Validating first is useful if the deployment to your production org take several hours and you don’t want to risk a failed deploy.\n\nYou must run this command from within a project.\n\nThis command doesn't support source-tracking. When you quick deploy with the resulting job ID, the source you deploy overwrites the corresponding metadata in your org.\n\nTo validate the deployment of 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.",
1348
1445
  "examples": [
1349
- "Deploy local changes not in the org; uses your default org:\n<%= config.bin %> <%= command.id %>",
1350
- "Deploy the source files in a directory to an org with alias \"my-scratch\":\n<%= config.bin %> <%= command.id %> --source-dir path/to/source --target-org my-scratch",
1351
- "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",
1352
- "Deploy all Apex classes:\n<%= config.bin %> <%= command.id %> --metadata ApexClass",
1353
- "Deploy a specific Apex class:\n<%= config.bin %> <%= command.id %> --metadata ApexClass:MyApexClass",
1354
- "Deploy specific Apex classes that match a pattern; in this example, deploy Apex classes whose names contain the string \"MyApex\":\n<%= config.bin %> <%= command.id %> --metadata 'ApexClass:MyApex*'",
1355
- "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",
1356
- "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\"",
1357
- "Deploy all components listed in a manifest:\n<%= config.bin %> <%= command.id %> --manifest path/to/package.xml",
1358
- "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"
1446
+ "NOTE: These examples focus on validating large deployments. See the help for \"<%= config.bin %> project deploy start\" for examples of deploying smaller sets of metadata which you can also use to validate.",
1447
+ "Validate the deployment of all source files in a directory to the default org:\n<%= config.bin %> <%= command.id %> --source-dir path/to/source",
1448
+ "Asynchronously validate the deployment and run all tests in the org with alias \"my-prod-org\"; command immediately returns the job ID:\n<%= config.bin %> <%= command.id %> --source-dir path/to/source --async --test-level RunAllTestsInOrg --target-org my-prod-org",
1449
+ "Validate the deployment of all components listed in a manifest:\n<%= config.bin %> <%= command.id %> --manifest path/to/package.xml"
1359
1450
  ],
1360
1451
  "flags": {
1361
1452
  "json": {
@@ -1369,16 +1460,13 @@
1369
1460
  "char": "a",
1370
1461
  "description": "Use this flag to override the default API version with the API version of your package.xml file. The default API version is the latest version supported by the CLI.",
1371
1462
  "name": "api-version",
1372
- "summary": "Target API version for the deploy.",
1463
+ "summary": "Target API version for the validation.",
1373
1464
  "hasDynamicHelp": false,
1374
1465
  "multiple": false,
1375
1466
  "type": "option"
1376
1467
  },
1377
1468
  "async": {
1378
- "description": "The command immediately returns the job ID and control of the terminal to you. This way, you can continue to use the CLI. To resume the deployment, run \"<%= config.bin %> project deploy resume\". To check the status of the deployment, run \"<%= config.bin %> project deploy report\".",
1379
- "exclusive": [
1380
- "wait"
1381
- ],
1469
+ "description": "The command immediately returns the job ID and control of the terminal to you. This way, you can continue to use the CLI. To resume watching the validation, run \"<%= config.bin %> project deploy resume\". To check the status of the validation, run \"<%= config.bin %> project deploy report\".",
1382
1470
  "name": "async",
1383
1471
  "summary": "Run the command asynchronously.",
1384
1472
  "allowNo": false,
@@ -1389,75 +1477,40 @@
1389
1477
  "verbose"
1390
1478
  ],
1391
1479
  "name": "concise",
1392
- "summary": "Show concise output of the deploy result.",
1393
- "allowNo": false,
1394
- "type": "boolean"
1395
- },
1396
- "dry-run": {
1397
- "name": "dry-run",
1398
- "summary": "Validate deploy and run Apex tests but don’t save to the org.",
1399
- "allowNo": false,
1400
- "type": "boolean"
1401
- },
1402
- "ignore-conflicts": {
1403
- "char": "c",
1404
- "description": "This flag applies only to orgs that allow source tracking. It has no effect on orgs that don't allow it, such as production orgs.",
1405
- "name": "ignore-conflicts",
1406
- "summary": "Ignore conflicts and deploy local files, even if they overwrite changes in the org.",
1407
- "allowNo": false,
1408
- "type": "boolean"
1409
- },
1410
- "ignore-errors": {
1411
- "char": "r",
1412
- "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.",
1413
- "name": "ignore-errors",
1414
- "summary": "Ignore any errors and don’t roll back deployment.",
1415
- "allowNo": false,
1416
- "type": "boolean"
1417
- },
1418
- "ignore-warnings": {
1419
- "char": "g",
1420
- "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.",
1421
- "name": "ignore-warnings",
1422
- "summary": "Ignore warnings and allow a deployment to complete successfully.",
1480
+ "summary": "Show concise output of the validation result.",
1423
1481
  "allowNo": false,
1424
1482
  "type": "boolean"
1425
1483
  },
1426
1484
  "manifest": {
1427
1485
  "char": "x",
1428
1486
  "description": "All child components are included. If you specify this flag, don’t specify --metadata or --source-dir.",
1429
- "exclusive": [
1430
- "source-dir",
1431
- "metadata",
1432
- "metadata-dir"
1433
- ],
1434
1487
  "helpGroup": "Source Format",
1435
1488
  "name": "manifest",
1436
- "summary": "Full file path for manifest (package.xml) of components to deploy.",
1489
+ "summary": "Full file path for manifest (package.xml) of components to validate for deployment.",
1437
1490
  "hasDynamicHelp": false,
1438
1491
  "multiple": false,
1439
1492
  "type": "option"
1440
1493
  },
1441
1494
  "metadata": {
1442
1495
  "char": "m",
1443
- "exclusive": [
1444
- "manifest",
1445
- "source-dir",
1446
- "metadata-dir"
1447
- ],
1448
1496
  "helpGroup": "Source Format",
1449
1497
  "name": "metadata",
1450
- "summary": "Metadata component names to deploy. Wildcards ( `*` ) supported as long as you use quotes, such as `ApexClass:MyClass*`",
1498
+ "summary": "Metadata component names to validate for deployment.",
1499
+ "hasDynamicHelp": false,
1500
+ "multiple": true,
1501
+ "type": "option"
1502
+ },
1503
+ "source-dir": {
1504
+ "char": "d",
1505
+ "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.",
1506
+ "helpGroup": "Source Format",
1507
+ "name": "source-dir",
1508
+ "summary": "Path to the local source files to validate for deployment.",
1451
1509
  "hasDynamicHelp": false,
1452
1510
  "multiple": true,
1453
1511
  "type": "option"
1454
1512
  },
1455
1513
  "metadata-dir": {
1456
- "exclusive": [
1457
- "manifest",
1458
- "source-dir",
1459
- "metadata"
1460
- ],
1461
1514
  "helpGroup": "Metadata API Format",
1462
1515
  "name": "metadata-dir",
1463
1516
  "summary": "Root of directory or zip file of metadata formatted files to deploy.",
@@ -1475,21 +1528,6 @@
1475
1528
  "allowNo": false,
1476
1529
  "type": "boolean"
1477
1530
  },
1478
- "source-dir": {
1479
- "char": "d",
1480
- "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.",
1481
- "exclusive": [
1482
- "manifest",
1483
- "metadata",
1484
- "metadata-dir"
1485
- ],
1486
- "helpGroup": "Source Format",
1487
- "name": "source-dir",
1488
- "summary": "Path to the local source files to deploy.",
1489
- "hasDynamicHelp": false,
1490
- "multiple": true,
1491
- "type": "option"
1492
- },
1493
1531
  "target-org": {
1494
1532
  "char": "o",
1495
1533
  "description": "Overrides your default org.",
@@ -1513,17 +1551,17 @@
1513
1551
  },
1514
1552
  "test-level": {
1515
1553
  "char": "l",
1516
- "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 --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 and target org. 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\".",
1554
+ "description": "Valid values are:\n\n- RunSpecifiedTests — Runs only the tests that you specify with the --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.\n\n- RunAllTestsInOrg — All tests in your org are run, including tests of managed packages.",
1517
1555
  "helpGroup": "Test",
1518
1556
  "name": "test-level",
1519
1557
  "summary": "Deployment Apex testing level.",
1558
+ "default": "RunLocalTests",
1520
1559
  "hasDynamicHelp": false,
1521
1560
  "multiple": false,
1522
1561
  "options": [
1523
- "NoTestRun",
1524
- "RunSpecifiedTests",
1562
+ "RunAllTestsInOrg",
1525
1563
  "RunLocalTests",
1526
- "RunAllTestsInOrg"
1564
+ "RunSpecifiedTests"
1527
1565
  ],
1528
1566
  "type": "option"
1529
1567
  },
@@ -1532,18 +1570,15 @@
1532
1570
  "concise"
1533
1571
  ],
1534
1572
  "name": "verbose",
1535
- "summary": "Show verbose output of the deploy result.",
1573
+ "summary": "Show verbose output of the validation result.",
1536
1574
  "allowNo": false,
1537
1575
  "type": "boolean"
1538
1576
  },
1539
1577
  "wait": {
1540
1578
  "char": "w",
1541
- "description": "If the command continues to run after the wait period, the CLI returns control of the terminal window to you and returns the job ID. To resume the deployment, run \"<%= config.bin %> project deploy resume\". To check the status of the deployment, run \"<%= config.bin %> project deploy report\".",
1542
- "exclusive": [
1543
- "async"
1544
- ],
1579
+ "description": "If the command continues to run after the wait period, the CLI returns control of the terminal window to you and returns the job ID. To resume watching the validation, run \"<%= config.bin %> project deploy resume\". To check the status of the validation, run \"<%= config.bin %> project deploy report\".",
1545
1580
  "name": "wait",
1546
- "summary": "Number of minutes to wait for command to complete and display results.",
1581
+ "summary": "Number of minutes to wait for the command to complete and display results.",
1547
1582
  "default": {
1548
1583
  "quantity": 33,
1549
1584
  "unit": 0
@@ -1553,47 +1588,14 @@
1553
1588
  "multiple": false,
1554
1589
  "type": "option"
1555
1590
  },
1556
- "purge-on-delete": {
1557
- "dependsOn": [
1558
- "manifest"
1559
- ],
1560
- "helpGroup": "Delete",
1561
- "name": "purge-on-delete",
1562
- "relationships": [
1563
- {
1564
- "type": "some",
1565
- "flags": [
1566
- "pre-destructive-changes",
1567
- "post-destructive-changes"
1568
- ]
1569
- }
1570
- ],
1571
- "summary": "Specify that deleted components in the destructive changes manifest file are immediately eligible for deletion rather than being stored in the Recycle Bin.",
1591
+ "ignore-warnings": {
1592
+ "char": "g",
1593
+ "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.",
1594
+ "name": "ignore-warnings",
1595
+ "summary": "Ignore warnings and allow a deployment to complete successfully.",
1572
1596
  "allowNo": false,
1573
1597
  "type": "boolean"
1574
1598
  },
1575
- "pre-destructive-changes": {
1576
- "dependsOn": [
1577
- "manifest"
1578
- ],
1579
- "helpGroup": "Delete",
1580
- "name": "pre-destructive-changes",
1581
- "summary": "File path for a manifest (destructiveChangesPre.xml) of components to delete before the deploy",
1582
- "hasDynamicHelp": false,
1583
- "multiple": false,
1584
- "type": "option"
1585
- },
1586
- "post-destructive-changes": {
1587
- "dependsOn": [
1588
- "manifest"
1589
- ],
1590
- "helpGroup": "Delete",
1591
- "name": "post-destructive-changes",
1592
- "summary": "File path for a manifest (destructiveChangesPost.xml) of components to delete after the deploy.",
1593
- "hasDynamicHelp": false,
1594
- "multiple": false,
1595
- "type": "option"
1596
- },
1597
1599
  "coverage-formatters": {
1598
1600
  "description": "For multiple formatters, repeat the flag for each formatter.\n--coverage-formatters lcov --coverage-formatters clover",
1599
1601
  "helpGroup": "Test",
@@ -1639,16 +1641,57 @@
1639
1641
  "hasDynamicHelp": false,
1640
1642
  "multiple": false,
1641
1643
  "type": "option"
1644
+ },
1645
+ "purge-on-delete": {
1646
+ "dependsOn": [
1647
+ "manifest"
1648
+ ],
1649
+ "helpGroup": "Delete",
1650
+ "name": "purge-on-delete",
1651
+ "relationships": [
1652
+ {
1653
+ "type": "some",
1654
+ "flags": [
1655
+ "pre-destructive-changes",
1656
+ "post-destructive-changes"
1657
+ ]
1658
+ }
1659
+ ],
1660
+ "summary": "Specify that deleted components in the destructive changes manifest file are immediately eligible for deletion rather than being stored in the Recycle Bin.",
1661
+ "allowNo": false,
1662
+ "type": "boolean"
1663
+ },
1664
+ "pre-destructive-changes": {
1665
+ "dependsOn": [
1666
+ "manifest"
1667
+ ],
1668
+ "helpGroup": "Delete",
1669
+ "name": "pre-destructive-changes",
1670
+ "summary": "File path for a manifest (destructiveChangesPre.xml) of components to delete before the deploy",
1671
+ "hasDynamicHelp": false,
1672
+ "multiple": false,
1673
+ "type": "option"
1674
+ },
1675
+ "post-destructive-changes": {
1676
+ "dependsOn": [
1677
+ "manifest"
1678
+ ],
1679
+ "helpGroup": "Delete",
1680
+ "name": "post-destructive-changes",
1681
+ "summary": "File path for a manifest (destructiveChangesPost.xml) of components to delete after the deploy.",
1682
+ "hasDynamicHelp": false,
1683
+ "multiple": false,
1684
+ "type": "option"
1642
1685
  }
1643
1686
  },
1644
1687
  "hasDynamicHelp": true,
1645
1688
  "hiddenAliases": [],
1646
- "id": "project:deploy:start",
1689
+ "id": "project:deploy:validate",
1647
1690
  "pluginAlias": "@salesforce/plugin-deploy-retrieve",
1648
1691
  "pluginName": "@salesforce/plugin-deploy-retrieve",
1649
1692
  "pluginType": "core",
1650
1693
  "strict": true,
1651
- "summary": "Deploy metadata to an org from your local project.",
1694
+ "summary": "Validate a metadata deployment without actually executing it.",
1652
1695
  "enableJsonFlag": true,
1653
1696
  "configurationVariablesSection": {
1654
1697
  "header": "CONFIGURATION VARIABLES",
@@ -1715,33 +1758,35 @@
1715
1758
  "commands",
1716
1759
  "project",
1717
1760
  "deploy",
1718
- "start.js"
1761
+ "validate.js"
1719
1762
  ],
1720
1763
  "aliasPermutations": [
1721
- "deploy:metadata",
1722
- "metadata:deploy"
1764
+ "deploy:metadata:validate",
1765
+ "metadata:deploy:validate",
1766
+ "metadata:validate:deploy",
1767
+ "deploy:validate:metadata",
1768
+ "validate:deploy:metadata",
1769
+ "validate:metadata:deploy"
1723
1770
  ],
1724
1771
  "permutations": [
1725
- "project:deploy:start",
1726
- "deploy:project:start",
1727
- "deploy:start:project",
1728
- "project:start:deploy",
1729
- "start:project:deploy",
1730
- "start:deploy:project"
1772
+ "project:deploy:validate",
1773
+ "deploy:project:validate",
1774
+ "deploy:validate:project",
1775
+ "project:validate:deploy",
1776
+ "validate:project:deploy",
1777
+ "validate:deploy:project"
1731
1778
  ]
1732
1779
  },
1733
- "project:deploy:validate": {
1780
+ "project:convert:mdapi": {
1734
1781
  "aliases": [
1735
- "deploy:metadata:validate"
1782
+ "force:mdapi:convert"
1736
1783
  ],
1737
1784
  "args": {},
1738
1785
  "deprecateAliases": true,
1739
- "description": "Use this command to verify whether a deployment will succeed without actually deploying the metadata to your org. This command is similar to \"<%= config.bin %> project deploy start\", except you're required to run Apex tests, and the command returns a job ID rather than executing the deployment. If the validation succeeds, then you pass this job ID to the \"<%= config.bin %> project deploy quick\" command to actually deploy the metadata. This quick deploy takes less time because it skips running Apex tests. The job ID is valid for 10 days from when you started the validation. Validating first is useful if the deployment to your production org take several hours and you don’t want to risk a failed deploy.\n\nYou must run this command from within a project.\n\nThis command doesn't support source-tracking. When you quick deploy with the resulting job ID, the source you deploy overwrites the corresponding metadata in your org.\n\nTo validate the deployment of 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.",
1786
+ "description": "To use Salesforce CLI to work with components that you retrieved via Metadata API, first convert your files from the metadata format to the source format using this command.\n\nTo convert files from the source format back to the metadata format, run \"<%= config.bin %> project convert source\".\n\nTo convert 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.",
1740
1787
  "examples": [
1741
- "NOTE: These examples focus on validating large deployments. See the help for \"<%= config.bin %> project deploy start\" for examples of deploying smaller sets of metadata which you can also use to validate.",
1742
- "Validate the deployment of all source files in a directory to the default org:\n<%= config.bin %> <%= command.id %> --source-dir path/to/source",
1743
- "Asynchronously validate the deployment and run all tests in the org with alias \"my-prod-org\"; command immediately returns the job ID:\n<%= config.bin %> <%= command.id %> --source-dir path/to/source --async --test-level RunAllTestsInOrg --target-org my-prod-org",
1744
- "Validate the deployment of all components listed in a manifest:\n<%= config.bin %> <%= command.id %> --manifest path/to/package.xml"
1788
+ "Convert metadata formatted files in the specified directory into source formatted files; writes converted files to your default package directory:\n$ <%= config.bin %> <%= command.id %> --root-dir path/to/metadata",
1789
+ "Similar to previous example, but writes converted files to the specified output directory:\n$ <%= config.bin %> <%= command.id %> --root-dir path/to/metadata --output-dir path/to/outputdir"
1745
1790
  ],
1746
1791
  "flags": {
1747
1792
  "json": {
@@ -1752,324 +1797,279 @@
1752
1797
  "type": "boolean"
1753
1798
  },
1754
1799
  "api-version": {
1755
- "char": "a",
1756
- "description": "Use this flag to override the default API version with the API version of your package.xml file. The default API version is the latest version supported by the CLI.",
1800
+ "aliases": [
1801
+ "apiversion"
1802
+ ],
1803
+ "deprecateAliases": true,
1804
+ "description": "Override the api version used for api requests made by this command",
1757
1805
  "name": "api-version",
1758
- "summary": "Target API version for the validation.",
1759
1806
  "hasDynamicHelp": false,
1760
1807
  "multiple": false,
1761
1808
  "type": "option"
1762
1809
  },
1763
- "async": {
1764
- "description": "The command immediately returns the job ID and control of the terminal to you. This way, you can continue to use the CLI. To resume watching the validation, run \"<%= config.bin %> project deploy resume\". To check the status of the validation, run \"<%= config.bin %> project deploy report\".",
1765
- "name": "async",
1766
- "summary": "Run the command asynchronously.",
1767
- "allowNo": false,
1768
- "type": "boolean"
1810
+ "loglevel": {
1811
+ "deprecated": {
1812
+ "message": "The loglevel flag is no longer in use on this command. You may use it without error, but it will be ignored.\nSet the log level using the `SFDX_LOG_LEVEL` environment variable."
1813
+ },
1814
+ "hidden": true,
1815
+ "name": "loglevel",
1816
+ "hasDynamicHelp": false,
1817
+ "multiple": false,
1818
+ "type": "option"
1769
1819
  },
1770
- "concise": {
1771
- "exclusive": [
1772
- "verbose"
1820
+ "root-dir": {
1821
+ "aliases": [
1822
+ "rootdir"
1773
1823
  ],
1774
- "name": "concise",
1775
- "summary": "Show concise output of the validation result.",
1776
- "allowNo": false,
1777
- "type": "boolean"
1778
- },
1779
- "manifest": {
1780
- "char": "x",
1781
- "description": "All child components are included. If you specify this flag, don’t specify --metadata or --source-dir.",
1782
- "helpGroup": "Source Format",
1783
- "name": "manifest",
1784
- "summary": "Full file path for manifest (package.xml) of components to validate for deployment.",
1824
+ "char": "r",
1825
+ "deprecateAliases": true,
1826
+ "name": "root-dir",
1827
+ "required": true,
1828
+ "summary": "Root directory that contains the Metadata API–formatted metadata.",
1785
1829
  "hasDynamicHelp": false,
1786
1830
  "multiple": false,
1787
1831
  "type": "option"
1788
1832
  },
1789
- "metadata": {
1790
- "char": "m",
1791
- "helpGroup": "Source Format",
1792
- "name": "metadata",
1793
- "summary": "Metadata component names to validate for deployment.",
1833
+ "output-dir": {
1834
+ "aliases": [
1835
+ "outputdir"
1836
+ ],
1837
+ "char": "d",
1838
+ "deprecateAliases": true,
1839
+ "name": "output-dir",
1840
+ "summary": "Directory to store your files in after they’re converted to source format; can be an absolute or relative path.",
1794
1841
  "hasDynamicHelp": false,
1795
- "multiple": true,
1842
+ "multiple": false,
1796
1843
  "type": "option"
1797
1844
  },
1798
- "source-dir": {
1799
- "char": "d",
1800
- "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.",
1801
- "helpGroup": "Source Format",
1802
- "name": "source-dir",
1803
- "summary": "Path to the local source files to validate for deployment.",
1845
+ "manifest": {
1846
+ "char": "x",
1847
+ "description": "If you specify this parameter, don’t specify --metadata or --source-dir.",
1848
+ "name": "manifest",
1849
+ "summary": "File path to manifest (package.xml) of metadata types to convert.",
1804
1850
  "hasDynamicHelp": false,
1805
- "multiple": true,
1851
+ "multiple": false,
1806
1852
  "type": "option"
1807
1853
  },
1808
1854
  "metadata-dir": {
1809
- "helpGroup": "Metadata API Format",
1855
+ "aliases": [
1856
+ "metadatapath"
1857
+ ],
1858
+ "char": "p",
1859
+ "deprecateAliases": true,
1860
+ "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 metadata types in the directory and its sub-directories).\n\nIf you specify this flag, don’t specify --manifest or --metadata. If the comma-separated list you’re supplying contains spaces, enclose the entire comma-separated list in one set of double quotes.",
1861
+ "exclusive": [
1862
+ "manifest",
1863
+ "metadata"
1864
+ ],
1810
1865
  "name": "metadata-dir",
1811
- "summary": "Root of directory or zip file of metadata formatted files to deploy.",
1866
+ "summary": "Root of directory or zip file of metadata formatted files to convert.",
1867
+ "delimiter": ",",
1812
1868
  "hasDynamicHelp": false,
1813
- "multiple": false,
1869
+ "multiple": true,
1814
1870
  "type": "option"
1815
1871
  },
1816
- "single-package": {
1817
- "dependsOn": [
1818
- "metadata-dir"
1872
+ "metadata": {
1873
+ "char": "m",
1874
+ "exclusive": [
1875
+ "manifest",
1876
+ "metadatapath"
1819
1877
  ],
1820
- "helpGroup": "Metadata API Format",
1821
- "name": "single-package",
1822
- "summary": "Indicates that the metadata zip file points to a directory structure for a single package.",
1823
- "allowNo": false,
1824
- "type": "boolean"
1878
+ "name": "metadata",
1879
+ "summary": "Metadata component names to convert.",
1880
+ "delimiter": ",",
1881
+ "hasDynamicHelp": false,
1882
+ "multiple": true,
1883
+ "type": "option"
1884
+ }
1885
+ },
1886
+ "hasDynamicHelp": false,
1887
+ "hiddenAliases": [],
1888
+ "id": "project:convert:mdapi",
1889
+ "pluginAlias": "@salesforce/plugin-deploy-retrieve",
1890
+ "pluginName": "@salesforce/plugin-deploy-retrieve",
1891
+ "pluginType": "core",
1892
+ "strict": true,
1893
+ "summary": "Convert metadata retrieved via Metadata API into the source format used in Salesforce DX projects.",
1894
+ "enableJsonFlag": true,
1895
+ "requiresProject": true,
1896
+ "isESM": true,
1897
+ "relativePath": [
1898
+ "lib",
1899
+ "commands",
1900
+ "project",
1901
+ "convert",
1902
+ "mdapi.js"
1903
+ ],
1904
+ "aliasPermutations": [
1905
+ "force:mdapi:convert",
1906
+ "mdapi:force:convert",
1907
+ "mdapi:convert:force",
1908
+ "force:convert:mdapi",
1909
+ "convert:force:mdapi",
1910
+ "convert:mdapi:force"
1911
+ ],
1912
+ "permutations": [
1913
+ "project:convert:mdapi",
1914
+ "convert:project:mdapi",
1915
+ "convert:mdapi:project",
1916
+ "project:mdapi:convert",
1917
+ "mdapi:project:convert",
1918
+ "mdapi:convert:project"
1919
+ ]
1920
+ },
1921
+ "project:convert:source": {
1922
+ "aliases": [
1923
+ "force:source:convert"
1924
+ ],
1925
+ "args": {},
1926
+ "deprecateAliases": true,
1927
+ "description": "To convert source-formatted files into the metadata format, so that you can deploy them using Metadata API, run this command. Then deploy the metadata using \"<%= config.bin %> project deploy\".\n\nTo convert Metadata API–formatted files into the source format, run \"<%= config.bin %> project convert mdapi\".\n\nTo specify a package name that includes spaces, enclose the name in single quotes.\n\nTo convert multiple 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.",
1928
+ "examples": [
1929
+ "Convert source-formatted files in the specified directory into metadata-formatted files; writes converted files into a new directory:\n$ <%= config.bin %> <%= command.id %> --root-dir path/to/source",
1930
+ "Similar to previous example, but writes converted files to the specified output directory and associates the files with the specified package:\n$ <%= config.bin %> <%= command.id %> --root-dir path/to/source --output-dir path/to/outputdir --package-name 'My Package'"
1931
+ ],
1932
+ "flags": {
1933
+ "json": {
1934
+ "description": "Format output as json.",
1935
+ "helpGroup": "GLOBAL",
1936
+ "name": "json",
1937
+ "allowNo": false,
1938
+ "type": "boolean"
1825
1939
  },
1826
- "target-org": {
1827
- "char": "o",
1828
- "description": "Overrides your default org.",
1829
- "name": "target-org",
1830
- "noCacheDefault": true,
1831
- "required": true,
1832
- "summary": "Login username or alias for the target org.",
1833
- "hasDynamicHelp": true,
1940
+ "api-version": {
1941
+ "aliases": [
1942
+ "apiversion"
1943
+ ],
1944
+ "deprecateAliases": true,
1945
+ "description": "Override the api version used for api requests made by this command",
1946
+ "name": "api-version",
1947
+ "summary": "API Version to use in the generated project's manifest. By default, will use the version from sfdx-project.json",
1948
+ "hasDynamicHelp": false,
1834
1949
  "multiple": false,
1835
1950
  "type": "option"
1836
1951
  },
1837
- "tests": {
1838
- "char": "t",
1839
- "description": "If a test name contains a space, enclose it in double quotes.\nFor multiple test names, use one of the following formats:\n\n- Repeat the flag for multiple test names: --tests Test1 --tests Test2 --tests \"Test With Space\"\n- Separate the test names with spaces: --tests Test1 Test2 \"Test With Space\"",
1840
- "helpGroup": "Test",
1841
- "name": "tests",
1842
- "summary": "Apex tests to run when --test-level is RunSpecifiedTests.",
1952
+ "loglevel": {
1953
+ "deprecated": {
1954
+ "message": "The loglevel flag is no longer in use on this command. You may use it without error, but it will be ignored.\nSet the log level using the `SFDX_LOG_LEVEL` environment variable."
1955
+ },
1956
+ "hidden": true,
1957
+ "name": "loglevel",
1843
1958
  "hasDynamicHelp": false,
1844
- "multiple": true,
1959
+ "multiple": false,
1845
1960
  "type": "option"
1846
1961
  },
1847
- "test-level": {
1848
- "char": "l",
1849
- "description": "Valid values are:\n\n- RunSpecifiedTests — Runs only the tests that you specify with the --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.\n\n- RunAllTestsInOrg — All tests in your org are run, including tests of managed packages.",
1850
- "helpGroup": "Test",
1851
- "name": "test-level",
1852
- "summary": "Deployment Apex testing level.",
1853
- "default": "RunLocalTests",
1962
+ "root-dir": {
1963
+ "aliases": [
1964
+ "rootdir"
1965
+ ],
1966
+ "char": "r",
1967
+ "deprecateAliases": true,
1968
+ "name": "root-dir",
1969
+ "summary": "Source directory other than the default package to convert.",
1854
1970
  "hasDynamicHelp": false,
1855
1971
  "multiple": false,
1856
- "options": [
1857
- "RunAllTestsInOrg",
1858
- "RunLocalTests",
1859
- "RunSpecifiedTests"
1860
- ],
1861
1972
  "type": "option"
1862
1973
  },
1863
- "verbose": {
1864
- "exclusive": [
1865
- "concise"
1974
+ "output-dir": {
1975
+ "aliases": [
1976
+ "outputdir"
1866
1977
  ],
1867
- "name": "verbose",
1868
- "summary": "Show verbose output of the validation result.",
1869
- "allowNo": false,
1870
- "type": "boolean"
1871
- },
1872
- "wait": {
1873
- "char": "w",
1874
- "description": "If the command continues to run after the wait period, the CLI returns control of the terminal window to you and returns the job ID. To resume watching the validation, run \"<%= config.bin %> project deploy resume\". To check the status of the validation, run \"<%= config.bin %> project deploy report\".",
1875
- "name": "wait",
1876
- "summary": "Number of minutes to wait for the command to complete and display results.",
1877
- "default": {
1878
- "quantity": 33,
1879
- "unit": 0
1880
- },
1978
+ "char": "d",
1979
+ "deprecateAliases": true,
1980
+ "name": "output-dir",
1981
+ "summary": "Output directory to store the Metadata API–formatted files in.",
1982
+ "default": "metadataPackage_1706334465526",
1881
1983
  "hasDynamicHelp": false,
1882
- "helpValue": "<minutes>",
1883
1984
  "multiple": false,
1884
1985
  "type": "option"
1885
1986
  },
1886
- "ignore-warnings": {
1887
- "char": "g",
1888
- "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.",
1889
- "name": "ignore-warnings",
1890
- "summary": "Ignore warnings and allow a deployment to complete successfully.",
1891
- "allowNo": false,
1892
- "type": "boolean"
1893
- },
1894
- "coverage-formatters": {
1895
- "description": "For multiple formatters, repeat the flag for each formatter.\n--coverage-formatters lcov --coverage-formatters clover",
1896
- "helpGroup": "Test",
1897
- "name": "coverage-formatters",
1898
- "summary": "Format of the code coverage results.",
1899
- "hasDynamicHelp": false,
1900
- "multiple": true,
1901
- "options": [
1902
- "clover",
1903
- "cobertura",
1904
- "html-spa",
1905
- "html",
1906
- "json",
1907
- "json-summary",
1908
- "lcovonly",
1909
- "none",
1910
- "teamcity",
1911
- "text",
1912
- "text-summary"
1987
+ "package-name": {
1988
+ "aliases": [
1989
+ "packagename"
1913
1990
  ],
1991
+ "char": "n",
1992
+ "deprecateAliases": true,
1993
+ "name": "package-name",
1994
+ "summary": "Name of the package to associate with the metadata-formatted files.",
1995
+ "hasDynamicHelp": false,
1996
+ "multiple": false,
1914
1997
  "type": "option"
1915
1998
  },
1916
- "junit": {
1917
- "helpGroup": "Test",
1918
- "name": "junit",
1919
- "summary": "Output JUnit test results.",
1920
- "allowNo": false,
1921
- "type": "boolean"
1922
- },
1923
- "results-dir": {
1924
- "helpGroup": "Test",
1925
- "name": "results-dir",
1926
- "relationships": [
1927
- {
1928
- "type": "some",
1929
- "flags": [
1930
- "coverage-formatters",
1931
- "junit"
1932
- ]
1933
- }
1934
- ],
1935
- "summary": "Output directory for code coverage and JUnit results; defaults to the deploy ID.",
1999
+ "manifest": {
2000
+ "char": "x",
2001
+ "description": "If you specify this parameter, don’t specify --metadata or --source-dir.",
2002
+ "name": "manifest",
2003
+ "summary": "Path to the manifest (package.xml) file that specifies the metadata types to convert.",
1936
2004
  "hasDynamicHelp": false,
1937
2005
  "multiple": false,
1938
2006
  "type": "option"
1939
2007
  },
1940
- "purge-on-delete": {
1941
- "dependsOn": [
1942
- "manifest"
1943
- ],
1944
- "helpGroup": "Delete",
1945
- "name": "purge-on-delete",
1946
- "relationships": [
1947
- {
1948
- "type": "some",
1949
- "flags": [
1950
- "pre-destructive-changes",
1951
- "post-destructive-changes"
1952
- ]
1953
- }
2008
+ "source-dir": {
2009
+ "aliases": [
2010
+ "sourcepath"
1954
2011
  ],
1955
- "summary": "Specify that deleted components in the destructive changes manifest file are immediately eligible for deletion rather than being stored in the Recycle Bin.",
1956
- "allowNo": false,
1957
- "type": "boolean"
1958
- },
1959
- "pre-destructive-changes": {
1960
- "dependsOn": [
1961
- "manifest"
2012
+ "char": "p",
2013
+ "deprecateAliases": true,
2014
+ "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 metadata types in the directory and its sub-directories).\n\nIf you specify this parameter, don’t specify --manifest or --metadata.",
2015
+ "exclusive": [
2016
+ "manifest",
2017
+ "metadata"
1962
2018
  ],
1963
- "helpGroup": "Delete",
1964
- "name": "pre-destructive-changes",
1965
- "summary": "File path for a manifest (destructiveChangesPre.xml) of components to delete before the deploy",
2019
+ "name": "source-dir",
2020
+ "summary": "Paths to the local source files to convert.",
2021
+ "delimiter": ",",
1966
2022
  "hasDynamicHelp": false,
1967
- "multiple": false,
2023
+ "multiple": true,
1968
2024
  "type": "option"
1969
2025
  },
1970
- "post-destructive-changes": {
1971
- "dependsOn": [
1972
- "manifest"
2026
+ "metadata": {
2027
+ "char": "m",
2028
+ "exclusive": [
2029
+ "manifest",
2030
+ "sourcepath"
1973
2031
  ],
1974
- "helpGroup": "Delete",
1975
- "name": "post-destructive-changes",
1976
- "summary": "File path for a manifest (destructiveChangesPost.xml) of components to delete after the deploy.",
2032
+ "name": "metadata",
2033
+ "summary": "Metadata component names to convert.",
2034
+ "delimiter": ",",
1977
2035
  "hasDynamicHelp": false,
1978
- "multiple": false,
2036
+ "multiple": true,
1979
2037
  "type": "option"
1980
2038
  }
1981
2039
  },
1982
- "hasDynamicHelp": true,
2040
+ "hasDynamicHelp": false,
1983
2041
  "hiddenAliases": [],
1984
- "id": "project:deploy:validate",
2042
+ "id": "project:convert:source",
1985
2043
  "pluginAlias": "@salesforce/plugin-deploy-retrieve",
1986
2044
  "pluginName": "@salesforce/plugin-deploy-retrieve",
1987
2045
  "pluginType": "core",
1988
2046
  "strict": true,
1989
- "summary": "Validate a metadata deployment without actually executing it.",
2047
+ "summary": "Convert source-formatted files into metadata that you can deploy using Metadata API.",
1990
2048
  "enableJsonFlag": true,
1991
- "configurationVariablesSection": {
1992
- "header": "CONFIGURATION VARIABLES",
1993
- "body": [
1994
- {
1995
- "name": "target-org",
1996
- "description": "Username or alias of the org that all commands run against by default. (sf only)"
1997
- },
1998
- {
1999
- "name": "org-api-version",
2000
- "description": "API version of your project. Default: API version of your Dev Hub org."
2001
- }
2002
- ]
2003
- },
2004
- "envVariablesSection": {
2005
- "header": "ENVIRONMENT VARIABLES",
2006
- "body": [
2007
- {
2008
- "name": "SF_TARGET_ORG",
2009
- "description": "Username or alias of your default org. Overrides the target-org configuration variable."
2010
- },
2011
- {
2012
- "name": "SF_USE_PROGRESS_BAR",
2013
- "description": "Set to false to disable the progress bar when running the metadata deploy command."
2014
- }
2015
- ]
2016
- },
2017
- "errorCodes": {
2018
- "header": "ERROR CODES",
2019
- "body": [
2020
- {
2021
- "name": "Succeeded (0)",
2022
- "description": "The deploy succeeded."
2023
- },
2024
- {
2025
- "name": "Canceled (1)",
2026
- "description": "The deploy was canceled."
2027
- },
2028
- {
2029
- "name": "Failed (1)",
2030
- "description": "The deploy failed."
2031
- },
2032
- {
2033
- "name": "SucceededPartial (68)",
2034
- "description": "The deploy partially succeeded."
2035
- },
2036
- {
2037
- "name": "InProgress (69)",
2038
- "description": "The deploy is in progress."
2039
- },
2040
- {
2041
- "name": "Pending (69)",
2042
- "description": "The deploy is pending."
2043
- },
2044
- {
2045
- "name": "Canceling (69)",
2046
- "description": "The deploy is being canceled."
2047
- }
2048
- ]
2049
- },
2049
+ "requiresProject": true,
2050
2050
  "isESM": true,
2051
2051
  "relativePath": [
2052
2052
  "lib",
2053
2053
  "commands",
2054
2054
  "project",
2055
- "deploy",
2056
- "validate.js"
2055
+ "convert",
2056
+ "source.js"
2057
2057
  ],
2058
2058
  "aliasPermutations": [
2059
- "deploy:metadata:validate",
2060
- "metadata:deploy:validate",
2061
- "metadata:validate:deploy",
2062
- "deploy:validate:metadata",
2063
- "validate:deploy:metadata",
2064
- "validate:metadata:deploy"
2059
+ "force:source:convert",
2060
+ "source:force:convert",
2061
+ "source:convert:force",
2062
+ "force:convert:source",
2063
+ "convert:force:source",
2064
+ "convert:source:force"
2065
2065
  ],
2066
2066
  "permutations": [
2067
- "project:deploy:validate",
2068
- "deploy:project:validate",
2069
- "deploy:validate:project",
2070
- "project:validate:deploy",
2071
- "validate:project:deploy",
2072
- "validate:deploy:project"
2067
+ "project:convert:source",
2068
+ "convert:project:source",
2069
+ "convert:source:project",
2070
+ "project:source:convert",
2071
+ "source:project:convert",
2072
+ "source:convert:project"
2073
2073
  ]
2074
2074
  },
2075
2075
  "project:generate:manifest": {
@@ -2815,5 +2815,5 @@
2815
2815
  ]
2816
2816
  }
2817
2817
  },
2818
- "version": "3.2.5"
2818
+ "version": "3.2.7"
2819
2819
  }