From b2ca091c633150d570d7c64b8da4e2fd1e85e51b Mon Sep 17 00:00:00 2001 From: Steve Hetzel Date: Wed, 14 Dec 2022 14:37:23 -0700 Subject: [PATCH] Sh/api version updates (#673) * fix: modify api version messaging for SDR changes * fix: bump versions of SDR and STL and core * chore: fix NUT for mdapi retrieve --- messages/deployCommand.json | 4 ++- messages/retrieve.json | 3 +- messages/spinner.json | 2 +- package.json | 8 ++--- src/commands/force/mdapi/deploy.ts | 21 ++++++------- src/commands/force/mdapi/retrieve.ts | 19 ++++++++++-- src/commands/force/source/deploy.ts | 27 ++++++++++------- src/commands/force/source/pull.ts | 23 +++++++++++++-- src/commands/force/source/push.ts | 34 +++++++++++++++------- src/commands/force/source/retrieve.ts | 29 +++++++++++++----- src/deployCommand.ts | 29 ------------------ test/commands/source/deployCommand.test.ts | 23 +-------------- test/nuts/mdapi.nut.ts | 2 +- test/tsconfig.json | 3 +- yarn.lock | 24 +++++++-------- 15 files changed, 134 insertions(+), 117 deletions(-) diff --git a/messages/deployCommand.json b/messages/deployCommand.json index 1297068ef..d659184ce 100644 --- a/messages/deployCommand.json +++ b/messages/deployCommand.json @@ -1,5 +1,7 @@ { "resultsDirMissing": "You must supply the --resultsdir parameter when choosing to produce code coverage or JUnit reports.", "MissingDeployId": "No deploy ID was provided or found in deploy history.", - "invalidDeployId": "The provided ID is invalid, deploy IDs must start with '0Af'." + "invalidDeployId": "The provided ID is invalid, deploy IDs must start with '0Af'.", + "apiVersionMsgBasic": "Deploying metadata to %s using the v%s %s API", + "apiVersionMsgDetailed": "%s v%s metadata to %s using the v%s %s API" } diff --git a/messages/retrieve.json b/messages/retrieve.json index 4f79a0f68..54bd28290 100644 --- a/messages/retrieve.json +++ b/messages/retrieve.json @@ -60,5 +60,6 @@ "nothingToRetrieve": "Specify a source path, manifest, metadata, or package names to retrieve.", "wantsToRetrieveCustomFields": "Because you're retrieving one or more CustomFields, we're also retrieving the CustomObject to which it's associated.", "retrieveWontDelete": "You currently have files deleted in your org. The retrieve command will NOT delete them from your local project", - "retrieveTargetDirOverlapsPackage": "The retrieve target directory [%s] overlaps one of your package directories. Specify a different retrieve target directory and try again." + "retrieveTargetDirOverlapsPackage": "The retrieve target directory [%s] overlaps one of your package directories. Specify a different retrieve target directory and try again.", + "apiVersionMsgDetailed": "%s v%s metadata from %s using the v%s SOAP API" } diff --git a/messages/spinner.json b/messages/spinner.json index c86252c9b..1777d69e2 100644 --- a/messages/spinner.json +++ b/messages/spinner.json @@ -2,7 +2,7 @@ "retrieve": { "main": "Retrieving metadata from %s", "componentSetBuild": "Preparing retrieve request", - "sendingRequest": "Sending request to org (metadata API version %s)", + "sendingRequest": "Sending request to org", "polling": "Waiting for the org to respond" } } diff --git a/package.json b/package.json index fcfd61d0b..219b5aa95 100644 --- a/package.json +++ b/package.json @@ -10,10 +10,10 @@ "@oclif/plugin-help": "^3.3.1", "@salesforce/apex-node": "^1.4.0", "@salesforce/command": "^5.2.27", - "@salesforce/core": "^3.32.5", + "@salesforce/core": "^3.32.8", "@salesforce/kit": "^1.8.0", - "@salesforce/source-deploy-retrieve": "^7.5.13", - "@salesforce/source-tracking": "^2.2.14", + "@salesforce/source-deploy-retrieve": "^7.5.17", + "@salesforce/source-tracking": "^2.2.15", "chalk": "^4.1.2", "got": "^11.8.3", "jsforce": "^2.0.0-beta.19", @@ -188,4 +188,4 @@ "publishConfig": { "access": "public" } -} \ No newline at end of file +} diff --git a/src/commands/force/mdapi/deploy.ts b/src/commands/force/mdapi/deploy.ts index b1bb08afd..e9578d6d3 100644 --- a/src/commands/force/mdapi/deploy.ts +++ b/src/commands/force/mdapi/deploy.ts @@ -8,14 +8,8 @@ import { EOL } from 'os'; import { flags, FlagsConfig } from '@salesforce/command'; import { Duration, env } from '@salesforce/kit'; import { Messages } from '@salesforce/core'; -import { MetadataApiDeploy } from '@salesforce/source-deploy-retrieve'; -import { - DeployCommand, - getCoverageFormattersOptions, - getVersionMessage, - reportsFormatters, - TestLevel, -} from '../../../deployCommand'; +import { DeployVersionData, MetadataApiDeploy } from '@salesforce/source-deploy-retrieve'; +import { DeployCommand, getCoverageFormattersOptions, reportsFormatters, TestLevel } from '../../../deployCommand'; import { DeployCommandAsyncResult } from '../../../formatters/source/deployAsyncResultFormatter'; import { MdDeployResult, MdDeployResultFormatter } from '../../../formatters/mdapi/mdDeployResultFormatter'; import { ProgressFormatter } from '../../../formatters/progressFormatter'; @@ -26,6 +20,7 @@ import { ResultFormatterOptions } from '../../../formatters/resultFormatter'; Messages.importMessagesDirectory(__dirname); const messages = Messages.loadMessages('@salesforce/plugin-source', 'md.deploy'); +const deployMessages = Messages.loadMessages('@salesforce/plugin-source', 'deployCommand'); const xorFlags = ['zipfile', 'validateddeployrequestid', 'deploydir']; @@ -140,10 +135,11 @@ export class Deploy extends DeployCommand { const deploymentOptions = this.flags.zipfile ? { zipPath: this.flags.zipfile as string } : { mdapiPath: this.flags.deploydir as string }; + const username = this.org.getUsername(); // still here? we need to deploy a zip file then const deploy = new MetadataApiDeploy({ - usernameOrConnection: this.org.getUsername(), + usernameOrConnection: username, ...deploymentOptions, apiOptions: { // properties that will always have values @@ -162,13 +158,14 @@ export class Deploy extends DeployCommand { ...(this.getFlag('runtests') ? { runTests: this.getFlag('runtests') } : {}), }, }); + // eslint-disable-next-line @typescript-eslint/require-await + this.lifecycle.on('apiVersionDeploy', async (apiData: DeployVersionData) => { + this.ux.log(deployMessages.getMessage('apiVersionMsgBasic', [username, apiData.apiVersion, apiData.webService])); + }); await deploy.start(); this.asyncDeployResult = { id: deploy.id }; this.updateDeployId(deploy.id); - // we might not know the source api version without unzipping a zip file, so we don't use componentSet - this.ux.log(getVersionMessage('Deploying', undefined, this.isRest)); - if (!this.isAsync) { if (!this.isJsonOutput()) { const progressFormatter: ProgressFormatter = env.getBoolean('SFDX_USE_PROGRESS_BAR', true) diff --git a/src/commands/force/mdapi/retrieve.ts b/src/commands/force/mdapi/retrieve.ts index d95bbbc4e..39aebdc3f 100644 --- a/src/commands/force/mdapi/retrieve.ts +++ b/src/commands/force/mdapi/retrieve.ts @@ -14,6 +14,7 @@ import { MetadataApiRetrieve, RequestStatus, RetrieveResult, + RetrieveVersionData, } from '@salesforce/source-deploy-retrieve'; import { Optional } from '@salesforce/ts-types'; import { resolveZipFileName, SourceCommand } from '../../../sourceCommand'; @@ -27,6 +28,7 @@ import { Messages.importMessagesDirectory(__dirname); const messages = Messages.loadMessages('@salesforce/plugin-source', 'md.retrieve'); const spinnerMessages = Messages.loadMessages('@salesforce/plugin-source', 'spinner'); +const retrieveMessages = Messages.load('@salesforce/plugin-source', 'retrieve', ['apiVersionMsgDetailed']); export class Retrieve extends SourceCommand { public static aliases = ['force:mdapi:beta:retrieve']; @@ -142,11 +144,22 @@ export class Retrieve extends SourceCommand { }); await this.lifecycle.emit('preretrieve', { packageXmlPath: manifest }); - - this.ux.setSpinnerStatus(spinnerMessages.getMessage('retrieve.sendingRequest', [this.componentSet.apiVersion])); + const username = this.org.getUsername(); + // eslint-disable-next-line @typescript-eslint/require-await + this.lifecycle.on('apiVersionRetrieve', async (apiData: RetrieveVersionData) => { + this.ux.log( + retrieveMessages.getMessage('apiVersionMsgDetailed', [ + 'Retrieving', + apiData.manifestVersion, + username, + apiData.apiVersion, + ]) + ); + }); + this.ux.setSpinnerStatus(spinnerMessages.getMessage('retrieve.sendingRequest')); this.mdapiRetrieve = await this.componentSet.retrieve({ - usernameOrConnection: this.org.getUsername(), + usernameOrConnection: username, output: this.retrieveTargetDir, packageOptions: this.getFlag('packagenames'), format: 'metadata', diff --git a/src/commands/force/source/deploy.ts b/src/commands/force/source/deploy.ts index 61c13fa8a..78141b423 100644 --- a/src/commands/force/source/deploy.ts +++ b/src/commands/force/source/deploy.ts @@ -9,14 +9,8 @@ import { flags, FlagsConfig } from '@salesforce/command'; import { Messages } from '@salesforce/core'; import { Duration, env } from '@salesforce/kit'; import { SourceTracking } from '@salesforce/source-tracking'; -import { ComponentSetBuilder } from '@salesforce/source-deploy-retrieve'; -import { - DeployCommand, - getCoverageFormattersOptions, - getVersionMessage, - reportsFormatters, - TestLevel, -} from '../../../deployCommand'; +import { ComponentSetBuilder, DeployVersionData } from '@salesforce/source-deploy-retrieve'; +import { DeployCommand, getCoverageFormattersOptions, reportsFormatters, TestLevel } from '../../../deployCommand'; import { DeployCommandResult, DeployResultFormatter } from '../../../formatters/deployResultFormatter'; import { DeployAsyncResultFormatter, @@ -30,6 +24,7 @@ import { ResultFormatterOptions } from '../../../formatters/resultFormatter'; Messages.importMessagesDirectory(__dirname); const messages = Messages.loadMessages('@salesforce/plugin-source', 'deploy'); +const deployMessages = Messages.loadMessages('@salesforce/plugin-source', 'deployCommand'); // One of these flags must be specified for a valid deploy. const xorFlags = ['manifest', 'metadata', 'sourcepath', 'validateddeployrequestid']; @@ -209,10 +204,22 @@ export class Deploy extends DeployCommand { } // fire predeploy event for sync and async deploys await this.lifecycle.emit('predeploy', this.componentSet.toArray()); - this.ux.log(getVersionMessage('Deploying', this.componentSet, this.isRest)); + const username = this.org.getUsername(); + // eslint-disable-next-line @typescript-eslint/require-await + this.lifecycle.on('apiVersionDeploy', async (apiData: DeployVersionData) => { + this.ux.log( + deployMessages.getMessage('apiVersionMsgDetailed', [ + 'Deploying', + apiData.manifestVersion, + username, + apiData.apiVersion, + apiData.webService, + ]) + ); + }); const deploy = await this.componentSet.deploy({ - usernameOrConnection: this.org.getUsername(), + usernameOrConnection: username, apiOptions: { ...{ purgeOnDelete: this.getFlag('purgeondelete', false), diff --git a/src/commands/force/source/pull.ts b/src/commands/force/source/pull.ts index af0bc5bcf..3c02380a4 100644 --- a/src/commands/force/source/pull.ts +++ b/src/commands/force/source/pull.ts @@ -8,7 +8,13 @@ import { flags, FlagsConfig } from '@salesforce/command'; import { Duration } from '@salesforce/kit'; import { Messages } from '@salesforce/core'; -import { FileResponse, RequestStatus, RetrieveResult, SourceComponent } from '@salesforce/source-deploy-retrieve'; +import { + FileResponse, + RequestStatus, + RetrieveVersionData, + RetrieveResult, + SourceComponent, +} from '@salesforce/source-deploy-retrieve'; import { SourceTracking } from '@salesforce/source-tracking'; import { SourceCommand } from '../../../sourceCommand'; import { PullResponse, PullResultFormatter } from '../../../formatters/source/pullFormatter'; @@ -21,6 +27,7 @@ const messages = Messages.load('@salesforce/plugin-source', 'pull', [ 'help', 'flags.waitLong', ]); +const retrieveMessages = Messages.load('@salesforce/plugin-source', 'retrieve', ['apiVersionMsgDetailed']); export default class Pull extends SourceCommand { public static aliases = ['force:source:beta:pull']; @@ -94,9 +101,21 @@ export default class Pull extends SourceCommand { if (this.getFlag('apiversion')) { componentSet.apiVersion = this.getFlag('apiversion'); } + const username = this.org.getUsername(); + // eslint-disable-next-line @typescript-eslint/require-await + this.lifecycle.on('apiVersionRetrieve', async (apiData: RetrieveVersionData) => { + this.ux.log( + retrieveMessages.getMessage('apiVersionMsgDetailed', [ + 'Pulling', + apiData.manifestVersion, + username, + apiData.apiVersion, + ]) + ); + }); const mdapiRetrieve = await componentSet.retrieve({ - usernameOrConnection: this.org.getUsername(), + usernameOrConnection: username, merge: true, output: this.project.getDefaultPackage().fullPath, }); diff --git a/src/commands/force/source/push.ts b/src/commands/force/source/push.ts index dc8ac613a..453a2949f 100644 --- a/src/commands/force/source/push.ts +++ b/src/commands/force/source/push.ts @@ -8,10 +8,10 @@ import { flags, FlagsConfig } from '@salesforce/command'; import { Duration, env } from '@salesforce/kit'; import { Messages } from '@salesforce/core'; -import { DeployResult, RequestStatus } from '@salesforce/source-deploy-retrieve'; +import { DeployResult, DeployVersionData, RequestStatus } from '@salesforce/source-deploy-retrieve'; import { SourceTracking } from '@salesforce/source-tracking'; import { getBoolean } from '@salesforce/ts-types'; -import { DeployCommand, getVersionMessage } from '../../../deployCommand'; +import { DeployCommand } from '../../../deployCommand'; import { PushResponse, PushResultFormatter } from '../../../formatters/source/pushResultFormatter'; import { ProgressFormatter } from '../../../formatters/progressFormatter'; import { DeployProgressBarFormatter } from '../../../formatters/deployProgressBarFormatter'; @@ -20,6 +20,7 @@ import { trackingSetup, updateTracking } from '../../../trackingFunctions'; Messages.importMessagesDirectory(__dirname); const messages = Messages.loadMessages('@salesforce/plugin-source', 'push'); +const deployMessages = Messages.loadMessages('@salesforce/plugin-source', 'deployCommand'); export default class Push extends DeployCommand { public static aliases = ['force:source:beta:push']; @@ -105,10 +106,22 @@ export default class Push extends DeployCommand { // fire predeploy event for sync and async deploys await this.lifecycle.emit('predeploy', componentSet.toArray()); - this.ux.log(getVersionMessage('Pushing', componentSet, isRest)); + const username = this.org.getUsername(); + // eslint-disable-next-line @typescript-eslint/require-await + this.lifecycle.on('apiVersionDeploy', async (apiData: DeployVersionData) => { + this.ux.log( + deployMessages.getMessage('apiVersionMsgDetailed', [ + 'Pushing', + apiData.manifestVersion, + username, + apiData.apiVersion, + apiData.webService, + ]) + ); + }); const deploy = await componentSet.deploy({ - usernameOrConnection: this.org.getUsername(), + usernameOrConnection: username, apiOptions: { ignoreWarnings: this.getFlag('ignorewarnings', false), rest: isRest, @@ -175,13 +188,12 @@ export default class Push extends DeployCommand { return this.setExitCode(69); } - const isSuccessLike = (result: DeployResult): boolean => ( - result.response.status === RequestStatus.Succeeded || - // successful-ish (only warnings about deleted things that are already deleted) - (result.response.status === RequestStatus.Failed && - result.getFileResponses().every((fr) => fr.state !== 'Failed') && - !result.response.errorMessage) - ); + const isSuccessLike = (result: DeployResult): boolean => + result.response.status === RequestStatus.Succeeded || + // successful-ish (only warnings about deleted things that are already deleted) + (result.response.status === RequestStatus.Failed && + result.getFileResponses().every((fr) => fr.state !== 'Failed') && + !result.response.errorMessage); // all successes if (this.deployResults.every((result) => isSuccessLike(result))) { return this.setExitCode(0); diff --git a/src/commands/force/source/retrieve.ts b/src/commands/force/source/retrieve.ts index 876f74e9c..ed70232d9 100644 --- a/src/commands/force/source/retrieve.ts +++ b/src/commands/force/source/retrieve.ts @@ -11,7 +11,13 @@ import * as fs from 'fs'; import { flags, FlagsConfig } from '@salesforce/command'; import { Messages, SfError, SfProject } from '@salesforce/core'; import { Duration } from '@salesforce/kit'; -import { ComponentSet, ComponentSetBuilder, RequestStatus, RetrieveResult } from '@salesforce/source-deploy-retrieve'; +import { + ComponentSet, + ComponentSetBuilder, + RequestStatus, + RetrieveVersionData, + RetrieveResult, +} from '@salesforce/source-deploy-retrieve'; import { SourceTracking } from '@salesforce/source-tracking'; import { SourceCommand } from '../../../sourceCommand'; import { @@ -25,6 +31,7 @@ import { promisesQueue } from '../../../promiseQueue'; Messages.importMessagesDirectory(__dirname); const messages = Messages.loadMessages('@salesforce/plugin-source', 'retrieve'); const spinnerMessages = Messages.loadMessages('@salesforce/plugin-source', 'spinner'); +const retrieveMessages = Messages.load('@salesforce/plugin-source', 'retrieve', ['apiVersionMsgDetailed']); export class Retrieve extends SourceCommand { public static readonly description = messages.getMessage('description'); @@ -123,6 +130,18 @@ export class Retrieve extends SourceCommand { } protected async retrieve(): Promise { + const username = this.org.getUsername(); + // eslint-disable-next-line @typescript-eslint/require-await + this.lifecycle.on('apiVersionRetrieve', async (apiData: RetrieveVersionData) => { + this.ux.log( + retrieveMessages.getMessage('apiVersionMsgDetailed', [ + 'Retrieving', + apiData.manifestVersion, + username, + apiData.apiVersion, + ]) + ); + }); this.ux.startSpinner(spinnerMessages.getMessage('retrieve.componentSetBuild')); this.componentSet = await ComponentSetBuilder.build({ apiversion: this.getFlag('apiversion'), @@ -163,13 +182,9 @@ export class Retrieve extends SourceCommand { await this.lifecycle.emit('preretrieve', this.componentSet.toArray()); - this.ux.setSpinnerStatus( - spinnerMessages.getMessage('retrieve.sendingRequest', [ - this.componentSet.sourceApiVersion || this.componentSet.apiVersion, - ]) - ); + this.ux.setSpinnerStatus(spinnerMessages.getMessage('retrieve.sendingRequest')); const mdapiRetrieve = await this.componentSet.retrieve({ - usernameOrConnection: this.org.getUsername(), + usernameOrConnection: username, merge: true, output: this.resolvedTargetDir || this.project.getDefaultPackage().fullPath, packageOptions: this.getFlag('packagenames'), diff --git a/src/deployCommand.ts b/src/deployCommand.ts index 43108039b..a6d0253f0 100644 --- a/src/deployCommand.ts +++ b/src/deployCommand.ts @@ -231,35 +231,6 @@ export abstract class DeployCommand extends SourceCommand { } } -export const getVersionMessage = ( - action: 'Deploying' | 'Pushing', - componentSet: ComponentSet, - isRest: boolean -): string => { - // commands pass in the.componentSet, which may not exist in some tests or mdapi deploys - if (!componentSet) { - return `*** ${action} with ${isRest ? 'REST' : 'SOAP'} ***`; - } - // neither - if (!componentSet.sourceApiVersion && !componentSet.apiVersion) { - return `*** ${action} with ${isRest ? 'REST' : 'SOAP'} ***`; - } - // either OR both match (SDR will use either) - if ( - !componentSet.sourceApiVersion || - !componentSet.apiVersion || - componentSet.sourceApiVersion === componentSet.apiVersion - ) { - return `*** ${action} with ${isRest ? 'REST' : 'SOAP'} API v${ - componentSet.apiVersion ?? componentSet.sourceApiVersion - } ***`; - } - // has both but they don't match - return `*** ${action} v${componentSet.sourceApiVersion} metadata with ${isRest ? 'REST' : 'SOAP'} API v${ - componentSet.apiVersion - } connection ***`; -}; - export const createCoverageReport = ( deployResult: DeployResult, formatters: string[], diff --git a/test/commands/source/deployCommand.test.ts b/test/commands/source/deployCommand.test.ts index 430999409..dfeb81995 100644 --- a/test/commands/source/deployCommand.test.ts +++ b/test/commands/source/deployCommand.test.ts @@ -6,9 +6,8 @@ */ import * as path from 'path'; import { SfError } from '@salesforce/core'; -import { ComponentSet } from '@salesforce/source-deploy-retrieve'; import { assert, expect } from 'chai'; -import { getVersionMessage, DeployCommand, getCoverageFormattersOptions } from '../../../src/deployCommand'; +import { DeployCommand, getCoverageFormattersOptions } from '../../../src/deployCommand'; describe('test static method for valid deploy IDs', () => { it('valid deployId returns true', () => { @@ -25,26 +24,6 @@ describe('test static method for valid deploy IDs', () => { }); }); -describe('various version formatting options', () => { - it('returns basic response when nothing set', () => { - // SDR will get the apiVersion from the componentSet registry default when nothing is provided - expect(getVersionMessage('Pushing', new ComponentSet(), true).startsWith('*** Pushing with REST API v')); - }); - it('returns correct response for Deploying, SOAP, and apiVersion', () => { - const CS = new ComponentSet(); - CS.apiVersion = '52.0'; - expect(getVersionMessage('Deploying', CS, false)).to.equal('*** Deploying with SOAP API v52.0 ***'); - }); - it('handles differing APIs versions', () => { - const CS = new ComponentSet(); - CS.apiVersion = '52.0'; - CS.sourceApiVersion = '51.0'; - expect(getVersionMessage('Pushing', CS, true)).to.equal( - '*** Pushing v51.0 metadata with REST API v52.0 connection ***' - ); - }); -}); - describe('coverage functions', () => { describe('getCoverageFormattersOptions', () => { it('clover, json', () => { diff --git a/test/nuts/mdapi.nut.ts b/test/nuts/mdapi.nut.ts index 23a66a38e..c22a31b92 100644 --- a/test/nuts/mdapi.nut.ts +++ b/test/nuts/mdapi.nut.ts @@ -345,7 +345,7 @@ describe('mdapi NUTs', () => { const retrieveTargetDir = 'mdRetrieveFromManifest'; const cmd = `force:mdapi:retrieve -w 10 -r ${retrieveTargetDir} -k ${manifestPath}`; const rv = execCmd(cmd, { ensureExitCode: 0 }).shellOutput; - expect(rv.stderr).to.include(targetApiVersion); + expect(rv.stdout).to.include(`Retrieving v${targetApiVersion} metadata from`); }); it('retrieves single package', () => { diff --git a/test/tsconfig.json b/test/tsconfig.json index d7912bcca..f5a81fb1f 100644 --- a/test/tsconfig.json +++ b/test/tsconfig.json @@ -5,7 +5,8 @@ "skipLibCheck": true, "baseUrl": "..", "paths": { - "@salesforce/kit": ["node_modules/@salesforce/kit"] + "@salesforce/kit": ["node_modules/@salesforce/kit"], + "@salesforce/core": ["node_modules/@salesforce/core"] } } } diff --git a/yarn.lock b/yarn.lock index 1c2199c55..688798474 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1097,7 +1097,7 @@ "@salesforce/ts-types" "^1.7.1" chalk "^2.4.2" -"@salesforce/core@^3.23.9", "@salesforce/core@^3.24.0", "@salesforce/core@^3.25.1", "@salesforce/core@^3.30.12", "@salesforce/core@^3.31.10", "@salesforce/core@^3.31.18", "@salesforce/core@^3.31.19", "@salesforce/core@^3.32.1", "@salesforce/core@^3.32.5", "@salesforce/core@^3.32.6", "@salesforce/core@^3.32.9": +"@salesforce/core@^3.23.9", "@salesforce/core@^3.24.0", "@salesforce/core@^3.25.1", "@salesforce/core@^3.30.12", "@salesforce/core@^3.31.10", "@salesforce/core@^3.31.18", "@salesforce/core@^3.31.19", "@salesforce/core@^3.32.1", "@salesforce/core@^3.32.6", "@salesforce/core@^3.32.8", "@salesforce/core@^3.32.9": version "3.32.9" resolved "https://registry.yarnpkg.com/@salesforce/core/-/core-3.32.9.tgz#bb655f7cdfc5b97538421147add20e8b84a364ff" integrity sha512-dpvatNXEtxuT0/8dW/iO6KHTVGO38rUVfZ5HgPRoOOfKt0bq0KSi3PrVj1LyA7iyE7wCzliXY4vTdLhqYtZY6g== @@ -1262,12 +1262,12 @@ chalk "^4" inquirer "^8.2.5" -"@salesforce/source-deploy-retrieve@^7.5.12", "@salesforce/source-deploy-retrieve@^7.5.13": - version "7.5.13" - resolved "https://registry.yarnpkg.com/@salesforce/source-deploy-retrieve/-/source-deploy-retrieve-7.5.13.tgz#986b657d6965005441adb910df084e287621d375" - integrity sha512-Ug1XQGUewYCDgrNeiI6g/wYdmCs+kB2UDC6ocMqim2zoZ2dYXmZEI9tDqb+if/2WwAhM+PHedGOnUh+ks85LEw== +"@salesforce/source-deploy-retrieve@^7.5.13", "@salesforce/source-deploy-retrieve@^7.5.16", "@salesforce/source-deploy-retrieve@^7.5.17": + version "7.5.17" + resolved "https://registry.yarnpkg.com/@salesforce/source-deploy-retrieve/-/source-deploy-retrieve-7.5.17.tgz#1b0fe063cf20c6f2d572d242e989e8508cb0753e" + integrity sha512-B4fnaugHv92aCDq8l78awqKMBgWeeYCKDD0OQmKu8LcqC9QgRWqyk68qX4NZoX0pBmwd/Q6sW+aVlE9VXhiP2Q== dependencies: - "@salesforce/core" "^3.32.1" + "@salesforce/core" "^3.32.8" "@salesforce/kit" "^1.8.0" "@salesforce/ts-types" "^1.7.1" archiver "^5.3.1" @@ -1298,14 +1298,14 @@ sinon "^10.0.0" strip-ansi "^7.0.1" -"@salesforce/source-tracking@^2.2.14": - version "2.2.14" - resolved "https://registry.yarnpkg.com/@salesforce/source-tracking/-/source-tracking-2.2.14.tgz#e6558ded979260181197070c513fdcd93514f03b" - integrity sha512-2EtQA2k4H1myTjWfm+PVtGqbfXgssAIdNiJdnqqsL2ViGACcG+Nv988qx2MevpQGeiy/MoMxowPkdkp6bmqBcw== +"@salesforce/source-tracking@^2.2.15": + version "2.2.15" + resolved "https://registry.yarnpkg.com/@salesforce/source-tracking/-/source-tracking-2.2.15.tgz#fe699b53ae12ddbc968389c8ab56d8a1dc364d2d" + integrity sha512-9GnMRe1tlxpN7UwZMfjkh9q49hYPUmMSlCBYhdWD86R0uueOlP9SF7jij9LS8M4zIiHHXPgPGKeHW0o4v4fo6w== dependencies: - "@salesforce/core" "^3.31.19" + "@salesforce/core" "^3.32.8" "@salesforce/kit" "^1.8.0" - "@salesforce/source-deploy-retrieve" "^7.5.12" + "@salesforce/source-deploy-retrieve" "^7.5.16" graceful-fs "^4.2.10" isomorphic-git "1.17.0" ts-retry-promise "^0.7.0"