@salesforce/plugin-deploy-retrieve 3.18.3 → 3.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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 \"sf 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 --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 --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": {
@@ -48,80 +50,149 @@
48
50
  "multiple": false,
49
51
  "type": "option"
50
52
  },
51
- "root-dir": {
53
+ "target-org": {
52
54
  "aliases": [
53
- "rootdir"
55
+ "targetusername",
56
+ "u"
54
57
  ],
55
- "char": "r",
58
+ "char": "o",
56
59
  "deprecateAliases": true,
57
- "name": "root-dir",
60
+ "name": "target-org",
61
+ "noCacheDefault": true,
58
62
  "required": true,
59
- "summary": "Root directory that contains the Metadata API–formatted metadata.",
60
- "hasDynamicHelp": false,
63
+ "summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
64
+ "hasDynamicHelp": true,
61
65
  "multiple": false,
62
66
  "type": "option"
63
67
  },
64
- "output-dir": {
68
+ "check-only": {
65
69
  "aliases": [
66
- "outputdir"
70
+ "checkonly"
67
71
  ],
68
- "char": "d",
72
+ "char": "c",
69
73
  "deprecateAliases": true,
70
- "name": "output-dir",
71
- "summary": "Directory to store your files in after they’re converted to source format; can be an absolute or relative path.",
72
- "hasDynamicHelp": false,
74
+ "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 --check-only flag 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.",
75
+ "name": "check-only",
76
+ "summary": "Validate delete command but don't delete anything from the org or the local project.",
77
+ "allowNo": false,
78
+ "type": "boolean"
79
+ },
80
+ "wait": {
81
+ "char": "w",
82
+ "description": "If the command continues to run after the wait period, the CLI returns control of the terminal window to you.",
83
+ "name": "wait",
84
+ "summary": "Number of minutes to wait for the command to finish.",
85
+ "hasDynamicHelp": true,
73
86
  "multiple": false,
74
87
  "type": "option"
75
88
  },
76
- "manifest": {
77
- "char": "x",
78
- "description": "If you specify this flag, don’t specify --metadata or --source-dir.",
79
- "name": "manifest",
80
- "summary": "File path to manifest (package.xml) of metadata types to convert.",
89
+ "tests": {
90
+ "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\"",
91
+ "helpGroup": "Test",
92
+ "name": "tests",
93
+ "summary": "Apex tests to run when --test-level is RunSpecifiedTests.",
81
94
  "hasDynamicHelp": false,
82
- "multiple": false,
95
+ "multiple": true,
83
96
  "type": "option"
84
97
  },
85
- "metadata-dir": {
98
+ "test-level": {
86
99
  "aliases": [
87
- "metadatapath"
100
+ "testlevel"
88
101
  ],
89
- "char": "p",
102
+ "char": "l",
90
103
  "deprecateAliases": true,
91
- "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.",
92
- "exclusive": [
93
- "manifest",
94
- "metadata"
104
+ "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.",
105
+ "helpGroup": "Test",
106
+ "name": "test-level",
107
+ "summary": "Deployment Apex testing level.",
108
+ "hasDynamicHelp": false,
109
+ "multiple": false,
110
+ "options": [
111
+ "NoTestRun",
112
+ "RunSpecifiedTests",
113
+ "RunLocalTests",
114
+ "RunAllTestsInOrg"
95
115
  ],
96
- "name": "metadata-dir",
97
- "summary": "Root of directory or zip file of metadata formatted files to convert.",
116
+ "type": "option"
117
+ },
118
+ "no-prompt": {
119
+ "aliases": [
120
+ "noprompt"
121
+ ],
122
+ "char": "r",
123
+ "deprecateAliases": true,
124
+ "name": "no-prompt",
125
+ "summary": "Don't prompt for delete confirmation.",
126
+ "allowNo": false,
127
+ "type": "boolean"
128
+ },
129
+ "metadata": {
130
+ "char": "m",
131
+ "description": "If you specify this flag, don’t specify --source-dir.",
132
+ "name": "metadata",
133
+ "summary": "Metadata components to delete.",
98
134
  "delimiter": ",",
99
135
  "hasDynamicHelp": false,
100
136
  "multiple": true,
101
137
  "type": "option"
102
138
  },
103
- "metadata": {
104
- "char": "m",
105
- "exclusive": [
106
- "manifest",
107
- "metadatapath"
139
+ "source-dir": {
140
+ "aliases": [
141
+ "sourcepath"
108
142
  ],
109
- "name": "metadata",
110
- "summary": "Metadata component names to convert.",
143
+ "char": "p",
144
+ "deprecateAliases": true,
145
+ "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 flag, don’t specify --metadata.",
146
+ "name": "source-dir",
147
+ "summary": "Source file paths to delete.",
111
148
  "delimiter": ",",
112
149
  "hasDynamicHelp": false,
113
150
  "multiple": true,
114
151
  "type": "option"
152
+ },
153
+ "track-source": {
154
+ "aliases": [
155
+ "tracksource"
156
+ ],
157
+ "char": "t",
158
+ "deprecateAliases": true,
159
+ "exclusive": [
160
+ "check-only"
161
+ ],
162
+ "name": "track-source",
163
+ "summary": "If the delete succeeds, update the source tracking information.",
164
+ "allowNo": false,
165
+ "type": "boolean"
166
+ },
167
+ "force-overwrite": {
168
+ "aliases": [
169
+ "forceoverwrite"
170
+ ],
171
+ "char": "f",
172
+ "dependsOn": [
173
+ "track-source"
174
+ ],
175
+ "deprecateAliases": true,
176
+ "name": "force-overwrite",
177
+ "summary": "Ignore conflict warnings and overwrite changes to the org.",
178
+ "allowNo": false,
179
+ "type": "boolean"
180
+ },
181
+ "verbose": {
182
+ "name": "verbose",
183
+ "summary": "Verbose output of the delete result.",
184
+ "allowNo": false,
185
+ "type": "boolean"
115
186
  }
116
187
  },
117
- "hasDynamicHelp": false,
188
+ "hasDynamicHelp": true,
118
189
  "hiddenAliases": [],
119
- "id": "project:convert:mdapi",
190
+ "id": "project:delete:source",
120
191
  "pluginAlias": "@salesforce/plugin-deploy-retrieve",
121
192
  "pluginName": "@salesforce/plugin-deploy-retrieve",
122
193
  "pluginType": "core",
123
194
  "strict": true,
124
- "summary": "Convert metadata retrieved via Metadata API into the source format used in Salesforce DX projects.",
195
+ "summary": "Delete source from your project and from a non-source-tracked org.",
125
196
  "enableJsonFlag": true,
126
197
  "requiresProject": true,
127
198
  "isESM": true,
@@ -129,34 +200,35 @@
129
200
  "lib",
130
201
  "commands",
131
202
  "project",
132
- "convert",
133
- "mdapi.js"
203
+ "delete",
204
+ "source.js"
134
205
  ],
135
206
  "aliasPermutations": [
136
- "force:mdapi:convert",
137
- "mdapi:force:convert",
138
- "mdapi:convert:force",
139
- "force:convert:mdapi",
140
- "convert:force:mdapi",
141
- "convert:mdapi:force"
207
+ "force:source:delete",
208
+ "source:force:delete",
209
+ "source:delete:force",
210
+ "force:delete:source",
211
+ "delete:force:source",
212
+ "delete:source:force"
142
213
  ],
143
214
  "permutations": [
144
- "project:convert:mdapi",
145
- "convert:project:mdapi",
146
- "convert:mdapi:project",
147
- "project:mdapi:convert",
148
- "mdapi:project:convert",
149
- "mdapi:convert:project"
215
+ "project:delete:source",
216
+ "delete:project:source",
217
+ "delete:source:project",
218
+ "project:source:delete",
219
+ "source:project:delete",
220
+ "source:delete:project"
150
221
  ]
151
222
  },
152
- "project:convert:source-behavior": {
153
- "aliases": [],
223
+ "project:delete:tracking": {
224
+ "aliases": [
225
+ "force:source:tracking:clear"
226
+ ],
154
227
  "args": {},
155
- "description": "Specifically, this command updates the \"sourceBehaviorOption\" option in the \"sfdx-project.json\" file and then converts the associated local source files in your project as needed.\n\nFor example, run this command with the \"--behavior decomposePermissionSetBeta\" flag to start decomposing permission sets when you deploy or retrieve them. Decomposing means breaking up the monolithic metadata API format XML file that corresponds to a metadata component into smaller XML files and directories based on its subtypes. Permission sets are not decomposed by default; you must opt-in to start decomposing them by using this command. When the command finishes, your \"sfdx-project.json\" file is updated to always decompose permission sets, and the existing permission set files in your local package directories are converted into the new decomposed format. You run this command only once for a given behavior change.\n\nFor more information about the possible values for the --behavior flag, see the \"sourceBehaviorOptions\" section in the https://developer.salesforce.com/docs/atlas.en-us.sfdx_dev.meta/sfdx_dev/sfdx_dev_ws_config.htm topic.",
228
+ "deprecateAliases": true,
229
+ "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.",
156
230
  "examples": [
157
- "Update your Salesforce DX project to decompose custom permission sets:\n<%= config.bin %> <%= command.id %> --behavior decomposePermissionSetBeta",
158
- "Display what the command would do, but don't change any existing files:\n<%= config.bin %> <%= command.id %> --behavior decomposePermissionSetBeta --dry-run",
159
- "Keep the temporary directory that contains the interim metadata API formatted files:\n<%= config.bin %> <%= command.id %> --behavior decomposePermissionSetBeta --dry-run --preserve-temp-dir"
231
+ "Delete local source tracking for the org with alias \"my-scratch\":\n$ <%= config.bin %> <%= command.id %> --target-org my-scratch"
160
232
  ],
161
233
  "flags": {
162
234
  "json": {
@@ -174,55 +246,62 @@
174
246
  "multiple": false,
175
247
  "type": "option"
176
248
  },
177
- "behavior": {
178
- "char": "b",
179
- "name": "behavior",
180
- "required": true,
181
- "summary": "Behavior to enable; the values correspond to the possible values of the \"sourceBehaviorOption\" option in the \"sfdx-project.json\" file.",
249
+ "api-version": {
250
+ "aliases": [
251
+ "apiversion"
252
+ ],
253
+ "deprecateAliases": true,
254
+ "description": "Override the api version used for api requests made by this command",
255
+ "name": "api-version",
182
256
  "hasDynamicHelp": false,
183
257
  "multiple": false,
184
- "options": [
185
- "decomposeCustomLabelsBeta2",
186
- "decomposeCustomLabelsBeta",
187
- "decomposePermissionSetBeta",
188
- "decomposePermissionSetBeta2",
189
- "decomposeSharingRulesBeta",
190
- "decomposeWorkflowBeta",
191
- "decomposeExternalServiceRegistrationBeta"
192
- ],
193
258
  "type": "option"
194
259
  },
195
- "dry-run": {
196
- "name": "dry-run",
197
- "summary": "Display what the command would do, but don't make any actual changes.",
198
- "allowNo": false,
199
- "type": "boolean"
200
- },
201
- "preserve-temp-dir": {
202
- "name": "preserve-temp-dir",
203
- "summary": "Don't delete the metadata API format temporary directory that this command creates. Useful for debugging.",
204
- "allowNo": false,
205
- "type": "boolean"
260
+ "loglevel": {
261
+ "deprecated": {
262
+ "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."
263
+ },
264
+ "hidden": true,
265
+ "name": "loglevel",
266
+ "hasDynamicHelp": false,
267
+ "multiple": false,
268
+ "type": "option"
206
269
  },
207
270
  "target-org": {
271
+ "aliases": [
272
+ "targetusername",
273
+ "u"
274
+ ],
208
275
  "char": "o",
276
+ "deprecateAliases": true,
209
277
  "name": "target-org",
210
278
  "noCacheDefault": true,
211
- "summary": "Username or alias of the target org.",
279
+ "required": true,
280
+ "summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
212
281
  "hasDynamicHelp": true,
213
282
  "multiple": false,
214
283
  "type": "option"
284
+ },
285
+ "no-prompt": {
286
+ "aliases": [
287
+ "noprompt"
288
+ ],
289
+ "char": "p",
290
+ "deprecateAliases": true,
291
+ "name": "no-prompt",
292
+ "summary": "Don't prompt for source tracking override confirmation.",
293
+ "allowNo": false,
294
+ "type": "boolean"
215
295
  }
216
296
  },
217
297
  "hasDynamicHelp": true,
218
298
  "hiddenAliases": [],
219
- "id": "project:convert:source-behavior",
299
+ "id": "project:delete:tracking",
220
300
  "pluginAlias": "@salesforce/plugin-deploy-retrieve",
221
301
  "pluginName": "@salesforce/plugin-deploy-retrieve",
222
302
  "pluginType": "core",
223
- "state": "beta",
224
303
  "strict": true,
225
- "summary": "Enable a behavior of your project source files, and then update your Salesforce DX project to implement the behavior.",
304
+ "summary": "Delete all local source tracking information.",
226
305
  "enableJsonFlag": true,
227
306
  "requiresProject": true,
228
307
  "isESM": true,
@@ -230,29 +309,54 @@
230
309
  "lib",
231
310
  "commands",
232
311
  "project",
233
- "convert",
234
- "source-behavior.js"
312
+ "delete",
313
+ "tracking.js"
314
+ ],
315
+ "aliasPermutations": [
316
+ "force:source:tracking:clear",
317
+ "source:force:tracking:clear",
318
+ "source:tracking:force:clear",
319
+ "source:tracking:clear:force",
320
+ "force:tracking:source:clear",
321
+ "tracking:force:source:clear",
322
+ "tracking:source:force:clear",
323
+ "tracking:source:clear:force",
324
+ "force:tracking:clear:source",
325
+ "tracking:force:clear:source",
326
+ "tracking:clear:force:source",
327
+ "tracking:clear:source:force",
328
+ "force:source:clear:tracking",
329
+ "source:force:clear:tracking",
330
+ "source:clear:force:tracking",
331
+ "source:clear:tracking:force",
332
+ "force:clear:source:tracking",
333
+ "clear:force:source:tracking",
334
+ "clear:source:force:tracking",
335
+ "clear:source:tracking:force",
336
+ "force:clear:tracking:source",
337
+ "clear:force:tracking:source",
338
+ "clear:tracking:force:source",
339
+ "clear:tracking:source:force"
235
340
  ],
236
- "aliasPermutations": [],
237
341
  "permutations": [
238
- "project:convert:source-behavior",
239
- "convert:project:source-behavior",
240
- "convert:source-behavior:project",
241
- "project:source-behavior:convert",
242
- "source-behavior:project:convert",
243
- "source-behavior:convert:project"
342
+ "project:delete:tracking",
343
+ "delete:project:tracking",
344
+ "delete:tracking:project",
345
+ "project:tracking:delete",
346
+ "tracking:project:delete",
347
+ "tracking:delete:project"
244
348
  ]
245
349
  },
246
- "project:convert:source": {
350
+ "project:convert:mdapi": {
247
351
  "aliases": [
248
- "force:source:convert"
352
+ "force:mdapi:convert"
249
353
  ],
250
354
  "args": {},
251
355
  "deprecateAliases": true,
252
- "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 --source-dir.",
356
+ "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 \"sf 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 --source-dir.",
253
357
  "examples": [
254
- "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",
255
- "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'"
358
+ "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",
359
+ "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"
256
360
  ],
257
361
  "flags": {
258
362
  "json": {
@@ -277,7 +381,6 @@
277
381
  "deprecateAliases": true,
278
382
  "description": "Override the api version used for api requests made by this command",
279
383
  "name": "api-version",
280
- "summary": "API Version to use in the generated project's manifest. By default, will use the version from sfdx-project.json",
281
384
  "hasDynamicHelp": false,
282
385
  "multiple": false,
283
386
  "type": "option"
@@ -299,7 +402,8 @@
299
402
  "char": "r",
300
403
  "deprecateAliases": true,
301
404
  "name": "root-dir",
302
- "summary": "Source directory other than the default package to convert.",
405
+ "required": true,
406
+ "summary": "Root directory that contains the Metadata API–formatted metadata.",
303
407
  "hasDynamicHelp": false,
304
408
  "multiple": false,
305
409
  "type": "option"
@@ -311,20 +415,7 @@
311
415
  "char": "d",
312
416
  "deprecateAliases": true,
313
417
  "name": "output-dir",
314
- "summary": "Output directory to store the Metadata API–formatted files in.",
315
- "default": "metadataPackage_>timestamp<",
316
- "hasDynamicHelp": true,
317
- "multiple": false,
318
- "type": "option"
319
- },
320
- "package-name": {
321
- "aliases": [
322
- "packagename"
323
- ],
324
- "char": "n",
325
- "deprecateAliases": true,
326
- "name": "package-name",
327
- "summary": "Name of the package to associate with the metadata-formatted files.",
418
+ "summary": "Directory to store your files in after they’re converted to source format; can be an absolute or relative path.",
328
419
  "hasDynamicHelp": false,
329
420
  "multiple": false,
330
421
  "type": "option"
@@ -333,24 +424,24 @@
333
424
  "char": "x",
334
425
  "description": "If you specify this flag, don’t specify --metadata or --source-dir.",
335
426
  "name": "manifest",
336
- "summary": "Path to the manifest (package.xml) file that specifies the metadata types to convert.",
427
+ "summary": "File path to manifest (package.xml) of metadata types to convert.",
337
428
  "hasDynamicHelp": false,
338
429
  "multiple": false,
339
430
  "type": "option"
340
431
  },
341
- "source-dir": {
432
+ "metadata-dir": {
342
433
  "aliases": [
343
- "sourcepath"
434
+ "metadatapath"
344
435
  ],
345
436
  "char": "p",
346
437
  "deprecateAliases": true,
347
- "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.",
438
+ "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.",
348
439
  "exclusive": [
349
440
  "manifest",
350
441
  "metadata"
351
442
  ],
352
- "name": "source-dir",
353
- "summary": "Paths to the local source files to convert.",
443
+ "name": "metadata-dir",
444
+ "summary": "Root of directory or zip file of metadata formatted files to convert.",
354
445
  "delimiter": ",",
355
446
  "hasDynamicHelp": false,
356
447
  "multiple": true,
@@ -360,7 +451,7 @@
360
451
  "char": "m",
361
452
  "exclusive": [
362
453
  "manifest",
363
- "sourcepath"
454
+ "metadatapath"
364
455
  ],
365
456
  "name": "metadata",
366
457
  "summary": "Metadata component names to convert.",
@@ -370,14 +461,14 @@
370
461
  "type": "option"
371
462
  }
372
463
  },
373
- "hasDynamicHelp": true,
464
+ "hasDynamicHelp": false,
374
465
  "hiddenAliases": [],
375
- "id": "project:convert:source",
466
+ "id": "project:convert:mdapi",
376
467
  "pluginAlias": "@salesforce/plugin-deploy-retrieve",
377
468
  "pluginName": "@salesforce/plugin-deploy-retrieve",
378
469
  "pluginType": "core",
379
470
  "strict": true,
380
- "summary": "Convert source-formatted files into metadata that you can deploy using Metadata API.",
471
+ "summary": "Convert metadata retrieved via Metadata API into the source format used in Salesforce DX projects.",
381
472
  "enableJsonFlag": true,
382
473
  "requiresProject": true,
383
474
  "isESM": true,
@@ -386,37 +477,129 @@
386
477
  "commands",
387
478
  "project",
388
479
  "convert",
389
- "source.js"
480
+ "mdapi.js"
390
481
  ],
391
482
  "aliasPermutations": [
392
- "force:source:convert",
393
- "source:force:convert",
394
- "source:convert:force",
395
- "force:convert:source",
396
- "convert:force:source",
397
- "convert:source:force"
483
+ "force:mdapi:convert",
484
+ "mdapi:force:convert",
485
+ "mdapi:convert:force",
486
+ "force:convert:mdapi",
487
+ "convert:force:mdapi",
488
+ "convert:mdapi:force"
398
489
  ],
399
490
  "permutations": [
400
- "project:convert:source",
401
- "convert:project:source",
402
- "convert:source:project",
403
- "project:source:convert",
404
- "source:project:convert",
405
- "source:convert:project"
491
+ "project:convert:mdapi",
492
+ "convert:project:mdapi",
493
+ "convert:mdapi:project",
494
+ "project:mdapi:convert",
495
+ "mdapi:project:convert",
496
+ "mdapi:convert:project"
406
497
  ]
407
498
  },
408
- "project:delete:source": {
499
+ "project:convert:source-behavior": {
500
+ "aliases": [],
501
+ "args": {},
502
+ "description": "Specifically, this command updates the \"sourceBehaviorOption\" option in the \"sfdx-project.json\" file and then converts the associated local source files in your project as needed.\n\nFor example, run this command with the \"--behavior decomposePermissionSetBeta\" flag to start decomposing permission sets when you deploy or retrieve them. Decomposing means breaking up the monolithic metadata API format XML file that corresponds to a metadata component into smaller XML files and directories based on its subtypes. Permission sets are not decomposed by default; you must opt-in to start decomposing them by using this command. When the command finishes, your \"sfdx-project.json\" file is updated to always decompose permission sets, and the existing permission set files in your local package directories are converted into the new decomposed format. You run this command only once for a given behavior change.\n\nFor more information about the possible values for the --behavior flag, see the \"sourceBehaviorOptions\" section in the https://developer.salesforce.com/docs/atlas.en-us.sfdx_dev.meta/sfdx_dev/sfdx_dev_ws_config.htm topic.",
503
+ "examples": [
504
+ "Update your Salesforce DX project to decompose custom permission sets:\n<%= config.bin %> <%= command.id %> --behavior decomposePermissionSetBeta",
505
+ "Display what the command would do, but don't change any existing files:\n<%= config.bin %> <%= command.id %> --behavior decomposePermissionSetBeta --dry-run",
506
+ "Keep the temporary directory that contains the interim metadata API formatted files:\n<%= config.bin %> <%= command.id %> --behavior decomposePermissionSetBeta --dry-run --preserve-temp-dir"
507
+ ],
508
+ "flags": {
509
+ "json": {
510
+ "description": "Format output as json.",
511
+ "helpGroup": "GLOBAL",
512
+ "name": "json",
513
+ "allowNo": false,
514
+ "type": "boolean"
515
+ },
516
+ "flags-dir": {
517
+ "helpGroup": "GLOBAL",
518
+ "name": "flags-dir",
519
+ "summary": "Import flag values from a directory.",
520
+ "hasDynamicHelp": false,
521
+ "multiple": false,
522
+ "type": "option"
523
+ },
524
+ "behavior": {
525
+ "char": "b",
526
+ "name": "behavior",
527
+ "required": true,
528
+ "summary": "Behavior to enable; the values correspond to the possible values of the \"sourceBehaviorOption\" option in the \"sfdx-project.json\" file.",
529
+ "hasDynamicHelp": false,
530
+ "multiple": false,
531
+ "options": [
532
+ "decomposeCustomLabelsBeta2",
533
+ "decomposeCustomLabelsBeta",
534
+ "decomposePermissionSetBeta",
535
+ "decomposePermissionSetBeta2",
536
+ "decomposeSharingRulesBeta",
537
+ "decomposeWorkflowBeta",
538
+ "decomposeExternalServiceRegistrationBeta"
539
+ ],
540
+ "type": "option"
541
+ },
542
+ "dry-run": {
543
+ "name": "dry-run",
544
+ "summary": "Display what the command would do, but don't make any actual changes.",
545
+ "allowNo": false,
546
+ "type": "boolean"
547
+ },
548
+ "preserve-temp-dir": {
549
+ "name": "preserve-temp-dir",
550
+ "summary": "Don't delete the metadata API format temporary directory that this command creates. Useful for debugging.",
551
+ "allowNo": false,
552
+ "type": "boolean"
553
+ },
554
+ "target-org": {
555
+ "char": "o",
556
+ "name": "target-org",
557
+ "noCacheDefault": true,
558
+ "summary": "Username or alias of the target org.",
559
+ "hasDynamicHelp": true,
560
+ "multiple": false,
561
+ "type": "option"
562
+ }
563
+ },
564
+ "hasDynamicHelp": true,
565
+ "hiddenAliases": [],
566
+ "id": "project:convert:source-behavior",
567
+ "pluginAlias": "@salesforce/plugin-deploy-retrieve",
568
+ "pluginName": "@salesforce/plugin-deploy-retrieve",
569
+ "pluginType": "core",
570
+ "state": "beta",
571
+ "strict": true,
572
+ "summary": "Enable a behavior of your project source files, and then update your Salesforce DX project to implement the behavior.",
573
+ "enableJsonFlag": true,
574
+ "requiresProject": true,
575
+ "isESM": true,
576
+ "relativePath": [
577
+ "lib",
578
+ "commands",
579
+ "project",
580
+ "convert",
581
+ "source-behavior.js"
582
+ ],
583
+ "aliasPermutations": [],
584
+ "permutations": [
585
+ "project:convert:source-behavior",
586
+ "convert:project:source-behavior",
587
+ "convert:source-behavior:project",
588
+ "project:source-behavior:convert",
589
+ "source-behavior:project:convert",
590
+ "source-behavior:convert:project"
591
+ ]
592
+ },
593
+ "project:convert:source": {
409
594
  "aliases": [
410
- "force:source:delete"
595
+ "force:source:convert"
411
596
  ],
412
597
  "args": {},
413
598
  "deprecateAliases": true,
414
- "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 --source-dir.",
599
+ "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 --source-dir.",
415
600
  "examples": [
416
- "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",
417
- "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",
418
- "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",
419
- "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"
601
+ "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",
602
+ "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'"
420
603
  ],
421
604
  "flags": {
422
605
  "json": {
@@ -441,6 +624,7 @@
441
624
  "deprecateAliases": true,
442
625
  "description": "Override the api version used for api requests made by this command",
443
626
  "name": "api-version",
627
+ "summary": "API Version to use in the generated project's manifest. By default, will use the version from sfdx-project.json",
444
628
  "hasDynamicHelp": false,
445
629
  "multiple": false,
446
630
  "type": "option"
@@ -455,90 +639,50 @@
455
639
  "multiple": false,
456
640
  "type": "option"
457
641
  },
458
- "target-org": {
642
+ "root-dir": {
459
643
  "aliases": [
460
- "targetusername",
461
- "u"
644
+ "rootdir"
462
645
  ],
463
- "char": "o",
646
+ "char": "r",
464
647
  "deprecateAliases": true,
465
- "name": "target-org",
466
- "noCacheDefault": true,
467
- "required": true,
468
- "summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
469
- "hasDynamicHelp": true,
648
+ "name": "root-dir",
649
+ "summary": "Source directory other than the default package to convert.",
650
+ "hasDynamicHelp": false,
470
651
  "multiple": false,
471
652
  "type": "option"
472
653
  },
473
- "check-only": {
654
+ "output-dir": {
474
655
  "aliases": [
475
- "checkonly"
656
+ "outputdir"
476
657
  ],
477
- "char": "c",
658
+ "char": "d",
478
659
  "deprecateAliases": true,
479
- "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 --check-only flag 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.",
480
- "name": "check-only",
481
- "summary": "Validate delete command but don't delete anything from the org or the local project.",
482
- "allowNo": false,
483
- "type": "boolean"
484
- },
485
- "wait": {
486
- "char": "w",
487
- "description": "If the command continues to run after the wait period, the CLI returns control of the terminal window to you.",
488
- "name": "wait",
489
- "summary": "Number of minutes to wait for the command to finish.",
660
+ "name": "output-dir",
661
+ "summary": "Output directory to store the Metadata API–formatted files in.",
662
+ "default": "metadataPackage_>timestamp<",
490
663
  "hasDynamicHelp": true,
491
664
  "multiple": false,
492
665
  "type": "option"
493
666
  },
494
- "tests": {
495
- "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\"",
496
- "helpGroup": "Test",
497
- "name": "tests",
498
- "summary": "Apex tests to run when --test-level is RunSpecifiedTests.",
499
- "hasDynamicHelp": false,
500
- "multiple": true,
501
- "type": "option"
502
- },
503
- "test-level": {
667
+ "package-name": {
504
668
  "aliases": [
505
- "testlevel"
669
+ "packagename"
506
670
  ],
507
- "char": "l",
671
+ "char": "n",
508
672
  "deprecateAliases": true,
509
- "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.",
510
- "helpGroup": "Test",
511
- "name": "test-level",
512
- "summary": "Deployment Apex testing level.",
673
+ "name": "package-name",
674
+ "summary": "Name of the package to associate with the metadata-formatted files.",
513
675
  "hasDynamicHelp": false,
514
676
  "multiple": false,
515
- "options": [
516
- "NoTestRun",
517
- "RunSpecifiedTests",
518
- "RunLocalTests",
519
- "RunAllTestsInOrg"
520
- ],
521
677
  "type": "option"
522
678
  },
523
- "no-prompt": {
524
- "aliases": [
525
- "noprompt"
526
- ],
527
- "char": "r",
528
- "deprecateAliases": true,
529
- "name": "no-prompt",
530
- "summary": "Don't prompt for delete confirmation.",
531
- "allowNo": false,
532
- "type": "boolean"
533
- },
534
- "metadata": {
535
- "char": "m",
536
- "description": "If you specify this flag, don’t specify --source-dir.",
537
- "name": "metadata",
538
- "summary": "Metadata components to delete.",
539
- "delimiter": ",",
679
+ "manifest": {
680
+ "char": "x",
681
+ "description": "If you specify this flag, don’t specify --metadata or --source-dir.",
682
+ "name": "manifest",
683
+ "summary": "Path to the manifest (package.xml) file that specifies the metadata types to convert.",
540
684
  "hasDynamicHelp": false,
541
- "multiple": true,
685
+ "multiple": false,
542
686
  "type": "option"
543
687
  },
544
688
  "source-dir": {
@@ -547,57 +691,40 @@
547
691
  ],
548
692
  "char": "p",
549
693
  "deprecateAliases": true,
550
- "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 flag, don’t specify --metadata.",
694
+ "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.",
695
+ "exclusive": [
696
+ "manifest",
697
+ "metadata"
698
+ ],
551
699
  "name": "source-dir",
552
- "summary": "Source file paths to delete.",
700
+ "summary": "Paths to the local source files to convert.",
553
701
  "delimiter": ",",
554
702
  "hasDynamicHelp": false,
555
703
  "multiple": true,
556
704
  "type": "option"
557
705
  },
558
- "track-source": {
559
- "aliases": [
560
- "tracksource"
561
- ],
562
- "char": "t",
563
- "deprecateAliases": true,
706
+ "metadata": {
707
+ "char": "m",
564
708
  "exclusive": [
565
- "check-only"
566
- ],
567
- "name": "track-source",
568
- "summary": "If the delete succeeds, update the source tracking information.",
569
- "allowNo": false,
570
- "type": "boolean"
571
- },
572
- "force-overwrite": {
573
- "aliases": [
574
- "forceoverwrite"
575
- ],
576
- "char": "f",
577
- "dependsOn": [
578
- "track-source"
709
+ "manifest",
710
+ "sourcepath"
579
711
  ],
580
- "deprecateAliases": true,
581
- "name": "force-overwrite",
582
- "summary": "Ignore conflict warnings and overwrite changes to the org.",
583
- "allowNo": false,
584
- "type": "boolean"
585
- },
586
- "verbose": {
587
- "name": "verbose",
588
- "summary": "Verbose output of the delete result.",
589
- "allowNo": false,
590
- "type": "boolean"
712
+ "name": "metadata",
713
+ "summary": "Metadata component names to convert.",
714
+ "delimiter": ",",
715
+ "hasDynamicHelp": false,
716
+ "multiple": true,
717
+ "type": "option"
591
718
  }
592
719
  },
593
720
  "hasDynamicHelp": true,
594
721
  "hiddenAliases": [],
595
- "id": "project:delete:source",
722
+ "id": "project:convert:source",
596
723
  "pluginAlias": "@salesforce/plugin-deploy-retrieve",
597
724
  "pluginName": "@salesforce/plugin-deploy-retrieve",
598
725
  "pluginType": "core",
599
726
  "strict": true,
600
- "summary": "Delete source from your project and from a non-source-tracked org.",
727
+ "summary": "Convert source-formatted files into metadata that you can deploy using Metadata API.",
601
728
  "enableJsonFlag": true,
602
729
  "requiresProject": true,
603
730
  "isESM": true,
@@ -605,35 +732,40 @@
605
732
  "lib",
606
733
  "commands",
607
734
  "project",
608
- "delete",
735
+ "convert",
609
736
  "source.js"
610
737
  ],
611
738
  "aliasPermutations": [
612
- "force:source:delete",
613
- "source:force:delete",
614
- "source:delete:force",
615
- "force:delete:source",
616
- "delete:force:source",
617
- "delete:source:force"
739
+ "force:source:convert",
740
+ "source:force:convert",
741
+ "source:convert:force",
742
+ "force:convert:source",
743
+ "convert:force:source",
744
+ "convert:source:force"
618
745
  ],
619
746
  "permutations": [
620
- "project:delete:source",
621
- "delete:project:source",
622
- "delete:source:project",
623
- "project:source:delete",
624
- "source:project:delete",
625
- "source:delete:project"
747
+ "project:convert:source",
748
+ "convert:project:source",
749
+ "convert:source:project",
750
+ "project:source:convert",
751
+ "source:project:convert",
752
+ "source:convert:project"
626
753
  ]
627
754
  },
628
- "project:delete:tracking": {
755
+ "project:generate:manifest": {
629
756
  "aliases": [
630
- "force:source:tracking:clear"
757
+ "force:source:manifest:create"
631
758
  ],
632
759
  "args": {},
633
760
  "deprecateAliases": true,
634
- "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.",
761
+ "description": "Create a manifest from a list of metadata components (--metadata) or from one or more local directories that contain source files (--source-dir). You can specify either of these flags, not both.\n\nUse --type to specify the type of manifest you want to create. The resulting manifest files have specific names, such as the standard package.xml or destructiveChanges.xml to delete metadata. Valid values for this flag, and their respective file names, are:\n\n * package : package.xml (default)\n * pre : destructiveChangesPre.xml\n * post : destructiveChangesPost.xml\n * destroy : destructiveChanges.xml\n\nSee https://developer.salesforce.com/docs/atlas.en-us.api_meta.meta/api_meta/meta_deploy_deleting_files.htm for information about these destructive manifest files.\n\nUse --name to specify a custom name for the generated manifest if the pre-defined ones don’t suit your needs. You can specify either --type or --name, but not both.\n\nTo include 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 --include-packages and --source-dir.\n\nTo build a manifest from the metadata in an org, use the --from-org flag. You can combine --from-org with the --metadata flag to include only certain metadata types, or with the --excluded-metadata flag to exclude certain metadata types. When building a manifest from an org, the command makes many concurrent API calls to discover the metadata that exists in the org. To limit the number of concurrent requests, use the SF_LIST_METADATA_BATCH_SIZE environment variable and set it to a size that works best for your org and environment. If you experience timeouts or inconsistent manifest contents, then setting this environment variable can improve accuracy. However, the command takes longer to run because it sends fewer requests at a time.",
635
762
  "examples": [
636
- "Delete local source tracking for the org with alias \"my-scratch\":\n$ <%= config.bin %> <%= command.id %> --target-org my-scratch"
763
+ "Create a manifest for deploying or retrieving all Apex classes and custom objects:\n$ <%= config.bin %> <%= command.id %> --metadata ApexClass --metadata CustomObject",
764
+ "Create a manifest for deleting the specified Apex class:\n$ <%= config.bin %> <%= command.id %> --metadata ApexClass:MyApexClass --type destroy",
765
+ "Create a manifest for deploying or retrieving all the metadata components in the specified local directory; name the file myNewManifest.xml:\n$ <%= config.bin %> <%= command.id %> --source-dir force-app --name myNewManifest",
766
+ "Create a manifest from the metadata components in the specified org and include metadata in any unlocked packages:\n$ <%= config.bin %> <%= command.id %> --from-org test@myorg.com --include-packages unlocked",
767
+ "Create a manifest from specific metadata types in an org:\n$ <%= config.bin %> <%= command.id %> --from-org test@myorg.com --metadata ApexClass,CustomObject,CustomLabels",
768
+ "Create a manifest from all metadata components in an org excluding specific metadata types:\n$ <%= config.bin %> <%= command.id %> --from-org test@myorg.com --excluded-metadata StandardValueSet"
637
769
  ],
638
770
  "flags": {
639
771
  "json": {
@@ -672,41 +804,137 @@
672
804
  "multiple": false,
673
805
  "type": "option"
674
806
  },
675
- "target-org": {
807
+ "metadata": {
808
+ "char": "m",
809
+ "name": "metadata",
810
+ "summary": "Names of metadata components to include in the manifest.",
811
+ "delimiter": ",",
812
+ "hasDynamicHelp": false,
813
+ "multiple": true,
814
+ "type": "option"
815
+ },
816
+ "source-dir": {
676
817
  "aliases": [
677
- "targetusername",
678
- "u"
818
+ "sourcepath"
679
819
  ],
680
- "char": "o",
820
+ "char": "p",
681
821
  "deprecateAliases": true,
682
- "name": "target-org",
683
- "noCacheDefault": true,
684
- "required": true,
685
- "summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
686
- "hasDynamicHelp": true,
822
+ "name": "source-dir",
823
+ "summary": "Paths to the local source files to include in the manifest.",
824
+ "delimiter": ",",
825
+ "hasDynamicHelp": false,
826
+ "multiple": true,
827
+ "type": "option"
828
+ },
829
+ "name": {
830
+ "aliases": [
831
+ "manifestname"
832
+ ],
833
+ "char": "n",
834
+ "deprecateAliases": true,
835
+ "exclusive": [
836
+ "type"
837
+ ],
838
+ "name": "name",
839
+ "summary": "Name of a custom manifest file to create.",
840
+ "hasDynamicHelp": false,
687
841
  "multiple": false,
688
842
  "type": "option"
689
843
  },
690
- "no-prompt": {
844
+ "type": {
691
845
  "aliases": [
692
- "noprompt"
846
+ "manifesttype"
693
847
  ],
694
- "char": "p",
848
+ "char": "t",
695
849
  "deprecateAliases": true,
696
- "name": "no-prompt",
697
- "summary": "Don't prompt for source tracking override confirmation.",
698
- "allowNo": false,
699
- "type": "boolean"
850
+ "exclusive": [
851
+ "name"
852
+ ],
853
+ "name": "type",
854
+ "summary": "Type of manifest to create; the type determines the name of the created file.",
855
+ "hasDynamicHelp": false,
856
+ "multiple": false,
857
+ "options": [
858
+ "pre",
859
+ "post",
860
+ "destroy",
861
+ "package"
862
+ ],
863
+ "type": "option"
864
+ },
865
+ "include-packages": {
866
+ "aliases": [
867
+ "includepackages"
868
+ ],
869
+ "char": "c",
870
+ "dependsOn": [
871
+ "from-org"
872
+ ],
873
+ "deprecateAliases": true,
874
+ "name": "include-packages",
875
+ "summary": "Package types (managed, unlocked) whose metadata is included in the manifest; by default, metadata in managed and unlocked packages is excluded. Metadata in unmanaged packages is always included.",
876
+ "delimiter": ",",
877
+ "hasDynamicHelp": false,
878
+ "multiple": true,
879
+ "options": [
880
+ "managed",
881
+ "unlocked"
882
+ ],
883
+ "type": "option"
884
+ },
885
+ "excluded-metadata": {
886
+ "name": "excluded-metadata",
887
+ "relationships": [
888
+ {
889
+ "type": "some",
890
+ "flags": [
891
+ "from-org",
892
+ "source-dir"
893
+ ]
894
+ }
895
+ ],
896
+ "summary": "Metadata types to exclude when building a manifest from an org. Specify the name of the type, not the name of a specific component.",
897
+ "delimiter": ",",
898
+ "hasDynamicHelp": false,
899
+ "multiple": true,
900
+ "type": "option"
901
+ },
902
+ "from-org": {
903
+ "aliases": [
904
+ "fromorg"
905
+ ],
906
+ "deprecateAliases": true,
907
+ "exclusive": [
908
+ "source-dir"
909
+ ],
910
+ "name": "from-org",
911
+ "summary": "Username or alias of the org that contains the metadata components from which to build a manifest.",
912
+ "hasDynamicHelp": false,
913
+ "multiple": false,
914
+ "type": "option"
915
+ },
916
+ "output-dir": {
917
+ "aliases": [
918
+ "outputdir",
919
+ "o"
920
+ ],
921
+ "char": "d",
922
+ "deprecateAliases": true,
923
+ "name": "output-dir",
924
+ "summary": "Directory to save the created manifest.",
925
+ "hasDynamicHelp": false,
926
+ "multiple": false,
927
+ "type": "option"
700
928
  }
701
929
  },
702
- "hasDynamicHelp": true,
930
+ "hasDynamicHelp": false,
703
931
  "hiddenAliases": [],
704
- "id": "project:delete:tracking",
932
+ "id": "project:generate:manifest",
705
933
  "pluginAlias": "@salesforce/plugin-deploy-retrieve",
706
934
  "pluginName": "@salesforce/plugin-deploy-retrieve",
707
935
  "pluginType": "core",
708
936
  "strict": true,
709
- "summary": "Delete all local source tracking information.",
937
+ "summary": "Create a project manifest that lists the metadata components you want to deploy or retrieve.",
710
938
  "enableJsonFlag": true,
711
939
  "requiresProject": true,
712
940
  "isESM": true,
@@ -714,42 +942,42 @@
714
942
  "lib",
715
943
  "commands",
716
944
  "project",
717
- "delete",
718
- "tracking.js"
945
+ "generate",
946
+ "manifest.js"
719
947
  ],
720
948
  "aliasPermutations": [
721
- "force:source:tracking:clear",
722
- "source:force:tracking:clear",
723
- "source:tracking:force:clear",
724
- "source:tracking:clear:force",
725
- "force:tracking:source:clear",
726
- "tracking:force:source:clear",
727
- "tracking:source:force:clear",
728
- "tracking:source:clear:force",
729
- "force:tracking:clear:source",
730
- "tracking:force:clear:source",
731
- "tracking:clear:force:source",
732
- "tracking:clear:source:force",
733
- "force:source:clear:tracking",
734
- "source:force:clear:tracking",
735
- "source:clear:force:tracking",
736
- "source:clear:tracking:force",
737
- "force:clear:source:tracking",
738
- "clear:force:source:tracking",
739
- "clear:source:force:tracking",
740
- "clear:source:tracking:force",
741
- "force:clear:tracking:source",
742
- "clear:force:tracking:source",
743
- "clear:tracking:force:source",
744
- "clear:tracking:source:force"
949
+ "force:source:manifest:create",
950
+ "source:force:manifest:create",
951
+ "source:manifest:force:create",
952
+ "source:manifest:create:force",
953
+ "force:manifest:source:create",
954
+ "manifest:force:source:create",
955
+ "manifest:source:force:create",
956
+ "manifest:source:create:force",
957
+ "force:manifest:create:source",
958
+ "manifest:force:create:source",
959
+ "manifest:create:force:source",
960
+ "manifest:create:source:force",
961
+ "force:source:create:manifest",
962
+ "source:force:create:manifest",
963
+ "source:create:force:manifest",
964
+ "source:create:manifest:force",
965
+ "force:create:source:manifest",
966
+ "create:force:source:manifest",
967
+ "create:source:force:manifest",
968
+ "create:source:manifest:force",
969
+ "force:create:manifest:source",
970
+ "create:force:manifest:source",
971
+ "create:manifest:force:source",
972
+ "create:manifest:source:force"
745
973
  ],
746
974
  "permutations": [
747
- "project:delete:tracking",
748
- "delete:project:tracking",
749
- "delete:tracking:project",
750
- "project:tracking:delete",
751
- "tracking:project:delete",
752
- "tracking:delete:project"
975
+ "project:generate:manifest",
976
+ "generate:project:manifest",
977
+ "generate:manifest:project",
978
+ "project:manifest:generate",
979
+ "manifest:project:generate",
980
+ "manifest:generate:project"
753
981
  ]
754
982
  },
755
983
  "project:deploy:cancel": {
@@ -2247,234 +2475,6 @@
2247
2475
  "validate:deploy:project"
2248
2476
  ]
2249
2477
  },
2250
- "project:generate:manifest": {
2251
- "aliases": [
2252
- "force:source:manifest:create"
2253
- ],
2254
- "args": {},
2255
- "deprecateAliases": true,
2256
- "description": "Create a manifest from a list of metadata components (--metadata) or from one or more local directories that contain source files (--source-dir). You can specify either of these flags, not both.\n\nUse --type to specify the type of manifest you want to create. The resulting manifest files have specific names, such as the standard package.xml or destructiveChanges.xml to delete metadata. Valid values for this flag, and their respective file names, are:\n\n * package : package.xml (default)\n * pre : destructiveChangesPre.xml\n * post : destructiveChangesPost.xml\n * destroy : destructiveChanges.xml\n\nSee https://developer.salesforce.com/docs/atlas.en-us.api_meta.meta/api_meta/meta_deploy_deleting_files.htm for information about these destructive manifest files.\n\nUse --name to specify a custom name for the generated manifest if the pre-defined ones don’t suit your needs. You can specify either --type or --name, but not both.\n\nTo include 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 --include-packages and --source-dir.\n\nTo build a manifest from the metadata in an org, use the --from-org flag. You can combine --from-org with the --metadata flag to include only certain metadata types, or with the --excluded-metadata flag to exclude certain metadata types. When building a manifest from an org, the command makes many concurrent API calls to discover the metadata that exists in the org. To limit the number of concurrent requests, use the SF_LIST_METADATA_BATCH_SIZE environment variable and set it to a size that works best for your org and environment. If you experience timeouts or inconsistent manifest contents, then setting this environment variable can improve accuracy. However, the command takes longer to run because it sends fewer requests at a time.",
2257
- "examples": [
2258
- "Create a manifest for deploying or retrieving all Apex classes and custom objects:\n$ <%= config.bin %> <%= command.id %> --metadata ApexClass --metadata CustomObject",
2259
- "Create a manifest for deleting the specified Apex class:\n$ <%= config.bin %> <%= command.id %> --metadata ApexClass:MyApexClass --type destroy",
2260
- "Create a manifest for deploying or retrieving all the metadata components in the specified local directory; name the file myNewManifest.xml:\n$ <%= config.bin %> <%= command.id %> --source-dir force-app --name myNewManifest",
2261
- "Create a manifest from the metadata components in the specified org and include metadata in any unlocked packages:\n$ <%= config.bin %> <%= command.id %> --from-org test@myorg.com --include-packages unlocked",
2262
- "Create a manifest from specific metadata types in an org:\n$ <%= config.bin %> <%= command.id %> --from-org test@myorg.com --metadata ApexClass,CustomObject,CustomLabels",
2263
- "Create a manifest from all metadata components in an org excluding specific metadata types:\n$ <%= config.bin %> <%= command.id %> --from-org test@myorg.com --excluded-metadata StandardValueSet"
2264
- ],
2265
- "flags": {
2266
- "json": {
2267
- "description": "Format output as json.",
2268
- "helpGroup": "GLOBAL",
2269
- "name": "json",
2270
- "allowNo": false,
2271
- "type": "boolean"
2272
- },
2273
- "flags-dir": {
2274
- "helpGroup": "GLOBAL",
2275
- "name": "flags-dir",
2276
- "summary": "Import flag values from a directory.",
2277
- "hasDynamicHelp": false,
2278
- "multiple": false,
2279
- "type": "option"
2280
- },
2281
- "api-version": {
2282
- "aliases": [
2283
- "apiversion"
2284
- ],
2285
- "deprecateAliases": true,
2286
- "description": "Override the api version used for api requests made by this command",
2287
- "name": "api-version",
2288
- "hasDynamicHelp": false,
2289
- "multiple": false,
2290
- "type": "option"
2291
- },
2292
- "loglevel": {
2293
- "deprecated": {
2294
- "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."
2295
- },
2296
- "hidden": true,
2297
- "name": "loglevel",
2298
- "hasDynamicHelp": false,
2299
- "multiple": false,
2300
- "type": "option"
2301
- },
2302
- "metadata": {
2303
- "char": "m",
2304
- "name": "metadata",
2305
- "summary": "Names of metadata components to include in the manifest.",
2306
- "delimiter": ",",
2307
- "hasDynamicHelp": false,
2308
- "multiple": true,
2309
- "type": "option"
2310
- },
2311
- "source-dir": {
2312
- "aliases": [
2313
- "sourcepath"
2314
- ],
2315
- "char": "p",
2316
- "deprecateAliases": true,
2317
- "name": "source-dir",
2318
- "summary": "Paths to the local source files to include in the manifest.",
2319
- "delimiter": ",",
2320
- "hasDynamicHelp": false,
2321
- "multiple": true,
2322
- "type": "option"
2323
- },
2324
- "name": {
2325
- "aliases": [
2326
- "manifestname"
2327
- ],
2328
- "char": "n",
2329
- "deprecateAliases": true,
2330
- "exclusive": [
2331
- "type"
2332
- ],
2333
- "name": "name",
2334
- "summary": "Name of a custom manifest file to create.",
2335
- "hasDynamicHelp": false,
2336
- "multiple": false,
2337
- "type": "option"
2338
- },
2339
- "type": {
2340
- "aliases": [
2341
- "manifesttype"
2342
- ],
2343
- "char": "t",
2344
- "deprecateAliases": true,
2345
- "exclusive": [
2346
- "name"
2347
- ],
2348
- "name": "type",
2349
- "summary": "Type of manifest to create; the type determines the name of the created file.",
2350
- "hasDynamicHelp": false,
2351
- "multiple": false,
2352
- "options": [
2353
- "pre",
2354
- "post",
2355
- "destroy",
2356
- "package"
2357
- ],
2358
- "type": "option"
2359
- },
2360
- "include-packages": {
2361
- "aliases": [
2362
- "includepackages"
2363
- ],
2364
- "char": "c",
2365
- "dependsOn": [
2366
- "from-org"
2367
- ],
2368
- "deprecateAliases": true,
2369
- "name": "include-packages",
2370
- "summary": "Package types (managed, unlocked) whose metadata is included in the manifest; by default, metadata in managed and unlocked packages is excluded. Metadata in unmanaged packages is always included.",
2371
- "delimiter": ",",
2372
- "hasDynamicHelp": false,
2373
- "multiple": true,
2374
- "options": [
2375
- "managed",
2376
- "unlocked"
2377
- ],
2378
- "type": "option"
2379
- },
2380
- "excluded-metadata": {
2381
- "name": "excluded-metadata",
2382
- "relationships": [
2383
- {
2384
- "type": "some",
2385
- "flags": [
2386
- "from-org",
2387
- "source-dir"
2388
- ]
2389
- }
2390
- ],
2391
- "summary": "Metadata types to exclude when building a manifest from an org. Specify the name of the type, not the name of a specific component.",
2392
- "delimiter": ",",
2393
- "hasDynamicHelp": false,
2394
- "multiple": true,
2395
- "type": "option"
2396
- },
2397
- "from-org": {
2398
- "aliases": [
2399
- "fromorg"
2400
- ],
2401
- "deprecateAliases": true,
2402
- "exclusive": [
2403
- "source-dir"
2404
- ],
2405
- "name": "from-org",
2406
- "summary": "Username or alias of the org that contains the metadata components from which to build a manifest.",
2407
- "hasDynamicHelp": false,
2408
- "multiple": false,
2409
- "type": "option"
2410
- },
2411
- "output-dir": {
2412
- "aliases": [
2413
- "outputdir",
2414
- "o"
2415
- ],
2416
- "char": "d",
2417
- "deprecateAliases": true,
2418
- "name": "output-dir",
2419
- "summary": "Directory to save the created manifest.",
2420
- "hasDynamicHelp": false,
2421
- "multiple": false,
2422
- "type": "option"
2423
- }
2424
- },
2425
- "hasDynamicHelp": false,
2426
- "hiddenAliases": [],
2427
- "id": "project:generate:manifest",
2428
- "pluginAlias": "@salesforce/plugin-deploy-retrieve",
2429
- "pluginName": "@salesforce/plugin-deploy-retrieve",
2430
- "pluginType": "core",
2431
- "strict": true,
2432
- "summary": "Create a project manifest that lists the metadata components you want to deploy or retrieve.",
2433
- "enableJsonFlag": true,
2434
- "requiresProject": true,
2435
- "isESM": true,
2436
- "relativePath": [
2437
- "lib",
2438
- "commands",
2439
- "project",
2440
- "generate",
2441
- "manifest.js"
2442
- ],
2443
- "aliasPermutations": [
2444
- "force:source:manifest:create",
2445
- "source:force:manifest:create",
2446
- "source:manifest:force:create",
2447
- "source:manifest:create:force",
2448
- "force:manifest:source:create",
2449
- "manifest:force:source:create",
2450
- "manifest:source:force:create",
2451
- "manifest:source:create:force",
2452
- "force:manifest:create:source",
2453
- "manifest:force:create:source",
2454
- "manifest:create:force:source",
2455
- "manifest:create:source:force",
2456
- "force:source:create:manifest",
2457
- "source:force:create:manifest",
2458
- "source:create:force:manifest",
2459
- "source:create:manifest:force",
2460
- "force:create:source:manifest",
2461
- "create:force:source:manifest",
2462
- "create:source:force:manifest",
2463
- "create:source:manifest:force",
2464
- "force:create:manifest:source",
2465
- "create:force:manifest:source",
2466
- "create:manifest:force:source",
2467
- "create:manifest:source:force"
2468
- ],
2469
- "permutations": [
2470
- "project:generate:manifest",
2471
- "generate:project:manifest",
2472
- "generate:manifest:project",
2473
- "project:manifest:generate",
2474
- "manifest:project:generate",
2475
- "manifest:generate:project"
2476
- ]
2477
- },
2478
2478
  "project:list:ignored": {
2479
2479
  "aliases": [
2480
2480
  "force:source:ignored:list"
@@ -3050,5 +3050,5 @@
3050
3050
  ]
3051
3051
  }
3052
3052
  },
3053
- "version": "3.18.3"
3053
+ "version": "3.19.0"
3054
3054
  }