sfdx-hardis 6.14.5-alpha202512081801.0 → 6.15.1-beta202512081818.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +2 -0
- package/oclif.manifest.json +459 -459
- package/package.json +1 -1
package/oclif.manifest.json
CHANGED
|
@@ -3035,12 +3035,12 @@
|
|
|
3035
3035
|
"lint:project:hardis"
|
|
3036
3036
|
]
|
|
3037
3037
|
},
|
|
3038
|
-
"hardis:
|
|
3038
|
+
"hardis:source:deploy": {
|
|
3039
3039
|
"aliases": [],
|
|
3040
3040
|
"args": {},
|
|
3041
|
-
"description": "
|
|
3041
|
+
"description": "sfdx-hardis wrapper for sfdx force:source:deploy that displays tips to solve deployment errors.\n\nAdditional to the base command wrapper: If using **--checkonly**, add options **--checkcoverage** and **--coverageformatters json-summary** to check that org coverage is > 75% (or value defined in .sfdx-hardis.yml property **apexTestsMinCoverageOrgWide**)\n\n### Deployment results\n\nYou can also have deployment results as pull request comments, on:\n\n- GitHub (see [GitHub Pull Requests comments config](https://sfdx-hardis.cloudity.com/salesforce-ci-cd-setup-integration-github/))\n- Gitlab (see [Gitlab integration configuration](https://sfdx-hardis.cloudity.com/salesforce-ci-cd-setup-integration-gitlab/))\n- Azure DevOps (see [Azure integration configuration](https://sfdx-hardis.cloudity.com/salesforce-ci-cd-setup-integration-azure/))\n\n\n[](https://nicolas.vuillamy.fr/assisted-solving-of-salesforce-deployments-errors-47f3666a9ed0)\n\n### Deployment pre or post commands\n\nYou can define command lines to run before or after a deployment, with parameters:\n\n- **id**: Unique Id for the command\n- **label**: Human readable label for the command\n- **skipIfError**: If defined to \"true\", the post-command won't be run if there is a deployment failure\n- **context**: Defines the context where the command will be run. Can be **all** (default), **check-deployment-only** or **process-deployment-only**\n- **runOnlyOnceByOrg**: If set to true, the command will be run only one time per org. A record of SfdxHardisTrace__c is stored to make that possible (it needs to be existing in target org)\n\nIf the commands are not the same depending on the target org, you can define them into **config/branches/.sfdx-hardis-BRANCHNAME.yml** instead of root **config/.sfdx-hardis.yml**\n\nExample:\n\n```yaml\ncommandsPreDeploy:\n - id: knowledgeUnassign\n label: Remove KnowledgeUser right to the user who has it\n command: sf data update record --sobject User --where \"UserPermissionsKnowledgeUser='true'\" --values \"UserPermissionsKnowledgeUser='false'\" --json\n - id: knowledgeAssign\n label: Assign Knowledge user to the deployment user\n command: sf data update record --sobject User --where \"Username='deploy.github@myclient.com'\" --values \"UserPermissionsKnowledgeUser='true'\" --json\n\ncommandsPostDeploy:\n - id: knowledgeUnassign\n label: Remove KnowledgeUser right to the user who has it\n command: sf data update record --sobject User --where \"UserPermissionsKnowledgeUser='true'\" --values \"UserPermissionsKnowledgeUser='false'\" --json\n - id: knowledgeAssign\n label: Assign Knowledge user to desired username\n command: sf data update record --sobject User --where \"Username='admin-yser@myclient.com'\" --values \"UserPermissionsKnowledgeUser='true'\" --json\n - id: someActionToRunJustOneTime\n label: And to run only if deployment is success\n command: sf sfdmu:run ...\n skipIfError: true\n context: process-deployment-only\n runOnlyOnceByOrg: true\n```\n\nNotes:\n\n- You can disable coloring of errors in red by defining env variable SFDX_HARDIS_DEPLOY_ERR_COLORS=false\n\n[See documentation of Salesforce command](https://developer.salesforce.com/docs/atlas.en-us.sfdx_cli_reference.meta/sfdx_cli_reference/cli_reference_force_source.htm#cli_reference_force_source_deploy)\n",
|
|
3042
3042
|
"examples": [
|
|
3043
|
-
"$ sf hardis:
|
|
3043
|
+
"$ sf hardis:source:deploy -x manifest/package.xml --wait 60 --ignorewarnings --testlevel RunLocalTests --postdestructivechanges ./manifest/destructiveChanges.xml --target-org nicolas.vuillamy@cloudity.com.sfdxhardis --checkonly --checkcoverage --verbose --coverageformatters json-summary"
|
|
3044
3044
|
],
|
|
3045
3045
|
"flags": {
|
|
3046
3046
|
"json": {
|
|
@@ -3058,49 +3058,216 @@
|
|
|
3058
3058
|
"multiple": false,
|
|
3059
3059
|
"type": "option"
|
|
3060
3060
|
},
|
|
3061
|
-
"
|
|
3062
|
-
"char": "
|
|
3063
|
-
"description": "
|
|
3064
|
-
"name": "
|
|
3061
|
+
"checkonly": {
|
|
3062
|
+
"char": "c",
|
|
3063
|
+
"description": "checkonly",
|
|
3064
|
+
"name": "checkonly",
|
|
3065
3065
|
"allowNo": false,
|
|
3066
3066
|
"type": "boolean"
|
|
3067
3067
|
},
|
|
3068
|
-
"
|
|
3069
|
-
"description": "
|
|
3070
|
-
"name": "
|
|
3068
|
+
"soapdeploy": {
|
|
3069
|
+
"description": "soapDeploy",
|
|
3070
|
+
"name": "soapdeploy",
|
|
3071
|
+
"allowNo": false,
|
|
3072
|
+
"type": "boolean"
|
|
3073
|
+
},
|
|
3074
|
+
"wait": {
|
|
3075
|
+
"char": "w",
|
|
3076
|
+
"description": "wait",
|
|
3077
|
+
"name": "wait",
|
|
3078
|
+
"default": 60,
|
|
3079
|
+
"hasDynamicHelp": false,
|
|
3080
|
+
"multiple": false,
|
|
3081
|
+
"type": "option"
|
|
3082
|
+
},
|
|
3083
|
+
"testlevel": {
|
|
3084
|
+
"char": "l",
|
|
3085
|
+
"description": "testlevel",
|
|
3086
|
+
"name": "testlevel",
|
|
3087
|
+
"default": "NoTestRun",
|
|
3088
|
+
"hasDynamicHelp": false,
|
|
3089
|
+
"multiple": false,
|
|
3090
|
+
"options": [
|
|
3091
|
+
"NoTestRun",
|
|
3092
|
+
"RunSpecifiedTests",
|
|
3093
|
+
"RunLocalTests",
|
|
3094
|
+
"RunAllTestsInOrg"
|
|
3095
|
+
],
|
|
3096
|
+
"type": "option"
|
|
3097
|
+
},
|
|
3098
|
+
"runtests": {
|
|
3099
|
+
"char": "r",
|
|
3100
|
+
"description": "runTests",
|
|
3101
|
+
"name": "runtests",
|
|
3102
|
+
"default": [],
|
|
3103
|
+
"hasDynamicHelp": false,
|
|
3104
|
+
"multiple": true,
|
|
3105
|
+
"type": "option"
|
|
3106
|
+
},
|
|
3107
|
+
"ignoreerrors": {
|
|
3108
|
+
"description": "ignoreErrors",
|
|
3109
|
+
"name": "ignoreerrors",
|
|
3110
|
+
"allowNo": false,
|
|
3111
|
+
"type": "boolean"
|
|
3112
|
+
},
|
|
3113
|
+
"ignorewarnings": {
|
|
3114
|
+
"char": "g",
|
|
3115
|
+
"description": "ignoreWarnings",
|
|
3116
|
+
"name": "ignorewarnings",
|
|
3117
|
+
"allowNo": false,
|
|
3118
|
+
"type": "boolean"
|
|
3119
|
+
},
|
|
3120
|
+
"validateddeployrequestid": {
|
|
3121
|
+
"char": "q",
|
|
3122
|
+
"description": "validateDeployRequestId",
|
|
3123
|
+
"exclusive": [
|
|
3124
|
+
"manifest",
|
|
3125
|
+
"metadata",
|
|
3126
|
+
"sourcepath",
|
|
3127
|
+
"checkonly",
|
|
3128
|
+
"testlevel",
|
|
3129
|
+
"runtests",
|
|
3130
|
+
"ignoreerrors",
|
|
3131
|
+
"ignorewarnings"
|
|
3132
|
+
],
|
|
3133
|
+
"name": "validateddeployrequestid",
|
|
3134
|
+
"hasDynamicHelp": false,
|
|
3135
|
+
"multiple": false,
|
|
3136
|
+
"type": "option"
|
|
3137
|
+
},
|
|
3138
|
+
"verbose": {
|
|
3139
|
+
"description": "verbose",
|
|
3140
|
+
"name": "verbose",
|
|
3141
|
+
"allowNo": false,
|
|
3142
|
+
"type": "boolean"
|
|
3143
|
+
},
|
|
3144
|
+
"metadata": {
|
|
3145
|
+
"char": "m",
|
|
3146
|
+
"description": "metadata",
|
|
3147
|
+
"exclusive": [
|
|
3148
|
+
"manifest",
|
|
3149
|
+
"sourcepath"
|
|
3150
|
+
],
|
|
3151
|
+
"name": "metadata",
|
|
3152
|
+
"hasDynamicHelp": false,
|
|
3153
|
+
"multiple": true,
|
|
3154
|
+
"type": "option"
|
|
3155
|
+
},
|
|
3156
|
+
"sourcepath": {
|
|
3157
|
+
"char": "p",
|
|
3158
|
+
"description": "sourcePath",
|
|
3159
|
+
"exclusive": [
|
|
3160
|
+
"manifest",
|
|
3161
|
+
"metadata"
|
|
3162
|
+
],
|
|
3163
|
+
"name": "sourcepath",
|
|
3164
|
+
"hasDynamicHelp": false,
|
|
3165
|
+
"multiple": true,
|
|
3166
|
+
"type": "option"
|
|
3167
|
+
},
|
|
3168
|
+
"manifest": {
|
|
3169
|
+
"char": "x",
|
|
3170
|
+
"description": "flagsLong.manifest",
|
|
3171
|
+
"exclusive": [
|
|
3172
|
+
"metadata",
|
|
3173
|
+
"sourcepath"
|
|
3174
|
+
],
|
|
3175
|
+
"name": "manifest",
|
|
3176
|
+
"hasDynamicHelp": false,
|
|
3177
|
+
"multiple": false,
|
|
3178
|
+
"type": "option"
|
|
3179
|
+
},
|
|
3180
|
+
"predestructivechanges": {
|
|
3181
|
+
"dependsOn": [
|
|
3182
|
+
"manifest"
|
|
3183
|
+
],
|
|
3184
|
+
"description": "predestructivechanges",
|
|
3185
|
+
"name": "predestructivechanges",
|
|
3186
|
+
"hasDynamicHelp": false,
|
|
3187
|
+
"multiple": false,
|
|
3188
|
+
"type": "option"
|
|
3189
|
+
},
|
|
3190
|
+
"postdestructivechanges": {
|
|
3191
|
+
"dependsOn": [
|
|
3192
|
+
"manifest"
|
|
3193
|
+
],
|
|
3194
|
+
"description": "postdestructivechanges",
|
|
3195
|
+
"name": "postdestructivechanges",
|
|
3196
|
+
"hasDynamicHelp": false,
|
|
3197
|
+
"multiple": false,
|
|
3198
|
+
"type": "option"
|
|
3199
|
+
},
|
|
3200
|
+
"tracksource": {
|
|
3201
|
+
"char": "t",
|
|
3202
|
+
"description": "tracksource",
|
|
3203
|
+
"exclusive": [
|
|
3204
|
+
"checkonly",
|
|
3205
|
+
"validateddeployrequestid"
|
|
3206
|
+
],
|
|
3207
|
+
"name": "tracksource",
|
|
3208
|
+
"allowNo": false,
|
|
3209
|
+
"type": "boolean"
|
|
3210
|
+
},
|
|
3211
|
+
"forceoverwrite": {
|
|
3212
|
+
"char": "f",
|
|
3213
|
+
"dependsOn": [
|
|
3214
|
+
"tracksource"
|
|
3215
|
+
],
|
|
3216
|
+
"description": "forceoverwrite",
|
|
3217
|
+
"name": "forceoverwrite",
|
|
3218
|
+
"allowNo": false,
|
|
3219
|
+
"type": "boolean"
|
|
3220
|
+
},
|
|
3221
|
+
"resultsdir": {
|
|
3222
|
+
"description": "resultsdir",
|
|
3223
|
+
"name": "resultsdir",
|
|
3224
|
+
"hasDynamicHelp": false,
|
|
3225
|
+
"multiple": false,
|
|
3226
|
+
"type": "option"
|
|
3227
|
+
},
|
|
3228
|
+
"coverageformatters": {
|
|
3229
|
+
"description": "coverageformatters",
|
|
3230
|
+
"name": "coverageformatters",
|
|
3231
|
+
"hasDynamicHelp": false,
|
|
3232
|
+
"multiple": true,
|
|
3233
|
+
"type": "option"
|
|
3234
|
+
},
|
|
3235
|
+
"junit": {
|
|
3236
|
+
"description": "junit",
|
|
3237
|
+
"name": "junit",
|
|
3238
|
+
"allowNo": false,
|
|
3239
|
+
"type": "boolean"
|
|
3240
|
+
},
|
|
3241
|
+
"checkcoverage": {
|
|
3242
|
+
"description": "Check Apex org coverage",
|
|
3243
|
+
"name": "checkcoverage",
|
|
3071
3244
|
"allowNo": false,
|
|
3072
3245
|
"type": "boolean"
|
|
3073
3246
|
},
|
|
3074
3247
|
"debug": {
|
|
3075
|
-
"
|
|
3076
|
-
"description": "Activate debug mode (more logs)",
|
|
3248
|
+
"description": "debug",
|
|
3077
3249
|
"name": "debug",
|
|
3078
3250
|
"allowNo": false,
|
|
3079
3251
|
"type": "boolean"
|
|
3080
3252
|
},
|
|
3081
3253
|
"websocket": {
|
|
3082
|
-
"description": "
|
|
3254
|
+
"description": "websocket",
|
|
3083
3255
|
"name": "websocket",
|
|
3084
3256
|
"hasDynamicHelp": false,
|
|
3085
3257
|
"multiple": false,
|
|
3086
3258
|
"type": "option"
|
|
3087
3259
|
},
|
|
3088
|
-
"
|
|
3089
|
-
"description": "Skip authentication check when a default username is required",
|
|
3090
|
-
"name": "skipauth",
|
|
3091
|
-
"allowNo": false,
|
|
3092
|
-
"type": "boolean"
|
|
3093
|
-
},
|
|
3094
|
-
"target-dev-hub": {
|
|
3260
|
+
"target-org": {
|
|
3095
3261
|
"aliases": [
|
|
3096
|
-
"
|
|
3262
|
+
"targetusername",
|
|
3263
|
+
"u"
|
|
3097
3264
|
],
|
|
3098
|
-
"char": "
|
|
3265
|
+
"char": "o",
|
|
3099
3266
|
"deprecateAliases": true,
|
|
3100
|
-
"name": "target-
|
|
3267
|
+
"name": "target-org",
|
|
3101
3268
|
"noCacheDefault": true,
|
|
3102
3269
|
"required": true,
|
|
3103
|
-
"summary": "Username or alias of the
|
|
3270
|
+
"summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
|
|
3104
3271
|
"hasDynamicHelp": true,
|
|
3105
3272
|
"multiple": false,
|
|
3106
3273
|
"type": "option"
|
|
@@ -3108,42 +3275,35 @@
|
|
|
3108
3275
|
},
|
|
3109
3276
|
"hasDynamicHelp": true,
|
|
3110
3277
|
"hiddenAliases": [],
|
|
3111
|
-
"id": "hardis:
|
|
3278
|
+
"id": "hardis:source:deploy",
|
|
3112
3279
|
"pluginAlias": "sfdx-hardis",
|
|
3113
3280
|
"pluginName": "sfdx-hardis",
|
|
3114
3281
|
"pluginType": "core",
|
|
3115
3282
|
"strict": true,
|
|
3116
3283
|
"enableJsonFlag": true,
|
|
3117
|
-
"title": "Create and initialize scratch org",
|
|
3118
3284
|
"requiresProject": true,
|
|
3119
|
-
"requiresSfdxPlugins": [
|
|
3120
|
-
"sfdmu"
|
|
3121
|
-
],
|
|
3122
3285
|
"isESM": true,
|
|
3123
3286
|
"relativePath": [
|
|
3124
3287
|
"lib",
|
|
3125
3288
|
"commands",
|
|
3126
3289
|
"hardis",
|
|
3127
|
-
"
|
|
3128
|
-
"
|
|
3290
|
+
"source",
|
|
3291
|
+
"deploy.js"
|
|
3129
3292
|
],
|
|
3130
3293
|
"aliasPermutations": [],
|
|
3131
3294
|
"permutations": [
|
|
3132
|
-
"hardis:
|
|
3133
|
-
"
|
|
3134
|
-
"
|
|
3135
|
-
"hardis:
|
|
3136
|
-
"
|
|
3137
|
-
"
|
|
3295
|
+
"hardis:source:deploy",
|
|
3296
|
+
"source:hardis:deploy",
|
|
3297
|
+
"source:deploy:hardis",
|
|
3298
|
+
"hardis:deploy:source",
|
|
3299
|
+
"deploy:hardis:source",
|
|
3300
|
+
"deploy:source:hardis"
|
|
3138
3301
|
]
|
|
3139
3302
|
},
|
|
3140
|
-
"hardis:
|
|
3303
|
+
"hardis:source:push": {
|
|
3141
3304
|
"aliases": [],
|
|
3142
3305
|
"args": {},
|
|
3143
|
-
"description": "
|
|
3144
|
-
"examples": [
|
|
3145
|
-
"$ sf hardis:scratch:delete"
|
|
3146
|
-
],
|
|
3306
|
+
"description": "sfdx-hardis wrapper for sfdx force:source:push that displays tips to solve deployment errors.\n\n[](https://nicolas.vuillamy.fr/assisted-solving-of-salesforce-deployments-errors-47f3666a9ed0)\n\n[See documentation of Salesforce command](https://developer.salesforce.com/docs/atlas.en-us.sfdx_cli_reference.meta/sfdx_cli_reference/cli_reference_force_source.htm#cli_reference_force_source_push)\n",
|
|
3147
3307
|
"flags": {
|
|
3148
3308
|
"json": {
|
|
3149
3309
|
"description": "Format output as json.",
|
|
@@ -3160,36 +3320,59 @@
|
|
|
3160
3320
|
"multiple": false,
|
|
3161
3321
|
"type": "option"
|
|
3162
3322
|
},
|
|
3323
|
+
"forceoverwrite": {
|
|
3324
|
+
"char": "f",
|
|
3325
|
+
"description": "forceoverwrite",
|
|
3326
|
+
"name": "forceoverwrite",
|
|
3327
|
+
"allowNo": false,
|
|
3328
|
+
"type": "boolean"
|
|
3329
|
+
},
|
|
3330
|
+
"wait": {
|
|
3331
|
+
"char": "w",
|
|
3332
|
+
"description": "wait",
|
|
3333
|
+
"name": "wait",
|
|
3334
|
+
"default": 60,
|
|
3335
|
+
"hasDynamicHelp": false,
|
|
3336
|
+
"multiple": false,
|
|
3337
|
+
"type": "option"
|
|
3338
|
+
},
|
|
3339
|
+
"ignorewarnings": {
|
|
3340
|
+
"char": "g",
|
|
3341
|
+
"description": "ignorewarnings",
|
|
3342
|
+
"name": "ignorewarnings",
|
|
3343
|
+
"allowNo": false,
|
|
3344
|
+
"type": "boolean"
|
|
3345
|
+
},
|
|
3346
|
+
"quiet": {
|
|
3347
|
+
"description": "quiet",
|
|
3348
|
+
"name": "quiet",
|
|
3349
|
+
"allowNo": false,
|
|
3350
|
+
"type": "boolean"
|
|
3351
|
+
},
|
|
3163
3352
|
"debug": {
|
|
3164
|
-
"
|
|
3165
|
-
"description": "Activate debug mode (more logs)",
|
|
3353
|
+
"description": "debug",
|
|
3166
3354
|
"name": "debug",
|
|
3167
3355
|
"allowNo": false,
|
|
3168
3356
|
"type": "boolean"
|
|
3169
3357
|
},
|
|
3170
3358
|
"websocket": {
|
|
3171
|
-
"description": "
|
|
3359
|
+
"description": "websocket",
|
|
3172
3360
|
"name": "websocket",
|
|
3173
3361
|
"hasDynamicHelp": false,
|
|
3174
3362
|
"multiple": false,
|
|
3175
3363
|
"type": "option"
|
|
3176
3364
|
},
|
|
3177
|
-
"
|
|
3178
|
-
"description": "Skip authentication check when a default username is required",
|
|
3179
|
-
"name": "skipauth",
|
|
3180
|
-
"allowNo": false,
|
|
3181
|
-
"type": "boolean"
|
|
3182
|
-
},
|
|
3183
|
-
"target-dev-hub": {
|
|
3365
|
+
"target-org": {
|
|
3184
3366
|
"aliases": [
|
|
3185
|
-
"
|
|
3367
|
+
"targetusername",
|
|
3368
|
+
"u"
|
|
3186
3369
|
],
|
|
3187
|
-
"char": "
|
|
3370
|
+
"char": "o",
|
|
3188
3371
|
"deprecateAliases": true,
|
|
3189
|
-
"name": "target-
|
|
3372
|
+
"name": "target-org",
|
|
3190
3373
|
"noCacheDefault": true,
|
|
3191
3374
|
"required": true,
|
|
3192
|
-
"summary": "Username or alias of the
|
|
3375
|
+
"summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
|
|
3193
3376
|
"hasDynamicHelp": true,
|
|
3194
3377
|
"multiple": false,
|
|
3195
3378
|
"type": "option"
|
|
@@ -3197,38 +3380,36 @@
|
|
|
3197
3380
|
},
|
|
3198
3381
|
"hasDynamicHelp": true,
|
|
3199
3382
|
"hiddenAliases": [],
|
|
3200
|
-
"id": "hardis:
|
|
3383
|
+
"id": "hardis:source:push",
|
|
3201
3384
|
"pluginAlias": "sfdx-hardis",
|
|
3202
3385
|
"pluginName": "sfdx-hardis",
|
|
3203
3386
|
"pluginType": "core",
|
|
3204
3387
|
"strict": true,
|
|
3205
3388
|
"enableJsonFlag": true,
|
|
3206
|
-
"
|
|
3389
|
+
"requiresProject": true,
|
|
3207
3390
|
"isESM": true,
|
|
3208
3391
|
"relativePath": [
|
|
3209
3392
|
"lib",
|
|
3210
3393
|
"commands",
|
|
3211
3394
|
"hardis",
|
|
3212
|
-
"
|
|
3213
|
-
"
|
|
3395
|
+
"source",
|
|
3396
|
+
"push.js"
|
|
3214
3397
|
],
|
|
3215
3398
|
"aliasPermutations": [],
|
|
3216
3399
|
"permutations": [
|
|
3217
|
-
"hardis:
|
|
3218
|
-
"
|
|
3219
|
-
"
|
|
3220
|
-
"hardis:
|
|
3221
|
-
"
|
|
3222
|
-
"
|
|
3400
|
+
"hardis:source:push",
|
|
3401
|
+
"source:hardis:push",
|
|
3402
|
+
"source:push:hardis",
|
|
3403
|
+
"hardis:push:source",
|
|
3404
|
+
"push:hardis:source",
|
|
3405
|
+
"push:source:hardis"
|
|
3223
3406
|
]
|
|
3224
3407
|
},
|
|
3225
|
-
"hardis:
|
|
3408
|
+
"hardis:source:retrieve": {
|
|
3226
3409
|
"aliases": [],
|
|
3227
3410
|
"args": {},
|
|
3228
|
-
"description": "\n## Command Behavior\n\n**
|
|
3229
|
-
"examples": [
|
|
3230
|
-
"$ sf hardis:scratch:pull"
|
|
3231
|
-
],
|
|
3411
|
+
"description": "\n## Command Behavior\n\n**A wrapper command for Salesforce CLI's `sf project retrieve start` (formerly `sfdx force:source:retrieve`), with enhanced interactive features.**\n\nThis command facilitates the retrieval of metadata from a Salesforce org into your local project. It provides an assisted experience, especially when no specific retrieval constraints are provided.\n\nKey features:\n\n- **Assisted Metadata Selection:** If no `sourcepath`, `manifest`, `metadata`, or `packagenames` flags are specified, an interactive menu will prompt you to select the metadata types you wish to retrieve.\n- **Assisted Org Selection:** If no target org is specified, an interactive menu will guide you to choose an org for the retrieval operation.\n- **Backward Compatibility:** While this command wraps the newer `sf project retrieve start`, it maintains compatibility with the older `sfdx force:source:retrieve` flags.\n\n**Important Note:** The underlying Salesforce CLI command `sfdx force:source:retrieve` is being deprecated by Salesforce in November 2024. It is recommended to migrate to `sf project retrieve start` for future compatibility. See [Salesforce CLI Migration Guide](https://developer.salesforce.com/docs/atlas.en-us.sfdx_cli_reference.meta/sfdx_cli_reference/cli_reference_mig_deploy_retrieve.htm) for more information.\n\n<details markdown=\"1\">\n<summary>Technical explanations</summary>\n\nThis command acts as an intelligent wrapper around the Salesforce CLI's source retrieval functionality:\n\n- **Command Wrapping:** It uses the `wrapSfdxCoreCommand` utility to execute the `sfdx force:source:retrieve` (or its equivalent `sf project retrieve start`) command, passing through all relevant flags and arguments.\n- **Interactive Prompts:** It leverages `MetadataUtils.promptMetadataTypes()` and `promptOrgUsernameDefault()` to provide interactive menus for metadata and org selection when the user does not provide them as flags.\n- **Argument Transformation:** It dynamically constructs the command-line arguments for the underlying Salesforce CLI command based on user selections and provided flags.\n- **Error Handling:** It includes basic error handling, such as prompting the user to re-select an org if an issue occurs during org selection.\n- **Deprecation Warning:** It explicitly logs warnings about the deprecation of `sfdx force:source:retrieve` to inform users about upcoming changes.\n</details>\n",
|
|
3412
|
+
"examples": [],
|
|
3232
3413
|
"flags": {
|
|
3233
3414
|
"json": {
|
|
3234
3415
|
"description": "Format output as json.",
|
|
@@ -3245,15 +3426,98 @@
|
|
|
3245
3426
|
"multiple": false,
|
|
3246
3427
|
"type": "option"
|
|
3247
3428
|
},
|
|
3429
|
+
"apiversion": {
|
|
3430
|
+
"char": "a",
|
|
3431
|
+
"description": "Override the api version used for api requests made by this command",
|
|
3432
|
+
"name": "apiversion",
|
|
3433
|
+
"hasDynamicHelp": false,
|
|
3434
|
+
"multiple": false,
|
|
3435
|
+
"type": "option"
|
|
3436
|
+
},
|
|
3437
|
+
"sourcepath": {
|
|
3438
|
+
"char": "p",
|
|
3439
|
+
"description": "sourcePath",
|
|
3440
|
+
"exclusive": [
|
|
3441
|
+
"manifest",
|
|
3442
|
+
"metadata"
|
|
3443
|
+
],
|
|
3444
|
+
"name": "sourcepath",
|
|
3445
|
+
"hasDynamicHelp": false,
|
|
3446
|
+
"multiple": true,
|
|
3447
|
+
"type": "option"
|
|
3448
|
+
},
|
|
3449
|
+
"wait": {
|
|
3450
|
+
"char": "w",
|
|
3451
|
+
"description": "wait",
|
|
3452
|
+
"name": "wait",
|
|
3453
|
+
"hasDynamicHelp": false,
|
|
3454
|
+
"multiple": false,
|
|
3455
|
+
"type": "option"
|
|
3456
|
+
},
|
|
3457
|
+
"manifest": {
|
|
3458
|
+
"char": "x",
|
|
3459
|
+
"description": "manifest",
|
|
3460
|
+
"exclusive": [
|
|
3461
|
+
"metadata",
|
|
3462
|
+
"sourcepath"
|
|
3463
|
+
],
|
|
3464
|
+
"name": "manifest",
|
|
3465
|
+
"hasDynamicHelp": false,
|
|
3466
|
+
"multiple": false,
|
|
3467
|
+
"type": "option"
|
|
3468
|
+
},
|
|
3469
|
+
"metadata": {
|
|
3470
|
+
"char": "m",
|
|
3471
|
+
"description": "metadata",
|
|
3472
|
+
"exclusive": [
|
|
3473
|
+
"manifest",
|
|
3474
|
+
"sourcepath"
|
|
3475
|
+
],
|
|
3476
|
+
"name": "metadata",
|
|
3477
|
+
"hasDynamicHelp": false,
|
|
3478
|
+
"multiple": true,
|
|
3479
|
+
"type": "option"
|
|
3480
|
+
},
|
|
3481
|
+
"packagenames": {
|
|
3482
|
+
"char": "n",
|
|
3483
|
+
"description": "packagenames",
|
|
3484
|
+
"name": "packagenames",
|
|
3485
|
+
"hasDynamicHelp": false,
|
|
3486
|
+
"multiple": true,
|
|
3487
|
+
"type": "option"
|
|
3488
|
+
},
|
|
3489
|
+
"tracksource": {
|
|
3490
|
+
"char": "t",
|
|
3491
|
+
"description": "tracksource",
|
|
3492
|
+
"name": "tracksource",
|
|
3493
|
+
"allowNo": false,
|
|
3494
|
+
"type": "boolean"
|
|
3495
|
+
},
|
|
3496
|
+
"forceoverwrite": {
|
|
3497
|
+
"char": "f",
|
|
3498
|
+
"dependsOn": [
|
|
3499
|
+
"tracksource"
|
|
3500
|
+
],
|
|
3501
|
+
"description": "forceoverwrite",
|
|
3502
|
+
"name": "forceoverwrite",
|
|
3503
|
+
"allowNo": false,
|
|
3504
|
+
"type": "boolean"
|
|
3505
|
+
},
|
|
3506
|
+
"verbose": {
|
|
3507
|
+
"description": "verbose",
|
|
3508
|
+
"name": "verbose",
|
|
3509
|
+
"allowNo": false,
|
|
3510
|
+
"type": "boolean"
|
|
3511
|
+
},
|
|
3248
3512
|
"debug": {
|
|
3249
3513
|
"char": "d",
|
|
3250
|
-
"description": "
|
|
3514
|
+
"description": "debugMode",
|
|
3251
3515
|
"name": "debug",
|
|
3252
3516
|
"allowNo": false,
|
|
3253
3517
|
"type": "boolean"
|
|
3254
3518
|
},
|
|
3255
3519
|
"websocket": {
|
|
3256
|
-
"description": "
|
|
3520
|
+
"description": "websocket",
|
|
3257
3521
|
"name": "websocket",
|
|
3258
3522
|
"hasDynamicHelp": false,
|
|
3259
3523
|
"multiple": false,
|
|
@@ -3283,38 +3547,37 @@
|
|
|
3283
3547
|
},
|
|
3284
3548
|
"hasDynamicHelp": true,
|
|
3285
3549
|
"hiddenAliases": [],
|
|
3286
|
-
"id": "hardis:
|
|
3550
|
+
"id": "hardis:source:retrieve",
|
|
3287
3551
|
"pluginAlias": "sfdx-hardis",
|
|
3288
3552
|
"pluginName": "sfdx-hardis",
|
|
3289
3553
|
"pluginType": "core",
|
|
3290
3554
|
"strict": true,
|
|
3291
3555
|
"enableJsonFlag": true,
|
|
3292
|
-
"title": "Scratch PULL",
|
|
3293
3556
|
"requiresProject": true,
|
|
3294
3557
|
"isESM": true,
|
|
3295
3558
|
"relativePath": [
|
|
3296
3559
|
"lib",
|
|
3297
3560
|
"commands",
|
|
3298
3561
|
"hardis",
|
|
3299
|
-
"
|
|
3300
|
-
"
|
|
3562
|
+
"source",
|
|
3563
|
+
"retrieve.js"
|
|
3301
3564
|
],
|
|
3302
3565
|
"aliasPermutations": [],
|
|
3303
3566
|
"permutations": [
|
|
3304
|
-
"hardis:
|
|
3305
|
-
"
|
|
3306
|
-
"
|
|
3307
|
-
"hardis:
|
|
3308
|
-
"
|
|
3309
|
-
"
|
|
3567
|
+
"hardis:source:retrieve",
|
|
3568
|
+
"source:hardis:retrieve",
|
|
3569
|
+
"source:retrieve:hardis",
|
|
3570
|
+
"hardis:retrieve:source",
|
|
3571
|
+
"retrieve:hardis:source",
|
|
3572
|
+
"retrieve:source:hardis"
|
|
3310
3573
|
]
|
|
3311
3574
|
},
|
|
3312
|
-
"hardis:scratch:
|
|
3575
|
+
"hardis:scratch:create": {
|
|
3313
3576
|
"aliases": [],
|
|
3314
3577
|
"args": {},
|
|
3315
|
-
"description": "## Command Behavior\n\n**
|
|
3578
|
+
"description": "\n## Command Behavior\n\n**Creates and fully initializes a Salesforce scratch org with complete development environment setup.**\n\nThis command is a comprehensive scratch org provisioning tool that automates the entire process of creating, configuring, and initializing a Salesforce scratch org for development work. It handles everything from basic org creation to advanced configuration including package installation, metadata deployment, and data initialization.\n\nKey functionalities:\n\n- **Intelligent Org Management:** Automatically generates unique scratch org aliases based on username, git branch, and timestamp, with options to reuse existing orgs or force creation of new ones.\n- **Scratch Org Pool Integration:** Supports fetching pre-configured scratch orgs from pools for faster development cycles and CI/CD optimization.\n- **Custom Scratch Definition:** Dynamically builds project-scratch-def.json files with user-specific configurations including email, username patterns, and org shape settings (set variable **SCRATCH_ORG_SHAPE** to use org shapes).\n- **Package Installation:** Automatically installs all configured packages defined in `installedPackages` configuration property.\n- **Metadata Deployment:** Pushes source code and deploys metadata using optimized deployment strategies for scratch org environments.\n- **Permission Set Assignment:** Assigns specified permission sets defined in `initPermissionSets` configuration to the scratch org user.\n- **Apex Script Execution:** Runs custom Apex initialization scripts defined in `scratchOrgInitApexScripts` for org-specific setup.\n- **Data Loading:** Loads initial data using SFDMU data packages from `dataPackages` configuration for realistic development environments.\n- **User Configuration:** Automatically configures the scratch org admin user with proper names, email, country settings, and marketing user permissions.\n- **Password Generation:** Creates and stores secure passwords for easy scratch org access during development.\n- **CI/CD Integration:** Provides specialized handling for continuous integration environments including automated cleanup and pool management.\n- **Error Handling:** Comprehensive error recovery including scratch org cleanup on failure and detailed troubleshooting messages.\n\nThe command configuration can be customized using:\n\n- `config/.sfdx-hardis.yml` file with properties like `installedPackages`, `initPermissionSets`, `scratchOrgInitApexScripts`, and `dataPackages`.\n- Environment variable **SCRATCH_ORG_SHAPE** with shape org id, if you want to use org shapes\n\n<details markdown=\"1\">\n<summary>Technical explanations</summary>\n\nThe command's technical implementation involves:\n\n- **Configuration Management:** Loads hierarchical configuration from `.sfdx-hardis.yml`, branch-specific, and user-specific configuration files using `getConfig('user')`.\n- **Alias Generation Logic:** Creates intelligent scratch org aliases using username, git branch, timestamp patterns with CI and pool prefixes for different environments.\n- **Scratch Org Definition Building:** Dynamically constructs `project-scratch-def.json` with user email, custom usernames, org shapes, and feature flags like StateAndCountryPicklist and MarketingUser.\n- **Pool Integration:** Implements scratch org pool fetching using `fetchScratchOrg` for rapid org provisioning in development and CI environments.\n- **Salesforce CLI Integration:** Executes `sf org create scratch` commands with proper parameter handling including wait times, duration, and dev hub targeting.\n- **Package Installation Pipeline:** Uses `installPackages` utility to install managed and unmanaged packages with dependency resolution and error handling.\n- **Metadata Deployment:** Leverages `initOrgMetadatas` for optimized source pushing and metadata deployment specific to scratch org environments.\n- **Permission Set Assignment:** Implements `initPermissionSetAssignments` for automated permission set assignment to scratch org users.\n- **Apex Script Execution:** Runs custom Apex initialization scripts using `initApexScripts` for org-specific configuration and setup.\n- **Data Loading Integration:** Uses SFDMU integration through `initOrgData` for comprehensive data loading from configured data packages.\n- **User Management:** Performs SOQL queries and DML operations to configure scratch org users with proper names, emails, country codes, and permission flags.\n- **Authentication Management:** Handles SFDX auth URL generation and storage for CI/CD environments and scratch org pool management.\n- **Error Recovery:** Implements comprehensive error handling with scratch org cleanup, pool management, and detailed error messaging for troubleshooting.\n- **WebSocket Integration:** Provides real-time status updates and file reporting through WebSocket connections for VS Code extension integration.\n</details>\n",
|
|
3316
3579
|
"examples": [
|
|
3317
|
-
"$ sf hardis:scratch:
|
|
3580
|
+
"$ sf hardis:scratch:create"
|
|
3318
3581
|
],
|
|
3319
3582
|
"flags": {
|
|
3320
3583
|
"json": {
|
|
@@ -3332,6 +3595,19 @@
|
|
|
3332
3595
|
"multiple": false,
|
|
3333
3596
|
"type": "option"
|
|
3334
3597
|
},
|
|
3598
|
+
"forcenew": {
|
|
3599
|
+
"char": "n",
|
|
3600
|
+
"description": "If an existing scratch org exists, do not reuse it but create a new one",
|
|
3601
|
+
"name": "forcenew",
|
|
3602
|
+
"allowNo": false,
|
|
3603
|
+
"type": "boolean"
|
|
3604
|
+
},
|
|
3605
|
+
"pool": {
|
|
3606
|
+
"description": "Creates the scratch org for a scratch org pool",
|
|
3607
|
+
"name": "pool",
|
|
3608
|
+
"allowNo": false,
|
|
3609
|
+
"type": "boolean"
|
|
3610
|
+
},
|
|
3335
3611
|
"debug": {
|
|
3336
3612
|
"char": "d",
|
|
3337
3613
|
"description": "Activate debug mode (more logs)",
|
|
@@ -3352,17 +3628,16 @@
|
|
|
3352
3628
|
"allowNo": false,
|
|
3353
3629
|
"type": "boolean"
|
|
3354
3630
|
},
|
|
3355
|
-
"target-
|
|
3631
|
+
"target-dev-hub": {
|
|
3356
3632
|
"aliases": [
|
|
3357
|
-
"
|
|
3358
|
-
"u"
|
|
3633
|
+
"targetdevhubusername"
|
|
3359
3634
|
],
|
|
3360
|
-
"char": "
|
|
3635
|
+
"char": "v",
|
|
3361
3636
|
"deprecateAliases": true,
|
|
3362
|
-
"name": "target-
|
|
3637
|
+
"name": "target-dev-hub",
|
|
3363
3638
|
"noCacheDefault": true,
|
|
3364
3639
|
"required": true,
|
|
3365
|
-
"summary": "Username or alias of the
|
|
3640
|
+
"summary": "Username or alias of the Dev Hub org. Not required if the `target-dev-hub` configuration variable is already set.",
|
|
3366
3641
|
"hasDynamicHelp": true,
|
|
3367
3642
|
"multiple": false,
|
|
3368
3643
|
"type": "option"
|
|
@@ -3370,265 +3645,88 @@
|
|
|
3370
3645
|
},
|
|
3371
3646
|
"hasDynamicHelp": true,
|
|
3372
3647
|
"hiddenAliases": [],
|
|
3373
|
-
"id": "hardis:scratch:
|
|
3648
|
+
"id": "hardis:scratch:create",
|
|
3374
3649
|
"pluginAlias": "sfdx-hardis",
|
|
3375
3650
|
"pluginName": "sfdx-hardis",
|
|
3376
3651
|
"pluginType": "core",
|
|
3377
3652
|
"strict": true,
|
|
3378
3653
|
"enableJsonFlag": true,
|
|
3379
|
-
"title": "
|
|
3654
|
+
"title": "Create and initialize scratch org",
|
|
3380
3655
|
"requiresProject": true,
|
|
3656
|
+
"requiresSfdxPlugins": [
|
|
3657
|
+
"sfdmu"
|
|
3658
|
+
],
|
|
3381
3659
|
"isESM": true,
|
|
3382
3660
|
"relativePath": [
|
|
3383
3661
|
"lib",
|
|
3384
3662
|
"commands",
|
|
3385
3663
|
"hardis",
|
|
3386
3664
|
"scratch",
|
|
3387
|
-
"
|
|
3665
|
+
"create.js"
|
|
3388
3666
|
],
|
|
3389
3667
|
"aliasPermutations": [],
|
|
3390
3668
|
"permutations": [
|
|
3391
|
-
"hardis:scratch:
|
|
3392
|
-
"scratch:hardis:
|
|
3393
|
-
"scratch:
|
|
3394
|
-
"hardis:
|
|
3395
|
-
"
|
|
3396
|
-
"
|
|
3669
|
+
"hardis:scratch:create",
|
|
3670
|
+
"scratch:hardis:create",
|
|
3671
|
+
"scratch:create:hardis",
|
|
3672
|
+
"hardis:create:scratch",
|
|
3673
|
+
"create:hardis:scratch",
|
|
3674
|
+
"create:scratch:hardis"
|
|
3397
3675
|
]
|
|
3398
3676
|
},
|
|
3399
|
-
"hardis:
|
|
3677
|
+
"hardis:scratch:delete": {
|
|
3400
3678
|
"aliases": [],
|
|
3401
3679
|
"args": {},
|
|
3402
|
-
"description": "
|
|
3403
|
-
"examples": [
|
|
3404
|
-
"$ sf hardis:
|
|
3405
|
-
],
|
|
3406
|
-
"flags": {
|
|
3407
|
-
"json": {
|
|
3408
|
-
"description": "Format output as json.",
|
|
3409
|
-
"helpGroup": "GLOBAL",
|
|
3410
|
-
"name": "json",
|
|
3411
|
-
"allowNo": false,
|
|
3412
|
-
"type": "boolean"
|
|
3413
|
-
},
|
|
3414
|
-
"flags-dir": {
|
|
3415
|
-
"helpGroup": "GLOBAL",
|
|
3416
|
-
"name": "flags-dir",
|
|
3417
|
-
"summary": "Import flag values from a directory.",
|
|
3418
|
-
"hasDynamicHelp": false,
|
|
3419
|
-
"multiple": false,
|
|
3420
|
-
"type": "option"
|
|
3421
|
-
},
|
|
3422
|
-
"checkonly": {
|
|
3423
|
-
"char": "c",
|
|
3424
|
-
"description": "checkonly",
|
|
3425
|
-
"name": "checkonly",
|
|
3426
|
-
"allowNo": false,
|
|
3427
|
-
"type": "boolean"
|
|
3428
|
-
},
|
|
3429
|
-
"soapdeploy": {
|
|
3430
|
-
"description": "soapDeploy",
|
|
3431
|
-
"name": "soapdeploy",
|
|
3432
|
-
"allowNo": false,
|
|
3433
|
-
"type": "boolean"
|
|
3434
|
-
},
|
|
3435
|
-
"wait": {
|
|
3436
|
-
"char": "w",
|
|
3437
|
-
"description": "wait",
|
|
3438
|
-
"name": "wait",
|
|
3439
|
-
"default": 60,
|
|
3440
|
-
"hasDynamicHelp": false,
|
|
3441
|
-
"multiple": false,
|
|
3442
|
-
"type": "option"
|
|
3443
|
-
},
|
|
3444
|
-
"testlevel": {
|
|
3445
|
-
"char": "l",
|
|
3446
|
-
"description": "testlevel",
|
|
3447
|
-
"name": "testlevel",
|
|
3448
|
-
"default": "NoTestRun",
|
|
3449
|
-
"hasDynamicHelp": false,
|
|
3450
|
-
"multiple": false,
|
|
3451
|
-
"options": [
|
|
3452
|
-
"NoTestRun",
|
|
3453
|
-
"RunSpecifiedTests",
|
|
3454
|
-
"RunLocalTests",
|
|
3455
|
-
"RunAllTestsInOrg"
|
|
3456
|
-
],
|
|
3457
|
-
"type": "option"
|
|
3458
|
-
},
|
|
3459
|
-
"runtests": {
|
|
3460
|
-
"char": "r",
|
|
3461
|
-
"description": "runTests",
|
|
3462
|
-
"name": "runtests",
|
|
3463
|
-
"default": [],
|
|
3464
|
-
"hasDynamicHelp": false,
|
|
3465
|
-
"multiple": true,
|
|
3466
|
-
"type": "option"
|
|
3467
|
-
},
|
|
3468
|
-
"ignoreerrors": {
|
|
3469
|
-
"description": "ignoreErrors",
|
|
3470
|
-
"name": "ignoreerrors",
|
|
3471
|
-
"allowNo": false,
|
|
3472
|
-
"type": "boolean"
|
|
3473
|
-
},
|
|
3474
|
-
"ignorewarnings": {
|
|
3475
|
-
"char": "g",
|
|
3476
|
-
"description": "ignoreWarnings",
|
|
3477
|
-
"name": "ignorewarnings",
|
|
3478
|
-
"allowNo": false,
|
|
3479
|
-
"type": "boolean"
|
|
3480
|
-
},
|
|
3481
|
-
"validateddeployrequestid": {
|
|
3482
|
-
"char": "q",
|
|
3483
|
-
"description": "validateDeployRequestId",
|
|
3484
|
-
"exclusive": [
|
|
3485
|
-
"manifest",
|
|
3486
|
-
"metadata",
|
|
3487
|
-
"sourcepath",
|
|
3488
|
-
"checkonly",
|
|
3489
|
-
"testlevel",
|
|
3490
|
-
"runtests",
|
|
3491
|
-
"ignoreerrors",
|
|
3492
|
-
"ignorewarnings"
|
|
3493
|
-
],
|
|
3494
|
-
"name": "validateddeployrequestid",
|
|
3495
|
-
"hasDynamicHelp": false,
|
|
3496
|
-
"multiple": false,
|
|
3497
|
-
"type": "option"
|
|
3498
|
-
},
|
|
3499
|
-
"verbose": {
|
|
3500
|
-
"description": "verbose",
|
|
3501
|
-
"name": "verbose",
|
|
3502
|
-
"allowNo": false,
|
|
3503
|
-
"type": "boolean"
|
|
3504
|
-
},
|
|
3505
|
-
"metadata": {
|
|
3506
|
-
"char": "m",
|
|
3507
|
-
"description": "metadata",
|
|
3508
|
-
"exclusive": [
|
|
3509
|
-
"manifest",
|
|
3510
|
-
"sourcepath"
|
|
3511
|
-
],
|
|
3512
|
-
"name": "metadata",
|
|
3513
|
-
"hasDynamicHelp": false,
|
|
3514
|
-
"multiple": true,
|
|
3515
|
-
"type": "option"
|
|
3516
|
-
},
|
|
3517
|
-
"sourcepath": {
|
|
3518
|
-
"char": "p",
|
|
3519
|
-
"description": "sourcePath",
|
|
3520
|
-
"exclusive": [
|
|
3521
|
-
"manifest",
|
|
3522
|
-
"metadata"
|
|
3523
|
-
],
|
|
3524
|
-
"name": "sourcepath",
|
|
3525
|
-
"hasDynamicHelp": false,
|
|
3526
|
-
"multiple": true,
|
|
3527
|
-
"type": "option"
|
|
3528
|
-
},
|
|
3529
|
-
"manifest": {
|
|
3530
|
-
"char": "x",
|
|
3531
|
-
"description": "flagsLong.manifest",
|
|
3532
|
-
"exclusive": [
|
|
3533
|
-
"metadata",
|
|
3534
|
-
"sourcepath"
|
|
3535
|
-
],
|
|
3536
|
-
"name": "manifest",
|
|
3537
|
-
"hasDynamicHelp": false,
|
|
3538
|
-
"multiple": false,
|
|
3539
|
-
"type": "option"
|
|
3540
|
-
},
|
|
3541
|
-
"predestructivechanges": {
|
|
3542
|
-
"dependsOn": [
|
|
3543
|
-
"manifest"
|
|
3544
|
-
],
|
|
3545
|
-
"description": "predestructivechanges",
|
|
3546
|
-
"name": "predestructivechanges",
|
|
3547
|
-
"hasDynamicHelp": false,
|
|
3548
|
-
"multiple": false,
|
|
3549
|
-
"type": "option"
|
|
3550
|
-
},
|
|
3551
|
-
"postdestructivechanges": {
|
|
3552
|
-
"dependsOn": [
|
|
3553
|
-
"manifest"
|
|
3554
|
-
],
|
|
3555
|
-
"description": "postdestructivechanges",
|
|
3556
|
-
"name": "postdestructivechanges",
|
|
3557
|
-
"hasDynamicHelp": false,
|
|
3558
|
-
"multiple": false,
|
|
3559
|
-
"type": "option"
|
|
3560
|
-
},
|
|
3561
|
-
"tracksource": {
|
|
3562
|
-
"char": "t",
|
|
3563
|
-
"description": "tracksource",
|
|
3564
|
-
"exclusive": [
|
|
3565
|
-
"checkonly",
|
|
3566
|
-
"validateddeployrequestid"
|
|
3567
|
-
],
|
|
3568
|
-
"name": "tracksource",
|
|
3569
|
-
"allowNo": false,
|
|
3570
|
-
"type": "boolean"
|
|
3571
|
-
},
|
|
3572
|
-
"forceoverwrite": {
|
|
3573
|
-
"char": "f",
|
|
3574
|
-
"dependsOn": [
|
|
3575
|
-
"tracksource"
|
|
3576
|
-
],
|
|
3577
|
-
"description": "forceoverwrite",
|
|
3578
|
-
"name": "forceoverwrite",
|
|
3680
|
+
"description": "## Command Behavior\n\n**Provides an assisted menu to delete Salesforce scratch orgs associated with a Dev Hub.**\n\nThis command simplifies the process of cleaning up your Salesforce development environments by allowing you to easily select and delete multiple scratch orgs. This is crucial for managing your scratch org limits and ensuring that you don't accumulate unnecessary or expired orgs.\n\nKey functionalities:\n\n- **Interactive Scratch Org Selection:** Displays a list of all active scratch orgs linked to your Dev Hub, including their usernames, instance URLs, and last used dates.\n- **Multi-Selection:** Allows you to select multiple scratch orgs for deletion.\n- **Confirmation Prompt:** Prompts for confirmation before proceeding with the deletion, ensuring that you don't accidentally delete important orgs.\n- **Dev Hub Integration:** Works with your configured Dev Hub to manage scratch orgs.\n\n<details markdown=\"1\">\n<summary>Technical explanations</summary>\n\nThe command's technical implementation involves:\n\n- **Salesforce CLI Integration:** It executes the `sf org list` command to retrieve a list of all scratch orgs associated with the current Dev Hub. It then filters this list to show only active orgs.\n- **Interactive Prompts:** Uses the `prompts` library to present a multi-select menu of scratch orgs to the user.\n- **Scratch Org Deletion:** For each selected scratch org, it executes the `sf org delete scratch --no-prompt` command to perform the deletion.\n- **Error Handling:** Includes basic error handling for Salesforce CLI commands.\n- **Data Sorting:** Sorts the list of scratch orgs by username, alias, and instance URL for better readability in the interactive menu.\n</details>\n",
|
|
3681
|
+
"examples": [
|
|
3682
|
+
"$ sf hardis:scratch:delete"
|
|
3683
|
+
],
|
|
3684
|
+
"flags": {
|
|
3685
|
+
"json": {
|
|
3686
|
+
"description": "Format output as json.",
|
|
3687
|
+
"helpGroup": "GLOBAL",
|
|
3688
|
+
"name": "json",
|
|
3579
3689
|
"allowNo": false,
|
|
3580
3690
|
"type": "boolean"
|
|
3581
3691
|
},
|
|
3582
|
-
"
|
|
3583
|
-
"
|
|
3584
|
-
"name": "
|
|
3692
|
+
"flags-dir": {
|
|
3693
|
+
"helpGroup": "GLOBAL",
|
|
3694
|
+
"name": "flags-dir",
|
|
3695
|
+
"summary": "Import flag values from a directory.",
|
|
3585
3696
|
"hasDynamicHelp": false,
|
|
3586
3697
|
"multiple": false,
|
|
3587
3698
|
"type": "option"
|
|
3588
3699
|
},
|
|
3589
|
-
"coverageformatters": {
|
|
3590
|
-
"description": "coverageformatters",
|
|
3591
|
-
"name": "coverageformatters",
|
|
3592
|
-
"hasDynamicHelp": false,
|
|
3593
|
-
"multiple": true,
|
|
3594
|
-
"type": "option"
|
|
3595
|
-
},
|
|
3596
|
-
"junit": {
|
|
3597
|
-
"description": "junit",
|
|
3598
|
-
"name": "junit",
|
|
3599
|
-
"allowNo": false,
|
|
3600
|
-
"type": "boolean"
|
|
3601
|
-
},
|
|
3602
|
-
"checkcoverage": {
|
|
3603
|
-
"description": "Check Apex org coverage",
|
|
3604
|
-
"name": "checkcoverage",
|
|
3605
|
-
"allowNo": false,
|
|
3606
|
-
"type": "boolean"
|
|
3607
|
-
},
|
|
3608
3700
|
"debug": {
|
|
3609
|
-
"
|
|
3701
|
+
"char": "d",
|
|
3702
|
+
"description": "Activate debug mode (more logs)",
|
|
3610
3703
|
"name": "debug",
|
|
3611
3704
|
"allowNo": false,
|
|
3612
3705
|
"type": "boolean"
|
|
3613
3706
|
},
|
|
3614
3707
|
"websocket": {
|
|
3615
|
-
"description": "
|
|
3708
|
+
"description": "Websocket host:port for VsCode SFDX Hardis UI integration",
|
|
3616
3709
|
"name": "websocket",
|
|
3617
3710
|
"hasDynamicHelp": false,
|
|
3618
3711
|
"multiple": false,
|
|
3619
3712
|
"type": "option"
|
|
3620
3713
|
},
|
|
3621
|
-
"
|
|
3714
|
+
"skipauth": {
|
|
3715
|
+
"description": "Skip authentication check when a default username is required",
|
|
3716
|
+
"name": "skipauth",
|
|
3717
|
+
"allowNo": false,
|
|
3718
|
+
"type": "boolean"
|
|
3719
|
+
},
|
|
3720
|
+
"target-dev-hub": {
|
|
3622
3721
|
"aliases": [
|
|
3623
|
-
"
|
|
3624
|
-
"u"
|
|
3722
|
+
"targetdevhubusername"
|
|
3625
3723
|
],
|
|
3626
|
-
"char": "
|
|
3724
|
+
"char": "v",
|
|
3627
3725
|
"deprecateAliases": true,
|
|
3628
|
-
"name": "target-
|
|
3726
|
+
"name": "target-dev-hub",
|
|
3629
3727
|
"noCacheDefault": true,
|
|
3630
3728
|
"required": true,
|
|
3631
|
-
"summary": "Username or alias of the
|
|
3729
|
+
"summary": "Username or alias of the Dev Hub org. Not required if the `target-dev-hub` configuration variable is already set.",
|
|
3632
3730
|
"hasDynamicHelp": true,
|
|
3633
3731
|
"multiple": false,
|
|
3634
3732
|
"type": "option"
|
|
@@ -3636,35 +3734,38 @@
|
|
|
3636
3734
|
},
|
|
3637
3735
|
"hasDynamicHelp": true,
|
|
3638
3736
|
"hiddenAliases": [],
|
|
3639
|
-
"id": "hardis:
|
|
3737
|
+
"id": "hardis:scratch:delete",
|
|
3640
3738
|
"pluginAlias": "sfdx-hardis",
|
|
3641
3739
|
"pluginName": "sfdx-hardis",
|
|
3642
3740
|
"pluginType": "core",
|
|
3643
3741
|
"strict": true,
|
|
3644
3742
|
"enableJsonFlag": true,
|
|
3645
|
-
"
|
|
3743
|
+
"title": "Delete scratch orgs(s)",
|
|
3646
3744
|
"isESM": true,
|
|
3647
3745
|
"relativePath": [
|
|
3648
3746
|
"lib",
|
|
3649
3747
|
"commands",
|
|
3650
3748
|
"hardis",
|
|
3651
|
-
"
|
|
3652
|
-
"
|
|
3749
|
+
"scratch",
|
|
3750
|
+
"delete.js"
|
|
3653
3751
|
],
|
|
3654
3752
|
"aliasPermutations": [],
|
|
3655
3753
|
"permutations": [
|
|
3656
|
-
"hardis:
|
|
3657
|
-
"
|
|
3658
|
-
"
|
|
3659
|
-
"hardis:
|
|
3660
|
-
"
|
|
3661
|
-
"
|
|
3754
|
+
"hardis:scratch:delete",
|
|
3755
|
+
"scratch:hardis:delete",
|
|
3756
|
+
"scratch:delete:hardis",
|
|
3757
|
+
"hardis:delete:scratch",
|
|
3758
|
+
"delete:hardis:scratch",
|
|
3759
|
+
"delete:scratch:hardis"
|
|
3662
3760
|
]
|
|
3663
3761
|
},
|
|
3664
|
-
"hardis:
|
|
3762
|
+
"hardis:scratch:pull": {
|
|
3665
3763
|
"aliases": [],
|
|
3666
3764
|
"args": {},
|
|
3667
|
-
"description": "
|
|
3765
|
+
"description": "\n## Command Behavior\n\n**Pulls metadata changes from your scratch org or source-tracked sandbox into your local project files.**\n\nThis command is essential for synchronizing your local development environment with the changes you've made directly in your Salesforce org. After pulling, you can then stage and commit the relevant files to your version control system.\n\nKey features and considerations:\n\n- **Underlying Command:** Internally, this command executes `sf project retrieve start` to fetch the metadata.\n- **Error Handling:** If the pull operation encounters errors, it offers to automatically add the problematic items to your `.forceignore` file and then attempts to pull again, helping you resolve conflicts and ignore unwanted metadata.\n- **Missing Updates:** If you don't see certain updated items in the pull results, you might need to manually retrieve them using the Salesforce Extension's **Org Browser** or the **Salesforce CLI** directly. Refer to the [Retrieve Metadatas documentation](https://sfdx-hardis.cloudity.com/salesforce-ci-cd-publish-task/#retrieve-metadatas) for more details.\n- **Automatic Retrieval:** You can configure the `autoRetrieveWhenPull` property in your `.sfdx-hardis.yml` file to always retrieve specific metadata types (e.g., `CustomApplication`) that might not always be detected as updates by `project:retrieve:start`.\n\nExample `.sfdx-hardis.yml` configuration for `autoRetrieveWhenPull`:\n```yaml\nautoRetrieveWhenPull:\n - CustomApplication:MyCustomApplication\n - CustomApplication:MyOtherCustomApplication\n - CustomApplication:MyThirdCustomApp\n```\n\nFor a visual explanation of the process, watch this video:\n\n<iframe width=\"560\" height=\"315\" src=\"https://www.youtube.com/embed/Ik6whtflmfY\" title=\"YouTube video player\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen></iframe>\n\n<details markdown=\"1\">\n<summary>Technical explanations</summary>\n\nThe command's technical implementation focuses on robust metadata synchronization:\n\n- **Salesforce CLI Wrapper:** It acts as a wrapper around the standard Salesforce CLI `sf project retrieve start` command, providing enhanced error handling and configuration options.\n- **Force Source Pull Utility:** The core logic resides in the `forceSourcePull` utility function, which orchestrates the retrieval process, including handling `.forceignore` updates.\n- **Configuration Integration:** It reads the `autoRetrieveWhenPull` setting from the project's `.sfdx-hardis.yml` to determine additional metadata to retrieve automatically.\n- **User Feedback:** Provides clear messages to the user regarding the pull status and guidance for troubleshooting.\n</details>\n",
|
|
3766
|
+
"examples": [
|
|
3767
|
+
"$ sf hardis:scratch:pull"
|
|
3768
|
+
],
|
|
3668
3769
|
"flags": {
|
|
3669
3770
|
"json": {
|
|
3670
3771
|
"description": "Format output as json.",
|
|
@@ -3681,48 +3782,26 @@
|
|
|
3681
3782
|
"multiple": false,
|
|
3682
3783
|
"type": "option"
|
|
3683
3784
|
},
|
|
3684
|
-
"forceoverwrite": {
|
|
3685
|
-
"char": "f",
|
|
3686
|
-
"description": "forceoverwrite",
|
|
3687
|
-
"name": "forceoverwrite",
|
|
3688
|
-
"allowNo": false,
|
|
3689
|
-
"type": "boolean"
|
|
3690
|
-
},
|
|
3691
|
-
"wait": {
|
|
3692
|
-
"char": "w",
|
|
3693
|
-
"description": "wait",
|
|
3694
|
-
"name": "wait",
|
|
3695
|
-
"default": 60,
|
|
3696
|
-
"hasDynamicHelp": false,
|
|
3697
|
-
"multiple": false,
|
|
3698
|
-
"type": "option"
|
|
3699
|
-
},
|
|
3700
|
-
"ignorewarnings": {
|
|
3701
|
-
"char": "g",
|
|
3702
|
-
"description": "ignorewarnings",
|
|
3703
|
-
"name": "ignorewarnings",
|
|
3704
|
-
"allowNo": false,
|
|
3705
|
-
"type": "boolean"
|
|
3706
|
-
},
|
|
3707
|
-
"quiet": {
|
|
3708
|
-
"description": "quiet",
|
|
3709
|
-
"name": "quiet",
|
|
3710
|
-
"allowNo": false,
|
|
3711
|
-
"type": "boolean"
|
|
3712
|
-
},
|
|
3713
3785
|
"debug": {
|
|
3714
|
-
"
|
|
3786
|
+
"char": "d",
|
|
3787
|
+
"description": "Activate debug mode (more logs)",
|
|
3715
3788
|
"name": "debug",
|
|
3716
3789
|
"allowNo": false,
|
|
3717
3790
|
"type": "boolean"
|
|
3718
3791
|
},
|
|
3719
3792
|
"websocket": {
|
|
3720
|
-
"description": "
|
|
3793
|
+
"description": "Websocket host:port for VsCode SFDX Hardis UI integration",
|
|
3721
3794
|
"name": "websocket",
|
|
3722
3795
|
"hasDynamicHelp": false,
|
|
3723
3796
|
"multiple": false,
|
|
3724
3797
|
"type": "option"
|
|
3725
3798
|
},
|
|
3799
|
+
"skipauth": {
|
|
3800
|
+
"description": "Skip authentication check when a default username is required",
|
|
3801
|
+
"name": "skipauth",
|
|
3802
|
+
"allowNo": false,
|
|
3803
|
+
"type": "boolean"
|
|
3804
|
+
},
|
|
3726
3805
|
"target-org": {
|
|
3727
3806
|
"aliases": [
|
|
3728
3807
|
"targetusername",
|
|
@@ -3741,36 +3820,39 @@
|
|
|
3741
3820
|
},
|
|
3742
3821
|
"hasDynamicHelp": true,
|
|
3743
3822
|
"hiddenAliases": [],
|
|
3744
|
-
"id": "hardis:
|
|
3823
|
+
"id": "hardis:scratch:pull",
|
|
3745
3824
|
"pluginAlias": "sfdx-hardis",
|
|
3746
3825
|
"pluginName": "sfdx-hardis",
|
|
3747
3826
|
"pluginType": "core",
|
|
3748
3827
|
"strict": true,
|
|
3749
3828
|
"enableJsonFlag": true,
|
|
3829
|
+
"title": "Scratch PULL",
|
|
3750
3830
|
"requiresProject": true,
|
|
3751
3831
|
"isESM": true,
|
|
3752
3832
|
"relativePath": [
|
|
3753
3833
|
"lib",
|
|
3754
3834
|
"commands",
|
|
3755
3835
|
"hardis",
|
|
3756
|
-
"
|
|
3757
|
-
"
|
|
3836
|
+
"scratch",
|
|
3837
|
+
"pull.js"
|
|
3758
3838
|
],
|
|
3759
3839
|
"aliasPermutations": [],
|
|
3760
3840
|
"permutations": [
|
|
3761
|
-
"hardis:
|
|
3762
|
-
"
|
|
3763
|
-
"
|
|
3764
|
-
"hardis:
|
|
3765
|
-
"
|
|
3766
|
-
"
|
|
3841
|
+
"hardis:scratch:pull",
|
|
3842
|
+
"scratch:hardis:pull",
|
|
3843
|
+
"scratch:pull:hardis",
|
|
3844
|
+
"hardis:pull:scratch",
|
|
3845
|
+
"pull:hardis:scratch",
|
|
3846
|
+
"pull:scratch:hardis"
|
|
3767
3847
|
]
|
|
3768
3848
|
},
|
|
3769
|
-
"hardis:
|
|
3849
|
+
"hardis:scratch:push": {
|
|
3770
3850
|
"aliases": [],
|
|
3771
3851
|
"args": {},
|
|
3772
|
-
"description": "
|
|
3773
|
-
"examples": [
|
|
3852
|
+
"description": "## Command Behavior\n\n**Pushes local Salesforce DX source files to a scratch org or source-tracked sandbox.**\n\nThis command is a fundamental operation in Salesforce DX development, allowing developers to synchronize their local codebase with their development org. It ensures that changes made locally are reflected in the scratch org, enabling testing and validation.\n\nKey functionalities:\n\n- **Source Synchronization:** Deploys all local changes (metadata and code) to the target scratch org.\n- **Underlying Command:** Internally, this command executes `sf project deploy start` to perform the push operation.\n\n<details markdown=\"1\">\n<summary>Technical explanations</summary>\n\nThe command's technical implementation involves:\n\n- **Salesforce CLI Wrapper:** It acts as a wrapper around the standard Salesforce CLI `sf project deploy start` command.\n- **`forceSourcePush` Utility:** The core logic resides in the `forceSourcePush` utility function, which orchestrates the deployment process.\n- **Connection Handling:** It uses the connection to the target org to perform the push operation.\n</details>\n",
|
|
3853
|
+
"examples": [
|
|
3854
|
+
"$ sf hardis:scratch:push"
|
|
3855
|
+
],
|
|
3774
3856
|
"flags": {
|
|
3775
3857
|
"json": {
|
|
3776
3858
|
"description": "Format output as json.",
|
|
@@ -3787,98 +3869,15 @@
|
|
|
3787
3869
|
"multiple": false,
|
|
3788
3870
|
"type": "option"
|
|
3789
3871
|
},
|
|
3790
|
-
"apiversion": {
|
|
3791
|
-
"char": "a",
|
|
3792
|
-
"description": "Override the api version used for api requests made by this command",
|
|
3793
|
-
"name": "apiversion",
|
|
3794
|
-
"hasDynamicHelp": false,
|
|
3795
|
-
"multiple": false,
|
|
3796
|
-
"type": "option"
|
|
3797
|
-
},
|
|
3798
|
-
"sourcepath": {
|
|
3799
|
-
"char": "p",
|
|
3800
|
-
"description": "sourcePath",
|
|
3801
|
-
"exclusive": [
|
|
3802
|
-
"manifest",
|
|
3803
|
-
"metadata"
|
|
3804
|
-
],
|
|
3805
|
-
"name": "sourcepath",
|
|
3806
|
-
"hasDynamicHelp": false,
|
|
3807
|
-
"multiple": true,
|
|
3808
|
-
"type": "option"
|
|
3809
|
-
},
|
|
3810
|
-
"wait": {
|
|
3811
|
-
"char": "w",
|
|
3812
|
-
"description": "wait",
|
|
3813
|
-
"name": "wait",
|
|
3814
|
-
"hasDynamicHelp": false,
|
|
3815
|
-
"multiple": false,
|
|
3816
|
-
"type": "option"
|
|
3817
|
-
},
|
|
3818
|
-
"manifest": {
|
|
3819
|
-
"char": "x",
|
|
3820
|
-
"description": "manifest",
|
|
3821
|
-
"exclusive": [
|
|
3822
|
-
"metadata",
|
|
3823
|
-
"sourcepath"
|
|
3824
|
-
],
|
|
3825
|
-
"name": "manifest",
|
|
3826
|
-
"hasDynamicHelp": false,
|
|
3827
|
-
"multiple": false,
|
|
3828
|
-
"type": "option"
|
|
3829
|
-
},
|
|
3830
|
-
"metadata": {
|
|
3831
|
-
"char": "m",
|
|
3832
|
-
"description": "metadata",
|
|
3833
|
-
"exclusive": [
|
|
3834
|
-
"manifest",
|
|
3835
|
-
"sourcepath"
|
|
3836
|
-
],
|
|
3837
|
-
"name": "metadata",
|
|
3838
|
-
"hasDynamicHelp": false,
|
|
3839
|
-
"multiple": true,
|
|
3840
|
-
"type": "option"
|
|
3841
|
-
},
|
|
3842
|
-
"packagenames": {
|
|
3843
|
-
"char": "n",
|
|
3844
|
-
"description": "packagenames",
|
|
3845
|
-
"name": "packagenames",
|
|
3846
|
-
"hasDynamicHelp": false,
|
|
3847
|
-
"multiple": true,
|
|
3848
|
-
"type": "option"
|
|
3849
|
-
},
|
|
3850
|
-
"tracksource": {
|
|
3851
|
-
"char": "t",
|
|
3852
|
-
"description": "tracksource",
|
|
3853
|
-
"name": "tracksource",
|
|
3854
|
-
"allowNo": false,
|
|
3855
|
-
"type": "boolean"
|
|
3856
|
-
},
|
|
3857
|
-
"forceoverwrite": {
|
|
3858
|
-
"char": "f",
|
|
3859
|
-
"dependsOn": [
|
|
3860
|
-
"tracksource"
|
|
3861
|
-
],
|
|
3862
|
-
"description": "forceoverwrite",
|
|
3863
|
-
"name": "forceoverwrite",
|
|
3864
|
-
"allowNo": false,
|
|
3865
|
-
"type": "boolean"
|
|
3866
|
-
},
|
|
3867
|
-
"verbose": {
|
|
3868
|
-
"description": "verbose",
|
|
3869
|
-
"name": "verbose",
|
|
3870
|
-
"allowNo": false,
|
|
3871
|
-
"type": "boolean"
|
|
3872
|
-
},
|
|
3873
3872
|
"debug": {
|
|
3874
3873
|
"char": "d",
|
|
3875
|
-
"description": "
|
|
3874
|
+
"description": "Activate debug mode (more logs)",
|
|
3876
3875
|
"name": "debug",
|
|
3877
3876
|
"allowNo": false,
|
|
3878
3877
|
"type": "boolean"
|
|
3879
3878
|
},
|
|
3880
3879
|
"websocket": {
|
|
3881
|
-
"description": "
|
|
3880
|
+
"description": "Websocket host:port for VsCode SFDX Hardis UI integration",
|
|
3882
3881
|
"name": "websocket",
|
|
3883
3882
|
"hasDynamicHelp": false,
|
|
3884
3883
|
"multiple": false,
|
|
@@ -3908,29 +3907,30 @@
|
|
|
3908
3907
|
},
|
|
3909
3908
|
"hasDynamicHelp": true,
|
|
3910
3909
|
"hiddenAliases": [],
|
|
3911
|
-
"id": "hardis:
|
|
3910
|
+
"id": "hardis:scratch:push",
|
|
3912
3911
|
"pluginAlias": "sfdx-hardis",
|
|
3913
3912
|
"pluginName": "sfdx-hardis",
|
|
3914
3913
|
"pluginType": "core",
|
|
3915
3914
|
"strict": true,
|
|
3916
3915
|
"enableJsonFlag": true,
|
|
3916
|
+
"title": "Scratch PUSH",
|
|
3917
3917
|
"requiresProject": true,
|
|
3918
3918
|
"isESM": true,
|
|
3919
3919
|
"relativePath": [
|
|
3920
3920
|
"lib",
|
|
3921
3921
|
"commands",
|
|
3922
3922
|
"hardis",
|
|
3923
|
-
"
|
|
3924
|
-
"
|
|
3923
|
+
"scratch",
|
|
3924
|
+
"push.js"
|
|
3925
3925
|
],
|
|
3926
3926
|
"aliasPermutations": [],
|
|
3927
3927
|
"permutations": [
|
|
3928
|
-
"hardis:
|
|
3929
|
-
"
|
|
3930
|
-
"
|
|
3931
|
-
"hardis:
|
|
3932
|
-
"
|
|
3933
|
-
"
|
|
3928
|
+
"hardis:scratch:push",
|
|
3929
|
+
"scratch:hardis:push",
|
|
3930
|
+
"scratch:push:hardis",
|
|
3931
|
+
"hardis:push:scratch",
|
|
3932
|
+
"push:hardis:scratch",
|
|
3933
|
+
"push:scratch:hardis"
|
|
3934
3934
|
]
|
|
3935
3935
|
},
|
|
3936
3936
|
"hardis:work:new": {
|
|
@@ -15719,5 +15719,5 @@
|
|
|
15719
15719
|
]
|
|
15720
15720
|
}
|
|
15721
15721
|
},
|
|
15722
|
-
"version": "6.
|
|
15722
|
+
"version": "6.15.1-beta202512081818.0"
|
|
15723
15723
|
}
|