@salesforce/plugin-deploy-retrieve 3.2.2 → 3.2.3

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.
@@ -202,7 +202,7 @@
202
202
  "deprecateAliases": true,
203
203
  "name": "output-dir",
204
204
  "summary": "Output directory to store the Metadata API–formatted files in.",
205
- "default": "metadataPackage_1705740461637",
205
+ "default": "metadataPackage_1705751269418",
206
206
  "hasDynamicHelp": false,
207
207
  "multiple": false,
208
208
  "type": "option"
@@ -295,18 +295,16 @@
295
295
  "source:convert:project"
296
296
  ]
297
297
  },
298
- "project:delete:source": {
298
+ "project:deploy:cancel": {
299
299
  "aliases": [
300
- "force:source:delete"
300
+ "deploy:metadata:cancel"
301
301
  ],
302
302
  "args": {},
303
303
  "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.",
304
+ "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.",
305
305
  "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"
306
+ "Cancel a deploy operation using a job ID:\n<%= config.bin %> <%= command.id %> --job-id 0Af0x000017yLUFCA2",
307
+ "Cancel the most recent deploy operation:\n<%= config.bin %> <%= command.id %> --use-most-recent"
310
308
  ],
311
309
  "flags": {
312
310
  "json": {
@@ -316,174 +314,175 @@
316
314
  "allowNo": false,
317
315
  "type": "boolean"
318
316
  },
319
- "api-version": {
320
- "aliases": [
321
- "apiversion"
317
+ "async": {
318
+ "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\".",
319
+ "exclusive": [
320
+ "wait"
322
321
  ],
323
- "deprecateAliases": true,
324
- "description": "Override the api version used for api requests made by this command",
325
- "name": "api-version",
326
- "hasDynamicHelp": false,
327
- "multiple": false,
328
- "type": "option"
322
+ "name": "async",
323
+ "summary": "Run the command asynchronously.",
324
+ "allowNo": false,
325
+ "type": "boolean"
329
326
  },
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",
327
+ "job-id": {
328
+ "char": "i",
329
+ "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.",
330
+ "name": "job-id",
331
+ "summary": "Job ID of the deploy operation you want to cancel.",
336
332
  "hasDynamicHelp": false,
337
333
  "multiple": false,
338
334
  "type": "option"
339
335
  },
340
- "target-org": {
341
- "aliases": [
342
- "targetusername",
343
- "u"
344
- ],
345
- "char": "o",
346
- "deprecateAliases": true,
347
- "name": "target-org",
348
- "noCacheDefault": true,
349
- "required": true,
350
- "summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
351
- "hasDynamicHelp": true,
352
- "multiple": false,
353
- "type": "option"
354
- },
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.",
336
+ "use-most-recent": {
337
+ "char": "r",
338
+ "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.",
339
+ "name": "use-most-recent",
340
+ "summary": "Use the job ID of the most recent deploy operation.",
364
341
  "allowNo": false,
365
342
  "type": "boolean"
366
343
  },
367
344
  "wait": {
368
345
  "char": "w",
369
- "description": "If the command continues to run after the wait period, the CLI returns control of the terminal window to you.",
346
+ "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\".",
347
+ "exclusive": [
348
+ "async"
349
+ ],
370
350
  "name": "wait",
371
- "summary": "Number of minutes to wait for the command to finish.",
372
- "default": {
373
- "quantity": 33,
374
- "unit": 0
375
- },
351
+ "summary": "Number of minutes to wait for the command to complete and display results.",
376
352
  "hasDynamicHelp": false,
353
+ "helpValue": "<minutes>",
377
354
  "multiple": false,
378
355
  "type": "option"
356
+ }
357
+ },
358
+ "hasDynamicHelp": false,
359
+ "hiddenAliases": [],
360
+ "id": "project:deploy:cancel",
361
+ "pluginAlias": "@salesforce/plugin-deploy-retrieve",
362
+ "pluginName": "@salesforce/plugin-deploy-retrieve",
363
+ "pluginType": "core",
364
+ "strict": true,
365
+ "summary": "Cancel a deploy operation.",
366
+ "enableJsonFlag": true,
367
+ "isESM": true,
368
+ "relativePath": [
369
+ "lib",
370
+ "commands",
371
+ "project",
372
+ "deploy",
373
+ "cancel.js"
374
+ ],
375
+ "aliasPermutations": [
376
+ "deploy:metadata:cancel",
377
+ "metadata:deploy:cancel",
378
+ "metadata:cancel:deploy",
379
+ "deploy:cancel:metadata",
380
+ "cancel:deploy:metadata",
381
+ "cancel:metadata:deploy"
382
+ ],
383
+ "permutations": [
384
+ "project:deploy:cancel",
385
+ "deploy:project:cancel",
386
+ "deploy:cancel:project",
387
+ "project:cancel:deploy",
388
+ "cancel:project:deploy",
389
+ "cancel:deploy:project"
390
+ ]
391
+ },
392
+ "project:deploy:preview": {
393
+ "aliases": [
394
+ "deploy:metadata:preview"
395
+ ],
396
+ "args": {},
397
+ "deprecateAliases": true,
398
+ "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.",
399
+ "examples": [
400
+ "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.",
401
+ "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",
402
+ "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",
403
+ "Preview deployment of a specific Apex class:\n<%= config.bin %> <%= command.id %> --metadata ApexClass:MyApexClass",
404
+ "Preview deployment of all components listed in a manifest:\n<%= config.bin %> <%= command.id %> --manifest path/to/package.xml"
405
+ ],
406
+ "flags": {
407
+ "json": {
408
+ "description": "Format output as json.",
409
+ "helpGroup": "GLOBAL",
410
+ "name": "json",
411
+ "allowNo": false,
412
+ "type": "boolean"
379
413
  },
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"
414
+ "ignore-conflicts": {
415
+ "char": "c",
416
+ "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.",
417
+ "name": "ignore-conflicts",
418
+ "summary": "Don't display conflicts in preview of the deployment.",
419
+ "allowNo": false,
420
+ "type": "boolean"
388
421
  },
389
- "test-level": {
390
- "aliases": [
391
- "testlevel"
422
+ "manifest": {
423
+ "char": "x",
424
+ "description": "All child components are included. If you specify this flag, don’t specify --metadata or --source-dir.",
425
+ "exclusive": [
426
+ "source-dir",
427
+ "metadata"
392
428
  ],
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.",
429
+ "name": "manifest",
430
+ "summary": "Full file path for manifest (package.xml) of components to preview.",
399
431
  "hasDynamicHelp": false,
400
432
  "multiple": false,
401
- "options": [
402
- "NoTestRun",
403
- "RunSpecifiedTests",
404
- "RunLocalTests",
405
- "RunAllTestsInOrg"
406
- ],
407
433
  "type": "option"
408
434
  },
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
435
  "metadata": {
421
436
  "char": "m",
422
- "description": "If you specify this parameter, don’t specify --source-dir.",
437
+ "exclusive": [
438
+ "manifest",
439
+ "source-dir"
440
+ ],
423
441
  "name": "metadata",
424
- "summary": "Metadata components to delete.",
425
- "delimiter": ",",
442
+ "summary": "Metadata component names to preview.",
426
443
  "hasDynamicHelp": false,
427
444
  "multiple": true,
428
445
  "type": "option"
429
446
  },
430
447
  "source-dir": {
431
- "aliases": [
432
- "sourcepath"
448
+ "char": "d",
449
+ "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.",
450
+ "exclusive": [
451
+ "manifest",
452
+ "metadata"
433
453
  ],
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
454
  "name": "source-dir",
438
- "summary": "Source file paths to delete.",
439
- "delimiter": ",",
455
+ "summary": "Path to the local source files to preview.",
440
456
  "hasDynamicHelp": false,
441
457
  "multiple": true,
442
458
  "type": "option"
443
459
  },
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"
460
+ "target-org": {
461
+ "char": "o",
462
+ "description": "Overrides your default org.",
463
+ "name": "target-org",
464
+ "noCacheDefault": true,
465
+ "required": true,
466
+ "summary": "Login username or alias for the target org.",
467
+ "hasDynamicHelp": true,
468
+ "multiple": false,
469
+ "type": "option"
471
470
  },
472
- "verbose": {
473
- "name": "verbose",
474
- "summary": "Verbose output of the delete result.",
471
+ "concise": {
472
+ "name": "concise",
473
+ "summary": "Show only the changes that will be deployed; omits files that are forceignored.",
475
474
  "allowNo": false,
476
475
  "type": "boolean"
477
476
  }
478
477
  },
479
478
  "hasDynamicHelp": true,
480
479
  "hiddenAliases": [],
481
- "id": "project:delete:source",
480
+ "id": "project:deploy:preview",
482
481
  "pluginAlias": "@salesforce/plugin-deploy-retrieve",
483
482
  "pluginName": "@salesforce/plugin-deploy-retrieve",
484
483
  "pluginType": "core",
485
484
  "strict": true,
486
- "summary": "Delete source from your project and from a non-source-tracked org.",
485
+ "summary": "Preview a deployment to see what will deploy to the org, the potential conflicts, and the ignored files.",
487
486
  "enableJsonFlag": true,
488
487
  "requiresProject": true,
489
488
  "isESM": true,
@@ -491,35 +490,36 @@
491
490
  "lib",
492
491
  "commands",
493
492
  "project",
494
- "delete",
495
- "source.js"
493
+ "deploy",
494
+ "preview.js"
496
495
  ],
497
496
  "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"
497
+ "deploy:metadata:preview",
498
+ "metadata:deploy:preview",
499
+ "metadata:preview:deploy",
500
+ "deploy:preview:metadata",
501
+ "preview:deploy:metadata",
502
+ "preview:metadata:deploy"
504
503
  ],
505
504
  "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"
505
+ "project:deploy:preview",
506
+ "deploy:project:preview",
507
+ "deploy:preview:project",
508
+ "project:preview:deploy",
509
+ "preview:project:deploy",
510
+ "preview:deploy:project"
512
511
  ]
513
512
  },
514
- "project:delete:tracking": {
513
+ "project:deploy:quick": {
515
514
  "aliases": [
516
- "force:source:tracking:clear"
515
+ "deploy:metadata:quick"
517
516
  ],
518
517
  "args": {},
519
518
  "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.",
519
+ "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
520
  "examples": [
522
- "Delete local source tracking for the org with alias \"my-scratch\":\n$ <%= config.bin %> <%= command.id %> --target-org my-scratch"
521
+ "Run a quick deploy to your default org using a job ID:\n<%= config.bin %> <%= command.id %> --job-id 0Af0x000017yLUFCA2",
522
+ "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
523
  ],
524
524
  "flags": {
525
525
  "json": {
@@ -529,119 +529,166 @@
529
529
  "allowNo": false,
530
530
  "type": "boolean"
531
531
  },
532
- "api-version": {
533
- "aliases": [
534
- "apiversion"
532
+ "async": {
533
+ "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\".",
534
+ "exclusive": [
535
+ "wait"
535
536
  ],
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"
537
+ "name": "async",
538
+ "summary": "Run the command asynchronously.",
539
+ "allowNo": false,
540
+ "type": "boolean"
542
541
  },
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",
542
+ "concise": {
543
+ "exclusive": [
544
+ "verbose"
545
+ ],
546
+ "name": "concise",
547
+ "summary": "Show concise output of the deploy result.",
548
+ "allowNo": false,
549
+ "type": "boolean"
550
+ },
551
+ "job-id": {
552
+ "char": "i",
553
+ "description": "The job ID is valid for 10 days from when you started the validation.",
554
+ "name": "job-id",
555
+ "summary": "Job ID of the deployment you want to quick deploy.",
549
556
  "hasDynamicHelp": false,
550
557
  "multiple": false,
551
558
  "type": "option"
552
559
  },
553
560
  "target-org": {
554
- "aliases": [
555
- "targetusername",
556
- "u"
557
- ],
558
561
  "char": "o",
559
- "deprecateAliases": true,
562
+ "description": "Overrides your default org.",
560
563
  "name": "target-org",
561
564
  "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.",
565
+ "summary": "Login username or alias for the target org.",
564
566
  "hasDynamicHelp": true,
565
567
  "multiple": false,
566
568
  "type": "option"
567
569
  },
568
- "no-prompt": {
569
- "aliases": [
570
- "noprompt"
570
+ "use-most-recent": {
571
+ "char": "r",
572
+ "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.",
573
+ "name": "use-most-recent",
574
+ "summary": "Use the job ID of the most recently validated deployment.",
575
+ "allowNo": false,
576
+ "type": "boolean"
577
+ },
578
+ "verbose": {
579
+ "exclusive": [
580
+ "concise"
571
581
  ],
572
- "char": "p",
573
- "deprecateAliases": true,
574
- "name": "no-prompt",
575
- "summary": "Don't prompt for source tracking override confirmation.",
582
+ "name": "verbose",
583
+ "summary": "Show verbose output of the deploy result.",
576
584
  "allowNo": false,
577
585
  "type": "boolean"
586
+ },
587
+ "wait": {
588
+ "char": "w",
589
+ "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\".",
590
+ "exclusive": [
591
+ "async"
592
+ ],
593
+ "name": "wait",
594
+ "summary": "Number of minutes to wait for the command to complete and display results.",
595
+ "default": {
596
+ "quantity": 33,
597
+ "unit": 0
598
+ },
599
+ "hasDynamicHelp": false,
600
+ "helpValue": "<minutes>",
601
+ "multiple": false,
602
+ "type": "option"
603
+ },
604
+ "api-version": {
605
+ "char": "a",
606
+ "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.",
607
+ "name": "api-version",
608
+ "summary": "Target API version for the deploy.",
609
+ "hasDynamicHelp": false,
610
+ "multiple": false,
611
+ "type": "option"
578
612
  }
579
613
  },
580
614
  "hasDynamicHelp": true,
581
615
  "hiddenAliases": [],
582
- "id": "project:delete:tracking",
616
+ "id": "project:deploy:quick",
583
617
  "pluginAlias": "@salesforce/plugin-deploy-retrieve",
584
618
  "pluginName": "@salesforce/plugin-deploy-retrieve",
585
619
  "pluginType": "core",
586
620
  "strict": true,
587
- "summary": "Delete all local source tracking information.",
621
+ "summary": "Quickly deploy a validated deployment to an org.",
588
622
  "enableJsonFlag": true,
589
- "requiresProject": true,
623
+ "errorCodes": {
624
+ "header": "ERROR CODES",
625
+ "body": [
626
+ {
627
+ "name": "Succeeded (0)",
628
+ "description": "The deploy succeeded."
629
+ },
630
+ {
631
+ "name": "Canceled (1)",
632
+ "description": "The deploy was canceled."
633
+ },
634
+ {
635
+ "name": "Failed (1)",
636
+ "description": "The deploy failed."
637
+ },
638
+ {
639
+ "name": "SucceededPartial (68)",
640
+ "description": "The deploy partially succeeded."
641
+ },
642
+ {
643
+ "name": "InProgress (69)",
644
+ "description": "The deploy is in progress."
645
+ },
646
+ {
647
+ "name": "Pending (69)",
648
+ "description": "The deploy is pending."
649
+ },
650
+ {
651
+ "name": "Canceling (69)",
652
+ "description": "The deploy is being canceled."
653
+ }
654
+ ]
655
+ },
590
656
  "isESM": true,
591
657
  "relativePath": [
592
658
  "lib",
593
659
  "commands",
594
660
  "project",
595
- "delete",
596
- "tracking.js"
661
+ "deploy",
662
+ "quick.js"
597
663
  ],
598
664
  "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"
665
+ "deploy:metadata:quick",
666
+ "metadata:deploy:quick",
667
+ "metadata:quick:deploy",
668
+ "deploy:quick:metadata",
669
+ "quick:deploy:metadata",
670
+ "quick:metadata:deploy"
623
671
  ],
624
672
  "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"
673
+ "project:deploy:quick",
674
+ "deploy:project:quick",
675
+ "deploy:quick:project",
676
+ "project:quick:deploy",
677
+ "quick:project:deploy",
678
+ "quick:deploy:project"
631
679
  ]
632
680
  },
633
- "project:generate:manifest": {
681
+ "project:deploy:report": {
634
682
  "aliases": [
635
- "force:source:manifest:create"
683
+ "deploy:metadata:report"
636
684
  ],
637
685
  "args": {},
638
686
  "deprecateAliases": true,
639
- "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 parameters, 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 parameter, 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.",
687
+ "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
688
  "examples": [
641
- "Create a manifest for deploying or retrieving all Apex classes and custom objects:\n$ <%= config.bin %> <%= command.id %> --metadata ApexClass --metadata CustomObject",
642
- "Create a manifest for deleting the specified Apex class:\n$ <%= config.bin %> <%= command.id %> --metadata ApexClass:MyApexClass --type destroy",
643
- "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",
644
- "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"
689
+ "Check the status using a job ID:\n<%= config.bin %> <%= command.id %> --job-id 0Af0x000017yLUFCA2",
690
+ "Check the status of the most recent deploy operation:\n<%= config.bin %> <%= command.id %> --use-most-recent",
691
+ "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"
645
692
  ],
646
693
  "flags": {
647
694
  "json": {
@@ -651,193 +698,134 @@
651
698
  "allowNo": false,
652
699
  "type": "boolean"
653
700
  },
654
- "api-version": {
655
- "aliases": [
656
- "apiversion"
657
- ],
658
- "deprecateAliases": true,
659
- "description": "Override the api version used for api requests made by this command",
660
- "name": "api-version",
661
- "hasDynamicHelp": false,
701
+ "target-org": {
702
+ "char": "o",
703
+ "description": "Overrides your default org.",
704
+ "name": "target-org",
705
+ "noCacheDefault": true,
706
+ "summary": "Login username or alias for the target org.",
707
+ "hasDynamicHelp": true,
662
708
  "multiple": false,
663
709
  "type": "option"
664
710
  },
665
- "loglevel": {
666
- "deprecated": {
667
- "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."
668
- },
669
- "hidden": true,
670
- "name": "loglevel",
711
+ "job-id": {
712
+ "char": "i",
713
+ "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.",
714
+ "name": "job-id",
715
+ "summary": "Job ID of the deploy operation you want to check the status of.",
671
716
  "hasDynamicHelp": false,
672
717
  "multiple": false,
673
718
  "type": "option"
674
719
  },
675
- "metadata": {
676
- "char": "m",
677
- "name": "metadata",
678
- "summary": "Names of metadata components to include in the manifest.",
679
- "delimiter": ",",
680
- "hasDynamicHelp": false,
681
- "multiple": true,
682
- "type": "option"
720
+ "use-most-recent": {
721
+ "char": "r",
722
+ "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.",
723
+ "name": "use-most-recent",
724
+ "summary": "Use the job ID of the most recent deploy operation.",
725
+ "allowNo": false,
726
+ "type": "boolean"
683
727
  },
684
- "source-dir": {
685
- "aliases": [
686
- "sourcepath"
687
- ],
688
- "char": "p",
689
- "deprecateAliases": true,
690
- "name": "source-dir",
691
- "summary": "Paths to the local source files to include in the manifest.",
692
- "delimiter": ",",
728
+ "coverage-formatters": {
729
+ "description": "For multiple formatters, repeat the flag for each formatter.\n--coverage-formatters lcov --coverage-formatters clover",
730
+ "helpGroup": "Test",
731
+ "name": "coverage-formatters",
732
+ "summary": "Format of the code coverage results.",
693
733
  "hasDynamicHelp": false,
694
734
  "multiple": true,
695
- "type": "option"
696
- },
697
- "name": {
698
- "aliases": [
699
- "manifestname"
700
- ],
701
- "char": "n",
702
- "deprecateAliases": true,
703
- "exclusive": [
704
- "type"
705
- ],
706
- "name": "name",
707
- "summary": "Name of a custom manifest file to create.",
708
- "hasDynamicHelp": false,
709
- "multiple": false,
710
- "type": "option"
711
- },
712
- "type": {
713
- "aliases": [
714
- "manifesttype"
715
- ],
716
- "char": "t",
717
- "deprecateAliases": true,
718
- "exclusive": [
719
- "name"
720
- ],
721
- "name": "type",
722
- "summary": "Type of manifest to create; the type determines the name of the created file.",
723
- "hasDynamicHelp": false,
724
- "multiple": false,
725
735
  "options": [
726
- "pre",
727
- "post",
728
- "destroy",
729
- "package"
736
+ "clover",
737
+ "cobertura",
738
+ "html-spa",
739
+ "html",
740
+ "json",
741
+ "json-summary",
742
+ "lcovonly",
743
+ "none",
744
+ "teamcity",
745
+ "text",
746
+ "text-summary"
730
747
  ],
731
748
  "type": "option"
732
749
  },
733
- "include-packages": {
734
- "aliases": [
735
- "includepackages"
736
- ],
737
- "char": "c",
738
- "dependsOn": [
739
- "from-org"
740
- ],
741
- "deprecateAliases": true,
742
- "name": "include-packages",
743
- "summary": "Package types (managed, unlocked) whose metadata is included in the manifest; by default, metadata in packages is ignored.",
744
- "delimiter": ",",
745
- "hasDynamicHelp": false,
746
- "multiple": true,
747
- "options": [
748
- "managed",
749
- "unlocked"
750
- ],
751
- "type": "option"
750
+ "junit": {
751
+ "helpGroup": "Test",
752
+ "name": "junit",
753
+ "summary": "Output JUnit test results.",
754
+ "allowNo": false,
755
+ "type": "boolean"
752
756
  },
753
- "from-org": {
754
- "aliases": [
755
- "fromorg"
757
+ "results-dir": {
758
+ "helpGroup": "Test",
759
+ "name": "results-dir",
760
+ "relationships": [
761
+ {
762
+ "type": "some",
763
+ "flags": [
764
+ "coverage-formatters",
765
+ "junit"
766
+ ]
767
+ }
756
768
  ],
757
- "deprecateAliases": true,
758
- "name": "from-org",
759
- "summary": "Username or alias of the org that contains the metadata components from which to build a manifest.",
769
+ "summary": "Output directory for code coverage and JUnit results; defaults to the deploy ID.",
760
770
  "hasDynamicHelp": false,
761
771
  "multiple": false,
762
772
  "type": "option"
763
773
  },
764
- "output-dir": {
765
- "aliases": [
766
- "outputdir",
767
- "o"
768
- ],
769
- "char": "d",
770
- "deprecateAliases": true,
771
- "name": "output-dir",
772
- "summary": "Directory to save the created manifest.",
774
+ "wait": {
775
+ "char": "w",
776
+ "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\".",
777
+ "name": "wait",
778
+ "summary": "Number of minutes to wait for command to complete and display results.",
773
779
  "hasDynamicHelp": false,
780
+ "helpValue": "<minutes>",
774
781
  "multiple": false,
775
782
  "type": "option"
776
783
  }
777
784
  },
778
- "hasDynamicHelp": false,
785
+ "hasDynamicHelp": true,
779
786
  "hiddenAliases": [],
780
- "id": "project:generate:manifest",
787
+ "id": "project:deploy:report",
781
788
  "pluginAlias": "@salesforce/plugin-deploy-retrieve",
782
789
  "pluginName": "@salesforce/plugin-deploy-retrieve",
783
790
  "pluginType": "core",
784
791
  "strict": true,
785
- "summary": "Create a project manifest that lists the metadata components you want to deploy or retrieve.",
792
+ "summary": "Check or poll for the status of a deploy operation.",
786
793
  "enableJsonFlag": true,
787
- "requiresProject": true,
788
794
  "isESM": true,
789
795
  "relativePath": [
790
796
  "lib",
791
797
  "commands",
792
798
  "project",
793
- "generate",
794
- "manifest.js"
799
+ "deploy",
800
+ "report.js"
795
801
  ],
796
802
  "aliasPermutations": [
797
- "force:source:manifest:create",
798
- "source:force:manifest:create",
799
- "source:manifest:force:create",
800
- "source:manifest:create:force",
801
- "force:manifest:source:create",
802
- "manifest:force:source:create",
803
- "manifest:source:force:create",
804
- "manifest:source:create:force",
805
- "force:manifest:create:source",
806
- "manifest:force:create:source",
807
- "manifest:create:force:source",
808
- "manifest:create:source:force",
809
- "force:source:create:manifest",
810
- "source:force:create:manifest",
811
- "source:create:force:manifest",
812
- "source:create:manifest:force",
813
- "force:create:source:manifest",
814
- "create:force:source:manifest",
815
- "create:source:force:manifest",
816
- "create:source:manifest:force",
817
- "force:create:manifest:source",
818
- "create:force:manifest:source",
819
- "create:manifest:force:source",
820
- "create:manifest:source:force"
803
+ "deploy:metadata:report",
804
+ "metadata:deploy:report",
805
+ "metadata:report:deploy",
806
+ "deploy:report:metadata",
807
+ "report:deploy:metadata",
808
+ "report:metadata:deploy"
821
809
  ],
822
810
  "permutations": [
823
- "project:generate:manifest",
824
- "generate:project:manifest",
825
- "generate:manifest:project",
826
- "project:manifest:generate",
827
- "manifest:project:generate",
828
- "manifest:generate:project"
811
+ "project:deploy:report",
812
+ "deploy:project:report",
813
+ "deploy:report:project",
814
+ "project:report:deploy",
815
+ "report:project:deploy",
816
+ "report:deploy:project"
829
817
  ]
830
818
  },
831
- "project:deploy:cancel": {
819
+ "project:deploy:resume": {
832
820
  "aliases": [
833
- "deploy:metadata:cancel"
821
+ "deploy:metadata:resume"
834
822
  ],
835
823
  "args": {},
836
824
  "deprecateAliases": true,
837
- "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.",
825
+ "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.",
838
826
  "examples": [
839
- "Cancel a deploy operation using a job ID:\n<%= config.bin %> <%= command.id %> --job-id 0Af0x000017yLUFCA2",
840
- "Cancel the most recent deploy operation:\n<%= config.bin %> <%= command.id %> --use-most-recent"
827
+ "Resume watching a deploy operation using a job ID:\n<%= config.bin %> <%= command.id %> --job-id 0Af0x000017yLUFCA2",
828
+ "Resume watching the most recent deploy operation:\n<%= config.bin %> <%= command.id %> --use-most-recent"
841
829
  ],
842
830
  "flags": {
843
831
  "json": {
@@ -847,13 +835,12 @@
847
835
  "allowNo": false,
848
836
  "type": "boolean"
849
837
  },
850
- "async": {
851
- "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\".",
838
+ "concise": {
852
839
  "exclusive": [
853
- "wait"
840
+ "verbose"
854
841
  ],
855
- "name": "async",
856
- "summary": "Run the command asynchronously.",
842
+ "name": "concise",
843
+ "summary": "Show concise output of the deploy operation result.",
857
844
  "allowNo": false,
858
845
  "type": "boolean"
859
846
  },
@@ -861,198 +848,179 @@
861
848
  "char": "i",
862
849
  "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.",
863
850
  "name": "job-id",
864
- "summary": "Job ID of the deploy operation you want to cancel.",
851
+ "summary": "Job ID of the deploy operation you want to resume.",
865
852
  "hasDynamicHelp": false,
866
853
  "multiple": false,
867
854
  "type": "option"
868
855
  },
869
856
  "use-most-recent": {
870
857
  "char": "r",
871
- "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.",
858
+ "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.",
872
859
  "name": "use-most-recent",
873
860
  "summary": "Use the job ID of the most recent deploy operation.",
874
861
  "allowNo": false,
875
862
  "type": "boolean"
876
863
  },
877
- "wait": {
878
- "char": "w",
879
- "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\".",
864
+ "verbose": {
880
865
  "exclusive": [
881
- "async"
866
+ "concise"
882
867
  ],
868
+ "name": "verbose",
869
+ "summary": "Show verbose output of the deploy operation result.",
870
+ "allowNo": false,
871
+ "type": "boolean"
872
+ },
873
+ "wait": {
874
+ "char": "w",
875
+ "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\".",
883
876
  "name": "wait",
884
877
  "summary": "Number of minutes to wait for the command to complete and display results.",
885
878
  "hasDynamicHelp": false,
886
879
  "helpValue": "<minutes>",
887
880
  "multiple": false,
888
881
  "type": "option"
889
- }
890
- },
891
- "hasDynamicHelp": false,
892
- "hiddenAliases": [],
893
- "id": "project:deploy:cancel",
894
- "pluginAlias": "@salesforce/plugin-deploy-retrieve",
895
- "pluginName": "@salesforce/plugin-deploy-retrieve",
896
- "pluginType": "core",
897
- "strict": true,
898
- "summary": "Cancel a deploy operation.",
899
- "enableJsonFlag": true,
900
- "isESM": true,
901
- "relativePath": [
902
- "lib",
903
- "commands",
904
- "project",
905
- "deploy",
906
- "cancel.js"
907
- ],
908
- "aliasPermutations": [
909
- "deploy:metadata:cancel",
910
- "metadata:deploy:cancel",
911
- "metadata:cancel:deploy",
912
- "deploy:cancel:metadata",
913
- "cancel:deploy:metadata",
914
- "cancel:metadata:deploy"
915
- ],
916
- "permutations": [
917
- "project:deploy:cancel",
918
- "deploy:project:cancel",
919
- "deploy:cancel:project",
920
- "project:cancel:deploy",
921
- "cancel:project:deploy",
922
- "cancel:deploy:project"
923
- ]
924
- },
925
- "project:deploy:preview": {
926
- "aliases": [
927
- "deploy:metadata:preview"
928
- ],
929
- "args": {},
930
- "deprecateAliases": true,
931
- "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.",
932
- "examples": [
933
- "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.",
934
- "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",
935
- "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",
936
- "Preview deployment of a specific Apex class:\n<%= config.bin %> <%= command.id %> --metadata ApexClass:MyApexClass",
937
- "Preview deployment of all components listed in a manifest:\n<%= config.bin %> <%= command.id %> --manifest path/to/package.xml"
938
- ],
939
- "flags": {
940
- "json": {
941
- "description": "Format output as json.",
942
- "helpGroup": "GLOBAL",
943
- "name": "json",
944
- "allowNo": false,
945
- "type": "boolean"
946
- },
947
- "ignore-conflicts": {
948
- "char": "c",
949
- "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.",
950
- "name": "ignore-conflicts",
951
- "summary": "Don't display conflicts in preview of the deployment.",
952
- "allowNo": false,
953
- "type": "boolean"
954
- },
955
- "manifest": {
956
- "char": "x",
957
- "description": "All child components are included. If you specify this flag, don’t specify --metadata or --source-dir.",
958
- "exclusive": [
959
- "source-dir",
960
- "metadata"
961
- ],
962
- "name": "manifest",
963
- "summary": "Full file path for manifest (package.xml) of components to preview.",
964
- "hasDynamicHelp": false,
965
- "multiple": false,
966
- "type": "option"
967
882
  },
968
- "metadata": {
969
- "char": "m",
970
- "exclusive": [
971
- "manifest",
972
- "source-dir"
973
- ],
974
- "name": "metadata",
975
- "summary": "Metadata component names to preview.",
883
+ "coverage-formatters": {
884
+ "description": "For multiple formatters, repeat the flag for each formatter.\n--coverage-formatters lcov --coverage-formatters clover",
885
+ "helpGroup": "Test",
886
+ "name": "coverage-formatters",
887
+ "summary": "Format of the code coverage results.",
976
888
  "hasDynamicHelp": false,
977
889
  "multiple": true,
890
+ "options": [
891
+ "clover",
892
+ "cobertura",
893
+ "html-spa",
894
+ "html",
895
+ "json",
896
+ "json-summary",
897
+ "lcovonly",
898
+ "none",
899
+ "teamcity",
900
+ "text",
901
+ "text-summary"
902
+ ],
978
903
  "type": "option"
979
904
  },
980
- "source-dir": {
981
- "char": "d",
982
- "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.",
983
- "exclusive": [
984
- "manifest",
985
- "metadata"
905
+ "junit": {
906
+ "helpGroup": "Test",
907
+ "name": "junit",
908
+ "summary": "Output JUnit test results.",
909
+ "allowNo": false,
910
+ "type": "boolean"
911
+ },
912
+ "results-dir": {
913
+ "helpGroup": "Test",
914
+ "name": "results-dir",
915
+ "relationships": [
916
+ {
917
+ "type": "some",
918
+ "flags": [
919
+ "coverage-formatters",
920
+ "junit"
921
+ ]
922
+ }
986
923
  ],
987
- "name": "source-dir",
988
- "summary": "Path to the local source files to preview.",
924
+ "summary": "Output directory for code coverage and JUnit results; defaults to the deploy ID.",
989
925
  "hasDynamicHelp": false,
990
- "multiple": true,
991
- "type": "option"
992
- },
993
- "target-org": {
994
- "char": "o",
995
- "description": "Overrides your default org.",
996
- "name": "target-org",
997
- "noCacheDefault": true,
998
- "required": true,
999
- "summary": "Login username or alias for the target org.",
1000
- "hasDynamicHelp": true,
1001
926
  "multiple": false,
1002
927
  "type": "option"
1003
- },
1004
- "concise": {
1005
- "name": "concise",
1006
- "summary": "Show only the changes that will be deployed; omits files that are forceignored.",
1007
- "allowNo": false,
1008
- "type": "boolean"
1009
928
  }
1010
929
  },
1011
- "hasDynamicHelp": true,
930
+ "hasDynamicHelp": false,
1012
931
  "hiddenAliases": [],
1013
- "id": "project:deploy:preview",
932
+ "id": "project:deploy:resume",
1014
933
  "pluginAlias": "@salesforce/plugin-deploy-retrieve",
1015
934
  "pluginName": "@salesforce/plugin-deploy-retrieve",
1016
935
  "pluginType": "core",
1017
936
  "strict": true,
1018
- "summary": "Preview a deployment to see what will deploy to the org, the potential conflicts, and the ignored files.",
937
+ "summary": "Resume watching a deploy operation and update source tracking when the deploy completes.",
1019
938
  "enableJsonFlag": true,
1020
- "requiresProject": true,
939
+ "envVariablesSection": {
940
+ "header": "ENVIRONMENT VARIABLES",
941
+ "body": [
942
+ {
943
+ "name": "SF_USE_PROGRESS_BAR",
944
+ "description": "Set to false to disable the progress bar when running the metadata deploy command."
945
+ }
946
+ ]
947
+ },
948
+ "errorCodes": {
949
+ "header": "ERROR CODES",
950
+ "body": [
951
+ {
952
+ "name": "Succeeded (0)",
953
+ "description": "The deploy succeeded."
954
+ },
955
+ {
956
+ "name": "Canceled (1)",
957
+ "description": "The deploy was canceled."
958
+ },
959
+ {
960
+ "name": "Failed (1)",
961
+ "description": "The deploy failed."
962
+ },
963
+ {
964
+ "name": "SucceededPartial (68)",
965
+ "description": "The deploy partially succeeded."
966
+ },
967
+ {
968
+ "name": "InProgress (69)",
969
+ "description": "The deploy is in progress."
970
+ },
971
+ {
972
+ "name": "Pending (69)",
973
+ "description": "The deploy is pending."
974
+ },
975
+ {
976
+ "name": "Canceling (69)",
977
+ "description": "The deploy is being canceled."
978
+ }
979
+ ]
980
+ },
1021
981
  "isESM": true,
1022
982
  "relativePath": [
1023
983
  "lib",
1024
984
  "commands",
1025
985
  "project",
1026
986
  "deploy",
1027
- "preview.js"
987
+ "resume.js"
1028
988
  ],
1029
989
  "aliasPermutations": [
1030
- "deploy:metadata:preview",
1031
- "metadata:deploy:preview",
1032
- "metadata:preview:deploy",
1033
- "deploy:preview:metadata",
1034
- "preview:deploy:metadata",
1035
- "preview:metadata:deploy"
990
+ "deploy:metadata:resume",
991
+ "metadata:deploy:resume",
992
+ "metadata:resume:deploy",
993
+ "deploy:resume:metadata",
994
+ "resume:deploy:metadata",
995
+ "resume:metadata:deploy"
1036
996
  ],
1037
997
  "permutations": [
1038
- "project:deploy:preview",
1039
- "deploy:project:preview",
1040
- "deploy:preview:project",
1041
- "project:preview:deploy",
1042
- "preview:project:deploy",
1043
- "preview:deploy:project"
998
+ "project:deploy:resume",
999
+ "deploy:project:resume",
1000
+ "deploy:resume:project",
1001
+ "project:resume:deploy",
1002
+ "resume:project:deploy",
1003
+ "resume:deploy:project"
1044
1004
  ]
1045
1005
  },
1046
- "project:deploy:quick": {
1006
+ "project:deploy:start": {
1047
1007
  "aliases": [
1048
- "deploy:metadata:quick"
1008
+ "deploy:metadata"
1049
1009
  ],
1050
1010
  "args": {},
1051
1011
  "deprecateAliases": true,
1052
- "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.",
1012
+ "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.",
1053
1013
  "examples": [
1054
- "Run a quick deploy to your default org using a job ID:\n<%= config.bin %> <%= command.id %> --job-id 0Af0x000017yLUFCA2",
1055
- "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"
1014
+ "Deploy local changes not in the org; uses your default org:\n<%= config.bin %> <%= command.id %>",
1015
+ "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",
1016
+ "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",
1017
+ "Deploy all Apex classes:\n<%= config.bin %> <%= command.id %> --metadata ApexClass",
1018
+ "Deploy a specific Apex class:\n<%= config.bin %> <%= command.id %> --metadata ApexClass:MyApexClass",
1019
+ "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*'",
1020
+ "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",
1021
+ "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\"",
1022
+ "Deploy all components listed in a manifest:\n<%= config.bin %> <%= command.id %> --manifest path/to/package.xml",
1023
+ "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"
1056
1024
  ],
1057
1025
  "flags": {
1058
1026
  "json": {
@@ -1062,8 +1030,17 @@
1062
1030
  "allowNo": false,
1063
1031
  "type": "boolean"
1064
1032
  },
1033
+ "api-version": {
1034
+ "char": "a",
1035
+ "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.",
1036
+ "name": "api-version",
1037
+ "summary": "Target API version for the deploy.",
1038
+ "hasDynamicHelp": false,
1039
+ "multiple": false,
1040
+ "type": "option"
1041
+ },
1065
1042
  "async": {
1066
- "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\".",
1043
+ "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\".",
1067
1044
  "exclusive": [
1068
1045
  "wait"
1069
1046
  ],
@@ -1081,50 +1058,157 @@
1081
1058
  "allowNo": false,
1082
1059
  "type": "boolean"
1083
1060
  },
1084
- "job-id": {
1085
- "char": "i",
1086
- "description": "The job ID is valid for 10 days from when you started the validation.",
1087
- "name": "job-id",
1088
- "summary": "Job ID of the deployment you want to quick deploy.",
1089
- "hasDynamicHelp": false,
1090
- "multiple": false,
1091
- "type": "option"
1092
- },
1093
- "target-org": {
1094
- "char": "o",
1095
- "description": "Overrides your default org.",
1096
- "name": "target-org",
1097
- "noCacheDefault": true,
1098
- "summary": "Login username or alias for the target org.",
1099
- "hasDynamicHelp": true,
1100
- "multiple": false,
1101
- "type": "option"
1102
- },
1103
- "use-most-recent": {
1104
- "char": "r",
1105
- "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.",
1106
- "name": "use-most-recent",
1107
- "summary": "Use the job ID of the most recently validated deployment.",
1061
+ "dry-run": {
1062
+ "name": "dry-run",
1063
+ "summary": "Validate deploy and run Apex tests but don’t save to the org.",
1108
1064
  "allowNo": false,
1109
1065
  "type": "boolean"
1110
1066
  },
1111
- "verbose": {
1112
- "exclusive": [
1113
- "concise"
1114
- ],
1115
- "name": "verbose",
1116
- "summary": "Show verbose output of the deploy result.",
1067
+ "ignore-conflicts": {
1068
+ "char": "c",
1069
+ "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.",
1070
+ "name": "ignore-conflicts",
1071
+ "summary": "Ignore conflicts and deploy local files, even if they overwrite changes in the org.",
1117
1072
  "allowNo": false,
1118
1073
  "type": "boolean"
1119
1074
  },
1120
- "wait": {
1121
- "char": "w",
1122
- "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\".",
1123
- "exclusive": [
1124
- "async"
1075
+ "ignore-errors": {
1076
+ "char": "r",
1077
+ "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.",
1078
+ "name": "ignore-errors",
1079
+ "summary": "Ignore any errors and don’t roll back deployment.",
1080
+ "allowNo": false,
1081
+ "type": "boolean"
1082
+ },
1083
+ "ignore-warnings": {
1084
+ "char": "g",
1085
+ "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.",
1086
+ "name": "ignore-warnings",
1087
+ "summary": "Ignore warnings and allow a deployment to complete successfully.",
1088
+ "allowNo": false,
1089
+ "type": "boolean"
1090
+ },
1091
+ "manifest": {
1092
+ "char": "x",
1093
+ "description": "All child components are included. If you specify this flag, don’t specify --metadata or --source-dir.",
1094
+ "exclusive": [
1095
+ "source-dir",
1096
+ "metadata",
1097
+ "metadata-dir"
1098
+ ],
1099
+ "helpGroup": "Source Format",
1100
+ "name": "manifest",
1101
+ "summary": "Full file path for manifest (package.xml) of components to deploy.",
1102
+ "hasDynamicHelp": false,
1103
+ "multiple": false,
1104
+ "type": "option"
1105
+ },
1106
+ "metadata": {
1107
+ "char": "m",
1108
+ "exclusive": [
1109
+ "manifest",
1110
+ "source-dir",
1111
+ "metadata-dir"
1112
+ ],
1113
+ "helpGroup": "Source Format",
1114
+ "name": "metadata",
1115
+ "summary": "Metadata component names to deploy. Wildcards ( `*` ) supported as long as you use quotes, such as `ApexClass:MyClass*`",
1116
+ "hasDynamicHelp": false,
1117
+ "multiple": true,
1118
+ "type": "option"
1119
+ },
1120
+ "metadata-dir": {
1121
+ "exclusive": [
1122
+ "manifest",
1123
+ "source-dir",
1124
+ "metadata"
1125
+ ],
1126
+ "helpGroup": "Metadata API Format",
1127
+ "name": "metadata-dir",
1128
+ "summary": "Root of directory or zip file of metadata formatted files to deploy.",
1129
+ "hasDynamicHelp": false,
1130
+ "multiple": false,
1131
+ "type": "option"
1132
+ },
1133
+ "single-package": {
1134
+ "dependsOn": [
1135
+ "metadata-dir"
1136
+ ],
1137
+ "helpGroup": "Metadata API Format",
1138
+ "name": "single-package",
1139
+ "summary": "Indicates that the metadata zip file points to a directory structure for a single package.",
1140
+ "allowNo": false,
1141
+ "type": "boolean"
1142
+ },
1143
+ "source-dir": {
1144
+ "char": "d",
1145
+ "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.",
1146
+ "exclusive": [
1147
+ "manifest",
1148
+ "metadata",
1149
+ "metadata-dir"
1150
+ ],
1151
+ "helpGroup": "Source Format",
1152
+ "name": "source-dir",
1153
+ "summary": "Path to the local source files to deploy.",
1154
+ "hasDynamicHelp": false,
1155
+ "multiple": true,
1156
+ "type": "option"
1157
+ },
1158
+ "target-org": {
1159
+ "char": "o",
1160
+ "description": "Overrides your default org.",
1161
+ "name": "target-org",
1162
+ "noCacheDefault": true,
1163
+ "required": true,
1164
+ "summary": "Login username or alias for the target org.",
1165
+ "hasDynamicHelp": true,
1166
+ "multiple": false,
1167
+ "type": "option"
1168
+ },
1169
+ "tests": {
1170
+ "char": "t",
1171
+ "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\"",
1172
+ "helpGroup": "Test",
1173
+ "name": "tests",
1174
+ "summary": "Apex tests to run when --test-level is RunSpecifiedTests.",
1175
+ "hasDynamicHelp": false,
1176
+ "multiple": true,
1177
+ "type": "option"
1178
+ },
1179
+ "test-level": {
1180
+ "char": "l",
1181
+ "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\".",
1182
+ "helpGroup": "Test",
1183
+ "name": "test-level",
1184
+ "summary": "Deployment Apex testing level.",
1185
+ "hasDynamicHelp": false,
1186
+ "multiple": false,
1187
+ "options": [
1188
+ "NoTestRun",
1189
+ "RunSpecifiedTests",
1190
+ "RunLocalTests",
1191
+ "RunAllTestsInOrg"
1192
+ ],
1193
+ "type": "option"
1194
+ },
1195
+ "verbose": {
1196
+ "exclusive": [
1197
+ "concise"
1198
+ ],
1199
+ "name": "verbose",
1200
+ "summary": "Show verbose output of the deploy result.",
1201
+ "allowNo": false,
1202
+ "type": "boolean"
1203
+ },
1204
+ "wait": {
1205
+ "char": "w",
1206
+ "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\".",
1207
+ "exclusive": [
1208
+ "async"
1125
1209
  ],
1126
1210
  "name": "wait",
1127
- "summary": "Number of minutes to wait for the command to complete and display results.",
1211
+ "summary": "Number of minutes to wait for command to complete and display results.",
1128
1212
  "default": {
1129
1213
  "quantity": 33,
1130
1214
  "unit": 0
@@ -1134,11 +1218,89 @@
1134
1218
  "multiple": false,
1135
1219
  "type": "option"
1136
1220
  },
1137
- "api-version": {
1138
- "char": "a",
1139
- "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.",
1140
- "name": "api-version",
1141
- "summary": "Target API version for the deploy.",
1221
+ "purge-on-delete": {
1222
+ "dependsOn": [
1223
+ "manifest"
1224
+ ],
1225
+ "helpGroup": "Delete",
1226
+ "name": "purge-on-delete",
1227
+ "relationships": [
1228
+ {
1229
+ "type": "some",
1230
+ "flags": [
1231
+ "pre-destructive-changes",
1232
+ "post-destructive-changes"
1233
+ ]
1234
+ }
1235
+ ],
1236
+ "summary": "Specify that deleted components in the destructive changes manifest file are immediately eligible for deletion rather than being stored in the Recycle Bin.",
1237
+ "allowNo": false,
1238
+ "type": "boolean"
1239
+ },
1240
+ "pre-destructive-changes": {
1241
+ "dependsOn": [
1242
+ "manifest"
1243
+ ],
1244
+ "helpGroup": "Delete",
1245
+ "name": "pre-destructive-changes",
1246
+ "summary": "File path for a manifest (destructiveChangesPre.xml) of components to delete before the deploy",
1247
+ "hasDynamicHelp": false,
1248
+ "multiple": false,
1249
+ "type": "option"
1250
+ },
1251
+ "post-destructive-changes": {
1252
+ "dependsOn": [
1253
+ "manifest"
1254
+ ],
1255
+ "helpGroup": "Delete",
1256
+ "name": "post-destructive-changes",
1257
+ "summary": "File path for a manifest (destructiveChangesPost.xml) of components to delete after the deploy.",
1258
+ "hasDynamicHelp": false,
1259
+ "multiple": false,
1260
+ "type": "option"
1261
+ },
1262
+ "coverage-formatters": {
1263
+ "description": "For multiple formatters, repeat the flag for each formatter.\n--coverage-formatters lcov --coverage-formatters clover",
1264
+ "helpGroup": "Test",
1265
+ "name": "coverage-formatters",
1266
+ "summary": "Format of the code coverage results.",
1267
+ "hasDynamicHelp": false,
1268
+ "multiple": true,
1269
+ "options": [
1270
+ "clover",
1271
+ "cobertura",
1272
+ "html-spa",
1273
+ "html",
1274
+ "json",
1275
+ "json-summary",
1276
+ "lcovonly",
1277
+ "none",
1278
+ "teamcity",
1279
+ "text",
1280
+ "text-summary"
1281
+ ],
1282
+ "type": "option"
1283
+ },
1284
+ "junit": {
1285
+ "helpGroup": "Test",
1286
+ "name": "junit",
1287
+ "summary": "Output JUnit test results.",
1288
+ "allowNo": false,
1289
+ "type": "boolean"
1290
+ },
1291
+ "results-dir": {
1292
+ "helpGroup": "Test",
1293
+ "name": "results-dir",
1294
+ "relationships": [
1295
+ {
1296
+ "type": "some",
1297
+ "flags": [
1298
+ "coverage-formatters",
1299
+ "junit"
1300
+ ]
1301
+ }
1302
+ ],
1303
+ "summary": "Output directory for code coverage and JUnit results; defaults to the deploy ID.",
1142
1304
  "hasDynamicHelp": false,
1143
1305
  "multiple": false,
1144
1306
  "type": "option"
@@ -1146,13 +1308,39 @@
1146
1308
  },
1147
1309
  "hasDynamicHelp": true,
1148
1310
  "hiddenAliases": [],
1149
- "id": "project:deploy:quick",
1311
+ "id": "project:deploy:start",
1150
1312
  "pluginAlias": "@salesforce/plugin-deploy-retrieve",
1151
1313
  "pluginName": "@salesforce/plugin-deploy-retrieve",
1152
1314
  "pluginType": "core",
1153
1315
  "strict": true,
1154
- "summary": "Quickly deploy a validated deployment to an org.",
1316
+ "summary": "Deploy metadata to an org from your local project.",
1155
1317
  "enableJsonFlag": true,
1318
+ "configurationVariablesSection": {
1319
+ "header": "CONFIGURATION VARIABLES",
1320
+ "body": [
1321
+ {
1322
+ "name": "target-org",
1323
+ "description": "Username or alias of the org that all commands run against by default. (sf only)"
1324
+ },
1325
+ {
1326
+ "name": "org-api-version",
1327
+ "description": "API version of your project. Default: API version of your Dev Hub org."
1328
+ }
1329
+ ]
1330
+ },
1331
+ "envVariablesSection": {
1332
+ "header": "ENVIRONMENT VARIABLES",
1333
+ "body": [
1334
+ {
1335
+ "name": "SF_TARGET_ORG",
1336
+ "description": "Username or alias of your default org. Overrides the target-org configuration variable."
1337
+ },
1338
+ {
1339
+ "name": "SF_USE_PROGRESS_BAR",
1340
+ "description": "Set to false to disable the progress bar when running the metadata deploy command."
1341
+ }
1342
+ ]
1343
+ },
1156
1344
  "errorCodes": {
1157
1345
  "header": "ERROR CODES",
1158
1346
  "body": [
@@ -1192,36 +1380,33 @@
1192
1380
  "commands",
1193
1381
  "project",
1194
1382
  "deploy",
1195
- "quick.js"
1383
+ "start.js"
1196
1384
  ],
1197
1385
  "aliasPermutations": [
1198
- "deploy:metadata:quick",
1199
- "metadata:deploy:quick",
1200
- "metadata:quick:deploy",
1201
- "deploy:quick:metadata",
1202
- "quick:deploy:metadata",
1203
- "quick:metadata:deploy"
1386
+ "deploy:metadata",
1387
+ "metadata:deploy"
1204
1388
  ],
1205
1389
  "permutations": [
1206
- "project:deploy:quick",
1207
- "deploy:project:quick",
1208
- "deploy:quick:project",
1209
- "project:quick:deploy",
1210
- "quick:project:deploy",
1211
- "quick:deploy:project"
1390
+ "project:deploy:start",
1391
+ "deploy:project:start",
1392
+ "deploy:start:project",
1393
+ "project:start:deploy",
1394
+ "start:project:deploy",
1395
+ "start:deploy:project"
1212
1396
  ]
1213
1397
  },
1214
- "project:deploy:report": {
1398
+ "project:deploy:validate": {
1215
1399
  "aliases": [
1216
- "deploy:metadata:report"
1400
+ "deploy:metadata:validate"
1217
1401
  ],
1218
1402
  "args": {},
1219
1403
  "deprecateAliases": true,
1220
- "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.",
1404
+ "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.",
1221
1405
  "examples": [
1222
- "Check the status using a job ID:\n<%= config.bin %> <%= command.id %> --job-id 0Af0x000017yLUFCA2",
1223
- "Check the status of the most recent deploy operation:\n<%= config.bin %> <%= command.id %> --use-most-recent",
1224
- "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"
1406
+ "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.",
1407
+ "Validate the deployment of all source files in a directory to the default org:\n<%= config.bin %> <%= command.id %> --source-dir path/to/source",
1408
+ "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",
1409
+ "Validate the deployment of all components listed in a manifest:\n<%= config.bin %> <%= command.id %> --manifest path/to/package.xml"
1225
1410
  ],
1226
1411
  "flags": {
1227
1412
  "json": {
@@ -1231,30 +1416,143 @@
1231
1416
  "allowNo": false,
1232
1417
  "type": "boolean"
1233
1418
  },
1419
+ "api-version": {
1420
+ "char": "a",
1421
+ "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.",
1422
+ "name": "api-version",
1423
+ "summary": "Target API version for the validation.",
1424
+ "hasDynamicHelp": false,
1425
+ "multiple": false,
1426
+ "type": "option"
1427
+ },
1428
+ "async": {
1429
+ "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\".",
1430
+ "name": "async",
1431
+ "summary": "Run the command asynchronously.",
1432
+ "allowNo": false,
1433
+ "type": "boolean"
1434
+ },
1435
+ "concise": {
1436
+ "exclusive": [
1437
+ "verbose"
1438
+ ],
1439
+ "name": "concise",
1440
+ "summary": "Show concise output of the validation result.",
1441
+ "allowNo": false,
1442
+ "type": "boolean"
1443
+ },
1444
+ "manifest": {
1445
+ "char": "x",
1446
+ "description": "All child components are included. If you specify this flag, don’t specify --metadata or --source-dir.",
1447
+ "helpGroup": "Source Format",
1448
+ "name": "manifest",
1449
+ "summary": "Full file path for manifest (package.xml) of components to validate for deployment.",
1450
+ "hasDynamicHelp": false,
1451
+ "multiple": false,
1452
+ "type": "option"
1453
+ },
1454
+ "metadata": {
1455
+ "char": "m",
1456
+ "helpGroup": "Source Format",
1457
+ "name": "metadata",
1458
+ "summary": "Metadata component names to validate for deployment.",
1459
+ "hasDynamicHelp": false,
1460
+ "multiple": true,
1461
+ "type": "option"
1462
+ },
1463
+ "source-dir": {
1464
+ "char": "d",
1465
+ "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.",
1466
+ "helpGroup": "Source Format",
1467
+ "name": "source-dir",
1468
+ "summary": "Path to the local source files to validate for deployment.",
1469
+ "hasDynamicHelp": false,
1470
+ "multiple": true,
1471
+ "type": "option"
1472
+ },
1473
+ "metadata-dir": {
1474
+ "helpGroup": "Metadata API Format",
1475
+ "name": "metadata-dir",
1476
+ "summary": "Root of directory or zip file of metadata formatted files to deploy.",
1477
+ "hasDynamicHelp": false,
1478
+ "multiple": false,
1479
+ "type": "option"
1480
+ },
1481
+ "single-package": {
1482
+ "dependsOn": [
1483
+ "metadata-dir"
1484
+ ],
1485
+ "helpGroup": "Metadata API Format",
1486
+ "name": "single-package",
1487
+ "summary": "Indicates that the metadata zip file points to a directory structure for a single package.",
1488
+ "allowNo": false,
1489
+ "type": "boolean"
1490
+ },
1234
1491
  "target-org": {
1235
1492
  "char": "o",
1236
1493
  "description": "Overrides your default org.",
1237
1494
  "name": "target-org",
1238
1495
  "noCacheDefault": true,
1496
+ "required": true,
1239
1497
  "summary": "Login username or alias for the target org.",
1240
1498
  "hasDynamicHelp": true,
1241
1499
  "multiple": false,
1242
1500
  "type": "option"
1243
1501
  },
1244
- "job-id": {
1245
- "char": "i",
1246
- "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.",
1247
- "name": "job-id",
1248
- "summary": "Job ID of the deploy operation you want to check the status of.",
1502
+ "tests": {
1503
+ "char": "t",
1504
+ "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\"",
1505
+ "helpGroup": "Test",
1506
+ "name": "tests",
1507
+ "summary": "Apex tests to run when --test-level is RunSpecifiedTests.",
1508
+ "hasDynamicHelp": false,
1509
+ "multiple": true,
1510
+ "type": "option"
1511
+ },
1512
+ "test-level": {
1513
+ "char": "l",
1514
+ "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.",
1515
+ "helpGroup": "Test",
1516
+ "name": "test-level",
1517
+ "summary": "Deployment Apex testing level.",
1518
+ "default": "RunLocalTests",
1249
1519
  "hasDynamicHelp": false,
1250
1520
  "multiple": false,
1521
+ "options": [
1522
+ "RunAllTestsInOrg",
1523
+ "RunLocalTests",
1524
+ "RunSpecifiedTests"
1525
+ ],
1251
1526
  "type": "option"
1252
1527
  },
1253
- "use-most-recent": {
1254
- "char": "r",
1255
- "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.",
1256
- "name": "use-most-recent",
1257
- "summary": "Use the job ID of the most recent deploy operation.",
1528
+ "verbose": {
1529
+ "exclusive": [
1530
+ "concise"
1531
+ ],
1532
+ "name": "verbose",
1533
+ "summary": "Show verbose output of the validation result.",
1534
+ "allowNo": false,
1535
+ "type": "boolean"
1536
+ },
1537
+ "wait": {
1538
+ "char": "w",
1539
+ "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\".",
1540
+ "name": "wait",
1541
+ "summary": "Number of minutes to wait for the command to complete and display results.",
1542
+ "default": {
1543
+ "quantity": 33,
1544
+ "unit": 0
1545
+ },
1546
+ "hasDynamicHelp": false,
1547
+ "helpValue": "<minutes>",
1548
+ "multiple": false,
1549
+ "type": "option"
1550
+ },
1551
+ "ignore-warnings": {
1552
+ "char": "g",
1553
+ "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.",
1554
+ "name": "ignore-warnings",
1555
+ "summary": "Ignore warnings and allow a deployment to complete successfully.",
1258
1556
  "allowNo": false,
1259
1557
  "type": "boolean"
1260
1558
  },
@@ -1304,174 +1602,77 @@
1304
1602
  "multiple": false,
1305
1603
  "type": "option"
1306
1604
  },
1307
- "wait": {
1308
- "char": "w",
1309
- "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\".",
1310
- "name": "wait",
1311
- "summary": "Number of minutes to wait for command to complete and display results.",
1605
+ "purge-on-delete": {
1606
+ "dependsOn": [
1607
+ "manifest"
1608
+ ],
1609
+ "helpGroup": "Delete",
1610
+ "name": "purge-on-delete",
1611
+ "relationships": [
1612
+ {
1613
+ "type": "some",
1614
+ "flags": [
1615
+ "pre-destructive-changes",
1616
+ "post-destructive-changes"
1617
+ ]
1618
+ }
1619
+ ],
1620
+ "summary": "Specify that deleted components in the destructive changes manifest file are immediately eligible for deletion rather than being stored in the Recycle Bin.",
1621
+ "allowNo": false,
1622
+ "type": "boolean"
1623
+ },
1624
+ "pre-destructive-changes": {
1625
+ "dependsOn": [
1626
+ "manifest"
1627
+ ],
1628
+ "helpGroup": "Delete",
1629
+ "name": "pre-destructive-changes",
1630
+ "summary": "File path for a manifest (destructiveChangesPre.xml) of components to delete before the deploy",
1631
+ "hasDynamicHelp": false,
1632
+ "multiple": false,
1633
+ "type": "option"
1634
+ },
1635
+ "post-destructive-changes": {
1636
+ "dependsOn": [
1637
+ "manifest"
1638
+ ],
1639
+ "helpGroup": "Delete",
1640
+ "name": "post-destructive-changes",
1641
+ "summary": "File path for a manifest (destructiveChangesPost.xml) of components to delete after the deploy.",
1312
1642
  "hasDynamicHelp": false,
1313
- "helpValue": "<minutes>",
1314
1643
  "multiple": false,
1315
1644
  "type": "option"
1316
1645
  }
1317
1646
  },
1318
1647
  "hasDynamicHelp": true,
1319
1648
  "hiddenAliases": [],
1320
- "id": "project:deploy:report",
1649
+ "id": "project:deploy:validate",
1321
1650
  "pluginAlias": "@salesforce/plugin-deploy-retrieve",
1322
1651
  "pluginName": "@salesforce/plugin-deploy-retrieve",
1323
1652
  "pluginType": "core",
1324
1653
  "strict": true,
1325
- "summary": "Check or poll for the status of a deploy operation.",
1654
+ "summary": "Validate a metadata deployment without actually executing it.",
1326
1655
  "enableJsonFlag": true,
1327
- "isESM": true,
1328
- "relativePath": [
1329
- "lib",
1330
- "commands",
1331
- "project",
1332
- "deploy",
1333
- "report.js"
1334
- ],
1335
- "aliasPermutations": [
1336
- "deploy:metadata:report",
1337
- "metadata:deploy:report",
1338
- "metadata:report:deploy",
1339
- "deploy:report:metadata",
1340
- "report:deploy:metadata",
1341
- "report:metadata:deploy"
1342
- ],
1343
- "permutations": [
1344
- "project:deploy:report",
1345
- "deploy:project:report",
1346
- "deploy:report:project",
1347
- "project:report:deploy",
1348
- "report:project:deploy",
1349
- "report:deploy:project"
1350
- ]
1351
- },
1352
- "project:deploy:resume": {
1353
- "aliases": [
1354
- "deploy:metadata:resume"
1355
- ],
1356
- "args": {},
1357
- "deprecateAliases": true,
1358
- "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.",
1359
- "examples": [
1360
- "Resume watching a deploy operation using a job ID:\n<%= config.bin %> <%= command.id %> --job-id 0Af0x000017yLUFCA2",
1361
- "Resume watching the most recent deploy operation:\n<%= config.bin %> <%= command.id %> --use-most-recent"
1362
- ],
1363
- "flags": {
1364
- "json": {
1365
- "description": "Format output as json.",
1366
- "helpGroup": "GLOBAL",
1367
- "name": "json",
1368
- "allowNo": false,
1369
- "type": "boolean"
1370
- },
1371
- "concise": {
1372
- "exclusive": [
1373
- "verbose"
1374
- ],
1375
- "name": "concise",
1376
- "summary": "Show concise output of the deploy operation result.",
1377
- "allowNo": false,
1378
- "type": "boolean"
1379
- },
1380
- "job-id": {
1381
- "char": "i",
1382
- "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.",
1383
- "name": "job-id",
1384
- "summary": "Job ID of the deploy operation you want to resume.",
1385
- "hasDynamicHelp": false,
1386
- "multiple": false,
1387
- "type": "option"
1388
- },
1389
- "use-most-recent": {
1390
- "char": "r",
1391
- "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.",
1392
- "name": "use-most-recent",
1393
- "summary": "Use the job ID of the most recent deploy operation.",
1394
- "allowNo": false,
1395
- "type": "boolean"
1396
- },
1397
- "verbose": {
1398
- "exclusive": [
1399
- "concise"
1400
- ],
1401
- "name": "verbose",
1402
- "summary": "Show verbose output of the deploy operation result.",
1403
- "allowNo": false,
1404
- "type": "boolean"
1405
- },
1406
- "wait": {
1407
- "char": "w",
1408
- "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\".",
1409
- "name": "wait",
1410
- "summary": "Number of minutes to wait for the command to complete and display results.",
1411
- "hasDynamicHelp": false,
1412
- "helpValue": "<minutes>",
1413
- "multiple": false,
1414
- "type": "option"
1415
- },
1416
- "coverage-formatters": {
1417
- "description": "For multiple formatters, repeat the flag for each formatter.\n--coverage-formatters lcov --coverage-formatters clover",
1418
- "helpGroup": "Test",
1419
- "name": "coverage-formatters",
1420
- "summary": "Format of the code coverage results.",
1421
- "hasDynamicHelp": false,
1422
- "multiple": true,
1423
- "options": [
1424
- "clover",
1425
- "cobertura",
1426
- "html-spa",
1427
- "html",
1428
- "json",
1429
- "json-summary",
1430
- "lcovonly",
1431
- "none",
1432
- "teamcity",
1433
- "text",
1434
- "text-summary"
1435
- ],
1436
- "type": "option"
1437
- },
1438
- "junit": {
1439
- "helpGroup": "Test",
1440
- "name": "junit",
1441
- "summary": "Output JUnit test results.",
1442
- "allowNo": false,
1443
- "type": "boolean"
1444
- },
1445
- "results-dir": {
1446
- "helpGroup": "Test",
1447
- "name": "results-dir",
1448
- "relationships": [
1449
- {
1450
- "type": "some",
1451
- "flags": [
1452
- "coverage-formatters",
1453
- "junit"
1454
- ]
1455
- }
1456
- ],
1457
- "summary": "Output directory for code coverage and JUnit results; defaults to the deploy ID.",
1458
- "hasDynamicHelp": false,
1459
- "multiple": false,
1460
- "type": "option"
1461
- }
1656
+ "configurationVariablesSection": {
1657
+ "header": "CONFIGURATION VARIABLES",
1658
+ "body": [
1659
+ {
1660
+ "name": "target-org",
1661
+ "description": "Username or alias of the org that all commands run against by default. (sf only)"
1662
+ },
1663
+ {
1664
+ "name": "org-api-version",
1665
+ "description": "API version of your project. Default: API version of your Dev Hub org."
1666
+ }
1667
+ ]
1462
1668
  },
1463
- "hasDynamicHelp": false,
1464
- "hiddenAliases": [],
1465
- "id": "project:deploy:resume",
1466
- "pluginAlias": "@salesforce/plugin-deploy-retrieve",
1467
- "pluginName": "@salesforce/plugin-deploy-retrieve",
1468
- "pluginType": "core",
1469
- "strict": true,
1470
- "summary": "Resume watching a deploy operation and update source tracking when the deploy completes.",
1471
- "enableJsonFlag": true,
1472
1669
  "envVariablesSection": {
1473
1670
  "header": "ENVIRONMENT VARIABLES",
1474
1671
  "body": [
1672
+ {
1673
+ "name": "SF_TARGET_ORG",
1674
+ "description": "Username or alias of your default org. Overrides the target-org configuration variable."
1675
+ },
1475
1676
  {
1476
1677
  "name": "SF_USE_PROGRESS_BAR",
1477
1678
  "description": "Set to false to disable the progress bar when running the metadata deploy command."
@@ -1517,43 +1718,37 @@
1517
1718
  "commands",
1518
1719
  "project",
1519
1720
  "deploy",
1520
- "resume.js"
1721
+ "validate.js"
1521
1722
  ],
1522
1723
  "aliasPermutations": [
1523
- "deploy:metadata:resume",
1524
- "metadata:deploy:resume",
1525
- "metadata:resume:deploy",
1526
- "deploy:resume:metadata",
1527
- "resume:deploy:metadata",
1528
- "resume:metadata:deploy"
1724
+ "deploy:metadata:validate",
1725
+ "metadata:deploy:validate",
1726
+ "metadata:validate:deploy",
1727
+ "deploy:validate:metadata",
1728
+ "validate:deploy:metadata",
1729
+ "validate:metadata:deploy"
1529
1730
  ],
1530
1731
  "permutations": [
1531
- "project:deploy:resume",
1532
- "deploy:project:resume",
1533
- "deploy:resume:project",
1534
- "project:resume:deploy",
1535
- "resume:project:deploy",
1536
- "resume:deploy:project"
1732
+ "project:deploy:validate",
1733
+ "deploy:project:validate",
1734
+ "deploy:validate:project",
1735
+ "project:validate:deploy",
1736
+ "validate:project:deploy",
1737
+ "validate:deploy:project"
1537
1738
  ]
1538
1739
  },
1539
- "project:deploy:start": {
1740
+ "project:delete:source": {
1540
1741
  "aliases": [
1541
- "deploy:metadata"
1742
+ "force:source:delete"
1542
1743
  ],
1543
1744
  "args": {},
1544
1745
  "deprecateAliases": true,
1545
- "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.",
1746
+ "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.",
1546
1747
  "examples": [
1547
- "Deploy local changes not in the org; uses your default org:\n<%= config.bin %> <%= command.id %>",
1548
- "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",
1549
- "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",
1550
- "Deploy all Apex classes:\n<%= config.bin %> <%= command.id %> --metadata ApexClass",
1551
- "Deploy a specific Apex class:\n<%= config.bin %> <%= command.id %> --metadata ApexClass:MyApexClass",
1552
- "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*'",
1553
- "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",
1554
- "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\"",
1555
- "Deploy all components listed in a manifest:\n<%= config.bin %> <%= command.id %> --manifest path/to/package.xml",
1556
- "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"
1748
+ "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",
1749
+ "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",
1750
+ "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",
1751
+ "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"
1557
1752
  ],
1558
1753
  "flags": {
1559
1754
  "json": {
@@ -1564,143 +1759,67 @@
1564
1759
  "type": "boolean"
1565
1760
  },
1566
1761
  "api-version": {
1567
- "char": "a",
1568
- "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.",
1762
+ "aliases": [
1763
+ "apiversion"
1764
+ ],
1765
+ "deprecateAliases": true,
1766
+ "description": "Override the api version used for api requests made by this command",
1569
1767
  "name": "api-version",
1570
- "summary": "Target API version for the deploy.",
1571
1768
  "hasDynamicHelp": false,
1572
1769
  "multiple": false,
1573
1770
  "type": "option"
1574
1771
  },
1575
- "async": {
1576
- "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\".",
1577
- "exclusive": [
1578
- "wait"
1579
- ],
1580
- "name": "async",
1581
- "summary": "Run the command asynchronously.",
1582
- "allowNo": false,
1583
- "type": "boolean"
1772
+ "loglevel": {
1773
+ "deprecated": {
1774
+ "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."
1775
+ },
1776
+ "hidden": true,
1777
+ "name": "loglevel",
1778
+ "hasDynamicHelp": false,
1779
+ "multiple": false,
1780
+ "type": "option"
1584
1781
  },
1585
- "concise": {
1586
- "exclusive": [
1587
- "verbose"
1782
+ "target-org": {
1783
+ "aliases": [
1784
+ "targetusername",
1785
+ "u"
1588
1786
  ],
1589
- "name": "concise",
1590
- "summary": "Show concise output of the deploy result.",
1591
- "allowNo": false,
1592
- "type": "boolean"
1593
- },
1594
- "dry-run": {
1595
- "name": "dry-run",
1596
- "summary": "Validate deploy and run Apex tests but don’t save to the org.",
1597
- "allowNo": false,
1598
- "type": "boolean"
1787
+ "char": "o",
1788
+ "deprecateAliases": true,
1789
+ "name": "target-org",
1790
+ "noCacheDefault": true,
1791
+ "required": true,
1792
+ "summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
1793
+ "hasDynamicHelp": true,
1794
+ "multiple": false,
1795
+ "type": "option"
1599
1796
  },
1600
- "ignore-conflicts": {
1797
+ "check-only": {
1798
+ "aliases": [
1799
+ "checkonly"
1800
+ ],
1601
1801
  "char": "c",
1602
- "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.",
1603
- "name": "ignore-conflicts",
1604
- "summary": "Ignore conflicts and deploy local files, even if they overwrite changes in the org.",
1605
- "allowNo": false,
1606
- "type": "boolean"
1607
- },
1608
- "ignore-errors": {
1609
- "char": "r",
1610
- "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.",
1611
- "name": "ignore-errors",
1612
- "summary": "Ignore any errors and don’t roll back deployment.",
1802
+ "deprecateAliases": true,
1803
+ "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.",
1804
+ "name": "check-only",
1805
+ "summary": "Validate delete command but don't delete anything from the org or the local project.",
1613
1806
  "allowNo": false,
1614
1807
  "type": "boolean"
1615
1808
  },
1616
- "ignore-warnings": {
1617
- "char": "g",
1618
- "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.",
1619
- "name": "ignore-warnings",
1620
- "summary": "Ignore warnings and allow a deployment to complete successfully.",
1621
- "allowNo": false,
1622
- "type": "boolean"
1623
- },
1624
- "manifest": {
1625
- "char": "x",
1626
- "description": "All child components are included. If you specify this flag, don’t specify --metadata or --source-dir.",
1627
- "exclusive": [
1628
- "source-dir",
1629
- "metadata",
1630
- "metadata-dir"
1631
- ],
1632
- "helpGroup": "Source Format",
1633
- "name": "manifest",
1634
- "summary": "Full file path for manifest (package.xml) of components to deploy.",
1635
- "hasDynamicHelp": false,
1636
- "multiple": false,
1637
- "type": "option"
1638
- },
1639
- "metadata": {
1640
- "char": "m",
1641
- "exclusive": [
1642
- "manifest",
1643
- "source-dir",
1644
- "metadata-dir"
1645
- ],
1646
- "helpGroup": "Source Format",
1647
- "name": "metadata",
1648
- "summary": "Metadata component names to deploy. Wildcards ( `*` ) supported as long as you use quotes, such as `ApexClass:MyClass*`",
1649
- "hasDynamicHelp": false,
1650
- "multiple": true,
1651
- "type": "option"
1652
- },
1653
- "metadata-dir": {
1654
- "exclusive": [
1655
- "manifest",
1656
- "source-dir",
1657
- "metadata"
1658
- ],
1659
- "helpGroup": "Metadata API Format",
1660
- "name": "metadata-dir",
1661
- "summary": "Root of directory or zip file of metadata formatted files to deploy.",
1662
- "hasDynamicHelp": false,
1663
- "multiple": false,
1664
- "type": "option"
1665
- },
1666
- "single-package": {
1667
- "dependsOn": [
1668
- "metadata-dir"
1669
- ],
1670
- "helpGroup": "Metadata API Format",
1671
- "name": "single-package",
1672
- "summary": "Indicates that the metadata zip file points to a directory structure for a single package.",
1673
- "allowNo": false,
1674
- "type": "boolean"
1675
- },
1676
- "source-dir": {
1677
- "char": "d",
1678
- "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.",
1679
- "exclusive": [
1680
- "manifest",
1681
- "metadata",
1682
- "metadata-dir"
1683
- ],
1684
- "helpGroup": "Source Format",
1685
- "name": "source-dir",
1686
- "summary": "Path to the local source files to deploy.",
1687
- "hasDynamicHelp": false,
1688
- "multiple": true,
1689
- "type": "option"
1690
- },
1691
- "target-org": {
1692
- "char": "o",
1693
- "description": "Overrides your default org.",
1694
- "name": "target-org",
1695
- "noCacheDefault": true,
1696
- "required": true,
1697
- "summary": "Login username or alias for the target org.",
1698
- "hasDynamicHelp": true,
1699
- "multiple": false,
1700
- "type": "option"
1809
+ "wait": {
1810
+ "char": "w",
1811
+ "description": "If the command continues to run after the wait period, the CLI returns control of the terminal window to you.",
1812
+ "name": "wait",
1813
+ "summary": "Number of minutes to wait for the command to finish.",
1814
+ "default": {
1815
+ "quantity": 33,
1816
+ "unit": 0
1817
+ },
1818
+ "hasDynamicHelp": false,
1819
+ "multiple": false,
1820
+ "type": "option"
1701
1821
  },
1702
1822
  "tests": {
1703
- "char": "t",
1704
1823
  "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\"",
1705
1824
  "helpGroup": "Test",
1706
1825
  "name": "tests",
@@ -1710,8 +1829,12 @@
1710
1829
  "type": "option"
1711
1830
  },
1712
1831
  "test-level": {
1832
+ "aliases": [
1833
+ "testlevel"
1834
+ ],
1713
1835
  "char": "l",
1714
- "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\".",
1836
+ "deprecateAliases": true,
1837
+ "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.",
1715
1838
  "helpGroup": "Test",
1716
1839
  "name": "test-level",
1717
1840
  "summary": "Deployment Apex testing level.",
@@ -1725,221 +1848,120 @@
1725
1848
  ],
1726
1849
  "type": "option"
1727
1850
  },
1728
- "verbose": {
1729
- "exclusive": [
1730
- "concise"
1851
+ "no-prompt": {
1852
+ "aliases": [
1853
+ "noprompt"
1731
1854
  ],
1732
- "name": "verbose",
1733
- "summary": "Show verbose output of the deploy result.",
1855
+ "char": "r",
1856
+ "deprecateAliases": true,
1857
+ "name": "no-prompt",
1858
+ "summary": "Don't prompt for delete confirmation.",
1734
1859
  "allowNo": false,
1735
1860
  "type": "boolean"
1736
1861
  },
1737
- "wait": {
1738
- "char": "w",
1739
- "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\".",
1740
- "exclusive": [
1741
- "async"
1862
+ "metadata": {
1863
+ "char": "m",
1864
+ "description": "If you specify this parameter, don’t specify --source-dir.",
1865
+ "name": "metadata",
1866
+ "summary": "Metadata components to delete.",
1867
+ "delimiter": ",",
1868
+ "hasDynamicHelp": false,
1869
+ "multiple": true,
1870
+ "type": "option"
1871
+ },
1872
+ "source-dir": {
1873
+ "aliases": [
1874
+ "sourcepath"
1742
1875
  ],
1743
- "name": "wait",
1744
- "summary": "Number of minutes to wait for command to complete and display results.",
1745
- "default": {
1746
- "quantity": 33,
1747
- "unit": 0
1748
- },
1876
+ "char": "p",
1877
+ "deprecateAliases": true,
1878
+ "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.",
1879
+ "name": "source-dir",
1880
+ "summary": "Source file paths to delete.",
1881
+ "delimiter": ",",
1749
1882
  "hasDynamicHelp": false,
1750
- "helpValue": "<minutes>",
1751
- "multiple": false,
1883
+ "multiple": true,
1752
1884
  "type": "option"
1753
1885
  },
1754
- "purge-on-delete": {
1755
- "dependsOn": [
1756
- "manifest"
1886
+ "track-source": {
1887
+ "aliases": [
1888
+ "tracksource"
1757
1889
  ],
1758
- "helpGroup": "Delete",
1759
- "name": "purge-on-delete",
1760
- "relationships": [
1761
- {
1762
- "type": "some",
1763
- "flags": [
1764
- "pre-destructive-changes",
1765
- "post-destructive-changes"
1766
- ]
1767
- }
1890
+ "char": "t",
1891
+ "deprecateAliases": true,
1892
+ "exclusive": [
1893
+ "check-only"
1768
1894
  ],
1769
- "summary": "Specify that deleted components in the destructive changes manifest file are immediately eligible for deletion rather than being stored in the Recycle Bin.",
1895
+ "name": "track-source",
1896
+ "summary": "If the delete succeeds, update the source tracking information.",
1770
1897
  "allowNo": false,
1771
1898
  "type": "boolean"
1772
1899
  },
1773
- "pre-destructive-changes": {
1774
- "dependsOn": [
1775
- "manifest"
1900
+ "force-overwrite": {
1901
+ "aliases": [
1902
+ "forceoverwrite"
1776
1903
  ],
1777
- "helpGroup": "Delete",
1778
- "name": "pre-destructive-changes",
1779
- "summary": "File path for a manifest (destructiveChangesPre.xml) of components to delete before the deploy",
1780
- "hasDynamicHelp": false,
1781
- "multiple": false,
1782
- "type": "option"
1783
- },
1784
- "post-destructive-changes": {
1904
+ "char": "f",
1785
1905
  "dependsOn": [
1786
- "manifest"
1787
- ],
1788
- "helpGroup": "Delete",
1789
- "name": "post-destructive-changes",
1790
- "summary": "File path for a manifest (destructiveChangesPost.xml) of components to delete after the deploy.",
1791
- "hasDynamicHelp": false,
1792
- "multiple": false,
1793
- "type": "option"
1794
- },
1795
- "coverage-formatters": {
1796
- "description": "For multiple formatters, repeat the flag for each formatter.\n--coverage-formatters lcov --coverage-formatters clover",
1797
- "helpGroup": "Test",
1798
- "name": "coverage-formatters",
1799
- "summary": "Format of the code coverage results.",
1800
- "hasDynamicHelp": false,
1801
- "multiple": true,
1802
- "options": [
1803
- "clover",
1804
- "cobertura",
1805
- "html-spa",
1806
- "html",
1807
- "json",
1808
- "json-summary",
1809
- "lcovonly",
1810
- "none",
1811
- "teamcity",
1812
- "text",
1813
- "text-summary"
1906
+ "track-source"
1814
1907
  ],
1815
- "type": "option"
1816
- },
1817
- "junit": {
1818
- "helpGroup": "Test",
1819
- "name": "junit",
1820
- "summary": "Output JUnit test results.",
1908
+ "deprecateAliases": true,
1909
+ "name": "force-overwrite",
1910
+ "summary": "Ignore conflict warnings and overwrite changes to the org.",
1821
1911
  "allowNo": false,
1822
1912
  "type": "boolean"
1823
1913
  },
1824
- "results-dir": {
1825
- "helpGroup": "Test",
1826
- "name": "results-dir",
1827
- "relationships": [
1828
- {
1829
- "type": "some",
1830
- "flags": [
1831
- "coverage-formatters",
1832
- "junit"
1833
- ]
1834
- }
1835
- ],
1836
- "summary": "Output directory for code coverage and JUnit results; defaults to the deploy ID.",
1837
- "hasDynamicHelp": false,
1838
- "multiple": false,
1839
- "type": "option"
1914
+ "verbose": {
1915
+ "name": "verbose",
1916
+ "summary": "Verbose output of the delete result.",
1917
+ "allowNo": false,
1918
+ "type": "boolean"
1840
1919
  }
1841
1920
  },
1842
1921
  "hasDynamicHelp": true,
1843
1922
  "hiddenAliases": [],
1844
- "id": "project:deploy:start",
1923
+ "id": "project:delete:source",
1845
1924
  "pluginAlias": "@salesforce/plugin-deploy-retrieve",
1846
1925
  "pluginName": "@salesforce/plugin-deploy-retrieve",
1847
1926
  "pluginType": "core",
1848
1927
  "strict": true,
1849
- "summary": "Deploy metadata to an org from your local project.",
1928
+ "summary": "Delete source from your project and from a non-source-tracked org.",
1850
1929
  "enableJsonFlag": true,
1851
- "configurationVariablesSection": {
1852
- "header": "CONFIGURATION VARIABLES",
1853
- "body": [
1854
- {
1855
- "name": "target-org",
1856
- "description": "Username or alias of the org that all commands run against by default. (sf only)"
1857
- },
1858
- {
1859
- "name": "org-api-version",
1860
- "description": "API version of your project. Default: API version of your Dev Hub org."
1861
- }
1862
- ]
1863
- },
1864
- "envVariablesSection": {
1865
- "header": "ENVIRONMENT VARIABLES",
1866
- "body": [
1867
- {
1868
- "name": "SF_TARGET_ORG",
1869
- "description": "Username or alias of your default org. Overrides the target-org configuration variable."
1870
- },
1871
- {
1872
- "name": "SF_USE_PROGRESS_BAR",
1873
- "description": "Set to false to disable the progress bar when running the metadata deploy command."
1874
- }
1875
- ]
1876
- },
1877
- "errorCodes": {
1878
- "header": "ERROR CODES",
1879
- "body": [
1880
- {
1881
- "name": "Succeeded (0)",
1882
- "description": "The deploy succeeded."
1883
- },
1884
- {
1885
- "name": "Canceled (1)",
1886
- "description": "The deploy was canceled."
1887
- },
1888
- {
1889
- "name": "Failed (1)",
1890
- "description": "The deploy failed."
1891
- },
1892
- {
1893
- "name": "SucceededPartial (68)",
1894
- "description": "The deploy partially succeeded."
1895
- },
1896
- {
1897
- "name": "InProgress (69)",
1898
- "description": "The deploy is in progress."
1899
- },
1900
- {
1901
- "name": "Pending (69)",
1902
- "description": "The deploy is pending."
1903
- },
1904
- {
1905
- "name": "Canceling (69)",
1906
- "description": "The deploy is being canceled."
1907
- }
1908
- ]
1909
- },
1930
+ "requiresProject": true,
1910
1931
  "isESM": true,
1911
1932
  "relativePath": [
1912
1933
  "lib",
1913
1934
  "commands",
1914
1935
  "project",
1915
- "deploy",
1916
- "start.js"
1936
+ "delete",
1937
+ "source.js"
1917
1938
  ],
1918
1939
  "aliasPermutations": [
1919
- "deploy:metadata",
1920
- "metadata:deploy"
1940
+ "force:source:delete",
1941
+ "source:force:delete",
1942
+ "source:delete:force",
1943
+ "force:delete:source",
1944
+ "delete:force:source",
1945
+ "delete:source:force"
1921
1946
  ],
1922
1947
  "permutations": [
1923
- "project:deploy:start",
1924
- "deploy:project:start",
1925
- "deploy:start:project",
1926
- "project:start:deploy",
1927
- "start:project:deploy",
1928
- "start:deploy:project"
1948
+ "project:delete:source",
1949
+ "delete:project:source",
1950
+ "delete:source:project",
1951
+ "project:source:delete",
1952
+ "source:project:delete",
1953
+ "source:delete:project"
1929
1954
  ]
1930
1955
  },
1931
- "project:deploy:validate": {
1956
+ "project:delete:tracking": {
1932
1957
  "aliases": [
1933
- "deploy:metadata:validate"
1958
+ "force:source:tracking:clear"
1934
1959
  ],
1935
1960
  "args": {},
1936
1961
  "deprecateAliases": true,
1937
- "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.",
1962
+ "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.",
1938
1963
  "examples": [
1939
- "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.",
1940
- "Validate the deployment of all source files in a directory to the default org:\n<%= config.bin %> <%= command.id %> --source-dir path/to/source",
1941
- "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",
1942
- "Validate the deployment of all components listed in a manifest:\n<%= config.bin %> <%= command.id %> --manifest path/to/package.xml"
1964
+ "Delete local source tracking for the org with alias \"my-scratch\":\n$ <%= config.bin %> <%= command.id %> --target-org my-scratch"
1943
1965
  ],
1944
1966
  "flags": {
1945
1967
  "json": {
@@ -1950,324 +1972,302 @@
1950
1972
  "type": "boolean"
1951
1973
  },
1952
1974
  "api-version": {
1953
- "char": "a",
1954
- "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.",
1975
+ "aliases": [
1976
+ "apiversion"
1977
+ ],
1978
+ "deprecateAliases": true,
1979
+ "description": "Override the api version used for api requests made by this command",
1955
1980
  "name": "api-version",
1956
- "summary": "Target API version for the validation.",
1957
1981
  "hasDynamicHelp": false,
1958
1982
  "multiple": false,
1959
1983
  "type": "option"
1960
1984
  },
1961
- "async": {
1962
- "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\".",
1963
- "name": "async",
1964
- "summary": "Run the command asynchronously.",
1965
- "allowNo": false,
1966
- "type": "boolean"
1985
+ "loglevel": {
1986
+ "deprecated": {
1987
+ "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."
1988
+ },
1989
+ "hidden": true,
1990
+ "name": "loglevel",
1991
+ "hasDynamicHelp": false,
1992
+ "multiple": false,
1993
+ "type": "option"
1967
1994
  },
1968
- "concise": {
1969
- "exclusive": [
1970
- "verbose"
1995
+ "target-org": {
1996
+ "aliases": [
1997
+ "targetusername",
1998
+ "u"
1971
1999
  ],
1972
- "name": "concise",
1973
- "summary": "Show concise output of the validation result.",
2000
+ "char": "o",
2001
+ "deprecateAliases": true,
2002
+ "name": "target-org",
2003
+ "noCacheDefault": true,
2004
+ "required": true,
2005
+ "summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
2006
+ "hasDynamicHelp": true,
2007
+ "multiple": false,
2008
+ "type": "option"
2009
+ },
2010
+ "no-prompt": {
2011
+ "aliases": [
2012
+ "noprompt"
2013
+ ],
2014
+ "char": "p",
2015
+ "deprecateAliases": true,
2016
+ "name": "no-prompt",
2017
+ "summary": "Don't prompt for source tracking override confirmation.",
2018
+ "allowNo": false,
2019
+ "type": "boolean"
2020
+ }
2021
+ },
2022
+ "hasDynamicHelp": true,
2023
+ "hiddenAliases": [],
2024
+ "id": "project:delete:tracking",
2025
+ "pluginAlias": "@salesforce/plugin-deploy-retrieve",
2026
+ "pluginName": "@salesforce/plugin-deploy-retrieve",
2027
+ "pluginType": "core",
2028
+ "strict": true,
2029
+ "summary": "Delete all local source tracking information.",
2030
+ "enableJsonFlag": true,
2031
+ "requiresProject": true,
2032
+ "isESM": true,
2033
+ "relativePath": [
2034
+ "lib",
2035
+ "commands",
2036
+ "project",
2037
+ "delete",
2038
+ "tracking.js"
2039
+ ],
2040
+ "aliasPermutations": [
2041
+ "force:source:tracking:clear",
2042
+ "source:force:tracking:clear",
2043
+ "source:tracking:force:clear",
2044
+ "source:tracking:clear:force",
2045
+ "force:tracking:source:clear",
2046
+ "tracking:force:source:clear",
2047
+ "tracking:source:force:clear",
2048
+ "tracking:source:clear:force",
2049
+ "force:tracking:clear:source",
2050
+ "tracking:force:clear:source",
2051
+ "tracking:clear:force:source",
2052
+ "tracking:clear:source:force",
2053
+ "force:source:clear:tracking",
2054
+ "source:force:clear:tracking",
2055
+ "source:clear:force:tracking",
2056
+ "source:clear:tracking:force",
2057
+ "force:clear:source:tracking",
2058
+ "clear:force:source:tracking",
2059
+ "clear:source:force:tracking",
2060
+ "clear:source:tracking:force",
2061
+ "force:clear:tracking:source",
2062
+ "clear:force:tracking:source",
2063
+ "clear:tracking:force:source",
2064
+ "clear:tracking:source:force"
2065
+ ],
2066
+ "permutations": [
2067
+ "project:delete:tracking",
2068
+ "delete:project:tracking",
2069
+ "delete:tracking:project",
2070
+ "project:tracking:delete",
2071
+ "tracking:project:delete",
2072
+ "tracking:delete:project"
2073
+ ]
2074
+ },
2075
+ "project:generate:manifest": {
2076
+ "aliases": [
2077
+ "force:source:manifest:create"
2078
+ ],
2079
+ "args": {},
2080
+ "deprecateAliases": true,
2081
+ "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 parameters, 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 parameter, 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.",
2082
+ "examples": [
2083
+ "Create a manifest for deploying or retrieving all Apex classes and custom objects:\n$ <%= config.bin %> <%= command.id %> --metadata ApexClass --metadata CustomObject",
2084
+ "Create a manifest for deleting the specified Apex class:\n$ <%= config.bin %> <%= command.id %> --metadata ApexClass:MyApexClass --type destroy",
2085
+ "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",
2086
+ "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"
2087
+ ],
2088
+ "flags": {
2089
+ "json": {
2090
+ "description": "Format output as json.",
2091
+ "helpGroup": "GLOBAL",
2092
+ "name": "json",
1974
2093
  "allowNo": false,
1975
2094
  "type": "boolean"
1976
2095
  },
1977
- "manifest": {
1978
- "char": "x",
1979
- "description": "All child components are included. If you specify this flag, don’t specify --metadata or --source-dir.",
1980
- "helpGroup": "Source Format",
1981
- "name": "manifest",
1982
- "summary": "Full file path for manifest (package.xml) of components to validate for deployment.",
2096
+ "api-version": {
2097
+ "aliases": [
2098
+ "apiversion"
2099
+ ],
2100
+ "deprecateAliases": true,
2101
+ "description": "Override the api version used for api requests made by this command",
2102
+ "name": "api-version",
2103
+ "hasDynamicHelp": false,
2104
+ "multiple": false,
2105
+ "type": "option"
2106
+ },
2107
+ "loglevel": {
2108
+ "deprecated": {
2109
+ "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."
2110
+ },
2111
+ "hidden": true,
2112
+ "name": "loglevel",
1983
2113
  "hasDynamicHelp": false,
1984
2114
  "multiple": false,
1985
2115
  "type": "option"
1986
2116
  },
1987
2117
  "metadata": {
1988
2118
  "char": "m",
1989
- "helpGroup": "Source Format",
1990
2119
  "name": "metadata",
1991
- "summary": "Metadata component names to validate for deployment.",
2120
+ "summary": "Names of metadata components to include in the manifest.",
2121
+ "delimiter": ",",
1992
2122
  "hasDynamicHelp": false,
1993
2123
  "multiple": true,
1994
2124
  "type": "option"
1995
2125
  },
1996
2126
  "source-dir": {
1997
- "char": "d",
1998
- "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.",
1999
- "helpGroup": "Source Format",
2127
+ "aliases": [
2128
+ "sourcepath"
2129
+ ],
2130
+ "char": "p",
2131
+ "deprecateAliases": true,
2000
2132
  "name": "source-dir",
2001
- "summary": "Path to the local source files to validate for deployment.",
2133
+ "summary": "Paths to the local source files to include in the manifest.",
2134
+ "delimiter": ",",
2002
2135
  "hasDynamicHelp": false,
2003
2136
  "multiple": true,
2004
2137
  "type": "option"
2005
2138
  },
2006
- "metadata-dir": {
2007
- "helpGroup": "Metadata API Format",
2008
- "name": "metadata-dir",
2009
- "summary": "Root of directory or zip file of metadata formatted files to deploy.",
2139
+ "name": {
2140
+ "aliases": [
2141
+ "manifestname"
2142
+ ],
2143
+ "char": "n",
2144
+ "deprecateAliases": true,
2145
+ "exclusive": [
2146
+ "type"
2147
+ ],
2148
+ "name": "name",
2149
+ "summary": "Name of a custom manifest file to create.",
2010
2150
  "hasDynamicHelp": false,
2011
2151
  "multiple": false,
2012
2152
  "type": "option"
2013
2153
  },
2014
- "single-package": {
2015
- "dependsOn": [
2016
- "metadata-dir"
2154
+ "type": {
2155
+ "aliases": [
2156
+ "manifesttype"
2017
2157
  ],
2018
- "helpGroup": "Metadata API Format",
2019
- "name": "single-package",
2020
- "summary": "Indicates that the metadata zip file points to a directory structure for a single package.",
2021
- "allowNo": false,
2022
- "type": "boolean"
2023
- },
2024
- "target-org": {
2025
- "char": "o",
2026
- "description": "Overrides your default org.",
2027
- "name": "target-org",
2028
- "noCacheDefault": true,
2029
- "required": true,
2030
- "summary": "Login username or alias for the target org.",
2031
- "hasDynamicHelp": true,
2032
- "multiple": false,
2033
- "type": "option"
2034
- },
2035
- "tests": {
2036
2158
  "char": "t",
2037
- "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\"",
2038
- "helpGroup": "Test",
2039
- "name": "tests",
2040
- "summary": "Apex tests to run when --test-level is RunSpecifiedTests.",
2041
- "hasDynamicHelp": false,
2042
- "multiple": true,
2043
- "type": "option"
2044
- },
2045
- "test-level": {
2046
- "char": "l",
2047
- "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.",
2048
- "helpGroup": "Test",
2049
- "name": "test-level",
2050
- "summary": "Deployment Apex testing level.",
2051
- "default": "RunLocalTests",
2052
- "hasDynamicHelp": false,
2053
- "multiple": false,
2054
- "options": [
2055
- "RunAllTestsInOrg",
2056
- "RunLocalTests",
2057
- "RunSpecifiedTests"
2058
- ],
2059
- "type": "option"
2060
- },
2061
- "verbose": {
2159
+ "deprecateAliases": true,
2062
2160
  "exclusive": [
2063
- "concise"
2161
+ "name"
2064
2162
  ],
2065
- "name": "verbose",
2066
- "summary": "Show verbose output of the validation result.",
2067
- "allowNo": false,
2068
- "type": "boolean"
2069
- },
2070
- "wait": {
2071
- "char": "w",
2072
- "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\".",
2073
- "name": "wait",
2074
- "summary": "Number of minutes to wait for the command to complete and display results.",
2075
- "default": {
2076
- "quantity": 33,
2077
- "unit": 0
2078
- },
2163
+ "name": "type",
2164
+ "summary": "Type of manifest to create; the type determines the name of the created file.",
2079
2165
  "hasDynamicHelp": false,
2080
- "helpValue": "<minutes>",
2081
2166
  "multiple": false,
2082
- "type": "option"
2083
- },
2084
- "ignore-warnings": {
2085
- "char": "g",
2086
- "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.",
2087
- "name": "ignore-warnings",
2088
- "summary": "Ignore warnings and allow a deployment to complete successfully.",
2089
- "allowNo": false,
2090
- "type": "boolean"
2091
- },
2092
- "coverage-formatters": {
2093
- "description": "For multiple formatters, repeat the flag for each formatter.\n--coverage-formatters lcov --coverage-formatters clover",
2094
- "helpGroup": "Test",
2095
- "name": "coverage-formatters",
2096
- "summary": "Format of the code coverage results.",
2097
- "hasDynamicHelp": false,
2098
- "multiple": true,
2099
2167
  "options": [
2100
- "clover",
2101
- "cobertura",
2102
- "html-spa",
2103
- "html",
2104
- "json",
2105
- "json-summary",
2106
- "lcovonly",
2107
- "none",
2108
- "teamcity",
2109
- "text",
2110
- "text-summary"
2168
+ "pre",
2169
+ "post",
2170
+ "destroy",
2171
+ "package"
2111
2172
  ],
2112
2173
  "type": "option"
2113
2174
  },
2114
- "junit": {
2115
- "helpGroup": "Test",
2116
- "name": "junit",
2117
- "summary": "Output JUnit test results.",
2118
- "allowNo": false,
2119
- "type": "boolean"
2120
- },
2121
- "results-dir": {
2122
- "helpGroup": "Test",
2123
- "name": "results-dir",
2124
- "relationships": [
2125
- {
2126
- "type": "some",
2127
- "flags": [
2128
- "coverage-formatters",
2129
- "junit"
2130
- ]
2131
- }
2175
+ "include-packages": {
2176
+ "aliases": [
2177
+ "includepackages"
2132
2178
  ],
2133
- "summary": "Output directory for code coverage and JUnit results; defaults to the deploy ID.",
2134
- "hasDynamicHelp": false,
2135
- "multiple": false,
2136
- "type": "option"
2137
- },
2138
- "purge-on-delete": {
2179
+ "char": "c",
2139
2180
  "dependsOn": [
2140
- "manifest"
2181
+ "from-org"
2141
2182
  ],
2142
- "helpGroup": "Delete",
2143
- "name": "purge-on-delete",
2144
- "relationships": [
2145
- {
2146
- "type": "some",
2147
- "flags": [
2148
- "pre-destructive-changes",
2149
- "post-destructive-changes"
2150
- ]
2151
- }
2183
+ "deprecateAliases": true,
2184
+ "name": "include-packages",
2185
+ "summary": "Package types (managed, unlocked) whose metadata is included in the manifest; by default, metadata in packages is ignored.",
2186
+ "delimiter": ",",
2187
+ "hasDynamicHelp": false,
2188
+ "multiple": true,
2189
+ "options": [
2190
+ "managed",
2191
+ "unlocked"
2152
2192
  ],
2153
- "summary": "Specify that deleted components in the destructive changes manifest file are immediately eligible for deletion rather than being stored in the Recycle Bin.",
2154
- "allowNo": false,
2155
- "type": "boolean"
2193
+ "type": "option"
2156
2194
  },
2157
- "pre-destructive-changes": {
2158
- "dependsOn": [
2159
- "manifest"
2195
+ "from-org": {
2196
+ "aliases": [
2197
+ "fromorg"
2160
2198
  ],
2161
- "helpGroup": "Delete",
2162
- "name": "pre-destructive-changes",
2163
- "summary": "File path for a manifest (destructiveChangesPre.xml) of components to delete before the deploy",
2199
+ "deprecateAliases": true,
2200
+ "name": "from-org",
2201
+ "summary": "Username or alias of the org that contains the metadata components from which to build a manifest.",
2164
2202
  "hasDynamicHelp": false,
2165
2203
  "multiple": false,
2166
2204
  "type": "option"
2167
2205
  },
2168
- "post-destructive-changes": {
2169
- "dependsOn": [
2170
- "manifest"
2206
+ "output-dir": {
2207
+ "aliases": [
2208
+ "outputdir",
2209
+ "o"
2171
2210
  ],
2172
- "helpGroup": "Delete",
2173
- "name": "post-destructive-changes",
2174
- "summary": "File path for a manifest (destructiveChangesPost.xml) of components to delete after the deploy.",
2211
+ "char": "d",
2212
+ "deprecateAliases": true,
2213
+ "name": "output-dir",
2214
+ "summary": "Directory to save the created manifest.",
2175
2215
  "hasDynamicHelp": false,
2176
2216
  "multiple": false,
2177
2217
  "type": "option"
2178
2218
  }
2179
2219
  },
2180
- "hasDynamicHelp": true,
2220
+ "hasDynamicHelp": false,
2181
2221
  "hiddenAliases": [],
2182
- "id": "project:deploy:validate",
2222
+ "id": "project:generate:manifest",
2183
2223
  "pluginAlias": "@salesforce/plugin-deploy-retrieve",
2184
2224
  "pluginName": "@salesforce/plugin-deploy-retrieve",
2185
2225
  "pluginType": "core",
2186
2226
  "strict": true,
2187
- "summary": "Validate a metadata deployment without actually executing it.",
2227
+ "summary": "Create a project manifest that lists the metadata components you want to deploy or retrieve.",
2188
2228
  "enableJsonFlag": true,
2189
- "configurationVariablesSection": {
2190
- "header": "CONFIGURATION VARIABLES",
2191
- "body": [
2192
- {
2193
- "name": "target-org",
2194
- "description": "Username or alias of the org that all commands run against by default. (sf only)"
2195
- },
2196
- {
2197
- "name": "org-api-version",
2198
- "description": "API version of your project. Default: API version of your Dev Hub org."
2199
- }
2200
- ]
2201
- },
2202
- "envVariablesSection": {
2203
- "header": "ENVIRONMENT VARIABLES",
2204
- "body": [
2205
- {
2206
- "name": "SF_TARGET_ORG",
2207
- "description": "Username or alias of your default org. Overrides the target-org configuration variable."
2208
- },
2209
- {
2210
- "name": "SF_USE_PROGRESS_BAR",
2211
- "description": "Set to false to disable the progress bar when running the metadata deploy command."
2212
- }
2213
- ]
2214
- },
2215
- "errorCodes": {
2216
- "header": "ERROR CODES",
2217
- "body": [
2218
- {
2219
- "name": "Succeeded (0)",
2220
- "description": "The deploy succeeded."
2221
- },
2222
- {
2223
- "name": "Canceled (1)",
2224
- "description": "The deploy was canceled."
2225
- },
2226
- {
2227
- "name": "Failed (1)",
2228
- "description": "The deploy failed."
2229
- },
2230
- {
2231
- "name": "SucceededPartial (68)",
2232
- "description": "The deploy partially succeeded."
2233
- },
2234
- {
2235
- "name": "InProgress (69)",
2236
- "description": "The deploy is in progress."
2237
- },
2238
- {
2239
- "name": "Pending (69)",
2240
- "description": "The deploy is pending."
2241
- },
2242
- {
2243
- "name": "Canceling (69)",
2244
- "description": "The deploy is being canceled."
2245
- }
2246
- ]
2247
- },
2229
+ "requiresProject": true,
2248
2230
  "isESM": true,
2249
2231
  "relativePath": [
2250
2232
  "lib",
2251
2233
  "commands",
2252
2234
  "project",
2253
- "deploy",
2254
- "validate.js"
2235
+ "generate",
2236
+ "manifest.js"
2255
2237
  ],
2256
2238
  "aliasPermutations": [
2257
- "deploy:metadata:validate",
2258
- "metadata:deploy:validate",
2259
- "metadata:validate:deploy",
2260
- "deploy:validate:metadata",
2261
- "validate:deploy:metadata",
2262
- "validate:metadata:deploy"
2239
+ "force:source:manifest:create",
2240
+ "source:force:manifest:create",
2241
+ "source:manifest:force:create",
2242
+ "source:manifest:create:force",
2243
+ "force:manifest:source:create",
2244
+ "manifest:force:source:create",
2245
+ "manifest:source:force:create",
2246
+ "manifest:source:create:force",
2247
+ "force:manifest:create:source",
2248
+ "manifest:force:create:source",
2249
+ "manifest:create:force:source",
2250
+ "manifest:create:source:force",
2251
+ "force:source:create:manifest",
2252
+ "source:force:create:manifest",
2253
+ "source:create:force:manifest",
2254
+ "source:create:manifest:force",
2255
+ "force:create:source:manifest",
2256
+ "create:force:source:manifest",
2257
+ "create:source:force:manifest",
2258
+ "create:source:manifest:force",
2259
+ "force:create:manifest:source",
2260
+ "create:force:manifest:source",
2261
+ "create:manifest:force:source",
2262
+ "create:manifest:source:force"
2263
2263
  ],
2264
2264
  "permutations": [
2265
- "project:deploy:validate",
2266
- "deploy:project:validate",
2267
- "deploy:validate:project",
2268
- "project:validate:deploy",
2269
- "validate:project:deploy",
2270
- "validate:deploy:project"
2265
+ "project:generate:manifest",
2266
+ "generate:project:manifest",
2267
+ "generate:manifest:project",
2268
+ "project:manifest:generate",
2269
+ "manifest:project:generate",
2270
+ "manifest:generate:project"
2271
2271
  ]
2272
2272
  },
2273
2273
  "project:list:ignored": {
@@ -2815,5 +2815,5 @@
2815
2815
  ]
2816
2816
  }
2817
2817
  },
2818
- "version": "3.2.2"
2818
+ "version": "3.2.3"
2819
2819
  }