@salesforce/plugin-deploy-retrieve 3.2.25 → 3.2.26

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_1709594365139",
205
+ "default": "metadataPackage_1709660846060",
206
206
  "hasDynamicHelp": false,
207
207
  "multiple": false,
208
208
  "type": "option"
@@ -295,16 +295,18 @@
295
295
  "source:convert:project"
296
296
  ]
297
297
  },
298
- "project:deploy:cancel": {
298
+ "project:delete:source": {
299
299
  "aliases": [
300
- "deploy:metadata:cancel"
300
+ "force:source:delete"
301
301
  ],
302
302
  "args": {},
303
303
  "deprecateAliases": true,
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.",
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.",
305
305
  "examples": [
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"
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"
308
310
  ],
309
311
  "flags": {
310
312
  "json": {
@@ -314,175 +316,174 @@
314
316
  "allowNo": false,
315
317
  "type": "boolean"
316
318
  },
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"
319
+ "api-version": {
320
+ "aliases": [
321
+ "apiversion"
321
322
  ],
322
- "name": "async",
323
- "summary": "Run the command asynchronously.",
324
- "allowNo": false,
325
- "type": "boolean"
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"
326
329
  },
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.",
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",
332
336
  "hasDynamicHelp": false,
333
337
  "multiple": false,
334
338
  "type": "option"
335
339
  },
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.",
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.",
341
364
  "allowNo": false,
342
365
  "type": "boolean"
343
366
  },
344
367
  "wait": {
345
368
  "char": "w",
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
- ],
369
+ "description": "If the command continues to run after the wait period, the CLI returns control of the terminal window to you.",
350
370
  "name": "wait",
351
- "summary": "Number of minutes to wait for the command to complete and display results.",
371
+ "summary": "Number of minutes to wait for the command to finish.",
372
+ "default": {
373
+ "quantity": 33,
374
+ "unit": 0
375
+ },
352
376
  "hasDynamicHelp": false,
353
- "helpValue": "<minutes>",
354
377
  "multiple": false,
355
378
  "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"
413
379
  },
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"
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"
421
388
  },
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"
389
+ "test-level": {
390
+ "aliases": [
391
+ "testlevel"
428
392
  ],
429
- "name": "manifest",
430
- "summary": "Full file path for manifest (package.xml) of components to preview.",
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.",
431
399
  "hasDynamicHelp": false,
432
400
  "multiple": false,
401
+ "options": [
402
+ "NoTestRun",
403
+ "RunSpecifiedTests",
404
+ "RunLocalTests",
405
+ "RunAllTestsInOrg"
406
+ ],
433
407
  "type": "option"
434
408
  },
409
+ "no-prompt": {
410
+ "aliases": [
411
+ "noprompt"
412
+ ],
413
+ "char": "r",
414
+ "deprecateAliases": true,
415
+ "name": "no-prompt",
416
+ "summary": "Don't prompt for delete confirmation.",
417
+ "allowNo": false,
418
+ "type": "boolean"
419
+ },
435
420
  "metadata": {
436
421
  "char": "m",
437
- "exclusive": [
438
- "manifest",
439
- "source-dir"
440
- ],
422
+ "description": "If you specify this parameter, don’t specify --source-dir.",
441
423
  "name": "metadata",
442
- "summary": "Metadata component names to preview.",
424
+ "summary": "Metadata components to delete.",
425
+ "delimiter": ",",
443
426
  "hasDynamicHelp": false,
444
427
  "multiple": true,
445
428
  "type": "option"
446
429
  },
447
430
  "source-dir": {
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"
431
+ "aliases": [
432
+ "sourcepath"
453
433
  ],
434
+ "char": "p",
435
+ "deprecateAliases": true,
436
+ "description": "The supplied paths can be a single file (in which case the operation is applied to only one file) or a folder (in which case the operation is applied to all metadata types in the directory and its sub-directories).\n\nIf you specify this parameter, don’t specify --metadata.",
454
437
  "name": "source-dir",
455
- "summary": "Path to the local source files to preview.",
438
+ "summary": "Source file paths to delete.",
439
+ "delimiter": ",",
456
440
  "hasDynamicHelp": false,
457
441
  "multiple": true,
458
442
  "type": "option"
459
443
  },
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"
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"
470
457
  },
471
- "concise": {
472
- "name": "concise",
473
- "summary": "Show only the changes that will be deployed; omits files that are forceignored.",
458
+ "force-overwrite": {
459
+ "aliases": [
460
+ "forceoverwrite"
461
+ ],
462
+ "char": "f",
463
+ "dependsOn": [
464
+ "track-source"
465
+ ],
466
+ "deprecateAliases": true,
467
+ "name": "force-overwrite",
468
+ "summary": "Ignore conflict warnings and overwrite changes to the org.",
469
+ "allowNo": false,
470
+ "type": "boolean"
471
+ },
472
+ "verbose": {
473
+ "name": "verbose",
474
+ "summary": "Verbose output of the delete result.",
474
475
  "allowNo": false,
475
476
  "type": "boolean"
476
477
  }
477
478
  },
478
479
  "hasDynamicHelp": true,
479
480
  "hiddenAliases": [],
480
- "id": "project:deploy:preview",
481
+ "id": "project:delete:source",
481
482
  "pluginAlias": "@salesforce/plugin-deploy-retrieve",
482
483
  "pluginName": "@salesforce/plugin-deploy-retrieve",
483
484
  "pluginType": "core",
484
485
  "strict": true,
485
- "summary": "Preview a deployment to see what will deploy to the org, the potential conflicts, and the ignored files.",
486
+ "summary": "Delete source from your project and from a non-source-tracked org.",
486
487
  "enableJsonFlag": true,
487
488
  "requiresProject": true,
488
489
  "isESM": true,
@@ -490,36 +491,35 @@
490
491
  "lib",
491
492
  "commands",
492
493
  "project",
493
- "deploy",
494
- "preview.js"
494
+ "delete",
495
+ "source.js"
495
496
  ],
496
497
  "aliasPermutations": [
497
- "deploy:metadata:preview",
498
- "metadata:deploy:preview",
499
- "metadata:preview:deploy",
500
- "deploy:preview:metadata",
501
- "preview:deploy:metadata",
502
- "preview:metadata:deploy"
498
+ "force:source:delete",
499
+ "source:force:delete",
500
+ "source:delete:force",
501
+ "force:delete:source",
502
+ "delete:force:source",
503
+ "delete:source:force"
503
504
  ],
504
505
  "permutations": [
505
- "project:deploy:preview",
506
- "deploy:project:preview",
507
- "deploy:preview:project",
508
- "project:preview:deploy",
509
- "preview:project:deploy",
510
- "preview:deploy:project"
506
+ "project:delete:source",
507
+ "delete:project:source",
508
+ "delete:source:project",
509
+ "project:source:delete",
510
+ "source:project:delete",
511
+ "source:delete:project"
511
512
  ]
512
513
  },
513
- "project:deploy:quick": {
514
+ "project:delete:tracking": {
514
515
  "aliases": [
515
- "deploy:metadata:quick"
516
+ "force:source:tracking:clear"
516
517
  ],
517
518
  "args": {},
518
519
  "deprecateAliases": true,
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.\n\nNote: Don't use this command on sandboxes; the command is intended to be used on production orgs. By default, sandboxes don't run tests during a deploy. Use `sf project deploy start` instead.",
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.",
520
521
  "examples": [
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"
522
+ "Delete local source tracking for the org with alias \"my-scratch\":\n$ <%= config.bin %> <%= command.id %> --target-org my-scratch"
523
523
  ],
524
524
  "flags": {
525
525
  "json": {
@@ -529,166 +529,117 @@
529
529
  "allowNo": false,
530
530
  "type": "boolean"
531
531
  },
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"
536
- ],
537
- "name": "async",
538
- "summary": "Run the command asynchronously.",
539
- "allowNo": false,
540
- "type": "boolean"
541
- },
542
- "concise": {
543
- "exclusive": [
544
- "verbose"
532
+ "api-version": {
533
+ "aliases": [
534
+ "apiversion"
545
535
  ],
546
- "name": "concise",
547
- "summary": "Show concise output of the deploy result.",
548
- "allowNo": false,
549
- "type": "boolean"
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"
550
542
  },
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.",
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",
556
549
  "hasDynamicHelp": false,
557
550
  "multiple": false,
558
551
  "type": "option"
559
552
  },
560
553
  "target-org": {
554
+ "aliases": [
555
+ "targetusername",
556
+ "u"
557
+ ],
561
558
  "char": "o",
562
- "description": "Overrides your default org.",
559
+ "deprecateAliases": true,
563
560
  "name": "target-org",
564
561
  "noCacheDefault": true,
565
- "summary": "Login username or alias for the target org.",
562
+ "required": true,
563
+ "summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
566
564
  "hasDynamicHelp": true,
567
565
  "multiple": false,
568
566
  "type": "option"
569
567
  },
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"
568
+ "no-prompt": {
569
+ "aliases": [
570
+ "noprompt"
581
571
  ],
582
- "name": "verbose",
583
- "summary": "Show verbose output of the deploy result.",
572
+ "char": "p",
573
+ "deprecateAliases": true,
574
+ "name": "no-prompt",
575
+ "summary": "Don't prompt for source tracking override confirmation.",
584
576
  "allowNo": false,
585
577
  "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"
612
578
  }
613
579
  },
614
580
  "hasDynamicHelp": true,
615
581
  "hiddenAliases": [],
616
- "id": "project:deploy:quick",
582
+ "id": "project:delete:tracking",
617
583
  "pluginAlias": "@salesforce/plugin-deploy-retrieve",
618
584
  "pluginName": "@salesforce/plugin-deploy-retrieve",
619
585
  "pluginType": "core",
620
586
  "strict": true,
621
- "summary": "Quickly deploy a validated deployment to an org.",
587
+ "summary": "Delete all local source tracking information.",
622
588
  "enableJsonFlag": 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
- },
589
+ "requiresProject": true,
656
590
  "isESM": true,
657
591
  "relativePath": [
658
592
  "lib",
659
593
  "commands",
660
594
  "project",
661
- "deploy",
662
- "quick.js"
595
+ "delete",
596
+ "tracking.js"
663
597
  ],
664
598
  "aliasPermutations": [
665
- "deploy:metadata:quick",
666
- "metadata:deploy:quick",
667
- "metadata:quick:deploy",
668
- "deploy:quick:metadata",
669
- "quick:deploy:metadata",
670
- "quick:metadata:deploy"
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"
671
623
  ],
672
624
  "permutations": [
673
- "project:deploy:quick",
674
- "deploy:project:quick",
675
- "deploy:quick:project",
676
- "project:quick:deploy",
677
- "quick:project:deploy",
678
- "quick:deploy:project"
625
+ "project:delete:tracking",
626
+ "delete:project:tracking",
627
+ "delete:tracking:project",
628
+ "project:tracking:delete",
629
+ "tracking:project:delete",
630
+ "tracking:delete:project"
679
631
  ]
680
632
  },
681
- "project:deploy:report": {
633
+ "project:deploy:cancel": {
682
634
  "aliases": [
683
- "deploy:metadata:report"
635
+ "deploy:metadata:cancel"
684
636
  ],
685
637
  "args": {},
686
638
  "deprecateAliases": true,
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.",
639
+ "description": "Use this command to cancel a deploy operation that hasn't yet completed in the org. Deploy operations include standard deploys, quick deploys, deploy validations, and deploy cancellations.\n\nRun this command by either passing it a job ID or specifying the --use-most-recent flag to use the job ID of the most recent deploy operation.",
688
640
  "examples": [
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"
641
+ "Cancel a deploy operation using a job ID:\n<%= config.bin %> <%= command.id %> --job-id 0Af0x000017yLUFCA2",
642
+ "Cancel the most recent deploy operation:\n<%= config.bin %> <%= command.id %> --use-most-recent"
692
643
  ],
693
644
  "flags": {
694
645
  "json": {
@@ -698,134 +649,212 @@
698
649
  "allowNo": false,
699
650
  "type": "boolean"
700
651
  },
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,
708
- "multiple": false,
709
- "type": "option"
652
+ "async": {
653
+ "description": "The command immediately returns the control of the terminal to you. This way, you can continue to use the CLI. To resume watching the cancellation, run \"<%= config.bin %> project deploy resume\". To check the status of the cancellation, run \"<%= config.bin %> project deploy report\".",
654
+ "exclusive": [
655
+ "wait"
656
+ ],
657
+ "name": "async",
658
+ "summary": "Run the command asynchronously.",
659
+ "allowNo": false,
660
+ "type": "boolean"
710
661
  },
711
662
  "job-id": {
712
663
  "char": "i",
713
664
  "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
665
  "name": "job-id",
715
- "summary": "Job ID of the deploy operation you want to check the status of.",
666
+ "summary": "Job ID of the deploy operation you want to cancel.",
716
667
  "hasDynamicHelp": false,
717
668
  "multiple": false,
718
669
  "type": "option"
719
670
  },
720
671
  "use-most-recent": {
721
672
  "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.",
673
+ "description": "For performance reasons, this flag uses job IDs for deploy operations that started only in the past 3 days or less. If your most recent deploy operations was more than 3 days ago, this flag won't find a job ID.",
723
674
  "name": "use-most-recent",
724
675
  "summary": "Use the job ID of the most recent deploy operation.",
725
676
  "allowNo": false,
726
677
  "type": "boolean"
727
678
  },
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.",
733
- "hasDynamicHelp": false,
734
- "multiple": true,
735
- "options": [
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"
679
+ "wait": {
680
+ "char": "w",
681
+ "description": "If the command continues to run after the wait period, the CLI returns control of the terminal window to you. To resume watching the cancellation, run \"<%= config.bin %> project deploy resume\". To check the status of the cancellation, run \"<%= config.bin %> project deploy report\".",
682
+ "exclusive": [
683
+ "async"
747
684
  ],
685
+ "name": "wait",
686
+ "summary": "Number of minutes to wait for the command to complete and display results.",
687
+ "hasDynamicHelp": false,
688
+ "helpValue": "<minutes>",
689
+ "multiple": false,
748
690
  "type": "option"
691
+ }
692
+ },
693
+ "hasDynamicHelp": false,
694
+ "hiddenAliases": [],
695
+ "id": "project:deploy:cancel",
696
+ "pluginAlias": "@salesforce/plugin-deploy-retrieve",
697
+ "pluginName": "@salesforce/plugin-deploy-retrieve",
698
+ "pluginType": "core",
699
+ "strict": true,
700
+ "summary": "Cancel a deploy operation.",
701
+ "enableJsonFlag": true,
702
+ "isESM": true,
703
+ "relativePath": [
704
+ "lib",
705
+ "commands",
706
+ "project",
707
+ "deploy",
708
+ "cancel.js"
709
+ ],
710
+ "aliasPermutations": [
711
+ "deploy:metadata:cancel",
712
+ "metadata:deploy:cancel",
713
+ "metadata:cancel:deploy",
714
+ "deploy:cancel:metadata",
715
+ "cancel:deploy:metadata",
716
+ "cancel:metadata:deploy"
717
+ ],
718
+ "permutations": [
719
+ "project:deploy:cancel",
720
+ "deploy:project:cancel",
721
+ "deploy:cancel:project",
722
+ "project:cancel:deploy",
723
+ "cancel:project:deploy",
724
+ "cancel:deploy:project"
725
+ ]
726
+ },
727
+ "project:deploy:preview": {
728
+ "aliases": [
729
+ "deploy:metadata:preview"
730
+ ],
731
+ "args": {},
732
+ "deprecateAliases": true,
733
+ "description": "You must run this command from within a project.\n\nThe command outputs a table that describes what will happen if you run the \"<%= config.bin %> project deploy start\" command. The table lists the metadata components that will be deployed and deleted. The table also lists the current conflicts between files in your local project and components in the org. Finally, the table lists the files that won't be deployed because they're included in your .forceignore file.\n\nIf your org allows source tracking, then this command displays potential conflicts between the org and your local project. Some orgs, such as production org, never allow source tracking. Source tracking is enabled by default on scratch and sandbox orgs; you can disable source tracking when you create the orgs by specifying the --no-track-source flag on the \"<%= config.bin %> org create scratch|sandbox\" commands.\n\nTo preview the deployment of multiple metadata components, either set multiple --metadata <name> flags or a single --metadata flag with multiple names separated by spaces. Enclose names that contain spaces in one set of double quotes. The same syntax applies to --manifest and --source-dir.",
734
+ "examples": [
735
+ "NOTE: The commands to preview a deployment and actually deploy it use similar flags. We provide a few preview examples here, but see the help for \"<%= config.bin %> project deploy start\" for more examples that you can adapt for previewing.",
736
+ "Preview the deployment of source files in a directory, such as force-app, to your default org:\n<%= config.bin %> <%= command.id %> --source-dir force-app",
737
+ "Preview the deployment of all Apex classes to an org with alias \"my-scratch\":\n<%= config.bin %> <%= command.id %> --metadata ApexClass --target-org my-scratch",
738
+ "Preview deployment of a specific Apex class:\n<%= config.bin %> <%= command.id %> --metadata ApexClass:MyApexClass",
739
+ "Preview deployment of all components listed in a manifest:\n<%= config.bin %> <%= command.id %> --manifest path/to/package.xml"
740
+ ],
741
+ "flags": {
742
+ "json": {
743
+ "description": "Format output as json.",
744
+ "helpGroup": "GLOBAL",
745
+ "name": "json",
746
+ "allowNo": false,
747
+ "type": "boolean"
749
748
  },
750
- "junit": {
751
- "helpGroup": "Test",
752
- "name": "junit",
753
- "summary": "Output JUnit test results.",
749
+ "ignore-conflicts": {
750
+ "char": "c",
751
+ "description": "This flag applies only to orgs that allow source tracking. It has no effect on orgs that don't allow it, such as production orgs.",
752
+ "name": "ignore-conflicts",
753
+ "summary": "Don't display conflicts in preview of the deployment.",
754
754
  "allowNo": false,
755
755
  "type": "boolean"
756
756
  },
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
- }
757
+ "manifest": {
758
+ "char": "x",
759
+ "description": "All child components are included. If you specify this flag, don’t specify --metadata or --source-dir.",
760
+ "exclusive": [
761
+ "source-dir",
762
+ "metadata"
768
763
  ],
769
- "summary": "Output directory for code coverage and JUnit results; defaults to the deploy ID.",
764
+ "name": "manifest",
765
+ "summary": "Full file path for manifest (package.xml) of components to preview.",
770
766
  "hasDynamicHelp": false,
771
767
  "multiple": false,
772
768
  "type": "option"
773
769
  },
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.",
770
+ "metadata": {
771
+ "char": "m",
772
+ "exclusive": [
773
+ "manifest",
774
+ "source-dir"
775
+ ],
776
+ "name": "metadata",
777
+ "summary": "Metadata component names to preview.",
779
778
  "hasDynamicHelp": false,
780
- "helpValue": "<minutes>",
779
+ "multiple": true,
780
+ "type": "option"
781
+ },
782
+ "source-dir": {
783
+ "char": "d",
784
+ "description": "The supplied path can be to a single file (in which case the operation is applied to only one file) or to a folder (in which case the operation is applied to all metadata types in the directory and its subdirectories).\n\nIf you specify this flag, don’t specify --metadata or --manifest.",
785
+ "exclusive": [
786
+ "manifest",
787
+ "metadata"
788
+ ],
789
+ "name": "source-dir",
790
+ "summary": "Path to the local source files to preview.",
791
+ "hasDynamicHelp": false,
792
+ "multiple": true,
793
+ "type": "option"
794
+ },
795
+ "target-org": {
796
+ "char": "o",
797
+ "description": "Overrides your default org.",
798
+ "name": "target-org",
799
+ "noCacheDefault": true,
800
+ "required": true,
801
+ "summary": "Login username or alias for the target org.",
802
+ "hasDynamicHelp": true,
781
803
  "multiple": false,
782
804
  "type": "option"
805
+ },
806
+ "concise": {
807
+ "name": "concise",
808
+ "summary": "Show only the changes that will be deployed; omits files that are forceignored.",
809
+ "allowNo": false,
810
+ "type": "boolean"
783
811
  }
784
812
  },
785
813
  "hasDynamicHelp": true,
786
814
  "hiddenAliases": [],
787
- "id": "project:deploy:report",
815
+ "id": "project:deploy:preview",
788
816
  "pluginAlias": "@salesforce/plugin-deploy-retrieve",
789
817
  "pluginName": "@salesforce/plugin-deploy-retrieve",
790
818
  "pluginType": "core",
791
819
  "strict": true,
792
- "summary": "Check or poll for the status of a deploy operation.",
820
+ "summary": "Preview a deployment to see what will deploy to the org, the potential conflicts, and the ignored files.",
793
821
  "enableJsonFlag": true,
822
+ "requiresProject": true,
794
823
  "isESM": true,
795
824
  "relativePath": [
796
825
  "lib",
797
826
  "commands",
798
827
  "project",
799
828
  "deploy",
800
- "report.js"
829
+ "preview.js"
801
830
  ],
802
831
  "aliasPermutations": [
803
- "deploy:metadata:report",
804
- "metadata:deploy:report",
805
- "metadata:report:deploy",
806
- "deploy:report:metadata",
807
- "report:deploy:metadata",
808
- "report:metadata:deploy"
832
+ "deploy:metadata:preview",
833
+ "metadata:deploy:preview",
834
+ "metadata:preview:deploy",
835
+ "deploy:preview:metadata",
836
+ "preview:deploy:metadata",
837
+ "preview:metadata:deploy"
809
838
  ],
810
839
  "permutations": [
811
- "project:deploy:report",
812
- "deploy:project:report",
813
- "deploy:report:project",
814
- "project:report:deploy",
815
- "report:project:deploy",
816
- "report:deploy:project"
840
+ "project:deploy:preview",
841
+ "deploy:project:preview",
842
+ "deploy:preview:project",
843
+ "project:preview:deploy",
844
+ "preview:project:deploy",
845
+ "preview:deploy:project"
817
846
  ]
818
847
  },
819
- "project:deploy:resume": {
848
+ "project:deploy:quick": {
820
849
  "aliases": [
821
- "deploy:metadata:resume"
850
+ "deploy:metadata:quick"
822
851
  ],
823
852
  "args": {},
824
853
  "deprecateAliases": true,
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.",
854
+ "description": "Before you run this command, first create a validated deployment with the \"<%= config.bin %> project deploy validate\" command, which returns a job ID. Validated deployments haven't been deployed to the org yet; you deploy them with this command. Either pass the job ID to this command or use the --use-most-recent flag to use the job ID of the most recently validated deployment. For the quick deploy to succeed, the associated validated deployment must also have succeeded.\n\nExecuting this quick deploy command takes less time than a standard deploy because it skips running Apex tests. These tests were previously run as part of the validation. Validating first and then running a quick deploy is useful if the deployment to your production org take several hours and you don’t want to risk a failed deploy.\n\nThis command doesn't support source-tracking. The source you deploy overwrites the corresponding metadata in your org. This command doesn’t attempt to merge your source with the versions in your org.\n\nNote: Don't use this command on sandboxes; the command is intended to be used on production orgs. By default, sandboxes don't run tests during a deploy. Use `sf project deploy start` instead.",
826
855
  "examples": [
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"
856
+ "Run a quick deploy to your default org using a job ID:\n<%= config.bin %> <%= command.id %> --job-id 0Af0x000017yLUFCA2",
857
+ "Asynchronously run a quick deploy of the most recently validated deployment to an org with alias \"my-prod-org\":\n<%= config.bin %> <%= command.id %> --async --use-most-recent --target-org my-prod-org"
829
858
  ],
830
859
  "flags": {
831
860
  "json": {
@@ -835,29 +864,49 @@
835
864
  "allowNo": false,
836
865
  "type": "boolean"
837
866
  },
867
+ "async": {
868
+ "description": "The command immediately returns the control of the terminal to you. This way, you can continue to use the CLI. To resume watching the deploy, run \"<%= config.bin %> project deploy resume\". To check the status of the deploy, run \"<%= config.bin %> project deploy report\".",
869
+ "exclusive": [
870
+ "wait"
871
+ ],
872
+ "name": "async",
873
+ "summary": "Run the command asynchronously.",
874
+ "allowNo": false,
875
+ "type": "boolean"
876
+ },
838
877
  "concise": {
839
878
  "exclusive": [
840
879
  "verbose"
841
880
  ],
842
881
  "name": "concise",
843
- "summary": "Show concise output of the deploy operation result.",
882
+ "summary": "Show concise output of the deploy result.",
844
883
  "allowNo": false,
845
884
  "type": "boolean"
846
885
  },
847
886
  "job-id": {
848
887
  "char": "i",
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.",
888
+ "description": "The job ID is valid for 10 days from when you started the validation.",
850
889
  "name": "job-id",
851
- "summary": "Job ID of the deploy operation you want to resume.",
890
+ "summary": "Job ID of the deployment you want to quick deploy.",
852
891
  "hasDynamicHelp": false,
853
892
  "multiple": false,
854
893
  "type": "option"
855
894
  },
895
+ "target-org": {
896
+ "char": "o",
897
+ "description": "Overrides your default org.",
898
+ "name": "target-org",
899
+ "noCacheDefault": true,
900
+ "summary": "Login username or alias for the target org.",
901
+ "hasDynamicHelp": true,
902
+ "multiple": false,
903
+ "type": "option"
904
+ },
856
905
  "use-most-recent": {
857
906
  "char": "r",
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.",
907
+ "description": "For performance reasons, this flag uses only job IDs that were validated in the past 3 days or less. If your most recent deployment validation was more than 3 days ago, this flag won't find a job ID.",
859
908
  "name": "use-most-recent",
860
- "summary": "Use the job ID of the most recent deploy operation.",
909
+ "summary": "Use the job ID of the most recently validated deployment.",
861
910
  "allowNo": false,
862
911
  "type": "boolean"
863
912
  },
@@ -866,85 +915,46 @@
866
915
  "concise"
867
916
  ],
868
917
  "name": "verbose",
869
- "summary": "Show verbose output of the deploy operation result.",
918
+ "summary": "Show verbose output of the deploy result.",
870
919
  "allowNo": false,
871
920
  "type": "boolean"
872
921
  },
873
922
  "wait": {
874
923
  "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\".",
924
+ "description": "If the command continues to run after the wait period, the CLI returns control of the terminal window to you. To resume watching the deploy, run \"<%= config.bin %> project deploy resume\". To check the status of the deploy, run \"<%= config.bin %> project deploy report\".",
925
+ "exclusive": [
926
+ "async"
927
+ ],
876
928
  "name": "wait",
877
929
  "summary": "Number of minutes to wait for the command to complete and display results.",
930
+ "default": {
931
+ "quantity": 33,
932
+ "unit": 0
933
+ },
878
934
  "hasDynamicHelp": false,
879
935
  "helpValue": "<minutes>",
880
936
  "multiple": false,
881
937
  "type": "option"
882
938
  },
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.",
939
+ "api-version": {
940
+ "char": "a",
941
+ "description": "Use this flag to override the default API version with the API version of your package.xml file. The default API version is the latest version supported by the CLI.",
942
+ "name": "api-version",
943
+ "summary": "Target API version for the deploy.",
888
944
  "hasDynamicHelp": false,
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
- ],
903
- "type": "option"
904
- },
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
- }
923
- ],
924
- "summary": "Output directory for code coverage and JUnit results; defaults to the deploy ID.",
925
- "hasDynamicHelp": false,
926
- "multiple": false,
945
+ "multiple": false,
927
946
  "type": "option"
928
947
  }
929
948
  },
930
- "hasDynamicHelp": false,
949
+ "hasDynamicHelp": true,
931
950
  "hiddenAliases": [],
932
- "id": "project:deploy:resume",
951
+ "id": "project:deploy:quick",
933
952
  "pluginAlias": "@salesforce/plugin-deploy-retrieve",
934
953
  "pluginName": "@salesforce/plugin-deploy-retrieve",
935
954
  "pluginType": "core",
936
955
  "strict": true,
937
- "summary": "Resume watching a deploy operation and update source tracking when the deploy completes.",
956
+ "summary": "Quickly deploy a validated deployment to an org.",
938
957
  "enableJsonFlag": 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
958
  "errorCodes": {
949
959
  "header": "ERROR CODES",
950
960
  "body": [
@@ -984,43 +994,36 @@
984
994
  "commands",
985
995
  "project",
986
996
  "deploy",
987
- "resume.js"
997
+ "quick.js"
988
998
  ],
989
999
  "aliasPermutations": [
990
- "deploy:metadata:resume",
991
- "metadata:deploy:resume",
992
- "metadata:resume:deploy",
993
- "deploy:resume:metadata",
994
- "resume:deploy:metadata",
995
- "resume:metadata:deploy"
1000
+ "deploy:metadata:quick",
1001
+ "metadata:deploy:quick",
1002
+ "metadata:quick:deploy",
1003
+ "deploy:quick:metadata",
1004
+ "quick:deploy:metadata",
1005
+ "quick:metadata:deploy"
996
1006
  ],
997
1007
  "permutations": [
998
- "project:deploy:resume",
999
- "deploy:project:resume",
1000
- "deploy:resume:project",
1001
- "project:resume:deploy",
1002
- "resume:project:deploy",
1003
- "resume:deploy:project"
1008
+ "project:deploy:quick",
1009
+ "deploy:project:quick",
1010
+ "deploy:quick:project",
1011
+ "project:quick:deploy",
1012
+ "quick:project:deploy",
1013
+ "quick:deploy:project"
1004
1014
  ]
1005
1015
  },
1006
- "project:deploy:start": {
1016
+ "project:deploy:report": {
1007
1017
  "aliases": [
1008
- "deploy:metadata"
1018
+ "deploy:metadata:report"
1009
1019
  ],
1010
1020
  "args": {},
1011
1021
  "deprecateAliases": true,
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 orgs, 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.",
1022
+ "description": "Deploy operations include standard deploys, quick deploys, deploy validations, and deploy cancellations.\n\nRun this command by either passing it a job ID or specifying the --use-most-recent flag to use the job ID of the most recent deploy operation. If you specify the --wait flag, the command polls for the status every second until the timeout of --wait minutes. If you don't specify the --wait flag, the command simply checks and displays the status of the deploy; the command doesn't poll for the status. \n\nYou typically don't specify the --target-org flag because the cached job already references the org to which you deployed. But if you run this command on a computer different than the one from which you deployed, then you must specify the --target-org and it must point to the same org. \n\nThis command doesn't update source tracking information.",
1013
1023
  "examples": [
1014
- "Deploy local changes not in the org; uses your default org:\n<%= config.bin %> <%= command.id %>",
1015
- "Deploy all source files in the \"force-app\" directory to an org with alias \"my-scratch\"; show only concise output, in other words don't print a list of all the source that was deployed:\n<%= config.bin %> <%= command.id %> --source-dir force-app --target-org my-scratch --concise",
1016
- "Deploy all the Apex classes and custom objects that are in the \"force-app\" directory. The list views, layouts, etc, that are associated with the custom objects are also deployed. Both examples are equivalent:\n<%= config.bin %> <%= command.id %> --source-dir force-app/main/default/classes force-app/main/default/objects\n<%= config.bin %> <%= command.id %> --source-dir force-app/main/default/classes --source-dir force-app/main/default/objects",
1017
- "Deploy all Apex classes that are in all package directories defined in the \"sfdx-project.json\" file:\n<%= config.bin %> <%= command.id %> --metadata ApexClass",
1018
- "Deploy a specific Apex class; ignore any conflicts between the local project and org (be careful with this flag, because it will overwrite the Apex class in the org if there are conflicts!):\n<%= config.bin %> <%= command.id %> --metadata ApexClass:MyApexClass --ignore-conflicts",
1019
- "Deploy specific Apex classes that match a pattern; in this example, deploy Apex classes whose names contain the string \"MyApex\". Also ignore any deployment warnings (again, be careful with this flag! You typically want to see the warnings):\n<%= config.bin %> <%= command.id %> --metadata 'ApexClass:MyApex*' --ignore-warnings",
1020
- "Deploy all custom objects and Apex classes found in all defined package directories (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"
1024
+ "Check the status using a job ID:\n<%= config.bin %> <%= command.id %> --job-id 0Af0x000017yLUFCA2",
1025
+ "Check the status of the most recent deploy operation:\n<%= config.bin %> <%= command.id %> --use-most-recent",
1026
+ "Poll for the status using a job ID and target org:\n<%= config.bin %> <%= command.id %> --job-id 0Af0x000017yLUFCA2 --target-org me@my.org --wait 30"
1024
1027
  ],
1025
1028
  "flags": {
1026
1029
  "json": {
@@ -1030,235 +1033,188 @@
1030
1033
  "allowNo": false,
1031
1034
  "type": "boolean"
1032
1035
  },
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,
1036
+ "target-org": {
1037
+ "char": "o",
1038
+ "description": "Overrides your default org.",
1039
+ "name": "target-org",
1040
+ "noCacheDefault": true,
1041
+ "summary": "Login username or alias for the target org.",
1042
+ "hasDynamicHelp": true,
1039
1043
  "multiple": false,
1040
1044
  "type": "option"
1041
1045
  },
1042
- "async": {
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\".",
1044
- "exclusive": [
1045
- "wait"
1046
- ],
1047
- "name": "async",
1048
- "summary": "Run the command asynchronously.",
1049
- "allowNo": false,
1050
- "type": "boolean"
1051
- },
1052
- "concise": {
1053
- "exclusive": [
1054
- "verbose"
1055
- ],
1056
- "name": "concise",
1057
- "summary": "Show concise output of the deploy result.",
1058
- "allowNo": false,
1059
- "type": "boolean"
1060
- },
1061
- "dry-run": {
1062
- "name": "dry-run",
1063
- "summary": "Validate deploy and run Apex tests but don’t save to the org.",
1064
- "allowNo": false,
1065
- "type": "boolean"
1066
- },
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.",
1072
- "allowNo": false,
1073
- "type": "boolean"
1046
+ "job-id": {
1047
+ "char": "i",
1048
+ "description": "These commands return a job ID if they time out or you specified the --async flag:\n\n- <%= config.bin %> project deploy start\n- <%= config.bin %> project deploy validate\n- <%= config.bin %> project deploy quick\n- <%= config.bin %> project deploy cancel\n\nThe job ID is valid for 10 days from when you started the deploy operation.",
1049
+ "name": "job-id",
1050
+ "summary": "Job ID of the deploy operation you want to check the status of.",
1051
+ "hasDynamicHelp": false,
1052
+ "multiple": false,
1053
+ "type": "option"
1074
1054
  },
1075
- "ignore-errors": {
1055
+ "use-most-recent": {
1076
1056
  "char": "r",
1077
- "description": "Never use this flag when deploying to a production org. If you specify it, 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 you specify this flag, and a warning occurs, the success status of the deployment is set to true. If you don't specify this flag, and a warning occurs, then the success status is set to false, and the warning is treated like an error.\n\nThis flag is useful in a CI environment and your deployment includes destructive changes; if you try to delete a component that doesn't exist in the org, you get a warning. In this case, to ensure that the command returns a success value of true, specify this flag.",
1086
- "name": "ignore-warnings",
1087
- "summary": "Ignore warnings and allow a deployment to complete successfully.",
1057
+ "description": "For performance reasons, this flag uses job IDs for deploy operations that started only in the past 3 days or less. If your most recent operation was more than 3 days ago, this flag won't find a job ID.",
1058
+ "name": "use-most-recent",
1059
+ "summary": "Use the job ID of the most recent deploy operation.",
1088
1060
  "allowNo": false,
1089
1061
  "type": "boolean"
1090
1062
  },
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*`.",
1063
+ "coverage-formatters": {
1064
+ "description": "For multiple formatters, repeat the flag for each formatter.\n--coverage-formatters lcov --coverage-formatters clover",
1065
+ "helpGroup": "Test",
1066
+ "name": "coverage-formatters",
1067
+ "summary": "Format of the code coverage results.",
1116
1068
  "hasDynamicHelp": false,
1117
1069
  "multiple": true,
1118
- "type": "option"
1119
- },
1120
- "metadata-dir": {
1121
- "exclusive": [
1122
- "manifest",
1123
- "source-dir",
1124
- "metadata"
1070
+ "options": [
1071
+ "clover",
1072
+ "cobertura",
1073
+ "html-spa",
1074
+ "html",
1075
+ "json",
1076
+ "json-summary",
1077
+ "lcovonly",
1078
+ "none",
1079
+ "teamcity",
1080
+ "text",
1081
+ "text-summary"
1125
1082
  ],
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
1083
  "type": "option"
1132
1084
  },
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.",
1085
+ "junit": {
1086
+ "helpGroup": "Test",
1087
+ "name": "junit",
1088
+ "summary": "Output JUnit test results.",
1140
1089
  "allowNo": false,
1141
1090
  "type": "boolean"
1142
1091
  },
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"
1092
+ "results-dir": {
1093
+ "helpGroup": "Test",
1094
+ "name": "results-dir",
1095
+ "relationships": [
1096
+ {
1097
+ "type": "some",
1098
+ "flags": [
1099
+ "coverage-formatters",
1100
+ "junit"
1101
+ ]
1102
+ }
1150
1103
  ],
1151
- "helpGroup": "Source Format",
1152
- "name": "source-dir",
1153
- "summary": "Path to the local source files to deploy.",
1104
+ "summary": "Output directory for code coverage and JUnit results; defaults to the deploy ID.",
1154
1105
  "hasDynamicHelp": false,
1155
- "multiple": true,
1106
+ "multiple": false,
1156
1107
  "type": "option"
1157
1108
  },
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,
1109
+ "wait": {
1110
+ "char": "w",
1111
+ "description": "If the command continues to run after the wait period, the CLI returns control of the terminal window to you and returns the job ID. To resume the deployment, run \"<%= config.bin %> project deploy resume\". To check the status of the deployment, run \"<%= config.bin %> project deploy report\".",
1112
+ "name": "wait",
1113
+ "summary": "Number of minutes to wait for command to complete and display results.",
1114
+ "hasDynamicHelp": false,
1115
+ "helpValue": "<minutes>",
1166
1116
  "multiple": false,
1167
1117
  "type": "option"
1118
+ }
1119
+ },
1120
+ "hasDynamicHelp": true,
1121
+ "hiddenAliases": [],
1122
+ "id": "project:deploy:report",
1123
+ "pluginAlias": "@salesforce/plugin-deploy-retrieve",
1124
+ "pluginName": "@salesforce/plugin-deploy-retrieve",
1125
+ "pluginType": "core",
1126
+ "strict": true,
1127
+ "summary": "Check or poll for the status of a deploy operation.",
1128
+ "enableJsonFlag": true,
1129
+ "isESM": true,
1130
+ "relativePath": [
1131
+ "lib",
1132
+ "commands",
1133
+ "project",
1134
+ "deploy",
1135
+ "report.js"
1136
+ ],
1137
+ "aliasPermutations": [
1138
+ "deploy:metadata:report",
1139
+ "metadata:deploy:report",
1140
+ "metadata:report:deploy",
1141
+ "deploy:report:metadata",
1142
+ "report:deploy:metadata",
1143
+ "report:metadata:deploy"
1144
+ ],
1145
+ "permutations": [
1146
+ "project:deploy:report",
1147
+ "deploy:project:report",
1148
+ "deploy:report:project",
1149
+ "project:report:deploy",
1150
+ "report:project:deploy",
1151
+ "report:deploy:project"
1152
+ ]
1153
+ },
1154
+ "project:deploy:resume": {
1155
+ "aliases": [
1156
+ "deploy:metadata:resume"
1157
+ ],
1158
+ "args": {},
1159
+ "deprecateAliases": true,
1160
+ "description": "Use this command to resume watching a deploy operation if the original command times out or you specified the --async flag. Deploy operations include standard deploys, quick deploys, deploy validations, and deploy cancellations. This command doesn't resume the original operation itself, because the operation always continues after you've started it, regardless of whether you're watching it or not. When the deploy completes, source tracking information is updated as needed.\n\nRun this command by either passing it a job ID or specifying the --use-most-recent flag to use the job ID of the most recent deploy operation.",
1161
+ "examples": [
1162
+ "Resume watching a deploy operation using a job ID:\n<%= config.bin %> <%= command.id %> --job-id 0Af0x000017yLUFCA2",
1163
+ "Resume watching the most recent deploy operation:\n<%= config.bin %> <%= command.id %> --use-most-recent"
1164
+ ],
1165
+ "flags": {
1166
+ "json": {
1167
+ "description": "Format output as json.",
1168
+ "helpGroup": "GLOBAL",
1169
+ "name": "json",
1170
+ "allowNo": false,
1171
+ "type": "boolean"
1168
1172
  },
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"
1173
+ "concise": {
1174
+ "exclusive": [
1175
+ "verbose"
1176
+ ],
1177
+ "name": "concise",
1178
+ "summary": "Show concise output of the deploy operation result.",
1179
+ "allowNo": false,
1180
+ "type": "boolean"
1178
1181
  },
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.",
1182
+ "job-id": {
1183
+ "char": "i",
1184
+ "description": "These commands return a job ID if they time out or you specified the --async flag:\n\n- <%= config.bin %> project deploy start\n- <%= config.bin %> project deploy validate\n- <%= config.bin %> project deploy quick\n- <%= config.bin %> project deploy cancel\n\nThe job ID is valid for 10 days from when you started the deploy operation.",
1185
+ "name": "job-id",
1186
+ "summary": "Job ID of the deploy operation you want to resume.",
1185
1187
  "hasDynamicHelp": false,
1186
1188
  "multiple": false,
1187
- "options": [
1188
- "NoTestRun",
1189
- "RunSpecifiedTests",
1190
- "RunLocalTests",
1191
- "RunAllTestsInOrg"
1192
- ],
1193
1189
  "type": "option"
1194
1190
  },
1191
+ "use-most-recent": {
1192
+ "char": "r",
1193
+ "description": "For performance reasons, this flag uses job IDs for deploy operations that started only in the past 3 days or less. If your most recent operation was more than 3 days ago, this flag won't find a job ID.",
1194
+ "name": "use-most-recent",
1195
+ "summary": "Use the job ID of the most recent deploy operation.",
1196
+ "allowNo": false,
1197
+ "type": "boolean"
1198
+ },
1195
1199
  "verbose": {
1196
1200
  "exclusive": [
1197
1201
  "concise"
1198
1202
  ],
1199
1203
  "name": "verbose",
1200
- "summary": "Show verbose output of the deploy result.",
1204
+ "summary": "Show verbose output of the deploy operation result.",
1201
1205
  "allowNo": false,
1202
1206
  "type": "boolean"
1203
1207
  },
1204
1208
  "wait": {
1205
1209
  "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"
1209
- ],
1210
+ "description": "If the command continues to run after the wait period, the CLI returns control of the terminal window to you. To resume watching the deploy operation, run this command again. To check the status of the deploy operation, run \"<%= config.bin %> project deploy report\".",
1210
1211
  "name": "wait",
1211
- "summary": "Number of minutes to wait for command to complete and display results.",
1212
- "default": {
1213
- "quantity": 33,
1214
- "unit": 0
1215
- },
1212
+ "summary": "Number of minutes to wait for the command to complete and display results.",
1216
1213
  "hasDynamicHelp": false,
1217
1214
  "helpValue": "<minutes>",
1218
1215
  "multiple": false,
1219
1216
  "type": "option"
1220
1217
  },
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
1218
  "coverage-formatters": {
1263
1219
  "description": "For multiple formatters, repeat the flag for each formatter.\n--coverage-formatters lcov --coverage-formatters clover",
1264
1220
  "helpGroup": "Test",
@@ -1306,35 +1262,18 @@
1306
1262
  "type": "option"
1307
1263
  }
1308
1264
  },
1309
- "hasDynamicHelp": true,
1265
+ "hasDynamicHelp": false,
1310
1266
  "hiddenAliases": [],
1311
- "id": "project:deploy:start",
1267
+ "id": "project:deploy:resume",
1312
1268
  "pluginAlias": "@salesforce/plugin-deploy-retrieve",
1313
1269
  "pluginName": "@salesforce/plugin-deploy-retrieve",
1314
1270
  "pluginType": "core",
1315
1271
  "strict": true,
1316
- "summary": "Deploy metadata to an org from your local project.",
1272
+ "summary": "Resume watching a deploy operation and update source tracking when the deploy completes.",
1317
1273
  "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
1274
  "envVariablesSection": {
1332
1275
  "header": "ENVIRONMENT VARIABLES",
1333
1276
  "body": [
1334
- {
1335
- "name": "SF_TARGET_ORG",
1336
- "description": "Username or alias of your default org. Overrides the target-org configuration variable."
1337
- },
1338
1277
  {
1339
1278
  "name": "SF_USE_PROGRESS_BAR",
1340
1279
  "description": "Set to false to disable the progress bar when running the metadata deploy command."
@@ -1380,34 +1319,43 @@
1380
1319
  "commands",
1381
1320
  "project",
1382
1321
  "deploy",
1383
- "start.js"
1322
+ "resume.js"
1384
1323
  ],
1385
1324
  "aliasPermutations": [
1386
- "deploy:metadata",
1387
- "metadata:deploy"
1325
+ "deploy:metadata:resume",
1326
+ "metadata:deploy:resume",
1327
+ "metadata:resume:deploy",
1328
+ "deploy:resume:metadata",
1329
+ "resume:deploy:metadata",
1330
+ "resume:metadata:deploy"
1388
1331
  ],
1389
1332
  "permutations": [
1390
- "project:deploy:start",
1391
- "deploy:project:start",
1392
- "deploy:start:project",
1393
- "project:start:deploy",
1394
- "start:project:deploy",
1395
- "start:deploy:project"
1333
+ "project:deploy:resume",
1334
+ "deploy:project:resume",
1335
+ "deploy:resume:project",
1336
+ "project:resume:deploy",
1337
+ "resume:project:deploy",
1338
+ "resume:deploy:project"
1396
1339
  ]
1397
1340
  },
1398
- "project:deploy:validate": {
1341
+ "project:deploy:start": {
1399
1342
  "aliases": [
1400
- "deploy:metadata:validate"
1343
+ "deploy:metadata"
1401
1344
  ],
1402
1345
  "args": {},
1403
1346
  "deprecateAliases": true,
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.\n\nNote: Don't use this command on sandboxes; the command is intended to be used on production orgs. By default, sandboxes don't run tests during a deploy. If you want to validate a deployment with tests on a sandbox, use \"sf project deploy start --dry-run --test-level RunLocalTests\" instead.",
1347
+ "description": "You must run this command from within a project.\n\nMetadata components are deployed in source format by default. Deploy them in metadata format by specifying the --metadata-dir flag, which specifies the root directory or ZIP file that contains the metadata formatted files you want to deploy.\n\nIf your org allows source tracking, then this command tracks the changes in your source. Some orgs, such as production orgs, 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.",
1405
1348
  "examples": [
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 the \"force-app\" directory to the default org:\n<%= config.bin %> <%= command.id %> --source-dir force-app",
1408
- "Validate the deployment of all source files in two directories: \"force-app\" and \"force-app-utils\":\n<%= config.bin %> <%= command.id %> --source-dir force-app --source-dir force-app-utils",
1409
- "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 force-app --async --test-level RunAllTestsInOrg --target-org my-prod-org",
1410
- "Validate the deployment of all components listed in a manifest:\n<%= config.bin %> <%= command.id %> --manifest path/to/package.xml"
1349
+ "Deploy local changes not in the org; uses your default org:\n<%= config.bin %> <%= command.id %>",
1350
+ "Deploy all source files in the \"force-app\" directory to an org with alias \"my-scratch\"; show only concise output, in other words don't print a list of all the source that was deployed:\n<%= config.bin %> <%= command.id %> --source-dir force-app --target-org my-scratch --concise",
1351
+ "Deploy all the Apex classes and custom objects that are in the \"force-app\" directory. The list views, layouts, etc, that are associated with the custom objects are also deployed. Both examples are equivalent:\n<%= config.bin %> <%= command.id %> --source-dir force-app/main/default/classes force-app/main/default/objects\n<%= config.bin %> <%= command.id %> --source-dir force-app/main/default/classes --source-dir force-app/main/default/objects",
1352
+ "Deploy all Apex classes that are in all package directories defined in the \"sfdx-project.json\" file:\n<%= config.bin %> <%= command.id %> --metadata ApexClass",
1353
+ "Deploy a specific Apex class; ignore any conflicts between the local project and org (be careful with this flag, because it will overwrite the Apex class in the org if there are conflicts!):\n<%= config.bin %> <%= command.id %> --metadata ApexClass:MyApexClass --ignore-conflicts",
1354
+ "Deploy specific Apex classes that match a pattern; in this example, deploy Apex classes whose names contain the string \"MyApex\". Also ignore any deployment warnings (again, be careful with this flag! You typically want to see the warnings):\n<%= config.bin %> <%= command.id %> --metadata 'ApexClass:MyApex*' --ignore-warnings",
1355
+ "Deploy all custom objects and Apex classes found in all defined package directories (both examples are equivalent):\n<%= config.bin %> <%= command.id %> --metadata CustomObject ApexClass\n<%= config.bin %> <%= command.id %> --metadata CustomObject --metadata ApexClass",
1356
+ "Deploy all Apex classes and a profile that has a space in its name:\n<%= config.bin %> <%= command.id %> --metadata ApexClass --metadata \"Profile:My Profile\"",
1357
+ "Deploy all components listed in a manifest:\n<%= config.bin %> <%= command.id %> --manifest path/to/package.xml",
1358
+ "Run the tests that aren’t in any managed packages as part of a deployment:\n<%= config.bin %> <%= command.id %> --metadata ApexClass --test-level RunLocalTests"
1411
1359
  ],
1412
1360
  "flags": {
1413
1361
  "json": {
@@ -1421,13 +1369,16 @@
1421
1369
  "char": "a",
1422
1370
  "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.",
1423
1371
  "name": "api-version",
1424
- "summary": "Target API version for the validation.",
1372
+ "summary": "Target API version for the deploy.",
1425
1373
  "hasDynamicHelp": false,
1426
1374
  "multiple": false,
1427
1375
  "type": "option"
1428
1376
  },
1429
1377
  "async": {
1430
- "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\".",
1378
+ "description": "The command immediately returns the job ID and control of the terminal to you. This way, you can continue to use the CLI. To resume the deployment, run \"<%= config.bin %> project deploy resume\". To check the status of the deployment, run \"<%= config.bin %> project deploy report\".",
1379
+ "exclusive": [
1380
+ "wait"
1381
+ ],
1431
1382
  "name": "async",
1432
1383
  "summary": "Run the command asynchronously.",
1433
1384
  "allowNo": false,
@@ -1438,40 +1389,75 @@
1438
1389
  "verbose"
1439
1390
  ],
1440
1391
  "name": "concise",
1441
- "summary": "Show concise output of the validation result.",
1392
+ "summary": "Show concise output of the deploy result.",
1393
+ "allowNo": false,
1394
+ "type": "boolean"
1395
+ },
1396
+ "dry-run": {
1397
+ "name": "dry-run",
1398
+ "summary": "Validate deploy and run Apex tests but don’t save to the org.",
1399
+ "allowNo": false,
1400
+ "type": "boolean"
1401
+ },
1402
+ "ignore-conflicts": {
1403
+ "char": "c",
1404
+ "description": "This flag applies only to orgs that allow source tracking. It has no effect on orgs that don't allow it, such as production orgs.",
1405
+ "name": "ignore-conflicts",
1406
+ "summary": "Ignore conflicts and deploy local files, even if they overwrite changes in the org.",
1407
+ "allowNo": false,
1408
+ "type": "boolean"
1409
+ },
1410
+ "ignore-errors": {
1411
+ "char": "r",
1412
+ "description": "Never use this flag when deploying to a production org. If you specify it, components without errors are deployed and components with errors are skipped, and could result in an inconsistent production org.",
1413
+ "name": "ignore-errors",
1414
+ "summary": "Ignore any errors and don’t roll back deployment.",
1415
+ "allowNo": false,
1416
+ "type": "boolean"
1417
+ },
1418
+ "ignore-warnings": {
1419
+ "char": "g",
1420
+ "description": "If you specify this flag, and a warning occurs, the success status of the deployment is set to true. If you don't specify this flag, and a warning occurs, then the success status is set to false, and the warning is treated like an error.\n\nThis flag is useful in a CI environment and your deployment includes destructive changes; if you try to delete a component that doesn't exist in the org, you get a warning. In this case, to ensure that the command returns a success value of true, specify this flag.",
1421
+ "name": "ignore-warnings",
1422
+ "summary": "Ignore warnings and allow a deployment to complete successfully.",
1442
1423
  "allowNo": false,
1443
1424
  "type": "boolean"
1444
1425
  },
1445
1426
  "manifest": {
1446
1427
  "char": "x",
1447
1428
  "description": "All child components are included. If you specify this flag, don’t specify --metadata or --source-dir.",
1448
- "helpGroup": "Source Format",
1429
+ "exclusive": [
1430
+ "source-dir",
1431
+ "metadata",
1432
+ "metadata-dir"
1433
+ ],
1434
+ "helpGroup": "Source Format",
1449
1435
  "name": "manifest",
1450
- "summary": "Full file path for manifest (package.xml) of components to validate for deployment.",
1436
+ "summary": "Full file path for manifest (package.xml) of components to deploy.",
1451
1437
  "hasDynamicHelp": false,
1452
1438
  "multiple": false,
1453
1439
  "type": "option"
1454
1440
  },
1455
1441
  "metadata": {
1456
1442
  "char": "m",
1443
+ "exclusive": [
1444
+ "manifest",
1445
+ "source-dir",
1446
+ "metadata-dir"
1447
+ ],
1457
1448
  "helpGroup": "Source Format",
1458
1449
  "name": "metadata",
1459
- "summary": "Metadata component names to validate for deployment.",
1460
- "hasDynamicHelp": false,
1461
- "multiple": true,
1462
- "type": "option"
1463
- },
1464
- "source-dir": {
1465
- "char": "d",
1466
- "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.",
1467
- "helpGroup": "Source Format",
1468
- "name": "source-dir",
1469
- "summary": "Path to the local source files to validate for deployment.",
1450
+ "summary": "Metadata component names to deploy. Wildcards (`*` ) supported as long as you use quotes, such as `ApexClass:MyClass*`.",
1470
1451
  "hasDynamicHelp": false,
1471
1452
  "multiple": true,
1472
1453
  "type": "option"
1473
1454
  },
1474
1455
  "metadata-dir": {
1456
+ "exclusive": [
1457
+ "manifest",
1458
+ "source-dir",
1459
+ "metadata"
1460
+ ],
1475
1461
  "helpGroup": "Metadata API Format",
1476
1462
  "name": "metadata-dir",
1477
1463
  "summary": "Root of directory or zip file of metadata formatted files to deploy.",
@@ -1489,6 +1475,21 @@
1489
1475
  "allowNo": false,
1490
1476
  "type": "boolean"
1491
1477
  },
1478
+ "source-dir": {
1479
+ "char": "d",
1480
+ "description": "The supplied path can be to a single file (in which case the operation is applied to only one file) or to a folder (in which case the operation is applied to all metadata types in the directory and its subdirectories).\n\nIf you specify this flag, don’t specify --metadata or --manifest.",
1481
+ "exclusive": [
1482
+ "manifest",
1483
+ "metadata",
1484
+ "metadata-dir"
1485
+ ],
1486
+ "helpGroup": "Source Format",
1487
+ "name": "source-dir",
1488
+ "summary": "Path to the local source files to deploy.",
1489
+ "hasDynamicHelp": false,
1490
+ "multiple": true,
1491
+ "type": "option"
1492
+ },
1492
1493
  "target-org": {
1493
1494
  "char": "o",
1494
1495
  "description": "Overrides your default org.",
@@ -1512,17 +1513,17 @@
1512
1513
  },
1513
1514
  "test-level": {
1514
1515
  "char": "l",
1515
- "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.",
1516
+ "description": "Valid values are:\n\n- NoTestRun — No tests are run. This test level applies only to deployments to development environments, such as sandbox, Developer Edition, or trial orgs. This test level is the default for development environments.\n\n- RunSpecifiedTests — Runs only the tests that you specify with the --tests flag. Code coverage requirements differ from the default coverage requirements when using this test level. Executed tests must comprise a minimum of 75% code coverage for each class and trigger in the deployment package. This coverage is computed for each class and trigger individually and is different than the overall coverage percentage.\n\n- RunLocalTests — All tests in your org are run, except the ones that originate from installed managed and unlocked packages. This test level is the default for production deployments that include Apex classes or triggers.\n\n- RunAllTestsInOrg — All tests in your org are run, including tests of managed packages.\n\n If you don’t specify a test level, the default behavior depends on the contents of your deployment package and target org. For more information, see [Running Tests in a Deployment](https://developer.salesforce.com/docs/atlas.en-us.api_meta.meta/api_meta/meta_deploy_running_tests.htm) in the \"Metadata API Developer Guide\".",
1516
1517
  "helpGroup": "Test",
1517
1518
  "name": "test-level",
1518
1519
  "summary": "Deployment Apex testing level.",
1519
- "default": "RunLocalTests",
1520
1520
  "hasDynamicHelp": false,
1521
1521
  "multiple": false,
1522
1522
  "options": [
1523
- "RunAllTestsInOrg",
1523
+ "NoTestRun",
1524
+ "RunSpecifiedTests",
1524
1525
  "RunLocalTests",
1525
- "RunSpecifiedTests"
1526
+ "RunAllTestsInOrg"
1526
1527
  ],
1527
1528
  "type": "option"
1528
1529
  },
@@ -1531,15 +1532,18 @@
1531
1532
  "concise"
1532
1533
  ],
1533
1534
  "name": "verbose",
1534
- "summary": "Show verbose output of the validation result.",
1535
+ "summary": "Show verbose output of the deploy result.",
1535
1536
  "allowNo": false,
1536
1537
  "type": "boolean"
1537
1538
  },
1538
1539
  "wait": {
1539
1540
  "char": "w",
1540
- "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\".",
1541
+ "description": "If the command continues to run after the wait period, the CLI returns control of the terminal window to you and returns the job ID. To resume the deployment, run \"<%= config.bin %> project deploy resume\". To check the status of the deployment, run \"<%= config.bin %> project deploy report\".",
1542
+ "exclusive": [
1543
+ "async"
1544
+ ],
1541
1545
  "name": "wait",
1542
- "summary": "Number of minutes to wait for the command to complete and display results.",
1546
+ "summary": "Number of minutes to wait for command to complete and display results.",
1543
1547
  "default": {
1544
1548
  "quantity": 33,
1545
1549
  "unit": 0
@@ -1549,14 +1553,47 @@
1549
1553
  "multiple": false,
1550
1554
  "type": "option"
1551
1555
  },
1552
- "ignore-warnings": {
1553
- "char": "g",
1554
- "description": "If you specify this flag, and a warning occurs, the success status of the deployment is set to true. If you don't specify this flag, and a warning occurs, then the success status is set to false, and the warning is treated like an error.\n\nThis flag is useful in a CI environment and your deployment includes destructive changes; if you try to delete a component that doesn't exist in the org, you get a warning. In this case, to ensure that the command returns a success value of true, specify this flag.",
1555
- "name": "ignore-warnings",
1556
- "summary": "Ignore warnings and allow a deployment to complete successfully.",
1556
+ "purge-on-delete": {
1557
+ "dependsOn": [
1558
+ "manifest"
1559
+ ],
1560
+ "helpGroup": "Delete",
1561
+ "name": "purge-on-delete",
1562
+ "relationships": [
1563
+ {
1564
+ "type": "some",
1565
+ "flags": [
1566
+ "pre-destructive-changes",
1567
+ "post-destructive-changes"
1568
+ ]
1569
+ }
1570
+ ],
1571
+ "summary": "Specify that deleted components in the destructive changes manifest file are immediately eligible for deletion rather than being stored in the Recycle Bin.",
1557
1572
  "allowNo": false,
1558
1573
  "type": "boolean"
1559
1574
  },
1575
+ "pre-destructive-changes": {
1576
+ "dependsOn": [
1577
+ "manifest"
1578
+ ],
1579
+ "helpGroup": "Delete",
1580
+ "name": "pre-destructive-changes",
1581
+ "summary": "File path for a manifest (destructiveChangesPre.xml) of components to delete before the deploy.",
1582
+ "hasDynamicHelp": false,
1583
+ "multiple": false,
1584
+ "type": "option"
1585
+ },
1586
+ "post-destructive-changes": {
1587
+ "dependsOn": [
1588
+ "manifest"
1589
+ ],
1590
+ "helpGroup": "Delete",
1591
+ "name": "post-destructive-changes",
1592
+ "summary": "File path for a manifest (destructiveChangesPost.xml) of components to delete after the deploy.",
1593
+ "hasDynamicHelp": false,
1594
+ "multiple": false,
1595
+ "type": "option"
1596
+ },
1560
1597
  "coverage-formatters": {
1561
1598
  "description": "For multiple formatters, repeat the flag for each formatter.\n--coverage-formatters lcov --coverage-formatters clover",
1562
1599
  "helpGroup": "Test",
@@ -1602,57 +1639,16 @@
1602
1639
  "hasDynamicHelp": false,
1603
1640
  "multiple": false,
1604
1641
  "type": "option"
1605
- },
1606
- "purge-on-delete": {
1607
- "dependsOn": [
1608
- "manifest"
1609
- ],
1610
- "helpGroup": "Delete",
1611
- "name": "purge-on-delete",
1612
- "relationships": [
1613
- {
1614
- "type": "some",
1615
- "flags": [
1616
- "pre-destructive-changes",
1617
- "post-destructive-changes"
1618
- ]
1619
- }
1620
- ],
1621
- "summary": "Specify that deleted components in the destructive changes manifest file are immediately eligible for deletion rather than being stored in the Recycle Bin.",
1622
- "allowNo": false,
1623
- "type": "boolean"
1624
- },
1625
- "pre-destructive-changes": {
1626
- "dependsOn": [
1627
- "manifest"
1628
- ],
1629
- "helpGroup": "Delete",
1630
- "name": "pre-destructive-changes",
1631
- "summary": "File path for a manifest (destructiveChangesPre.xml) of components to delete before the deploy",
1632
- "hasDynamicHelp": false,
1633
- "multiple": false,
1634
- "type": "option"
1635
- },
1636
- "post-destructive-changes": {
1637
- "dependsOn": [
1638
- "manifest"
1639
- ],
1640
- "helpGroup": "Delete",
1641
- "name": "post-destructive-changes",
1642
- "summary": "File path for a manifest (destructiveChangesPost.xml) of components to delete after the deploy.",
1643
- "hasDynamicHelp": false,
1644
- "multiple": false,
1645
- "type": "option"
1646
1642
  }
1647
1643
  },
1648
1644
  "hasDynamicHelp": true,
1649
1645
  "hiddenAliases": [],
1650
- "id": "project:deploy:validate",
1646
+ "id": "project:deploy:start",
1651
1647
  "pluginAlias": "@salesforce/plugin-deploy-retrieve",
1652
1648
  "pluginName": "@salesforce/plugin-deploy-retrieve",
1653
1649
  "pluginType": "core",
1654
1650
  "strict": true,
1655
- "summary": "Validate a metadata deployment without actually executing it.",
1651
+ "summary": "Deploy metadata to an org from your local project.",
1656
1652
  "enableJsonFlag": true,
1657
1653
  "configurationVariablesSection": {
1658
1654
  "header": "CONFIGURATION VARIABLES",
@@ -1719,37 +1715,34 @@
1719
1715
  "commands",
1720
1716
  "project",
1721
1717
  "deploy",
1722
- "validate.js"
1718
+ "start.js"
1723
1719
  ],
1724
1720
  "aliasPermutations": [
1725
- "deploy:metadata:validate",
1726
- "metadata:deploy:validate",
1727
- "metadata:validate:deploy",
1728
- "deploy:validate:metadata",
1729
- "validate:deploy:metadata",
1730
- "validate:metadata:deploy"
1721
+ "deploy:metadata",
1722
+ "metadata:deploy"
1731
1723
  ],
1732
1724
  "permutations": [
1733
- "project:deploy:validate",
1734
- "deploy:project:validate",
1735
- "deploy:validate:project",
1736
- "project:validate:deploy",
1737
- "validate:project:deploy",
1738
- "validate:deploy:project"
1725
+ "project:deploy:start",
1726
+ "deploy:project:start",
1727
+ "deploy:start:project",
1728
+ "project:start:deploy",
1729
+ "start:project:deploy",
1730
+ "start:deploy:project"
1739
1731
  ]
1740
1732
  },
1741
- "project:delete:source": {
1733
+ "project:deploy:validate": {
1742
1734
  "aliases": [
1743
- "force:source:delete"
1735
+ "deploy:metadata:validate"
1744
1736
  ],
1745
1737
  "args": {},
1746
1738
  "deprecateAliases": true,
1747
- "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.",
1739
+ "description": "Use this command to verify whether a deployment will succeed without actually deploying the metadata to your org. This command is similar to \"<%= config.bin %> project deploy start\", except you're required to run Apex tests, and the command returns a job ID rather than executing the deployment. If the validation succeeds, then you pass this job ID to the \"<%= config.bin %> project deploy quick\" command to actually deploy the metadata. This quick deploy takes less time because it skips running Apex tests. The job ID is valid for 10 days from when you started the validation. Validating first is useful if the deployment to your production org take several hours and you don’t want to risk a failed deploy.\n\nYou must run this command from within a project.\n\nThis command doesn't support source-tracking. When you quick deploy with the resulting job ID, the source you deploy overwrites the corresponding metadata in your org.\n\nTo validate the deployment of multiple metadata components, either set multiple --metadata <name> flags or a single --metadata flag with multiple names separated by spaces. Enclose names that contain spaces in one set of double quotes. The same syntax applies to --manifest and --source-dir.\n\nNote: Don't use this command on sandboxes; the command is intended to be used on production orgs. By default, sandboxes don't run tests during a deploy. If you want to validate a deployment with tests on a sandbox, use \"sf project deploy start --dry-run --test-level RunLocalTests\" instead.",
1748
1740
  "examples": [
1749
- "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",
1750
- "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",
1751
- "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",
1752
- "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"
1741
+ "NOTE: These examples focus on validating large deployments. See the help for \"<%= config.bin %> project deploy start\" for examples of deploying smaller sets of metadata which you can also use to validate.",
1742
+ "Validate the deployment of all source files in the \"force-app\" directory to the default org:\n<%= config.bin %> <%= command.id %> --source-dir force-app",
1743
+ "Validate the deployment of all source files in two directories: \"force-app\" and \"force-app-utils\":\n<%= config.bin %> <%= command.id %> --source-dir force-app --source-dir force-app-utils",
1744
+ "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 force-app --async --test-level RunAllTestsInOrg --target-org my-prod-org",
1745
+ "Validate the deployment of all components listed in a manifest:\n<%= config.bin %> <%= command.id %> --manifest path/to/package.xml"
1753
1746
  ],
1754
1747
  "flags": {
1755
1748
  "json": {
@@ -1760,69 +1753,92 @@
1760
1753
  "type": "boolean"
1761
1754
  },
1762
1755
  "api-version": {
1763
- "aliases": [
1764
- "apiversion"
1765
- ],
1766
- "deprecateAliases": true,
1767
- "description": "Override the api version used for api requests made by this command",
1756
+ "char": "a",
1757
+ "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.",
1768
1758
  "name": "api-version",
1759
+ "summary": "Target API version for the validation.",
1769
1760
  "hasDynamicHelp": false,
1770
1761
  "multiple": false,
1771
1762
  "type": "option"
1772
1763
  },
1773
- "loglevel": {
1774
- "deprecated": {
1775
- "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."
1776
- },
1777
- "hidden": true,
1778
- "name": "loglevel",
1779
- "hasDynamicHelp": false,
1780
- "multiple": false,
1781
- "type": "option"
1782
- },
1783
- "target-org": {
1784
- "aliases": [
1785
- "targetusername",
1786
- "u"
1787
- ],
1788
- "char": "o",
1789
- "deprecateAliases": true,
1790
- "name": "target-org",
1791
- "noCacheDefault": true,
1792
- "required": true,
1793
- "summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
1794
- "hasDynamicHelp": true,
1795
- "multiple": false,
1796
- "type": "option"
1764
+ "async": {
1765
+ "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\".",
1766
+ "name": "async",
1767
+ "summary": "Run the command asynchronously.",
1768
+ "allowNo": false,
1769
+ "type": "boolean"
1797
1770
  },
1798
- "check-only": {
1799
- "aliases": [
1800
- "checkonly"
1771
+ "concise": {
1772
+ "exclusive": [
1773
+ "verbose"
1801
1774
  ],
1802
- "char": "c",
1803
- "deprecateAliases": true,
1804
- "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.",
1805
- "name": "check-only",
1806
- "summary": "Validate delete command but don't delete anything from the org or the local project.",
1775
+ "name": "concise",
1776
+ "summary": "Show concise output of the validation result.",
1807
1777
  "allowNo": false,
1808
1778
  "type": "boolean"
1809
1779
  },
1810
- "wait": {
1811
- "char": "w",
1812
- "description": "If the command continues to run after the wait period, the CLI returns control of the terminal window to you.",
1813
- "name": "wait",
1814
- "summary": "Number of minutes to wait for the command to finish.",
1815
- "default": {
1816
- "quantity": 33,
1817
- "unit": 0
1818
- },
1780
+ "manifest": {
1781
+ "char": "x",
1782
+ "description": "All child components are included. If you specify this flag, don’t specify --metadata or --source-dir.",
1783
+ "helpGroup": "Source Format",
1784
+ "name": "manifest",
1785
+ "summary": "Full file path for manifest (package.xml) of components to validate for deployment.",
1819
1786
  "hasDynamicHelp": false,
1820
1787
  "multiple": false,
1821
1788
  "type": "option"
1822
1789
  },
1823
- "tests": {
1824
- "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\"",
1825
- "helpGroup": "Test",
1790
+ "metadata": {
1791
+ "char": "m",
1792
+ "helpGroup": "Source Format",
1793
+ "name": "metadata",
1794
+ "summary": "Metadata component names to validate for deployment.",
1795
+ "hasDynamicHelp": false,
1796
+ "multiple": true,
1797
+ "type": "option"
1798
+ },
1799
+ "source-dir": {
1800
+ "char": "d",
1801
+ "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.",
1802
+ "helpGroup": "Source Format",
1803
+ "name": "source-dir",
1804
+ "summary": "Path to the local source files to validate for deployment.",
1805
+ "hasDynamicHelp": false,
1806
+ "multiple": true,
1807
+ "type": "option"
1808
+ },
1809
+ "metadata-dir": {
1810
+ "helpGroup": "Metadata API Format",
1811
+ "name": "metadata-dir",
1812
+ "summary": "Root of directory or zip file of metadata formatted files to deploy.",
1813
+ "hasDynamicHelp": false,
1814
+ "multiple": false,
1815
+ "type": "option"
1816
+ },
1817
+ "single-package": {
1818
+ "dependsOn": [
1819
+ "metadata-dir"
1820
+ ],
1821
+ "helpGroup": "Metadata API Format",
1822
+ "name": "single-package",
1823
+ "summary": "Indicates that the metadata zip file points to a directory structure for a single package.",
1824
+ "allowNo": false,
1825
+ "type": "boolean"
1826
+ },
1827
+ "target-org": {
1828
+ "char": "o",
1829
+ "description": "Overrides your default org.",
1830
+ "name": "target-org",
1831
+ "noCacheDefault": true,
1832
+ "required": true,
1833
+ "summary": "Login username or alias for the target org.",
1834
+ "hasDynamicHelp": true,
1835
+ "multiple": false,
1836
+ "type": "option"
1837
+ },
1838
+ "tests": {
1839
+ "char": "t",
1840
+ "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\"",
1841
+ "helpGroup": "Test",
1826
1842
  "name": "tests",
1827
1843
  "summary": "Apex tests to run when --test-level is RunSpecifiedTests.",
1828
1844
  "hasDynamicHelp": false,
@@ -1830,247 +1846,231 @@
1830
1846
  "type": "option"
1831
1847
  },
1832
1848
  "test-level": {
1833
- "aliases": [
1834
- "testlevel"
1835
- ],
1836
1849
  "char": "l",
1837
- "deprecateAliases": true,
1838
- "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.",
1850
+ "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.",
1839
1851
  "helpGroup": "Test",
1840
1852
  "name": "test-level",
1841
1853
  "summary": "Deployment Apex testing level.",
1854
+ "default": "RunLocalTests",
1842
1855
  "hasDynamicHelp": false,
1843
1856
  "multiple": false,
1844
1857
  "options": [
1845
- "NoTestRun",
1846
- "RunSpecifiedTests",
1858
+ "RunAllTestsInOrg",
1847
1859
  "RunLocalTests",
1848
- "RunAllTestsInOrg"
1860
+ "RunSpecifiedTests"
1849
1861
  ],
1850
1862
  "type": "option"
1851
1863
  },
1852
- "no-prompt": {
1853
- "aliases": [
1854
- "noprompt"
1864
+ "verbose": {
1865
+ "exclusive": [
1866
+ "concise"
1855
1867
  ],
1856
- "char": "r",
1857
- "deprecateAliases": true,
1858
- "name": "no-prompt",
1859
- "summary": "Don't prompt for delete confirmation.",
1868
+ "name": "verbose",
1869
+ "summary": "Show verbose output of the validation result.",
1860
1870
  "allowNo": false,
1861
1871
  "type": "boolean"
1862
1872
  },
1863
- "metadata": {
1864
- "char": "m",
1865
- "description": "If you specify this parameter, don’t specify --source-dir.",
1866
- "name": "metadata",
1867
- "summary": "Metadata components to delete.",
1868
- "delimiter": ",",
1873
+ "wait": {
1874
+ "char": "w",
1875
+ "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\".",
1876
+ "name": "wait",
1877
+ "summary": "Number of minutes to wait for the command to complete and display results.",
1878
+ "default": {
1879
+ "quantity": 33,
1880
+ "unit": 0
1881
+ },
1869
1882
  "hasDynamicHelp": false,
1870
- "multiple": true,
1883
+ "helpValue": "<minutes>",
1884
+ "multiple": false,
1871
1885
  "type": "option"
1872
1886
  },
1873
- "source-dir": {
1874
- "aliases": [
1875
- "sourcepath"
1876
- ],
1877
- "char": "p",
1878
- "deprecateAliases": true,
1879
- "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.",
1880
- "name": "source-dir",
1881
- "summary": "Source file paths to delete.",
1882
- "delimiter": ",",
1887
+ "ignore-warnings": {
1888
+ "char": "g",
1889
+ "description": "If you specify this flag, and a warning occurs, the success status of the deployment is set to true. If you don't specify this flag, and a warning occurs, then the success status is set to false, and the warning is treated like an error.\n\nThis flag is useful in a CI environment and your deployment includes destructive changes; if you try to delete a component that doesn't exist in the org, you get a warning. In this case, to ensure that the command returns a success value of true, specify this flag.",
1890
+ "name": "ignore-warnings",
1891
+ "summary": "Ignore warnings and allow a deployment to complete successfully.",
1892
+ "allowNo": false,
1893
+ "type": "boolean"
1894
+ },
1895
+ "coverage-formatters": {
1896
+ "description": "For multiple formatters, repeat the flag for each formatter.\n--coverage-formatters lcov --coverage-formatters clover",
1897
+ "helpGroup": "Test",
1898
+ "name": "coverage-formatters",
1899
+ "summary": "Format of the code coverage results.",
1883
1900
  "hasDynamicHelp": false,
1884
1901
  "multiple": true,
1902
+ "options": [
1903
+ "clover",
1904
+ "cobertura",
1905
+ "html-spa",
1906
+ "html",
1907
+ "json",
1908
+ "json-summary",
1909
+ "lcovonly",
1910
+ "none",
1911
+ "teamcity",
1912
+ "text",
1913
+ "text-summary"
1914
+ ],
1885
1915
  "type": "option"
1886
1916
  },
1887
- "track-source": {
1888
- "aliases": [
1889
- "tracksource"
1890
- ],
1891
- "char": "t",
1892
- "deprecateAliases": true,
1893
- "exclusive": [
1894
- "check-only"
1895
- ],
1896
- "name": "track-source",
1897
- "summary": "If the delete succeeds, update the source tracking information.",
1917
+ "junit": {
1918
+ "helpGroup": "Test",
1919
+ "name": "junit",
1920
+ "summary": "Output JUnit test results.",
1898
1921
  "allowNo": false,
1899
1922
  "type": "boolean"
1900
1923
  },
1901
- "force-overwrite": {
1902
- "aliases": [
1903
- "forceoverwrite"
1924
+ "results-dir": {
1925
+ "helpGroup": "Test",
1926
+ "name": "results-dir",
1927
+ "relationships": [
1928
+ {
1929
+ "type": "some",
1930
+ "flags": [
1931
+ "coverage-formatters",
1932
+ "junit"
1933
+ ]
1934
+ }
1904
1935
  ],
1905
- "char": "f",
1936
+ "summary": "Output directory for code coverage and JUnit results; defaults to the deploy ID.",
1937
+ "hasDynamicHelp": false,
1938
+ "multiple": false,
1939
+ "type": "option"
1940
+ },
1941
+ "purge-on-delete": {
1906
1942
  "dependsOn": [
1907
- "track-source"
1943
+ "manifest"
1908
1944
  ],
1909
- "deprecateAliases": true,
1910
- "name": "force-overwrite",
1911
- "summary": "Ignore conflict warnings and overwrite changes to the org.",
1912
- "allowNo": false,
1913
- "type": "boolean"
1914
- },
1915
- "verbose": {
1916
- "name": "verbose",
1917
- "summary": "Verbose output of the delete result.",
1918
- "allowNo": false,
1919
- "type": "boolean"
1920
- }
1921
- },
1922
- "hasDynamicHelp": true,
1923
- "hiddenAliases": [],
1924
- "id": "project:delete:source",
1925
- "pluginAlias": "@salesforce/plugin-deploy-retrieve",
1926
- "pluginName": "@salesforce/plugin-deploy-retrieve",
1927
- "pluginType": "core",
1928
- "strict": true,
1929
- "summary": "Delete source from your project and from a non-source-tracked org.",
1930
- "enableJsonFlag": true,
1931
- "requiresProject": true,
1932
- "isESM": true,
1933
- "relativePath": [
1934
- "lib",
1935
- "commands",
1936
- "project",
1937
- "delete",
1938
- "source.js"
1939
- ],
1940
- "aliasPermutations": [
1941
- "force:source:delete",
1942
- "source:force:delete",
1943
- "source:delete:force",
1944
- "force:delete:source",
1945
- "delete:force:source",
1946
- "delete:source:force"
1947
- ],
1948
- "permutations": [
1949
- "project:delete:source",
1950
- "delete:project:source",
1951
- "delete:source:project",
1952
- "project:source:delete",
1953
- "source:project:delete",
1954
- "source:delete:project"
1955
- ]
1956
- },
1957
- "project:delete:tracking": {
1958
- "aliases": [
1959
- "force:source:tracking:clear"
1960
- ],
1961
- "args": {},
1962
- "deprecateAliases": true,
1963
- "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.",
1964
- "examples": [
1965
- "Delete local source tracking for the org with alias \"my-scratch\":\n$ <%= config.bin %> <%= command.id %> --target-org my-scratch"
1966
- ],
1967
- "flags": {
1968
- "json": {
1969
- "description": "Format output as json.",
1970
- "helpGroup": "GLOBAL",
1971
- "name": "json",
1945
+ "helpGroup": "Delete",
1946
+ "name": "purge-on-delete",
1947
+ "relationships": [
1948
+ {
1949
+ "type": "some",
1950
+ "flags": [
1951
+ "pre-destructive-changes",
1952
+ "post-destructive-changes"
1953
+ ]
1954
+ }
1955
+ ],
1956
+ "summary": "Specify that deleted components in the destructive changes manifest file are immediately eligible for deletion rather than being stored in the Recycle Bin.",
1972
1957
  "allowNo": false,
1973
1958
  "type": "boolean"
1974
1959
  },
1975
- "api-version": {
1976
- "aliases": [
1977
- "apiversion"
1960
+ "pre-destructive-changes": {
1961
+ "dependsOn": [
1962
+ "manifest"
1978
1963
  ],
1979
- "deprecateAliases": true,
1980
- "description": "Override the api version used for api requests made by this command",
1981
- "name": "api-version",
1982
- "hasDynamicHelp": false,
1983
- "multiple": false,
1984
- "type": "option"
1985
- },
1986
- "loglevel": {
1987
- "deprecated": {
1988
- "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."
1989
- },
1990
- "hidden": true,
1991
- "name": "loglevel",
1964
+ "helpGroup": "Delete",
1965
+ "name": "pre-destructive-changes",
1966
+ "summary": "File path for a manifest (destructiveChangesPre.xml) of components to delete before the deploy",
1992
1967
  "hasDynamicHelp": false,
1993
1968
  "multiple": false,
1994
1969
  "type": "option"
1995
1970
  },
1996
- "target-org": {
1997
- "aliases": [
1998
- "targetusername",
1999
- "u"
1971
+ "post-destructive-changes": {
1972
+ "dependsOn": [
1973
+ "manifest"
2000
1974
  ],
2001
- "char": "o",
2002
- "deprecateAliases": true,
2003
- "name": "target-org",
2004
- "noCacheDefault": true,
2005
- "required": true,
2006
- "summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
2007
- "hasDynamicHelp": true,
1975
+ "helpGroup": "Delete",
1976
+ "name": "post-destructive-changes",
1977
+ "summary": "File path for a manifest (destructiveChangesPost.xml) of components to delete after the deploy.",
1978
+ "hasDynamicHelp": false,
2008
1979
  "multiple": false,
2009
1980
  "type": "option"
2010
- },
2011
- "no-prompt": {
2012
- "aliases": [
2013
- "noprompt"
2014
- ],
2015
- "char": "p",
2016
- "deprecateAliases": true,
2017
- "name": "no-prompt",
2018
- "summary": "Don't prompt for source tracking override confirmation.",
2019
- "allowNo": false,
2020
- "type": "boolean"
2021
1981
  }
2022
1982
  },
2023
1983
  "hasDynamicHelp": true,
2024
1984
  "hiddenAliases": [],
2025
- "id": "project:delete:tracking",
1985
+ "id": "project:deploy:validate",
2026
1986
  "pluginAlias": "@salesforce/plugin-deploy-retrieve",
2027
1987
  "pluginName": "@salesforce/plugin-deploy-retrieve",
2028
1988
  "pluginType": "core",
2029
1989
  "strict": true,
2030
- "summary": "Delete all local source tracking information.",
1990
+ "summary": "Validate a metadata deployment without actually executing it.",
2031
1991
  "enableJsonFlag": true,
2032
- "requiresProject": true,
1992
+ "configurationVariablesSection": {
1993
+ "header": "CONFIGURATION VARIABLES",
1994
+ "body": [
1995
+ {
1996
+ "name": "target-org",
1997
+ "description": "Username or alias of the org that all commands run against by default. (sf only)"
1998
+ },
1999
+ {
2000
+ "name": "org-api-version",
2001
+ "description": "API version of your project. Default: API version of your Dev Hub org."
2002
+ }
2003
+ ]
2004
+ },
2005
+ "envVariablesSection": {
2006
+ "header": "ENVIRONMENT VARIABLES",
2007
+ "body": [
2008
+ {
2009
+ "name": "SF_TARGET_ORG",
2010
+ "description": "Username or alias of your default org. Overrides the target-org configuration variable."
2011
+ },
2012
+ {
2013
+ "name": "SF_USE_PROGRESS_BAR",
2014
+ "description": "Set to false to disable the progress bar when running the metadata deploy command."
2015
+ }
2016
+ ]
2017
+ },
2018
+ "errorCodes": {
2019
+ "header": "ERROR CODES",
2020
+ "body": [
2021
+ {
2022
+ "name": "Succeeded (0)",
2023
+ "description": "The deploy succeeded."
2024
+ },
2025
+ {
2026
+ "name": "Canceled (1)",
2027
+ "description": "The deploy was canceled."
2028
+ },
2029
+ {
2030
+ "name": "Failed (1)",
2031
+ "description": "The deploy failed."
2032
+ },
2033
+ {
2034
+ "name": "SucceededPartial (68)",
2035
+ "description": "The deploy partially succeeded."
2036
+ },
2037
+ {
2038
+ "name": "InProgress (69)",
2039
+ "description": "The deploy is in progress."
2040
+ },
2041
+ {
2042
+ "name": "Pending (69)",
2043
+ "description": "The deploy is pending."
2044
+ },
2045
+ {
2046
+ "name": "Canceling (69)",
2047
+ "description": "The deploy is being canceled."
2048
+ }
2049
+ ]
2050
+ },
2033
2051
  "isESM": true,
2034
2052
  "relativePath": [
2035
2053
  "lib",
2036
2054
  "commands",
2037
2055
  "project",
2038
- "delete",
2039
- "tracking.js"
2056
+ "deploy",
2057
+ "validate.js"
2040
2058
  ],
2041
2059
  "aliasPermutations": [
2042
- "force:source:tracking:clear",
2043
- "source:force:tracking:clear",
2044
- "source:tracking:force:clear",
2045
- "source:tracking:clear:force",
2046
- "force:tracking:source:clear",
2047
- "tracking:force:source:clear",
2048
- "tracking:source:force:clear",
2049
- "tracking:source:clear:force",
2050
- "force:tracking:clear:source",
2051
- "tracking:force:clear:source",
2052
- "tracking:clear:force:source",
2053
- "tracking:clear:source:force",
2054
- "force:source:clear:tracking",
2055
- "source:force:clear:tracking",
2056
- "source:clear:force:tracking",
2057
- "source:clear:tracking:force",
2058
- "force:clear:source:tracking",
2059
- "clear:force:source:tracking",
2060
- "clear:source:force:tracking",
2061
- "clear:source:tracking:force",
2062
- "force:clear:tracking:source",
2063
- "clear:force:tracking:source",
2064
- "clear:tracking:force:source",
2065
- "clear:tracking:source:force"
2060
+ "deploy:metadata:validate",
2061
+ "metadata:deploy:validate",
2062
+ "metadata:validate:deploy",
2063
+ "deploy:validate:metadata",
2064
+ "validate:deploy:metadata",
2065
+ "validate:metadata:deploy"
2066
2066
  ],
2067
2067
  "permutations": [
2068
- "project:delete:tracking",
2069
- "delete:project:tracking",
2070
- "delete:tracking:project",
2071
- "project:tracking:delete",
2072
- "tracking:project:delete",
2073
- "tracking:delete:project"
2068
+ "project:deploy:validate",
2069
+ "deploy:project:validate",
2070
+ "deploy:validate:project",
2071
+ "project:validate:deploy",
2072
+ "validate:project:deploy",
2073
+ "validate:deploy:project"
2074
2074
  ]
2075
2075
  },
2076
2076
  "project:generate:manifest": {
@@ -2816,5 +2816,5 @@
2816
2816
  ]
2817
2817
  }
2818
2818
  },
2819
- "version": "3.2.25"
2819
+ "version": "3.2.26"
2820
2820
  }