@salesforce/plugin-deploy-retrieve 3.22.30 → 3.22.32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/README.md +17 -17
  2. package/oclif.manifest.json +954 -954
  3. package/package.json +5 -5
@@ -752,16 +752,17 @@
752
752
  "tracking:delete:project"
753
753
  ]
754
754
  },
755
- "project:deploy:cancel": {
755
+ "project:list:ignored": {
756
756
  "aliases": [
757
- "deploy:metadata:cancel"
757
+ "force:source:ignored:list"
758
758
  ],
759
759
  "args": {},
760
760
  "deprecateAliases": true,
761
- "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.",
761
+ "description": "When deploying or retrieving metadata between your local project and an org, you can specify the source files you want to exclude with a .forceignore file. The .forceignore file structure mimics the .gitignore structure. Each line in .forceignore specifies a pattern that corresponds to one or more files. The files typically represent metadata components, but can be any files you want to exclude, such as LWC configuration JSON files or tests.",
762
762
  "examples": [
763
- "Cancel a deploy operation using a job ID:\n<%= config.bin %> <%= command.id %> --job-id 0Af0x000017yLUFCA2",
764
- "Cancel the most recent deploy operation:\n<%= config.bin %> <%= command.id %> --use-most-recent"
763
+ "List all the files in all package directories that are ignored:\n<%= config.bin %> <%= command.id %>",
764
+ "List all the files in a specific directory that are ignored:\n<%= config.bin %> <%= command.id %> --source-dir force-app",
765
+ "Check if a particular file is ignored:\n<%= config.bin %> <%= command.id %> --source-dir package.xml"
765
766
  ],
766
767
  "flags": {
767
768
  "json": {
@@ -779,103 +780,86 @@
779
780
  "multiple": false,
780
781
  "type": "option"
781
782
  },
782
- "target-org": {
783
- "char": "o",
784
- "name": "target-org",
785
- "noCacheDefault": true,
786
- "summary": "Username or alias of the target org.",
787
- "hasDynamicHelp": true,
788
- "multiple": false,
789
- "type": "option"
790
- },
791
- "async": {
792
- "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\".",
793
- "exclusive": [
794
- "wait"
783
+ "source-dir": {
784
+ "aliases": [
785
+ "sourcepath"
795
786
  ],
796
- "name": "async",
797
- "summary": "Run the command asynchronously.",
798
- "allowNo": false,
799
- "type": "boolean"
800
- },
801
- "job-id": {
802
- "char": "i",
803
- "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.",
804
- "name": "job-id",
805
- "summary": "Job ID of the deploy operation you want to cancel.",
787
+ "char": "p",
788
+ "deprecateAliases": true,
789
+ "name": "source-dir",
790
+ "summary": "File or directory of files that the command checks for foreceignored files.",
806
791
  "hasDynamicHelp": false,
807
792
  "multiple": false,
808
793
  "type": "option"
809
- },
810
- "use-most-recent": {
811
- "char": "r",
812
- "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.",
813
- "name": "use-most-recent",
814
- "summary": "Use the job ID of the most recent deploy operation.",
815
- "allowNo": false,
816
- "type": "boolean"
817
- },
818
- "wait": {
819
- "char": "w",
820
- "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\".",
821
- "exclusive": [
822
- "async"
823
- ],
824
- "name": "wait",
825
- "summary": "Number of minutes to wait for the command to complete and display results.",
826
- "hasDynamicHelp": true,
827
- "helpValue": "<minutes>",
828
- "multiple": false,
829
- "type": "option"
830
794
  }
831
795
  },
832
- "hasDynamicHelp": true,
796
+ "hasDynamicHelp": false,
833
797
  "hiddenAliases": [],
834
- "id": "project:deploy:cancel",
798
+ "id": "project:list:ignored",
835
799
  "pluginAlias": "@salesforce/plugin-deploy-retrieve",
836
800
  "pluginName": "@salesforce/plugin-deploy-retrieve",
837
801
  "pluginType": "core",
838
802
  "strict": true,
839
- "summary": "Cancel a deploy operation.",
803
+ "summary": "Check your local project package directories for forceignored files.",
840
804
  "enableJsonFlag": true,
805
+ "requiresProject": true,
841
806
  "isESM": true,
842
807
  "relativePath": [
843
808
  "lib",
844
809
  "commands",
845
810
  "project",
846
- "deploy",
847
- "cancel.js"
811
+ "list",
812
+ "ignored.js"
848
813
  ],
849
814
  "aliasPermutations": [
850
- "deploy:metadata:cancel",
851
- "metadata:deploy:cancel",
852
- "metadata:cancel:deploy",
853
- "deploy:cancel:metadata",
854
- "cancel:deploy:metadata",
855
- "cancel:metadata:deploy"
815
+ "force:source:ignored:list",
816
+ "source:force:ignored:list",
817
+ "source:ignored:force:list",
818
+ "source:ignored:list:force",
819
+ "force:ignored:source:list",
820
+ "ignored:force:source:list",
821
+ "ignored:source:force:list",
822
+ "ignored:source:list:force",
823
+ "force:ignored:list:source",
824
+ "ignored:force:list:source",
825
+ "ignored:list:force:source",
826
+ "ignored:list:source:force",
827
+ "force:source:list:ignored",
828
+ "source:force:list:ignored",
829
+ "source:list:force:ignored",
830
+ "source:list:ignored:force",
831
+ "force:list:source:ignored",
832
+ "list:force:source:ignored",
833
+ "list:source:force:ignored",
834
+ "list:source:ignored:force",
835
+ "force:list:ignored:source",
836
+ "list:force:ignored:source",
837
+ "list:ignored:force:source",
838
+ "list:ignored:source:force"
856
839
  ],
857
840
  "permutations": [
858
- "project:deploy:cancel",
859
- "deploy:project:cancel",
860
- "deploy:cancel:project",
861
- "project:cancel:deploy",
862
- "cancel:project:deploy",
863
- "cancel:deploy:project"
841
+ "project:list:ignored",
842
+ "list:project:ignored",
843
+ "list:ignored:project",
844
+ "project:ignored:list",
845
+ "ignored:project:list",
846
+ "ignored:list:project"
864
847
  ]
865
848
  },
866
- "project:deploy:preview": {
849
+ "project:generate:manifest": {
867
850
  "aliases": [
868
- "deploy:metadata:preview"
851
+ "force:source:manifest:create"
869
852
  ],
870
853
  "args": {},
871
854
  "deprecateAliases": true,
872
- "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 --source-dir.",
855
+ "description": "Create a manifest from a list of metadata components (--metadata) or from one or more local directories that contain source files (--source-dir). You can specify either of these flags, not both.\n\nUse --type to specify the type of manifest you want to create. The resulting manifest files have specific names, such as the standard package.xml or destructiveChanges.xml to delete metadata. Valid values for this flag, and their respective file names, are:\n\n * package : package.xml (default)\n * pre : destructiveChangesPre.xml\n * post : destructiveChangesPost.xml\n * destroy : destructiveChanges.xml\n\nSee https://developer.salesforce.com/docs/atlas.en-us.api_meta.meta/api_meta/meta_deploy_deleting_files.htm for information about these destructive manifest files.\n\nUse --name to specify a custom name for the generated manifest if the pre-defined ones don’t suit your needs. You can specify either --type or --name, but not both.\n\nTo include multiple metadata components, either set multiple --metadata <name> flags or a single --metadata flag with multiple names separated by spaces. Enclose names that contain spaces in one set of double quotes. The same syntax applies to --include-packages and --source-dir.\n\nTo build a manifest from the metadata in an org, use the --from-org flag. You can combine --from-org with the --metadata flag to include only certain metadata types, or with the --excluded-metadata flag to exclude certain metadata types. When building a manifest from an org, the command makes many concurrent API calls to discover the metadata that exists in the org. To limit the number of concurrent requests, use the SF_LIST_METADATA_BATCH_SIZE environment variable and set it to a size that works best for your org and environment. If you experience timeouts or inconsistent manifest contents, then setting this environment variable can improve accuracy. However, the command takes longer to run because it sends fewer requests at a time.",
873
856
  "examples": [
874
- "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.",
875
- "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",
876
- "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",
877
- "Preview deployment of a specific Apex class:\n<%= config.bin %> <%= command.id %> --metadata ApexClass:MyApexClass",
878
- "Preview deployment of all components listed in a manifest:\n<%= config.bin %> <%= command.id %> --manifest path/to/package.xml"
857
+ "Create a manifest for deploying or retrieving all Apex classes and custom objects:\n$ <%= config.bin %> <%= command.id %> --metadata ApexClass --metadata CustomObject",
858
+ "Create a manifest for deleting the specified Apex class:\n$ <%= config.bin %> <%= command.id %> --metadata ApexClass:MyApexClass --type destroy",
859
+ "Create a manifest for deploying or retrieving all the metadata components in the specified local directory; name the file myNewManifest.xml:\n$ <%= config.bin %> <%= command.id %> --source-dir force-app --name myNewManifest",
860
+ "Create a manifest from the metadata components in the specified org and include metadata in any unlocked packages:\n$ <%= config.bin %> <%= command.id %> --from-org test@myorg.com --include-packages unlocked",
861
+ "Create a manifest from specific metadata types in an org:\n$ <%= config.bin %> <%= command.id %> --from-org test@myorg.com --metadata ApexClass,CustomObject,CustomLabels",
862
+ "Create a manifest from all metadata components in an org excluding specific metadata types:\n$ <%= config.bin %> <%= command.id %> --from-org test@myorg.com --excluded-metadata StandardValueSet"
879
863
  ],
880
864
  "flags": {
881
865
  "json": {
@@ -893,287 +877,213 @@
893
877
  "multiple": false,
894
878
  "type": "option"
895
879
  },
896
- "ignore-conflicts": {
897
- "char": "c",
898
- "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.",
899
- "name": "ignore-conflicts",
900
- "summary": "Don't display conflicts in preview of the deployment.",
901
- "allowNo": false,
902
- "type": "boolean"
903
- },
904
- "manifest": {
905
- "char": "x",
906
- "description": "All child components are included. If you specify this flag, don’t specify --metadata or --source-dir.",
907
- "exclusive": [
908
- "source-dir",
909
- "metadata"
880
+ "api-version": {
881
+ "aliases": [
882
+ "apiversion"
910
883
  ],
911
- "name": "manifest",
912
- "summary": "Full file path for manifest (package.xml) of components to preview.",
884
+ "deprecateAliases": true,
885
+ "description": "Override the api version used for api requests made by this command",
886
+ "name": "api-version",
887
+ "hasDynamicHelp": false,
888
+ "multiple": false,
889
+ "type": "option"
890
+ },
891
+ "loglevel": {
892
+ "deprecated": {
893
+ "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."
894
+ },
895
+ "hidden": true,
896
+ "name": "loglevel",
913
897
  "hasDynamicHelp": false,
914
898
  "multiple": false,
915
899
  "type": "option"
916
900
  },
917
901
  "metadata": {
918
902
  "char": "m",
919
- "exclusive": [
920
- "manifest",
921
- "source-dir"
922
- ],
923
903
  "name": "metadata",
924
- "summary": "Metadata component names to preview.",
904
+ "summary": "Names of metadata components to include in the manifest.",
905
+ "delimiter": ",",
925
906
  "hasDynamicHelp": false,
926
907
  "multiple": true,
927
908
  "type": "option"
928
909
  },
929
910
  "source-dir": {
930
- "char": "d",
931
- "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.",
932
- "exclusive": [
933
- "manifest",
934
- "metadata"
911
+ "aliases": [
912
+ "sourcepath"
935
913
  ],
914
+ "char": "p",
915
+ "deprecateAliases": true,
936
916
  "name": "source-dir",
937
- "summary": "Path to the local source files to preview.",
917
+ "summary": "Paths to the local source files to include in the manifest.",
918
+ "delimiter": ",",
938
919
  "hasDynamicHelp": false,
939
920
  "multiple": true,
940
921
  "type": "option"
941
922
  },
942
- "target-org": {
943
- "char": "o",
944
- "name": "target-org",
945
- "noCacheDefault": true,
946
- "required": true,
947
- "summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
948
- "hasDynamicHelp": true,
923
+ "name": {
924
+ "aliases": [
925
+ "manifestname"
926
+ ],
927
+ "char": "n",
928
+ "deprecateAliases": true,
929
+ "exclusive": [
930
+ "type"
931
+ ],
932
+ "name": "name",
933
+ "summary": "Name of a custom manifest file to create.",
934
+ "hasDynamicHelp": false,
949
935
  "multiple": false,
950
936
  "type": "option"
951
937
  },
952
- "concise": {
953
- "name": "concise",
954
- "summary": "Show only the changes that will be deployed; omits files that are forceignored.",
955
- "allowNo": false,
956
- "type": "boolean"
957
- }
958
- },
959
- "hasDynamicHelp": true,
960
- "hiddenAliases": [],
961
- "id": "project:deploy:preview",
962
- "pluginAlias": "@salesforce/plugin-deploy-retrieve",
963
- "pluginName": "@salesforce/plugin-deploy-retrieve",
964
- "pluginType": "core",
965
- "strict": true,
966
- "summary": "Preview a deployment to see what will deploy to the org, the potential conflicts, and the ignored files.",
967
- "enableJsonFlag": true,
968
- "requiresProject": true,
969
- "isESM": true,
970
- "relativePath": [
971
- "lib",
972
- "commands",
973
- "project",
974
- "deploy",
975
- "preview.js"
976
- ],
977
- "aliasPermutations": [
978
- "deploy:metadata:preview",
979
- "metadata:deploy:preview",
980
- "metadata:preview:deploy",
981
- "deploy:preview:metadata",
982
- "preview:deploy:metadata",
983
- "preview:metadata:deploy"
984
- ],
985
- "permutations": [
986
- "project:deploy:preview",
987
- "deploy:project:preview",
988
- "deploy:preview:project",
989
- "project:preview:deploy",
990
- "preview:project:deploy",
991
- "preview:deploy:project"
992
- ]
993
- },
994
- "project:deploy:quick": {
995
- "aliases": [
996
- "deploy:metadata:quick"
997
- ],
998
- "args": {},
999
- "deprecateAliases": true,
1000
- "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 \"<%= config.bin %> project deploy start\" instead.",
1001
- "examples": [
1002
- "Run a quick deploy to your default org using a job ID:\n<%= config.bin %> <%= command.id %> --job-id 0Af0x000017yLUFCA2",
1003
- "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"
1004
- ],
1005
- "flags": {
1006
- "json": {
1007
- "description": "Format output as json.",
1008
- "helpGroup": "GLOBAL",
1009
- "name": "json",
1010
- "allowNo": false,
1011
- "type": "boolean"
1012
- },
1013
- "flags-dir": {
1014
- "helpGroup": "GLOBAL",
1015
- "name": "flags-dir",
1016
- "summary": "Import flag values from a directory.",
938
+ "type": {
939
+ "aliases": [
940
+ "manifesttype"
941
+ ],
942
+ "char": "t",
943
+ "deprecateAliases": true,
944
+ "exclusive": [
945
+ "name"
946
+ ],
947
+ "name": "type",
948
+ "summary": "Type of manifest to create; the type determines the name of the created file.",
1017
949
  "hasDynamicHelp": false,
1018
950
  "multiple": false,
951
+ "options": [
952
+ "pre",
953
+ "post",
954
+ "destroy",
955
+ "package"
956
+ ],
1019
957
  "type": "option"
1020
958
  },
1021
- "async": {
1022
- "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\".",
1023
- "exclusive": [
1024
- "wait"
959
+ "include-packages": {
960
+ "aliases": [
961
+ "includepackages"
1025
962
  ],
1026
- "name": "async",
1027
- "summary": "Run the command asynchronously.",
1028
- "allowNo": false,
1029
- "type": "boolean"
1030
- },
1031
- "concise": {
1032
- "exclusive": [
1033
- "verbose"
963
+ "char": "c",
964
+ "dependsOn": [
965
+ "from-org"
1034
966
  ],
1035
- "name": "concise",
1036
- "summary": "Show concise output of the deploy result.",
1037
- "allowNo": false,
1038
- "type": "boolean"
1039
- },
1040
- "job-id": {
1041
- "char": "i",
1042
- "description": "The job ID is valid for 10 days from when you started the validation.",
1043
- "name": "job-id",
1044
- "summary": "Job ID of the deployment you want to quick deploy.",
967
+ "deprecateAliases": true,
968
+ "name": "include-packages",
969
+ "summary": "Package types (managed, unlocked) whose metadata is included in the manifest; by default, metadata in managed and unlocked packages is excluded. Metadata in unmanaged packages is always included.",
970
+ "delimiter": ",",
1045
971
  "hasDynamicHelp": false,
1046
- "multiple": false,
972
+ "multiple": true,
973
+ "options": [
974
+ "managed",
975
+ "unlocked"
976
+ ],
1047
977
  "type": "option"
1048
978
  },
1049
- "target-org": {
1050
- "char": "o",
1051
- "name": "target-org",
1052
- "noCacheDefault": true,
1053
- "summary": "Username or alias of the target org.",
1054
- "hasDynamicHelp": true,
1055
- "multiple": false,
979
+ "excluded-metadata": {
980
+ "name": "excluded-metadata",
981
+ "relationships": [
982
+ {
983
+ "type": "some",
984
+ "flags": [
985
+ "from-org",
986
+ "source-dir"
987
+ ]
988
+ }
989
+ ],
990
+ "summary": "Metadata types to exclude when building a manifest from an org. Specify the name of the type, not the name of a specific component.",
991
+ "delimiter": ",",
992
+ "hasDynamicHelp": false,
993
+ "multiple": true,
1056
994
  "type": "option"
1057
995
  },
1058
- "use-most-recent": {
1059
- "char": "r",
1060
- "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.",
1061
- "name": "use-most-recent",
1062
- "summary": "Use the job ID of the most recently validated deployment.",
1063
- "allowNo": false,
1064
- "type": "boolean"
1065
- },
1066
- "verbose": {
1067
- "exclusive": [
1068
- "concise"
996
+ "from-org": {
997
+ "aliases": [
998
+ "fromorg"
1069
999
  ],
1070
- "name": "verbose",
1071
- "summary": "Show verbose output of the deploy result.",
1072
- "allowNo": false,
1073
- "type": "boolean"
1074
- },
1075
- "wait": {
1076
- "char": "w",
1077
- "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\".",
1000
+ "deprecateAliases": true,
1078
1001
  "exclusive": [
1079
- "async"
1002
+ "source-dir"
1080
1003
  ],
1081
- "name": "wait",
1082
- "summary": "Number of minutes to wait for the command to complete and display results.",
1083
- "default": "33 minutes",
1084
- "hasDynamicHelp": true,
1085
- "helpValue": "<minutes>",
1004
+ "name": "from-org",
1005
+ "summary": "Username or alias of the org that contains the metadata components from which to build a manifest.",
1006
+ "hasDynamicHelp": false,
1086
1007
  "multiple": false,
1087
1008
  "type": "option"
1088
1009
  },
1089
- "api-version": {
1090
- "char": "a",
1091
- "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.",
1092
- "name": "api-version",
1093
- "summary": "Target API version for the deploy.",
1010
+ "output-dir": {
1011
+ "aliases": [
1012
+ "outputdir",
1013
+ "o"
1014
+ ],
1015
+ "char": "d",
1016
+ "deprecateAliases": true,
1017
+ "name": "output-dir",
1018
+ "summary": "Directory to save the created manifest.",
1094
1019
  "hasDynamicHelp": false,
1095
1020
  "multiple": false,
1096
1021
  "type": "option"
1097
1022
  }
1098
1023
  },
1099
- "hasDynamicHelp": true,
1024
+ "hasDynamicHelp": false,
1100
1025
  "hiddenAliases": [],
1101
- "id": "project:deploy:quick",
1026
+ "id": "project:generate:manifest",
1102
1027
  "pluginAlias": "@salesforce/plugin-deploy-retrieve",
1103
1028
  "pluginName": "@salesforce/plugin-deploy-retrieve",
1104
1029
  "pluginType": "core",
1105
1030
  "strict": true,
1106
- "summary": "Quickly deploy a validated deployment to an org.",
1031
+ "summary": "Create a project manifest that lists the metadata components you want to deploy or retrieve.",
1107
1032
  "enableJsonFlag": true,
1108
- "errorCodes": {
1109
- "header": "ERROR CODES",
1110
- "body": [
1111
- {
1112
- "name": "Succeeded (0)",
1113
- "description": "The deploy succeeded."
1114
- },
1115
- {
1116
- "name": "Canceled (1)",
1117
- "description": "The deploy was canceled."
1118
- },
1119
- {
1120
- "name": "Failed (1)",
1121
- "description": "The deploy failed."
1122
- },
1123
- {
1124
- "name": "SucceededPartial (68)",
1125
- "description": "The deploy partially succeeded."
1126
- },
1127
- {
1128
- "name": "InProgress (69)",
1129
- "description": "The deploy is in progress."
1130
- },
1131
- {
1132
- "name": "Pending (69)",
1133
- "description": "The deploy is pending."
1134
- },
1135
- {
1136
- "name": "Canceling (69)",
1137
- "description": "The deploy is being canceled."
1138
- }
1139
- ]
1140
- },
1033
+ "requiresProject": true,
1141
1034
  "isESM": true,
1142
1035
  "relativePath": [
1143
1036
  "lib",
1144
1037
  "commands",
1145
1038
  "project",
1146
- "deploy",
1147
- "quick.js"
1039
+ "generate",
1040
+ "manifest.js"
1148
1041
  ],
1149
1042
  "aliasPermutations": [
1150
- "deploy:metadata:quick",
1151
- "metadata:deploy:quick",
1152
- "metadata:quick:deploy",
1153
- "deploy:quick:metadata",
1154
- "quick:deploy:metadata",
1155
- "quick:metadata:deploy"
1043
+ "force:source:manifest:create",
1044
+ "source:force:manifest:create",
1045
+ "source:manifest:force:create",
1046
+ "source:manifest:create:force",
1047
+ "force:manifest:source:create",
1048
+ "manifest:force:source:create",
1049
+ "manifest:source:force:create",
1050
+ "manifest:source:create:force",
1051
+ "force:manifest:create:source",
1052
+ "manifest:force:create:source",
1053
+ "manifest:create:force:source",
1054
+ "manifest:create:source:force",
1055
+ "force:source:create:manifest",
1056
+ "source:force:create:manifest",
1057
+ "source:create:force:manifest",
1058
+ "source:create:manifest:force",
1059
+ "force:create:source:manifest",
1060
+ "create:force:source:manifest",
1061
+ "create:source:force:manifest",
1062
+ "create:source:manifest:force",
1063
+ "force:create:manifest:source",
1064
+ "create:force:manifest:source",
1065
+ "create:manifest:force:source",
1066
+ "create:manifest:source:force"
1156
1067
  ],
1157
1068
  "permutations": [
1158
- "project:deploy:quick",
1159
- "deploy:project:quick",
1160
- "deploy:quick:project",
1161
- "project:quick:deploy",
1162
- "quick:project:deploy",
1163
- "quick:deploy:project"
1069
+ "project:generate:manifest",
1070
+ "generate:project:manifest",
1071
+ "generate:manifest:project",
1072
+ "project:manifest:generate",
1073
+ "manifest:project:generate",
1074
+ "manifest:generate:project"
1164
1075
  ]
1165
1076
  },
1166
- "project:deploy:report": {
1077
+ "project:deploy:cancel": {
1167
1078
  "aliases": [
1168
- "deploy:metadata:report"
1079
+ "deploy:metadata:cancel"
1169
1080
  ],
1170
1081
  "args": {},
1171
1082
  "deprecateAliases": true,
1172
- "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.",
1083
+ "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.",
1173
1084
  "examples": [
1174
- "Check the status using a job ID:\n<%= config.bin %> <%= command.id %> --job-id 0Af0x000017yLUFCA2",
1175
- "Check the status of the most recent deploy operation:\n<%= config.bin %> <%= command.id %> --use-most-recent",
1176
- "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"
1085
+ "Cancel a deploy operation using a job ID:\n<%= config.bin %> <%= command.id %> --job-id 0Af0x000017yLUFCA2",
1086
+ "Cancel the most recent deploy operation:\n<%= config.bin %> <%= command.id %> --use-most-recent"
1177
1087
  ],
1178
1088
  "flags": {
1179
1089
  "json": {
@@ -1200,124 +1110,219 @@
1200
1110
  "multiple": false,
1201
1111
  "type": "option"
1202
1112
  },
1113
+ "async": {
1114
+ "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\".",
1115
+ "exclusive": [
1116
+ "wait"
1117
+ ],
1118
+ "name": "async",
1119
+ "summary": "Run the command asynchronously.",
1120
+ "allowNo": false,
1121
+ "type": "boolean"
1122
+ },
1203
1123
  "job-id": {
1204
1124
  "char": "i",
1205
1125
  "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.",
1206
1126
  "name": "job-id",
1207
- "summary": "Job ID of the deploy operation you want to check the status of.",
1127
+ "summary": "Job ID of the deploy operation you want to cancel.",
1208
1128
  "hasDynamicHelp": false,
1209
1129
  "multiple": false,
1210
1130
  "type": "option"
1211
1131
  },
1212
1132
  "use-most-recent": {
1213
1133
  "char": "r",
1214
- "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.",
1134
+ "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.",
1215
1135
  "name": "use-most-recent",
1216
1136
  "summary": "Use the job ID of the most recent deploy operation.",
1217
1137
  "allowNo": false,
1218
1138
  "type": "boolean"
1219
1139
  },
1220
- "coverage-formatters": {
1221
- "description": "For multiple formatters, repeat the flag for each formatter.\n--coverage-formatters lcov --coverage-formatters clover",
1222
- "helpGroup": "Test",
1223
- "name": "coverage-formatters",
1224
- "summary": "Format of the code coverage results.",
1225
- "hasDynamicHelp": false,
1226
- "multiple": true,
1227
- "options": [
1228
- "clover",
1229
- "cobertura",
1230
- "html-spa",
1231
- "html",
1232
- "json",
1233
- "json-summary",
1234
- "lcovonly",
1235
- "none",
1236
- "teamcity",
1237
- "text",
1238
- "text-summary"
1140
+ "wait": {
1141
+ "char": "w",
1142
+ "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\".",
1143
+ "exclusive": [
1144
+ "async"
1239
1145
  ],
1146
+ "name": "wait",
1147
+ "summary": "Number of minutes to wait for the command to complete and display results.",
1148
+ "hasDynamicHelp": true,
1149
+ "helpValue": "<minutes>",
1150
+ "multiple": false,
1151
+ "type": "option"
1152
+ }
1153
+ },
1154
+ "hasDynamicHelp": true,
1155
+ "hiddenAliases": [],
1156
+ "id": "project:deploy:cancel",
1157
+ "pluginAlias": "@salesforce/plugin-deploy-retrieve",
1158
+ "pluginName": "@salesforce/plugin-deploy-retrieve",
1159
+ "pluginType": "core",
1160
+ "strict": true,
1161
+ "summary": "Cancel a deploy operation.",
1162
+ "enableJsonFlag": true,
1163
+ "isESM": true,
1164
+ "relativePath": [
1165
+ "lib",
1166
+ "commands",
1167
+ "project",
1168
+ "deploy",
1169
+ "cancel.js"
1170
+ ],
1171
+ "aliasPermutations": [
1172
+ "deploy:metadata:cancel",
1173
+ "metadata:deploy:cancel",
1174
+ "metadata:cancel:deploy",
1175
+ "deploy:cancel:metadata",
1176
+ "cancel:deploy:metadata",
1177
+ "cancel:metadata:deploy"
1178
+ ],
1179
+ "permutations": [
1180
+ "project:deploy:cancel",
1181
+ "deploy:project:cancel",
1182
+ "deploy:cancel:project",
1183
+ "project:cancel:deploy",
1184
+ "cancel:project:deploy",
1185
+ "cancel:deploy:project"
1186
+ ]
1187
+ },
1188
+ "project:deploy:preview": {
1189
+ "aliases": [
1190
+ "deploy:metadata:preview"
1191
+ ],
1192
+ "args": {},
1193
+ "deprecateAliases": true,
1194
+ "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 --source-dir.",
1195
+ "examples": [
1196
+ "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.",
1197
+ "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",
1198
+ "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",
1199
+ "Preview deployment of a specific Apex class:\n<%= config.bin %> <%= command.id %> --metadata ApexClass:MyApexClass",
1200
+ "Preview deployment of all components listed in a manifest:\n<%= config.bin %> <%= command.id %> --manifest path/to/package.xml"
1201
+ ],
1202
+ "flags": {
1203
+ "json": {
1204
+ "description": "Format output as json.",
1205
+ "helpGroup": "GLOBAL",
1206
+ "name": "json",
1207
+ "allowNo": false,
1208
+ "type": "boolean"
1209
+ },
1210
+ "flags-dir": {
1211
+ "helpGroup": "GLOBAL",
1212
+ "name": "flags-dir",
1213
+ "summary": "Import flag values from a directory.",
1214
+ "hasDynamicHelp": false,
1215
+ "multiple": false,
1240
1216
  "type": "option"
1241
1217
  },
1242
- "junit": {
1243
- "helpGroup": "Test",
1244
- "name": "junit",
1245
- "summary": "Output JUnit test results.",
1218
+ "ignore-conflicts": {
1219
+ "char": "c",
1220
+ "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.",
1221
+ "name": "ignore-conflicts",
1222
+ "summary": "Don't display conflicts in preview of the deployment.",
1246
1223
  "allowNo": false,
1247
1224
  "type": "boolean"
1248
1225
  },
1249
- "results-dir": {
1250
- "helpGroup": "Test",
1251
- "name": "results-dir",
1252
- "relationships": [
1253
- {
1254
- "type": "some",
1255
- "flags": [
1256
- "coverage-formatters",
1257
- "junit"
1258
- ]
1259
- }
1226
+ "manifest": {
1227
+ "char": "x",
1228
+ "description": "All child components are included. If you specify this flag, don’t specify --metadata or --source-dir.",
1229
+ "exclusive": [
1230
+ "source-dir",
1231
+ "metadata"
1260
1232
  ],
1261
- "summary": "Output directory for code coverage and JUnit results; defaults to the deploy ID.",
1233
+ "name": "manifest",
1234
+ "summary": "Full file path for manifest (package.xml) of components to preview.",
1262
1235
  "hasDynamicHelp": false,
1263
1236
  "multiple": false,
1264
1237
  "type": "option"
1265
1238
  },
1266
- "wait": {
1267
- "char": "w",
1268
- "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\".",
1269
- "name": "wait",
1270
- "summary": "Number of minutes to wait for command to complete and display results.",
1239
+ "metadata": {
1240
+ "char": "m",
1241
+ "exclusive": [
1242
+ "manifest",
1243
+ "source-dir"
1244
+ ],
1245
+ "name": "metadata",
1246
+ "summary": "Metadata component names to preview.",
1247
+ "hasDynamicHelp": false,
1248
+ "multiple": true,
1249
+ "type": "option"
1250
+ },
1251
+ "source-dir": {
1252
+ "char": "d",
1253
+ "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.",
1254
+ "exclusive": [
1255
+ "manifest",
1256
+ "metadata"
1257
+ ],
1258
+ "name": "source-dir",
1259
+ "summary": "Path to the local source files to preview.",
1260
+ "hasDynamicHelp": false,
1261
+ "multiple": true,
1262
+ "type": "option"
1263
+ },
1264
+ "target-org": {
1265
+ "char": "o",
1266
+ "name": "target-org",
1267
+ "noCacheDefault": true,
1268
+ "required": true,
1269
+ "summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
1271
1270
  "hasDynamicHelp": true,
1272
- "helpValue": "<minutes>",
1273
1271
  "multiple": false,
1274
1272
  "type": "option"
1273
+ },
1274
+ "concise": {
1275
+ "name": "concise",
1276
+ "summary": "Show only the changes that will be deployed; omits files that are forceignored.",
1277
+ "allowNo": false,
1278
+ "type": "boolean"
1275
1279
  }
1276
1280
  },
1277
1281
  "hasDynamicHelp": true,
1278
1282
  "hiddenAliases": [],
1279
- "id": "project:deploy:report",
1283
+ "id": "project:deploy:preview",
1280
1284
  "pluginAlias": "@salesforce/plugin-deploy-retrieve",
1281
1285
  "pluginName": "@salesforce/plugin-deploy-retrieve",
1282
1286
  "pluginType": "core",
1283
1287
  "strict": true,
1284
- "summary": "Check or poll for the status of a deploy operation.",
1288
+ "summary": "Preview a deployment to see what will deploy to the org, the potential conflicts, and the ignored files.",
1285
1289
  "enableJsonFlag": true,
1290
+ "requiresProject": true,
1286
1291
  "isESM": true,
1287
1292
  "relativePath": [
1288
1293
  "lib",
1289
1294
  "commands",
1290
1295
  "project",
1291
1296
  "deploy",
1292
- "report.js"
1297
+ "preview.js"
1293
1298
  ],
1294
1299
  "aliasPermutations": [
1295
- "deploy:metadata:report",
1296
- "metadata:deploy:report",
1297
- "metadata:report:deploy",
1298
- "deploy:report:metadata",
1299
- "report:deploy:metadata",
1300
- "report:metadata:deploy"
1300
+ "deploy:metadata:preview",
1301
+ "metadata:deploy:preview",
1302
+ "metadata:preview:deploy",
1303
+ "deploy:preview:metadata",
1304
+ "preview:deploy:metadata",
1305
+ "preview:metadata:deploy"
1301
1306
  ],
1302
1307
  "permutations": [
1303
- "project:deploy:report",
1304
- "deploy:project:report",
1305
- "deploy:report:project",
1306
- "project:report:deploy",
1307
- "report:project:deploy",
1308
- "report:deploy:project"
1308
+ "project:deploy:preview",
1309
+ "deploy:project:preview",
1310
+ "deploy:preview:project",
1311
+ "project:preview:deploy",
1312
+ "preview:project:deploy",
1313
+ "preview:deploy:project"
1309
1314
  ]
1310
1315
  },
1311
- "project:deploy:resume": {
1316
+ "project:deploy:quick": {
1312
1317
  "aliases": [
1313
- "deploy:metadata:resume"
1318
+ "deploy:metadata:quick"
1314
1319
  ],
1315
1320
  "args": {},
1316
1321
  "deprecateAliases": true,
1317
- "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.",
1322
+ "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 \"<%= config.bin %> project deploy start\" instead.",
1318
1323
  "examples": [
1319
- "Resume watching a deploy operation using a job ID:\n<%= config.bin %> <%= command.id %> --job-id 0Af0x000017yLUFCA2",
1320
- "Resume watching the most recent deploy operation:\n<%= config.bin %> <%= command.id %> --use-most-recent"
1324
+ "Run a quick deploy to your default org using a job ID:\n<%= config.bin %> <%= command.id %> --job-id 0Af0x000017yLUFCA2",
1325
+ "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"
1321
1326
  ],
1322
1327
  "flags": {
1323
1328
  "json": {
@@ -1335,29 +1340,48 @@
1335
1340
  "multiple": false,
1336
1341
  "type": "option"
1337
1342
  },
1343
+ "async": {
1344
+ "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\".",
1345
+ "exclusive": [
1346
+ "wait"
1347
+ ],
1348
+ "name": "async",
1349
+ "summary": "Run the command asynchronously.",
1350
+ "allowNo": false,
1351
+ "type": "boolean"
1352
+ },
1338
1353
  "concise": {
1339
1354
  "exclusive": [
1340
1355
  "verbose"
1341
1356
  ],
1342
1357
  "name": "concise",
1343
- "summary": "Show concise output of the deploy operation result.",
1358
+ "summary": "Show concise output of the deploy result.",
1344
1359
  "allowNo": false,
1345
1360
  "type": "boolean"
1346
1361
  },
1347
1362
  "job-id": {
1348
1363
  "char": "i",
1349
- "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.",
1364
+ "description": "The job ID is valid for 10 days from when you started the validation.",
1350
1365
  "name": "job-id",
1351
- "summary": "Job ID of the deploy operation you want to resume.",
1366
+ "summary": "Job ID of the deployment you want to quick deploy.",
1352
1367
  "hasDynamicHelp": false,
1353
1368
  "multiple": false,
1354
1369
  "type": "option"
1355
1370
  },
1371
+ "target-org": {
1372
+ "char": "o",
1373
+ "name": "target-org",
1374
+ "noCacheDefault": true,
1375
+ "summary": "Username or alias of the target org.",
1376
+ "hasDynamicHelp": true,
1377
+ "multiple": false,
1378
+ "type": "option"
1379
+ },
1356
1380
  "use-most-recent": {
1357
1381
  "char": "r",
1358
- "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.",
1382
+ "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.",
1359
1383
  "name": "use-most-recent",
1360
- "summary": "Use the job ID of the most recent deploy operation.",
1384
+ "summary": "Use the job ID of the most recently validated deployment.",
1361
1385
  "allowNo": false,
1362
1386
  "type": "boolean"
1363
1387
  },
@@ -1366,62 +1390,29 @@
1366
1390
  "concise"
1367
1391
  ],
1368
1392
  "name": "verbose",
1369
- "summary": "Show verbose output of the deploy operation result.",
1393
+ "summary": "Show verbose output of the deploy result.",
1370
1394
  "allowNo": false,
1371
1395
  "type": "boolean"
1372
1396
  },
1373
1397
  "wait": {
1374
1398
  "char": "w",
1375
- "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\".",
1399
+ "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\".",
1400
+ "exclusive": [
1401
+ "async"
1402
+ ],
1376
1403
  "name": "wait",
1377
1404
  "summary": "Number of minutes to wait for the command to complete and display results.",
1405
+ "default": "33 minutes",
1378
1406
  "hasDynamicHelp": true,
1379
1407
  "helpValue": "<minutes>",
1380
1408
  "multiple": false,
1381
1409
  "type": "option"
1382
1410
  },
1383
- "coverage-formatters": {
1384
- "description": "For multiple formatters, repeat the flag for each formatter.\n--coverage-formatters lcov --coverage-formatters clover",
1385
- "helpGroup": "Test",
1386
- "name": "coverage-formatters",
1387
- "summary": "Format of the code coverage results.",
1388
- "hasDynamicHelp": false,
1389
- "multiple": true,
1390
- "options": [
1391
- "clover",
1392
- "cobertura",
1393
- "html-spa",
1394
- "html",
1395
- "json",
1396
- "json-summary",
1397
- "lcovonly",
1398
- "none",
1399
- "teamcity",
1400
- "text",
1401
- "text-summary"
1402
- ],
1403
- "type": "option"
1404
- },
1405
- "junit": {
1406
- "helpGroup": "Test",
1407
- "name": "junit",
1408
- "summary": "Output JUnit test results.",
1409
- "allowNo": false,
1410
- "type": "boolean"
1411
- },
1412
- "results-dir": {
1413
- "helpGroup": "Test",
1414
- "name": "results-dir",
1415
- "relationships": [
1416
- {
1417
- "type": "some",
1418
- "flags": [
1419
- "coverage-formatters",
1420
- "junit"
1421
- ]
1422
- }
1423
- ],
1424
- "summary": "Output directory for code coverage and JUnit results; defaults to the deploy ID.",
1411
+ "api-version": {
1412
+ "char": "a",
1413
+ "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.",
1414
+ "name": "api-version",
1415
+ "summary": "Target API version for the deploy.",
1425
1416
  "hasDynamicHelp": false,
1426
1417
  "multiple": false,
1427
1418
  "type": "option"
@@ -1429,22 +1420,13 @@
1429
1420
  },
1430
1421
  "hasDynamicHelp": true,
1431
1422
  "hiddenAliases": [],
1432
- "id": "project:deploy:resume",
1423
+ "id": "project:deploy:quick",
1433
1424
  "pluginAlias": "@salesforce/plugin-deploy-retrieve",
1434
1425
  "pluginName": "@salesforce/plugin-deploy-retrieve",
1435
1426
  "pluginType": "core",
1436
1427
  "strict": true,
1437
- "summary": "Resume watching a deploy operation and update source tracking when the deploy completes.",
1428
+ "summary": "Quickly deploy a validated deployment to an org.",
1438
1429
  "enableJsonFlag": true,
1439
- "envVariablesSection": {
1440
- "header": "ENVIRONMENT VARIABLES",
1441
- "body": [
1442
- {
1443
- "name": "SF_USE_PROGRESS_BAR",
1444
- "description": "Set to false to disable the progress bar when running the metadata deploy command."
1445
- }
1446
- ]
1447
- },
1448
1430
  "errorCodes": {
1449
1431
  "header": "ERROR CODES",
1450
1432
  "body": [
@@ -1484,47 +1466,36 @@
1484
1466
  "commands",
1485
1467
  "project",
1486
1468
  "deploy",
1487
- "resume.js"
1469
+ "quick.js"
1488
1470
  ],
1489
1471
  "aliasPermutations": [
1490
- "deploy:metadata:resume",
1491
- "metadata:deploy:resume",
1492
- "metadata:resume:deploy",
1493
- "deploy:resume:metadata",
1494
- "resume:deploy:metadata",
1495
- "resume:metadata:deploy"
1472
+ "deploy:metadata:quick",
1473
+ "metadata:deploy:quick",
1474
+ "metadata:quick:deploy",
1475
+ "deploy:quick:metadata",
1476
+ "quick:deploy:metadata",
1477
+ "quick:metadata:deploy"
1496
1478
  ],
1497
1479
  "permutations": [
1498
- "project:deploy:resume",
1499
- "deploy:project:resume",
1500
- "deploy:resume:project",
1501
- "project:resume:deploy",
1502
- "resume:project:deploy",
1503
- "resume:deploy:project"
1480
+ "project:deploy:quick",
1481
+ "deploy:project:quick",
1482
+ "deploy:quick:project",
1483
+ "project:quick:deploy",
1484
+ "quick:project:deploy",
1485
+ "quick:deploy:project"
1504
1486
  ]
1505
1487
  },
1506
- "project:deploy:start": {
1488
+ "project:deploy:report": {
1507
1489
  "aliases": [
1508
- "deploy:metadata"
1490
+ "deploy:metadata:report"
1509
1491
  ],
1510
1492
  "args": {},
1511
1493
  "deprecateAliases": true,
1512
- "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 --source-dir.",
1494
+ "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.",
1513
1495
  "examples": [
1514
- "Deploy local changes not in the org; uses your default org:\n<%= config.bin %> <%= command.id %>",
1515
- "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",
1516
- "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",
1517
- "Deploy all Apex classes that are in all package directories defined in the \"sfdx-project.json\" file:\n<%= config.bin %> <%= command.id %> --metadata ApexClass",
1518
- "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",
1519
- "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",
1520
- "Deploy a custom object called ExcitingObject that's in the SBQQ namespace:\nsf <%= command.id %> --metadata CustomObject:SBQQ__ExcitingObject",
1521
- "Deploy all custom objects in the SBQQ namespace by using a wildcard and quotes:\nsf <%= command.id %> --metadata 'CustomObject:SBQQ__*'",
1522
- "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",
1523
- "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\"",
1524
- "Deploy all components listed in a manifest:\n<%= config.bin %> <%= command.id %> --manifest path/to/package.xml",
1525
- "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",
1526
- "Deploy all metadata formatted files in the \"MDAPI\" directory:\n<%= config.bin %> <%= command.id %> --metadata-dir MDAPI",
1527
- "Deploy all metadata formatted files in the \"MDAPI\" directory; items listed in the MDAPI/destructiveChangesPre.xml and MDAPI/destructiveChangesPost.xml manifests are immediately eligible for deletion rather than stored in the Recycle Bin:\n<%= config.bin %> <%= command.id %> --metadata-dir MDAPI --purge-on-delete"
1496
+ "Check the status using a job ID:\n<%= config.bin %> <%= command.id %> --job-id 0Af0x000017yLUFCA2",
1497
+ "Check the status of the most recent deploy operation:\n<%= config.bin %> <%= command.id %> --use-most-recent",
1498
+ "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"
1528
1499
  ],
1529
1500
  "flags": {
1530
1501
  "json": {
@@ -1542,229 +1513,195 @@
1542
1513
  "multiple": false,
1543
1514
  "type": "option"
1544
1515
  },
1545
- "api-version": {
1546
- "char": "a",
1547
- "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.",
1548
- "name": "api-version",
1549
- "summary": "Target API version for the deploy.",
1550
- "hasDynamicHelp": false,
1516
+ "target-org": {
1517
+ "char": "o",
1518
+ "name": "target-org",
1519
+ "noCacheDefault": true,
1520
+ "summary": "Username or alias of the target org.",
1521
+ "hasDynamicHelp": true,
1551
1522
  "multiple": false,
1552
1523
  "type": "option"
1553
1524
  },
1554
- "async": {
1555
- "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\".",
1556
- "exclusive": [
1557
- "wait"
1558
- ],
1559
- "name": "async",
1560
- "summary": "Run the command asynchronously.",
1561
- "allowNo": false,
1562
- "type": "boolean"
1563
- },
1564
- "concise": {
1565
- "exclusive": [
1566
- "verbose"
1567
- ],
1568
- "name": "concise",
1569
- "summary": "Show concise output of the deploy result.",
1570
- "allowNo": false,
1571
- "type": "boolean"
1572
- },
1573
- "dry-run": {
1574
- "name": "dry-run",
1575
- "summary": "Validate deploy and run Apex tests but don’t save to the org.",
1576
- "allowNo": false,
1577
- "type": "boolean"
1578
- },
1579
- "ignore-conflicts": {
1580
- "char": "c",
1581
- "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.",
1582
- "name": "ignore-conflicts",
1583
- "summary": "Ignore conflicts and deploy local files, even if they overwrite changes in the org.",
1584
- "allowNo": false,
1585
- "type": "boolean"
1525
+ "job-id": {
1526
+ "char": "i",
1527
+ "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.",
1528
+ "name": "job-id",
1529
+ "summary": "Job ID of the deploy operation you want to check the status of.",
1530
+ "hasDynamicHelp": false,
1531
+ "multiple": false,
1532
+ "type": "option"
1586
1533
  },
1587
- "ignore-errors": {
1534
+ "use-most-recent": {
1588
1535
  "char": "r",
1589
- "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.",
1590
- "name": "ignore-errors",
1591
- "summary": "Ignore any errors and don’t roll back deployment.",
1592
- "allowNo": false,
1593
- "type": "boolean"
1594
- },
1595
- "ignore-warnings": {
1596
- "char": "g",
1597
- "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.",
1598
- "name": "ignore-warnings",
1599
- "summary": "Ignore warnings and allow a deployment to complete successfully.",
1536
+ "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.",
1537
+ "name": "use-most-recent",
1538
+ "summary": "Use the job ID of the most recent deploy operation.",
1600
1539
  "allowNo": false,
1601
1540
  "type": "boolean"
1602
1541
  },
1603
- "manifest": {
1604
- "char": "x",
1605
- "description": "All child components are included. If you specify this flag, don’t specify --metadata or --source-dir.",
1606
- "exclusive": [
1607
- "source-dir",
1608
- "metadata",
1609
- "metadata-dir"
1610
- ],
1611
- "helpGroup": "Source Format",
1612
- "name": "manifest",
1613
- "summary": "Full file path for manifest (package.xml) of components to deploy.",
1614
- "hasDynamicHelp": false,
1615
- "multiple": false,
1616
- "type": "option"
1617
- },
1618
- "metadata": {
1619
- "char": "m",
1620
- "exclusive": [
1621
- "manifest",
1622
- "source-dir",
1623
- "metadata-dir"
1624
- ],
1625
- "helpGroup": "Source Format",
1626
- "name": "metadata",
1627
- "summary": "Metadata component names to deploy. Wildcards (`*` ) supported as long as you use quotes, such as `ApexClass:MyClass*`.",
1542
+ "coverage-formatters": {
1543
+ "description": "For multiple formatters, repeat the flag for each formatter.\n--coverage-formatters lcov --coverage-formatters clover",
1544
+ "helpGroup": "Test",
1545
+ "name": "coverage-formatters",
1546
+ "summary": "Format of the code coverage results.",
1628
1547
  "hasDynamicHelp": false,
1629
1548
  "multiple": true,
1630
- "type": "option"
1631
- },
1632
- "metadata-dir": {
1633
- "exclusive": [
1634
- "manifest",
1635
- "source-dir",
1636
- "metadata"
1549
+ "options": [
1550
+ "clover",
1551
+ "cobertura",
1552
+ "html-spa",
1553
+ "html",
1554
+ "json",
1555
+ "json-summary",
1556
+ "lcovonly",
1557
+ "none",
1558
+ "teamcity",
1559
+ "text",
1560
+ "text-summary"
1637
1561
  ],
1638
- "helpGroup": "Metadata API Format",
1639
- "name": "metadata-dir",
1640
- "summary": "Root of directory or zip file of metadata formatted files to deploy.",
1641
- "hasDynamicHelp": false,
1642
- "multiple": false,
1643
1562
  "type": "option"
1644
1563
  },
1645
- "single-package": {
1646
- "dependsOn": [
1647
- "metadata-dir"
1648
- ],
1649
- "helpGroup": "Metadata API Format",
1650
- "name": "single-package",
1651
- "summary": "Indicates that the metadata zip file points to a directory structure for a single package.",
1564
+ "junit": {
1565
+ "helpGroup": "Test",
1566
+ "name": "junit",
1567
+ "summary": "Output JUnit test results.",
1652
1568
  "allowNo": false,
1653
1569
  "type": "boolean"
1654
1570
  },
1655
- "source-dir": {
1656
- "char": "d",
1657
- "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.",
1658
- "exclusive": [
1659
- "manifest",
1660
- "metadata",
1661
- "metadata-dir"
1571
+ "results-dir": {
1572
+ "helpGroup": "Test",
1573
+ "name": "results-dir",
1574
+ "relationships": [
1575
+ {
1576
+ "type": "some",
1577
+ "flags": [
1578
+ "coverage-formatters",
1579
+ "junit"
1580
+ ]
1581
+ }
1662
1582
  ],
1663
- "helpGroup": "Source Format",
1664
- "name": "source-dir",
1665
- "summary": "Path to the local source files to deploy.",
1583
+ "summary": "Output directory for code coverage and JUnit results; defaults to the deploy ID.",
1666
1584
  "hasDynamicHelp": false,
1667
- "multiple": true,
1585
+ "multiple": false,
1668
1586
  "type": "option"
1669
1587
  },
1670
- "target-org": {
1671
- "char": "o",
1672
- "name": "target-org",
1673
- "noCacheDefault": true,
1674
- "required": true,
1675
- "summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
1588
+ "wait": {
1589
+ "char": "w",
1590
+ "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\".",
1591
+ "name": "wait",
1592
+ "summary": "Number of minutes to wait for command to complete and display results.",
1676
1593
  "hasDynamicHelp": true,
1594
+ "helpValue": "<minutes>",
1677
1595
  "multiple": false,
1678
1596
  "type": "option"
1597
+ }
1598
+ },
1599
+ "hasDynamicHelp": true,
1600
+ "hiddenAliases": [],
1601
+ "id": "project:deploy:report",
1602
+ "pluginAlias": "@salesforce/plugin-deploy-retrieve",
1603
+ "pluginName": "@salesforce/plugin-deploy-retrieve",
1604
+ "pluginType": "core",
1605
+ "strict": true,
1606
+ "summary": "Check or poll for the status of a deploy operation.",
1607
+ "enableJsonFlag": true,
1608
+ "isESM": true,
1609
+ "relativePath": [
1610
+ "lib",
1611
+ "commands",
1612
+ "project",
1613
+ "deploy",
1614
+ "report.js"
1615
+ ],
1616
+ "aliasPermutations": [
1617
+ "deploy:metadata:report",
1618
+ "metadata:deploy:report",
1619
+ "metadata:report:deploy",
1620
+ "deploy:report:metadata",
1621
+ "report:deploy:metadata",
1622
+ "report:metadata:deploy"
1623
+ ],
1624
+ "permutations": [
1625
+ "project:deploy:report",
1626
+ "deploy:project:report",
1627
+ "deploy:report:project",
1628
+ "project:report:deploy",
1629
+ "report:project:deploy",
1630
+ "report:deploy:project"
1631
+ ]
1632
+ },
1633
+ "project:deploy:resume": {
1634
+ "aliases": [
1635
+ "deploy:metadata:resume"
1636
+ ],
1637
+ "args": {},
1638
+ "deprecateAliases": true,
1639
+ "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.",
1640
+ "examples": [
1641
+ "Resume watching a deploy operation using a job ID:\n<%= config.bin %> <%= command.id %> --job-id 0Af0x000017yLUFCA2",
1642
+ "Resume watching the most recent deploy operation:\n<%= config.bin %> <%= command.id %> --use-most-recent"
1643
+ ],
1644
+ "flags": {
1645
+ "json": {
1646
+ "description": "Format output as json.",
1647
+ "helpGroup": "GLOBAL",
1648
+ "name": "json",
1649
+ "allowNo": false,
1650
+ "type": "boolean"
1679
1651
  },
1680
- "tests": {
1681
- "char": "t",
1682
- "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\"",
1683
- "helpGroup": "Test",
1684
- "name": "tests",
1685
- "summary": "Apex tests to run when --test-level is RunSpecifiedTests.",
1652
+ "flags-dir": {
1653
+ "helpGroup": "GLOBAL",
1654
+ "name": "flags-dir",
1655
+ "summary": "Import flag values from a directory.",
1686
1656
  "hasDynamicHelp": false,
1687
- "multiple": true,
1657
+ "multiple": false,
1688
1658
  "type": "option"
1689
1659
  },
1690
- "test-level": {
1691
- "char": "l",
1692
- "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\".",
1693
- "helpGroup": "Test",
1694
- "name": "test-level",
1695
- "summary": "Deployment Apex testing level.",
1660
+ "concise": {
1661
+ "exclusive": [
1662
+ "verbose"
1663
+ ],
1664
+ "name": "concise",
1665
+ "summary": "Show concise output of the deploy operation result.",
1666
+ "allowNo": false,
1667
+ "type": "boolean"
1668
+ },
1669
+ "job-id": {
1670
+ "char": "i",
1671
+ "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.",
1672
+ "name": "job-id",
1673
+ "summary": "Job ID of the deploy operation you want to resume.",
1696
1674
  "hasDynamicHelp": false,
1697
1675
  "multiple": false,
1698
- "options": [
1699
- "NoTestRun",
1700
- "RunSpecifiedTests",
1701
- "RunLocalTests",
1702
- "RunAllTestsInOrg"
1703
- ],
1704
1676
  "type": "option"
1705
1677
  },
1678
+ "use-most-recent": {
1679
+ "char": "r",
1680
+ "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.",
1681
+ "name": "use-most-recent",
1682
+ "summary": "Use the job ID of the most recent deploy operation.",
1683
+ "allowNo": false,
1684
+ "type": "boolean"
1685
+ },
1706
1686
  "verbose": {
1707
1687
  "exclusive": [
1708
1688
  "concise"
1709
1689
  ],
1710
1690
  "name": "verbose",
1711
- "summary": "Show verbose output of the deploy result.",
1691
+ "summary": "Show verbose output of the deploy operation result.",
1712
1692
  "allowNo": false,
1713
1693
  "type": "boolean"
1714
1694
  },
1715
1695
  "wait": {
1716
1696
  "char": "w",
1717
- "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\".",
1718
- "exclusive": [
1719
- "async"
1720
- ],
1697
+ "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\".",
1721
1698
  "name": "wait",
1722
- "summary": "Number of minutes to wait for command to complete and display results.",
1699
+ "summary": "Number of minutes to wait for the command to complete and display results.",
1723
1700
  "hasDynamicHelp": true,
1724
1701
  "helpValue": "<minutes>",
1725
1702
  "multiple": false,
1726
1703
  "type": "option"
1727
1704
  },
1728
- "purge-on-delete": {
1729
- "helpGroup": "Delete",
1730
- "name": "purge-on-delete",
1731
- "relationships": [
1732
- {
1733
- "type": "some",
1734
- "flags": [
1735
- "pre-destructive-changes",
1736
- "manifest",
1737
- "metadata-dir",
1738
- "post-destructive-changes"
1739
- ]
1740
- }
1741
- ],
1742
- "summary": "Specify that deleted components in the destructive changes manifest file are immediately eligible for deletion rather than being stored in the Recycle Bin.",
1743
- "allowNo": false,
1744
- "type": "boolean"
1745
- },
1746
- "pre-destructive-changes": {
1747
- "dependsOn": [
1748
- "manifest"
1749
- ],
1750
- "helpGroup": "Delete",
1751
- "name": "pre-destructive-changes",
1752
- "summary": "File path for a manifest (destructiveChangesPre.xml) of components to delete before the deploy.",
1753
- "hasDynamicHelp": false,
1754
- "multiple": false,
1755
- "type": "option"
1756
- },
1757
- "post-destructive-changes": {
1758
- "dependsOn": [
1759
- "manifest"
1760
- ],
1761
- "helpGroup": "Delete",
1762
- "name": "post-destructive-changes",
1763
- "summary": "File path for a manifest (destructiveChangesPost.xml) of components to delete after the deploy.",
1764
- "hasDynamicHelp": false,
1765
- "multiple": false,
1766
- "type": "option"
1767
- },
1768
1705
  "coverage-formatters": {
1769
1706
  "description": "For multiple formatters, repeat the flag for each formatter.\n--coverage-formatters lcov --coverage-formatters clover",
1770
1707
  "helpGroup": "Test",
@@ -1814,33 +1751,16 @@
1814
1751
  },
1815
1752
  "hasDynamicHelp": true,
1816
1753
  "hiddenAliases": [],
1817
- "id": "project:deploy:start",
1754
+ "id": "project:deploy:resume",
1818
1755
  "pluginAlias": "@salesforce/plugin-deploy-retrieve",
1819
1756
  "pluginName": "@salesforce/plugin-deploy-retrieve",
1820
1757
  "pluginType": "core",
1821
1758
  "strict": true,
1822
- "summary": "Deploy metadata to an org from your local project.",
1759
+ "summary": "Resume watching a deploy operation and update source tracking when the deploy completes.",
1823
1760
  "enableJsonFlag": true,
1824
- "configurationVariablesSection": {
1825
- "header": "CONFIGURATION VARIABLES",
1826
- "body": [
1827
- {
1828
- "name": "target-org",
1829
- "description": "Username or alias of the org that all commands run against by default. (sf only)"
1830
- },
1831
- {
1832
- "name": "org-api-version",
1833
- "description": "API version of your project. Default: API version of your Dev Hub org."
1834
- }
1835
- ]
1836
- },
1837
1761
  "envVariablesSection": {
1838
1762
  "header": "ENVIRONMENT VARIABLES",
1839
1763
  "body": [
1840
- {
1841
- "name": "SF_TARGET_ORG",
1842
- "description": "Username or alias of your default org. Overrides the target-org configuration variable."
1843
- },
1844
1764
  {
1845
1765
  "name": "SF_USE_PROGRESS_BAR",
1846
1766
  "description": "Set to false to disable the progress bar when running the metadata deploy command."
@@ -1886,34 +1806,47 @@
1886
1806
  "commands",
1887
1807
  "project",
1888
1808
  "deploy",
1889
- "start.js"
1809
+ "resume.js"
1890
1810
  ],
1891
1811
  "aliasPermutations": [
1892
- "deploy:metadata",
1893
- "metadata:deploy"
1812
+ "deploy:metadata:resume",
1813
+ "metadata:deploy:resume",
1814
+ "metadata:resume:deploy",
1815
+ "deploy:resume:metadata",
1816
+ "resume:deploy:metadata",
1817
+ "resume:metadata:deploy"
1894
1818
  ],
1895
1819
  "permutations": [
1896
- "project:deploy:start",
1897
- "deploy:project:start",
1898
- "deploy:start:project",
1899
- "project:start:deploy",
1900
- "start:project:deploy",
1901
- "start:deploy:project"
1820
+ "project:deploy:resume",
1821
+ "deploy:project:resume",
1822
+ "deploy:resume:project",
1823
+ "project:resume:deploy",
1824
+ "resume:project:deploy",
1825
+ "resume:deploy:project"
1902
1826
  ]
1903
1827
  },
1904
- "project:deploy:validate": {
1828
+ "project:deploy:start": {
1905
1829
  "aliases": [
1906
- "deploy:metadata:validate"
1830
+ "deploy:metadata"
1907
1831
  ],
1908
1832
  "args": {},
1909
1833
  "deprecateAliases": true,
1910
- "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 --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 \"<%= config.bin %> project deploy start --dry-run --test-level RunLocalTests\" instead.",
1834
+ "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 --source-dir.",
1911
1835
  "examples": [
1912
- "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.",
1913
- "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",
1914
- "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",
1915
- "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",
1916
- "Validate the deployment of all components listed in a manifest:\n<%= config.bin %> <%= command.id %> --manifest path/to/package.xml"
1836
+ "Deploy local changes not in the org; uses your default org:\n<%= config.bin %> <%= command.id %>",
1837
+ "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",
1838
+ "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",
1839
+ "Deploy all Apex classes that are in all package directories defined in the \"sfdx-project.json\" file:\n<%= config.bin %> <%= command.id %> --metadata ApexClass",
1840
+ "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",
1841
+ "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",
1842
+ "Deploy a custom object called ExcitingObject that's in the SBQQ namespace:\nsf <%= command.id %> --metadata CustomObject:SBQQ__ExcitingObject",
1843
+ "Deploy all custom objects in the SBQQ namespace by using a wildcard and quotes:\nsf <%= command.id %> --metadata 'CustomObject:SBQQ__*'",
1844
+ "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",
1845
+ "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\"",
1846
+ "Deploy all components listed in a manifest:\n<%= config.bin %> <%= command.id %> --manifest path/to/package.xml",
1847
+ "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",
1848
+ "Deploy all metadata formatted files in the \"MDAPI\" directory:\n<%= config.bin %> <%= command.id %> --metadata-dir MDAPI",
1849
+ "Deploy all metadata formatted files in the \"MDAPI\" directory; items listed in the MDAPI/destructiveChangesPre.xml and MDAPI/destructiveChangesPost.xml manifests are immediately eligible for deletion rather than stored in the Recycle Bin:\n<%= config.bin %> <%= command.id %> --metadata-dir MDAPI --purge-on-delete"
1917
1850
  ],
1918
1851
  "flags": {
1919
1852
  "json": {
@@ -1935,13 +1868,16 @@
1935
1868
  "char": "a",
1936
1869
  "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.",
1937
1870
  "name": "api-version",
1938
- "summary": "Target API version for the validation.",
1871
+ "summary": "Target API version for the deploy.",
1939
1872
  "hasDynamicHelp": false,
1940
1873
  "multiple": false,
1941
1874
  "type": "option"
1942
1875
  },
1943
1876
  "async": {
1944
- "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\".",
1877
+ "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\".",
1878
+ "exclusive": [
1879
+ "wait"
1880
+ ],
1945
1881
  "name": "async",
1946
1882
  "summary": "Run the command asynchronously.",
1947
1883
  "allowNo": false,
@@ -1952,40 +1888,75 @@
1952
1888
  "verbose"
1953
1889
  ],
1954
1890
  "name": "concise",
1955
- "summary": "Show concise output of the validation result.",
1891
+ "summary": "Show concise output of the deploy result.",
1892
+ "allowNo": false,
1893
+ "type": "boolean"
1894
+ },
1895
+ "dry-run": {
1896
+ "name": "dry-run",
1897
+ "summary": "Validate deploy and run Apex tests but don’t save to the org.",
1898
+ "allowNo": false,
1899
+ "type": "boolean"
1900
+ },
1901
+ "ignore-conflicts": {
1902
+ "char": "c",
1903
+ "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.",
1904
+ "name": "ignore-conflicts",
1905
+ "summary": "Ignore conflicts and deploy local files, even if they overwrite changes in the org.",
1906
+ "allowNo": false,
1907
+ "type": "boolean"
1908
+ },
1909
+ "ignore-errors": {
1910
+ "char": "r",
1911
+ "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.",
1912
+ "name": "ignore-errors",
1913
+ "summary": "Ignore any errors and don’t roll back deployment.",
1914
+ "allowNo": false,
1915
+ "type": "boolean"
1916
+ },
1917
+ "ignore-warnings": {
1918
+ "char": "g",
1919
+ "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.",
1920
+ "name": "ignore-warnings",
1921
+ "summary": "Ignore warnings and allow a deployment to complete successfully.",
1956
1922
  "allowNo": false,
1957
1923
  "type": "boolean"
1958
1924
  },
1959
1925
  "manifest": {
1960
1926
  "char": "x",
1961
1927
  "description": "All child components are included. If you specify this flag, don’t specify --metadata or --source-dir.",
1928
+ "exclusive": [
1929
+ "source-dir",
1930
+ "metadata",
1931
+ "metadata-dir"
1932
+ ],
1962
1933
  "helpGroup": "Source Format",
1963
1934
  "name": "manifest",
1964
- "summary": "Full file path for manifest (package.xml) of components to validate for deployment.",
1935
+ "summary": "Full file path for manifest (package.xml) of components to deploy.",
1965
1936
  "hasDynamicHelp": false,
1966
1937
  "multiple": false,
1967
1938
  "type": "option"
1968
1939
  },
1969
1940
  "metadata": {
1970
1941
  "char": "m",
1942
+ "exclusive": [
1943
+ "manifest",
1944
+ "source-dir",
1945
+ "metadata-dir"
1946
+ ],
1971
1947
  "helpGroup": "Source Format",
1972
1948
  "name": "metadata",
1973
- "summary": "Metadata component names to validate for deployment.",
1974
- "hasDynamicHelp": false,
1975
- "multiple": true,
1976
- "type": "option"
1977
- },
1978
- "source-dir": {
1979
- "char": "d",
1980
- "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.",
1981
- "helpGroup": "Source Format",
1982
- "name": "source-dir",
1983
- "summary": "Path to the local source files to validate for deployment.",
1949
+ "summary": "Metadata component names to deploy. Wildcards (`*` ) supported as long as you use quotes, such as `ApexClass:MyClass*`.",
1984
1950
  "hasDynamicHelp": false,
1985
1951
  "multiple": true,
1986
1952
  "type": "option"
1987
1953
  },
1988
1954
  "metadata-dir": {
1955
+ "exclusive": [
1956
+ "manifest",
1957
+ "source-dir",
1958
+ "metadata"
1959
+ ],
1989
1960
  "helpGroup": "Metadata API Format",
1990
1961
  "name": "metadata-dir",
1991
1962
  "summary": "Root of directory or zip file of metadata formatted files to deploy.",
@@ -2003,6 +1974,21 @@
2003
1974
  "allowNo": false,
2004
1975
  "type": "boolean"
2005
1976
  },
1977
+ "source-dir": {
1978
+ "char": "d",
1979
+ "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.",
1980
+ "exclusive": [
1981
+ "manifest",
1982
+ "metadata",
1983
+ "metadata-dir"
1984
+ ],
1985
+ "helpGroup": "Source Format",
1986
+ "name": "source-dir",
1987
+ "summary": "Path to the local source files to deploy.",
1988
+ "hasDynamicHelp": false,
1989
+ "multiple": true,
1990
+ "type": "option"
1991
+ },
2006
1992
  "target-org": {
2007
1993
  "char": "o",
2008
1994
  "name": "target-org",
@@ -2025,17 +2011,17 @@
2025
2011
  },
2026
2012
  "test-level": {
2027
2013
  "char": "l",
2028
- "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.",
2014
+ "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\".",
2029
2015
  "helpGroup": "Test",
2030
2016
  "name": "test-level",
2031
2017
  "summary": "Deployment Apex testing level.",
2032
- "default": "RunLocalTests",
2033
2018
  "hasDynamicHelp": false,
2034
2019
  "multiple": false,
2035
2020
  "options": [
2036
- "RunAllTestsInOrg",
2021
+ "NoTestRun",
2022
+ "RunSpecifiedTests",
2037
2023
  "RunLocalTests",
2038
- "RunSpecifiedTests"
2024
+ "RunAllTestsInOrg"
2039
2025
  ],
2040
2026
  "type": "option"
2041
2027
  },
@@ -2044,28 +2030,63 @@
2044
2030
  "concise"
2045
2031
  ],
2046
2032
  "name": "verbose",
2047
- "summary": "Show verbose output of the validation result.",
2033
+ "summary": "Show verbose output of the deploy result.",
2048
2034
  "allowNo": false,
2049
2035
  "type": "boolean"
2050
2036
  },
2051
2037
  "wait": {
2052
2038
  "char": "w",
2053
- "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\".",
2039
+ "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\".",
2040
+ "exclusive": [
2041
+ "async"
2042
+ ],
2054
2043
  "name": "wait",
2055
- "summary": "Number of minutes to wait for the command to complete and display results.",
2044
+ "summary": "Number of minutes to wait for command to complete and display results.",
2056
2045
  "hasDynamicHelp": true,
2057
2046
  "helpValue": "<minutes>",
2058
2047
  "multiple": false,
2059
2048
  "type": "option"
2060
2049
  },
2061
- "ignore-warnings": {
2062
- "char": "g",
2063
- "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.",
2064
- "name": "ignore-warnings",
2065
- "summary": "Ignore warnings and allow a deployment to complete successfully.",
2050
+ "purge-on-delete": {
2051
+ "helpGroup": "Delete",
2052
+ "name": "purge-on-delete",
2053
+ "relationships": [
2054
+ {
2055
+ "type": "some",
2056
+ "flags": [
2057
+ "pre-destructive-changes",
2058
+ "manifest",
2059
+ "metadata-dir",
2060
+ "post-destructive-changes"
2061
+ ]
2062
+ }
2063
+ ],
2064
+ "summary": "Specify that deleted components in the destructive changes manifest file are immediately eligible for deletion rather than being stored in the Recycle Bin.",
2066
2065
  "allowNo": false,
2067
2066
  "type": "boolean"
2068
2067
  },
2068
+ "pre-destructive-changes": {
2069
+ "dependsOn": [
2070
+ "manifest"
2071
+ ],
2072
+ "helpGroup": "Delete",
2073
+ "name": "pre-destructive-changes",
2074
+ "summary": "File path for a manifest (destructiveChangesPre.xml) of components to delete before the deploy.",
2075
+ "hasDynamicHelp": false,
2076
+ "multiple": false,
2077
+ "type": "option"
2078
+ },
2079
+ "post-destructive-changes": {
2080
+ "dependsOn": [
2081
+ "manifest"
2082
+ ],
2083
+ "helpGroup": "Delete",
2084
+ "name": "post-destructive-changes",
2085
+ "summary": "File path for a manifest (destructiveChangesPost.xml) of components to delete after the deploy.",
2086
+ "hasDynamicHelp": false,
2087
+ "multiple": false,
2088
+ "type": "option"
2089
+ },
2069
2090
  "coverage-formatters": {
2070
2091
  "description": "For multiple formatters, repeat the flag for each formatter.\n--coverage-formatters lcov --coverage-formatters clover",
2071
2092
  "helpGroup": "Test",
@@ -2111,57 +2132,16 @@
2111
2132
  "hasDynamicHelp": false,
2112
2133
  "multiple": false,
2113
2134
  "type": "option"
2114
- },
2115
- "purge-on-delete": {
2116
- "dependsOn": [
2117
- "manifest"
2118
- ],
2119
- "helpGroup": "Delete",
2120
- "name": "purge-on-delete",
2121
- "relationships": [
2122
- {
2123
- "type": "some",
2124
- "flags": [
2125
- "pre-destructive-changes",
2126
- "post-destructive-changes"
2127
- ]
2128
- }
2129
- ],
2130
- "summary": "Specify that deleted components in the destructive changes manifest file are immediately eligible for deletion rather than being stored in the Recycle Bin.",
2131
- "allowNo": false,
2132
- "type": "boolean"
2133
- },
2134
- "pre-destructive-changes": {
2135
- "dependsOn": [
2136
- "manifest"
2137
- ],
2138
- "helpGroup": "Delete",
2139
- "name": "pre-destructive-changes",
2140
- "summary": "File path for a manifest (destructiveChangesPre.xml) of components to delete before the deploy",
2141
- "hasDynamicHelp": false,
2142
- "multiple": false,
2143
- "type": "option"
2144
- },
2145
- "post-destructive-changes": {
2146
- "dependsOn": [
2147
- "manifest"
2148
- ],
2149
- "helpGroup": "Delete",
2150
- "name": "post-destructive-changes",
2151
- "summary": "File path for a manifest (destructiveChangesPost.xml) of components to delete after the deploy.",
2152
- "hasDynamicHelp": false,
2153
- "multiple": false,
2154
- "type": "option"
2155
2135
  }
2156
2136
  },
2157
2137
  "hasDynamicHelp": true,
2158
2138
  "hiddenAliases": [],
2159
- "id": "project:deploy:validate",
2139
+ "id": "project:deploy:start",
2160
2140
  "pluginAlias": "@salesforce/plugin-deploy-retrieve",
2161
2141
  "pluginName": "@salesforce/plugin-deploy-retrieve",
2162
2142
  "pluginType": "core",
2163
2143
  "strict": true,
2164
- "summary": "Validate a metadata deployment without actually executing it.",
2144
+ "summary": "Deploy metadata to an org from your local project.",
2165
2145
  "enableJsonFlag": true,
2166
2146
  "configurationVariablesSection": {
2167
2147
  "header": "CONFIGURATION VARIABLES",
@@ -2228,39 +2208,34 @@
2228
2208
  "commands",
2229
2209
  "project",
2230
2210
  "deploy",
2231
- "validate.js"
2211
+ "start.js"
2232
2212
  ],
2233
2213
  "aliasPermutations": [
2234
- "deploy:metadata:validate",
2235
- "metadata:deploy:validate",
2236
- "metadata:validate:deploy",
2237
- "deploy:validate:metadata",
2238
- "validate:deploy:metadata",
2239
- "validate:metadata:deploy"
2214
+ "deploy:metadata",
2215
+ "metadata:deploy"
2240
2216
  ],
2241
2217
  "permutations": [
2242
- "project:deploy:validate",
2243
- "deploy:project:validate",
2244
- "deploy:validate:project",
2245
- "project:validate:deploy",
2246
- "validate:project:deploy",
2247
- "validate:deploy:project"
2218
+ "project:deploy:start",
2219
+ "deploy:project:start",
2220
+ "deploy:start:project",
2221
+ "project:start:deploy",
2222
+ "start:project:deploy",
2223
+ "start:deploy:project"
2248
2224
  ]
2249
2225
  },
2250
- "project:generate:manifest": {
2226
+ "project:deploy:validate": {
2251
2227
  "aliases": [
2252
- "force:source:manifest:create"
2228
+ "deploy:metadata:validate"
2253
2229
  ],
2254
2230
  "args": {},
2255
2231
  "deprecateAliases": true,
2256
- "description": "Create a manifest from a list of metadata components (--metadata) or from one or more local directories that contain source files (--source-dir). You can specify either of these flags, not both.\n\nUse --type to specify the type of manifest you want to create. The resulting manifest files have specific names, such as the standard package.xml or destructiveChanges.xml to delete metadata. Valid values for this flag, and their respective file names, are:\n\n * package : package.xml (default)\n * pre : destructiveChangesPre.xml\n * post : destructiveChangesPost.xml\n * destroy : destructiveChanges.xml\n\nSee https://developer.salesforce.com/docs/atlas.en-us.api_meta.meta/api_meta/meta_deploy_deleting_files.htm for information about these destructive manifest files.\n\nUse --name to specify a custom name for the generated manifest if the pre-defined ones don’t suit your needs. You can specify either --type or --name, but not both.\n\nTo include multiple metadata components, either set multiple --metadata <name> flags or a single --metadata flag with multiple names separated by spaces. Enclose names that contain spaces in one set of double quotes. The same syntax applies to --include-packages and --source-dir.\n\nTo build a manifest from the metadata in an org, use the --from-org flag. You can combine --from-org with the --metadata flag to include only certain metadata types, or with the --excluded-metadata flag to exclude certain metadata types. When building a manifest from an org, the command makes many concurrent API calls to discover the metadata that exists in the org. To limit the number of concurrent requests, use the SF_LIST_METADATA_BATCH_SIZE environment variable and set it to a size that works best for your org and environment. If you experience timeouts or inconsistent manifest contents, then setting this environment variable can improve accuracy. However, the command takes longer to run because it sends fewer requests at a time.",
2232
+ "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 --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 \"<%= config.bin %> project deploy start --dry-run --test-level RunLocalTests\" instead.",
2257
2233
  "examples": [
2258
- "Create a manifest for deploying or retrieving all Apex classes and custom objects:\n$ <%= config.bin %> <%= command.id %> --metadata ApexClass --metadata CustomObject",
2259
- "Create a manifest for deleting the specified Apex class:\n$ <%= config.bin %> <%= command.id %> --metadata ApexClass:MyApexClass --type destroy",
2260
- "Create a manifest for deploying or retrieving all the metadata components in the specified local directory; name the file myNewManifest.xml:\n$ <%= config.bin %> <%= command.id %> --source-dir force-app --name myNewManifest",
2261
- "Create a manifest from the metadata components in the specified org and include metadata in any unlocked packages:\n$ <%= config.bin %> <%= command.id %> --from-org test@myorg.com --include-packages unlocked",
2262
- "Create a manifest from specific metadata types in an org:\n$ <%= config.bin %> <%= command.id %> --from-org test@myorg.com --metadata ApexClass,CustomObject,CustomLabels",
2263
- "Create a manifest from all metadata components in an org excluding specific metadata types:\n$ <%= config.bin %> <%= command.id %> --from-org test@myorg.com --excluded-metadata StandardValueSet"
2234
+ "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.",
2235
+ "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",
2236
+ "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",
2237
+ "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",
2238
+ "Validate the deployment of all components listed in a manifest:\n<%= config.bin %> <%= command.id %> --manifest path/to/package.xml"
2264
2239
  ],
2265
2240
  "flags": {
2266
2241
  "json": {
@@ -2279,294 +2254,319 @@
2279
2254
  "type": "option"
2280
2255
  },
2281
2256
  "api-version": {
2282
- "aliases": [
2283
- "apiversion"
2284
- ],
2285
- "deprecateAliases": true,
2286
- "description": "Override the api version used for api requests made by this command",
2257
+ "char": "a",
2258
+ "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.",
2287
2259
  "name": "api-version",
2260
+ "summary": "Target API version for the validation.",
2288
2261
  "hasDynamicHelp": false,
2289
2262
  "multiple": false,
2290
2263
  "type": "option"
2291
2264
  },
2292
- "loglevel": {
2293
- "deprecated": {
2294
- "message": "The loglevel flag is no longer in use on this command. You may use it without error, but it will be ignored.\nSet the log level using the `SFDX_LOG_LEVEL` environment variable."
2295
- },
2296
- "hidden": true,
2297
- "name": "loglevel",
2265
+ "async": {
2266
+ "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\".",
2267
+ "name": "async",
2268
+ "summary": "Run the command asynchronously.",
2269
+ "allowNo": false,
2270
+ "type": "boolean"
2271
+ },
2272
+ "concise": {
2273
+ "exclusive": [
2274
+ "verbose"
2275
+ ],
2276
+ "name": "concise",
2277
+ "summary": "Show concise output of the validation result.",
2278
+ "allowNo": false,
2279
+ "type": "boolean"
2280
+ },
2281
+ "manifest": {
2282
+ "char": "x",
2283
+ "description": "All child components are included. If you specify this flag, don’t specify --metadata or --source-dir.",
2284
+ "helpGroup": "Source Format",
2285
+ "name": "manifest",
2286
+ "summary": "Full file path for manifest (package.xml) of components to validate for deployment.",
2298
2287
  "hasDynamicHelp": false,
2299
2288
  "multiple": false,
2300
2289
  "type": "option"
2301
2290
  },
2302
2291
  "metadata": {
2303
2292
  "char": "m",
2293
+ "helpGroup": "Source Format",
2304
2294
  "name": "metadata",
2305
- "summary": "Names of metadata components to include in the manifest.",
2306
- "delimiter": ",",
2295
+ "summary": "Metadata component names to validate for deployment.",
2307
2296
  "hasDynamicHelp": false,
2308
2297
  "multiple": true,
2309
2298
  "type": "option"
2310
2299
  },
2311
2300
  "source-dir": {
2312
- "aliases": [
2313
- "sourcepath"
2314
- ],
2315
- "char": "p",
2316
- "deprecateAliases": true,
2301
+ "char": "d",
2302
+ "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.",
2303
+ "helpGroup": "Source Format",
2317
2304
  "name": "source-dir",
2318
- "summary": "Paths to the local source files to include in the manifest.",
2319
- "delimiter": ",",
2305
+ "summary": "Path to the local source files to validate for deployment.",
2320
2306
  "hasDynamicHelp": false,
2321
2307
  "multiple": true,
2322
2308
  "type": "option"
2323
2309
  },
2324
- "name": {
2325
- "aliases": [
2326
- "manifestname"
2327
- ],
2328
- "char": "n",
2329
- "deprecateAliases": true,
2330
- "exclusive": [
2331
- "type"
2332
- ],
2333
- "name": "name",
2334
- "summary": "Name of a custom manifest file to create.",
2310
+ "metadata-dir": {
2311
+ "helpGroup": "Metadata API Format",
2312
+ "name": "metadata-dir",
2313
+ "summary": "Root of directory or zip file of metadata formatted files to deploy.",
2335
2314
  "hasDynamicHelp": false,
2336
2315
  "multiple": false,
2337
2316
  "type": "option"
2338
2317
  },
2339
- "type": {
2340
- "aliases": [
2341
- "manifesttype"
2318
+ "single-package": {
2319
+ "dependsOn": [
2320
+ "metadata-dir"
2342
2321
  ],
2322
+ "helpGroup": "Metadata API Format",
2323
+ "name": "single-package",
2324
+ "summary": "Indicates that the metadata zip file points to a directory structure for a single package.",
2325
+ "allowNo": false,
2326
+ "type": "boolean"
2327
+ },
2328
+ "target-org": {
2329
+ "char": "o",
2330
+ "name": "target-org",
2331
+ "noCacheDefault": true,
2332
+ "required": true,
2333
+ "summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
2334
+ "hasDynamicHelp": true,
2335
+ "multiple": false,
2336
+ "type": "option"
2337
+ },
2338
+ "tests": {
2343
2339
  "char": "t",
2344
- "deprecateAliases": true,
2345
- "exclusive": [
2346
- "name"
2347
- ],
2348
- "name": "type",
2349
- "summary": "Type of manifest to create; the type determines the name of the created file.",
2340
+ "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\"",
2341
+ "helpGroup": "Test",
2342
+ "name": "tests",
2343
+ "summary": "Apex tests to run when --test-level is RunSpecifiedTests.",
2344
+ "hasDynamicHelp": false,
2345
+ "multiple": true,
2346
+ "type": "option"
2347
+ },
2348
+ "test-level": {
2349
+ "char": "l",
2350
+ "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.",
2351
+ "helpGroup": "Test",
2352
+ "name": "test-level",
2353
+ "summary": "Deployment Apex testing level.",
2354
+ "default": "RunLocalTests",
2350
2355
  "hasDynamicHelp": false,
2351
2356
  "multiple": false,
2352
2357
  "options": [
2353
- "pre",
2354
- "post",
2355
- "destroy",
2356
- "package"
2358
+ "RunAllTestsInOrg",
2359
+ "RunLocalTests",
2360
+ "RunSpecifiedTests"
2357
2361
  ],
2358
2362
  "type": "option"
2359
2363
  },
2360
- "include-packages": {
2361
- "aliases": [
2362
- "includepackages"
2363
- ],
2364
- "char": "c",
2365
- "dependsOn": [
2366
- "from-org"
2364
+ "verbose": {
2365
+ "exclusive": [
2366
+ "concise"
2367
2367
  ],
2368
- "deprecateAliases": true,
2369
- "name": "include-packages",
2370
- "summary": "Package types (managed, unlocked) whose metadata is included in the manifest; by default, metadata in managed and unlocked packages is excluded. Metadata in unmanaged packages is always included.",
2371
- "delimiter": ",",
2368
+ "name": "verbose",
2369
+ "summary": "Show verbose output of the validation result.",
2370
+ "allowNo": false,
2371
+ "type": "boolean"
2372
+ },
2373
+ "wait": {
2374
+ "char": "w",
2375
+ "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\".",
2376
+ "name": "wait",
2377
+ "summary": "Number of minutes to wait for the command to complete and display results.",
2378
+ "hasDynamicHelp": true,
2379
+ "helpValue": "<minutes>",
2380
+ "multiple": false,
2381
+ "type": "option"
2382
+ },
2383
+ "ignore-warnings": {
2384
+ "char": "g",
2385
+ "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.",
2386
+ "name": "ignore-warnings",
2387
+ "summary": "Ignore warnings and allow a deployment to complete successfully.",
2388
+ "allowNo": false,
2389
+ "type": "boolean"
2390
+ },
2391
+ "coverage-formatters": {
2392
+ "description": "For multiple formatters, repeat the flag for each formatter.\n--coverage-formatters lcov --coverage-formatters clover",
2393
+ "helpGroup": "Test",
2394
+ "name": "coverage-formatters",
2395
+ "summary": "Format of the code coverage results.",
2372
2396
  "hasDynamicHelp": false,
2373
2397
  "multiple": true,
2374
2398
  "options": [
2375
- "managed",
2376
- "unlocked"
2399
+ "clover",
2400
+ "cobertura",
2401
+ "html-spa",
2402
+ "html",
2403
+ "json",
2404
+ "json-summary",
2405
+ "lcovonly",
2406
+ "none",
2407
+ "teamcity",
2408
+ "text",
2409
+ "text-summary"
2377
2410
  ],
2378
2411
  "type": "option"
2379
2412
  },
2380
- "excluded-metadata": {
2381
- "name": "excluded-metadata",
2413
+ "junit": {
2414
+ "helpGroup": "Test",
2415
+ "name": "junit",
2416
+ "summary": "Output JUnit test results.",
2417
+ "allowNo": false,
2418
+ "type": "boolean"
2419
+ },
2420
+ "results-dir": {
2421
+ "helpGroup": "Test",
2422
+ "name": "results-dir",
2382
2423
  "relationships": [
2383
2424
  {
2384
2425
  "type": "some",
2385
2426
  "flags": [
2386
- "from-org",
2387
- "source-dir"
2427
+ "coverage-formatters",
2428
+ "junit"
2388
2429
  ]
2389
2430
  }
2390
2431
  ],
2391
- "summary": "Metadata types to exclude when building a manifest from an org. Specify the name of the type, not the name of a specific component.",
2392
- "delimiter": ",",
2393
- "hasDynamicHelp": false,
2394
- "multiple": true,
2395
- "type": "option"
2396
- },
2397
- "from-org": {
2398
- "aliases": [
2399
- "fromorg"
2400
- ],
2401
- "deprecateAliases": true,
2402
- "exclusive": [
2403
- "source-dir"
2404
- ],
2405
- "name": "from-org",
2406
- "summary": "Username or alias of the org that contains the metadata components from which to build a manifest.",
2432
+ "summary": "Output directory for code coverage and JUnit results; defaults to the deploy ID.",
2407
2433
  "hasDynamicHelp": false,
2408
2434
  "multiple": false,
2409
2435
  "type": "option"
2410
2436
  },
2411
- "output-dir": {
2412
- "aliases": [
2413
- "outputdir",
2414
- "o"
2437
+ "purge-on-delete": {
2438
+ "dependsOn": [
2439
+ "manifest"
2415
2440
  ],
2416
- "char": "d",
2417
- "deprecateAliases": true,
2418
- "name": "output-dir",
2419
- "summary": "Directory to save the created manifest.",
2420
- "hasDynamicHelp": false,
2421
- "multiple": false,
2422
- "type": "option"
2423
- }
2424
- },
2425
- "hasDynamicHelp": false,
2426
- "hiddenAliases": [],
2427
- "id": "project:generate:manifest",
2428
- "pluginAlias": "@salesforce/plugin-deploy-retrieve",
2429
- "pluginName": "@salesforce/plugin-deploy-retrieve",
2430
- "pluginType": "core",
2431
- "strict": true,
2432
- "summary": "Create a project manifest that lists the metadata components you want to deploy or retrieve.",
2433
- "enableJsonFlag": true,
2434
- "requiresProject": true,
2435
- "isESM": true,
2436
- "relativePath": [
2437
- "lib",
2438
- "commands",
2439
- "project",
2440
- "generate",
2441
- "manifest.js"
2442
- ],
2443
- "aliasPermutations": [
2444
- "force:source:manifest:create",
2445
- "source:force:manifest:create",
2446
- "source:manifest:force:create",
2447
- "source:manifest:create:force",
2448
- "force:manifest:source:create",
2449
- "manifest:force:source:create",
2450
- "manifest:source:force:create",
2451
- "manifest:source:create:force",
2452
- "force:manifest:create:source",
2453
- "manifest:force:create:source",
2454
- "manifest:create:force:source",
2455
- "manifest:create:source:force",
2456
- "force:source:create:manifest",
2457
- "source:force:create:manifest",
2458
- "source:create:force:manifest",
2459
- "source:create:manifest:force",
2460
- "force:create:source:manifest",
2461
- "create:force:source:manifest",
2462
- "create:source:force:manifest",
2463
- "create:source:manifest:force",
2464
- "force:create:manifest:source",
2465
- "create:force:manifest:source",
2466
- "create:manifest:force:source",
2467
- "create:manifest:source:force"
2468
- ],
2469
- "permutations": [
2470
- "project:generate:manifest",
2471
- "generate:project:manifest",
2472
- "generate:manifest:project",
2473
- "project:manifest:generate",
2474
- "manifest:project:generate",
2475
- "manifest:generate:project"
2476
- ]
2477
- },
2478
- "project:list:ignored": {
2479
- "aliases": [
2480
- "force:source:ignored:list"
2481
- ],
2482
- "args": {},
2483
- "deprecateAliases": true,
2484
- "description": "When deploying or retrieving metadata between your local project and an org, you can specify the source files you want to exclude with a .forceignore file. The .forceignore file structure mimics the .gitignore structure. Each line in .forceignore specifies a pattern that corresponds to one or more files. The files typically represent metadata components, but can be any files you want to exclude, such as LWC configuration JSON files or tests.",
2485
- "examples": [
2486
- "List all the files in all package directories that are ignored:\n<%= config.bin %> <%= command.id %>",
2487
- "List all the files in a specific directory that are ignored:\n<%= config.bin %> <%= command.id %> --source-dir force-app",
2488
- "Check if a particular file is ignored:\n<%= config.bin %> <%= command.id %> --source-dir package.xml"
2489
- ],
2490
- "flags": {
2491
- "json": {
2492
- "description": "Format output as json.",
2493
- "helpGroup": "GLOBAL",
2494
- "name": "json",
2441
+ "helpGroup": "Delete",
2442
+ "name": "purge-on-delete",
2443
+ "relationships": [
2444
+ {
2445
+ "type": "some",
2446
+ "flags": [
2447
+ "pre-destructive-changes",
2448
+ "post-destructive-changes"
2449
+ ]
2450
+ }
2451
+ ],
2452
+ "summary": "Specify that deleted components in the destructive changes manifest file are immediately eligible for deletion rather than being stored in the Recycle Bin.",
2495
2453
  "allowNo": false,
2496
2454
  "type": "boolean"
2497
2455
  },
2498
- "flags-dir": {
2499
- "helpGroup": "GLOBAL",
2500
- "name": "flags-dir",
2501
- "summary": "Import flag values from a directory.",
2456
+ "pre-destructive-changes": {
2457
+ "dependsOn": [
2458
+ "manifest"
2459
+ ],
2460
+ "helpGroup": "Delete",
2461
+ "name": "pre-destructive-changes",
2462
+ "summary": "File path for a manifest (destructiveChangesPre.xml) of components to delete before the deploy",
2502
2463
  "hasDynamicHelp": false,
2503
2464
  "multiple": false,
2504
2465
  "type": "option"
2505
2466
  },
2506
- "source-dir": {
2507
- "aliases": [
2508
- "sourcepath"
2467
+ "post-destructive-changes": {
2468
+ "dependsOn": [
2469
+ "manifest"
2509
2470
  ],
2510
- "char": "p",
2511
- "deprecateAliases": true,
2512
- "name": "source-dir",
2513
- "summary": "File or directory of files that the command checks for foreceignored files.",
2471
+ "helpGroup": "Delete",
2472
+ "name": "post-destructive-changes",
2473
+ "summary": "File path for a manifest (destructiveChangesPost.xml) of components to delete after the deploy.",
2514
2474
  "hasDynamicHelp": false,
2515
2475
  "multiple": false,
2516
2476
  "type": "option"
2517
2477
  }
2518
2478
  },
2519
- "hasDynamicHelp": false,
2479
+ "hasDynamicHelp": true,
2520
2480
  "hiddenAliases": [],
2521
- "id": "project:list:ignored",
2481
+ "id": "project:deploy:validate",
2522
2482
  "pluginAlias": "@salesforce/plugin-deploy-retrieve",
2523
2483
  "pluginName": "@salesforce/plugin-deploy-retrieve",
2524
2484
  "pluginType": "core",
2525
2485
  "strict": true,
2526
- "summary": "Check your local project package directories for forceignored files.",
2486
+ "summary": "Validate a metadata deployment without actually executing it.",
2527
2487
  "enableJsonFlag": true,
2528
- "requiresProject": true,
2488
+ "configurationVariablesSection": {
2489
+ "header": "CONFIGURATION VARIABLES",
2490
+ "body": [
2491
+ {
2492
+ "name": "target-org",
2493
+ "description": "Username or alias of the org that all commands run against by default. (sf only)"
2494
+ },
2495
+ {
2496
+ "name": "org-api-version",
2497
+ "description": "API version of your project. Default: API version of your Dev Hub org."
2498
+ }
2499
+ ]
2500
+ },
2501
+ "envVariablesSection": {
2502
+ "header": "ENVIRONMENT VARIABLES",
2503
+ "body": [
2504
+ {
2505
+ "name": "SF_TARGET_ORG",
2506
+ "description": "Username or alias of your default org. Overrides the target-org configuration variable."
2507
+ },
2508
+ {
2509
+ "name": "SF_USE_PROGRESS_BAR",
2510
+ "description": "Set to false to disable the progress bar when running the metadata deploy command."
2511
+ }
2512
+ ]
2513
+ },
2514
+ "errorCodes": {
2515
+ "header": "ERROR CODES",
2516
+ "body": [
2517
+ {
2518
+ "name": "Succeeded (0)",
2519
+ "description": "The deploy succeeded."
2520
+ },
2521
+ {
2522
+ "name": "Canceled (1)",
2523
+ "description": "The deploy was canceled."
2524
+ },
2525
+ {
2526
+ "name": "Failed (1)",
2527
+ "description": "The deploy failed."
2528
+ },
2529
+ {
2530
+ "name": "SucceededPartial (68)",
2531
+ "description": "The deploy partially succeeded."
2532
+ },
2533
+ {
2534
+ "name": "InProgress (69)",
2535
+ "description": "The deploy is in progress."
2536
+ },
2537
+ {
2538
+ "name": "Pending (69)",
2539
+ "description": "The deploy is pending."
2540
+ },
2541
+ {
2542
+ "name": "Canceling (69)",
2543
+ "description": "The deploy is being canceled."
2544
+ }
2545
+ ]
2546
+ },
2529
2547
  "isESM": true,
2530
2548
  "relativePath": [
2531
2549
  "lib",
2532
2550
  "commands",
2533
2551
  "project",
2534
- "list",
2535
- "ignored.js"
2552
+ "deploy",
2553
+ "validate.js"
2536
2554
  ],
2537
2555
  "aliasPermutations": [
2538
- "force:source:ignored:list",
2539
- "source:force:ignored:list",
2540
- "source:ignored:force:list",
2541
- "source:ignored:list:force",
2542
- "force:ignored:source:list",
2543
- "ignored:force:source:list",
2544
- "ignored:source:force:list",
2545
- "ignored:source:list:force",
2546
- "force:ignored:list:source",
2547
- "ignored:force:list:source",
2548
- "ignored:list:force:source",
2549
- "ignored:list:source:force",
2550
- "force:source:list:ignored",
2551
- "source:force:list:ignored",
2552
- "source:list:force:ignored",
2553
- "source:list:ignored:force",
2554
- "force:list:source:ignored",
2555
- "list:force:source:ignored",
2556
- "list:source:force:ignored",
2557
- "list:source:ignored:force",
2558
- "force:list:ignored:source",
2559
- "list:force:ignored:source",
2560
- "list:ignored:force:source",
2561
- "list:ignored:source:force"
2556
+ "deploy:metadata:validate",
2557
+ "metadata:deploy:validate",
2558
+ "metadata:validate:deploy",
2559
+ "deploy:validate:metadata",
2560
+ "validate:deploy:metadata",
2561
+ "validate:metadata:deploy"
2562
2562
  ],
2563
2563
  "permutations": [
2564
- "project:list:ignored",
2565
- "list:project:ignored",
2566
- "list:ignored:project",
2567
- "project:ignored:list",
2568
- "ignored:project:list",
2569
- "ignored:list:project"
2564
+ "project:deploy:validate",
2565
+ "deploy:project:validate",
2566
+ "deploy:validate:project",
2567
+ "project:validate:deploy",
2568
+ "validate:project:deploy",
2569
+ "validate:deploy:project"
2570
2570
  ]
2571
2571
  },
2572
2572
  "project:reset:tracking": {
@@ -3051,5 +3051,5 @@
3051
3051
  ]
3052
3052
  }
3053
3053
  },
3054
- "version": "3.22.30"
3054
+ "version": "3.22.32"
3055
3055
  }