From ed5fcd8951f9ba6e83e16512c18e7a2fc4e389b1 Mon Sep 17 00:00:00 2001 From: mahantesh-patil Date: Thu, 13 Feb 2025 16:47:45 -0800 Subject: [PATCH 01/10] feat: add totalNumberOfMetadataFiles --- src/interfaces/packagingInterfacesAndType.ts | 1 + src/interfaces/packagingSObjects.ts | 1 + src/package/packageVersionCreateRequest.ts | 5 ++++- src/package/packageVersionReport.ts | 4 ++-- 4 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/interfaces/packagingInterfacesAndType.ts b/src/interfaces/packagingInterfacesAndType.ts index ec7d3261d..a4e383d38 100644 --- a/src/interfaces/packagingInterfacesAndType.ts +++ b/src/interfaces/packagingInterfacesAndType.ts @@ -80,6 +80,7 @@ export type PackageVersionCreateRequestResult = { VersionNumber: string | null; CreatedBy: string; ConvertedFromVersionId: string | null; + TotalNumberOfMetadataFiles: number | null; }; export const PackageVersionCreateRequestResultInProgressStatuses = Object.values(Package2VersionStatus).filter( diff --git a/src/interfaces/packagingSObjects.ts b/src/interfaces/packagingSObjects.ts index ade4eafaf..a6b94f354 100644 --- a/src/interfaces/packagingSObjects.ts +++ b/src/interfaces/packagingSObjects.ts @@ -62,6 +62,7 @@ export namespace PackagingSObjects { HasMetadataRemoved: boolean; Language: string; EndToEndBuildDurationInSeconds?: number; + TotalNumberOfMetadataFiles: number; }; export enum Package2VersionStatus { diff --git a/src/package/packageVersionCreateRequest.ts b/src/package/packageVersionCreateRequest.ts index c026cd771..550257c0c 100644 --- a/src/package/packageVersionCreateRequest.ts +++ b/src/package/packageVersionCreateRequest.ts @@ -24,7 +24,7 @@ export function getQuery(connection: Connection): string { 'SELECT Id, Status, Package2Id, Package2.Name, Package2VersionId, Package2Version.SubscriberPackageVersionId, Package2Version.HasPassedCodeCoverageCheck,Package2Version.CodeCoverage, Tag, Branch, ' + 'Package2Version.MajorVersion, Package2Version.MinorVersion, Package2Version.PatchVersion, Package2Version.BuildNumber, ' + 'CreatedDate, Package2Version.HasMetadataRemoved, CreatedById, IsConversionRequest, Package2Version.ConvertedFromVersionId ' + - (Number(connection.version) > 60.0 ? ', AsyncValidation ' : '') + + (Number(connection.version) > 60.0 ? ', AsyncValidation, Package2Version.TotalNumberOfMetadataFiles ' : '') + 'FROM Package2VersionCreateRequest ' + '%s' + // WHERE, if applicable 'ORDER BY CreatedDate desc'; @@ -84,6 +84,7 @@ async function query(query: string, connection: Connection): Promise; } & { Package2: Pick; @@ -114,6 +115,8 @@ async function query(query: string, connection: Connection): Promise Date: Thu, 13 Feb 2025 17:29:29 -0800 Subject: [PATCH 02/10] fix: fix test --- test/package/packageConvert.test.ts | 1 + test/package/packageVersionCreate.test.ts | 1 + 2 files changed, 2 insertions(+) diff --git a/test/package/packageConvert.test.ts b/test/package/packageConvert.test.ts index 94e810944..97a0cc76b 100644 --- a/test/package/packageConvert.test.ts +++ b/test/package/packageConvert.test.ts @@ -272,6 +272,7 @@ describe('packageConvert', () => { Status: 'inProgress', SubscriberPackageVersionId: null, Tag: undefined, + TotalNumberOfMetadataFiles: null, }, timeRemaining: { quantity: 2, diff --git a/test/package/packageVersionCreate.test.ts b/test/package/packageVersionCreate.test.ts index 110a4a1d0..8e02cfe1f 100644 --- a/test/package/packageVersionCreate.test.ts +++ b/test/package/packageVersionCreate.test.ts @@ -42,6 +42,7 @@ describe('Package Version Create', () => { 'SubscriberPackageVersionId', 'Tag', 'VersionNumber', + 'TotalNumberOfMetadataFiles', ]; const $$ = instantiateContext(); From fd6a770e9239001fea92d2c5d8096b205769dce3 Mon Sep 17 00:00:00 2001 From: mahantesh-patil Date: Thu, 13 Feb 2025 17:34:36 -0800 Subject: [PATCH 03/10] fix: fix test --- test/package/packageConvert.test.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/test/package/packageConvert.test.ts b/test/package/packageConvert.test.ts index 97a0cc76b..d016f393f 100644 --- a/test/package/packageConvert.test.ts +++ b/test/package/packageConvert.test.ts @@ -247,6 +247,7 @@ describe('packageConvert', () => { Status: 'Success', SubscriberPackageVersionId: null, Tag: 'tag', + TotalNumberOfMetadataFiles: null, }; Lifecycle.getInstance().on(PackageEvents.convert.progress, async (data) => { From 0692e63b8ee7bdc5ee60517edee0822cbdeb44aa Mon Sep 17 00:00:00 2001 From: mahantesh-patil Date: Fri, 14 Feb 2025 10:19:00 -0800 Subject: [PATCH 04/10] fix: fix import --- test/package/packageVersionMetadataRetrieve.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/package/packageVersionMetadataRetrieve.test.ts b/test/package/packageVersionMetadataRetrieve.test.ts index d9ae40190..95e945caf 100644 --- a/test/package/packageVersionMetadataRetrieve.test.ts +++ b/test/package/packageVersionMetadataRetrieve.test.ts @@ -6,7 +6,7 @@ */ import path from 'node:path'; import fs from 'node:fs'; -import sinon = require('sinon'); +import * as sinon from 'sinon'; import { instantiateContext, MockTestOrgData, restoreContext, stubContext } from '@salesforce/core/testSetup'; import { assert, expect } from 'chai'; import { Connection, SfProject, SfError } from '@salesforce/core'; From 22c0830244ca7730bc86008aa3ac22c71929c2e1 Mon Sep 17 00:00:00 2001 From: mahantesh-patil Date: Fri, 14 Feb 2025 11:59:50 -0800 Subject: [PATCH 05/10] fix: fix imports in test --- test/package/subscriberPackageVersionInstall.test.ts | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/test/package/subscriberPackageVersionInstall.test.ts b/test/package/subscriberPackageVersionInstall.test.ts index aed5a3c4d..cfd427949 100644 --- a/test/package/subscriberPackageVersionInstall.test.ts +++ b/test/package/subscriberPackageVersionInstall.test.ts @@ -14,15 +14,11 @@ import { isErrorPackageNotAvailable, waitForPublish, } from '../../src/package/packageInstall'; -import { - PackageEvents, - PackageInstallCreateRequest, - PackageInstallOptions, - PackagingSObjects, -} from '../../src/interfaces'; +import { PackageEvents, PackageInstallCreateRequest, PackageInstallOptions } from '../../src/interfaces'; import { SubscriberPackageVersion } from '../../src/package'; -import PackageInstallRequest = PackagingSObjects.PackageInstallRequest; +import * as PackagingSObjects from '../../src/interfaces/packagingSObjects'; +type PackageInstallRequest = PackagingSObjects.PackagingSObjects.PackageInstallRequest; const myPackageVersion04t = '04t6A0000000X0UQAU'; describe('Package Install', () => { From 914bc193fa533d7621df165cef6a4931e2121f3b Mon Sep 17 00:00:00 2001 From: mahantesh-patil Date: Fri, 14 Feb 2025 14:56:46 -0800 Subject: [PATCH 06/10] fix: api version filter for new field --- src/package/packageVersionCreateRequest.ts | 3 ++- src/package/packageVersionReport.ts | 15 ++++++++++++--- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/package/packageVersionCreateRequest.ts b/src/package/packageVersionCreateRequest.ts index 550257c0c..ed9aa449e 100644 --- a/src/package/packageVersionCreateRequest.ts +++ b/src/package/packageVersionCreateRequest.ts @@ -24,7 +24,8 @@ export function getQuery(connection: Connection): string { 'SELECT Id, Status, Package2Id, Package2.Name, Package2VersionId, Package2Version.SubscriberPackageVersionId, Package2Version.HasPassedCodeCoverageCheck,Package2Version.CodeCoverage, Tag, Branch, ' + 'Package2Version.MajorVersion, Package2Version.MinorVersion, Package2Version.PatchVersion, Package2Version.BuildNumber, ' + 'CreatedDate, Package2Version.HasMetadataRemoved, CreatedById, IsConversionRequest, Package2Version.ConvertedFromVersionId ' + - (Number(connection.version) > 60.0 ? ', AsyncValidation, Package2Version.TotalNumberOfMetadataFiles ' : '') + + (Number(connection.version) > 60.0 ? ', AsyncValidation ' : '') + + (Number(connection.version) > 63.0 ? ', Package2Version.TotalNumberOfMetadataFiles ' : '') + 'FROM Package2VersionCreateRequest ' + '%s' + // WHERE, if applicable 'ORDER BY CreatedDate desc'; diff --git a/src/package/packageVersionReport.ts b/src/package/packageVersionReport.ts index 7b63ccea7..06e6f5de0 100644 --- a/src/package/packageVersionReport.ts +++ b/src/package/packageVersionReport.ts @@ -40,8 +40,11 @@ const defaultFields = [ let verboseFields = ['SubscriberPackageVersion.Dependencies', 'CodeCoveragePercentages']; -// Add Fields here that are only available for api versions higher than v60.0 -const default61Fields = ['ValidatedAsync', 'TotalNumberOfMetadataFiles']; +// Ensure we only include the async validation property for api version of v60.0 or higher. +const default61Fields = ['ValidatedAsync']; + +// Add fields here that are available only api version of v64.0 or higher. +const deafult64Fields = ['TotalNumberOfMetadataFiles']; const verbose61Fields = ['EndToEndBuildDurationInSeconds']; @@ -57,7 +60,13 @@ const getLogger = (): Logger => { function constructQuery(connectionVersion: number, verbose: boolean): string { // Ensure we only include the async validation property for api version of v60.0 or higher. - let queryFields = connectionVersion > 60 ? [...defaultFields, ...default61Fields] : defaultFields; + // TotalNumberOfMetadataFiles is included as query field for api version of v64.0 or higher. + let queryFields = + connectionVersion > 63 + ? [...defaultFields, ...default61Fields, ...deafult64Fields] + : connectionVersion > 60 + ? [...defaultFields, ...default61Fields] + : defaultFields; verboseFields = connectionVersion > 60 ? [...verboseFields, ...verbose61Fields] : verboseFields; if (verbose) { queryFields = [...queryFields, ...verboseFields]; From 9318dff615cb5057e2d15734b116399682b99556 Mon Sep 17 00:00:00 2001 From: mahantesh-patil Date: Fri, 14 Feb 2025 15:38:23 -0800 Subject: [PATCH 07/10] fix: fix packagetest --- test/package/packageTest.nut.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/test/package/packageTest.nut.ts b/test/package/packageTest.nut.ts index 4a16cd623..a3d579dac 100644 --- a/test/package/packageTest.nut.ts +++ b/test/package/packageTest.nut.ts @@ -44,6 +44,7 @@ const VERSION_CREATE_RESPONSE_KEYS = [ 'VersionNumber', 'CreatedBy', 'ConvertedFromVersionId', + 'TotalNumberOfMetadataFiles', ]; // version From bde9b45253154a9e1c212b8de6ae522817011388 Mon Sep 17 00:00:00 2001 From: mahantesh-patil Date: Mon, 17 Feb 2025 08:25:19 -0800 Subject: [PATCH 08/10] fix: update @salesforce/core version --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index aa42ba8da..0034665de 100644 --- a/package.json +++ b/package.json @@ -42,7 +42,7 @@ ], "dependencies": { "@jsforce/jsforce-node": "^3.5.1", - "@salesforce/core": "^8.6.2", + "@salesforce/core": "^8.8.2", "@salesforce/kit": "^3.2.2", "@salesforce/schemas": "^1.9.0", "@salesforce/source-deploy-retrieve": "^12.8.0", From c24809a8e9700af1671c5ccd5ee3b3b7396f4328 Mon Sep 17 00:00:00 2001 From: mahantesh-patil Date: Mon, 17 Feb 2025 12:59:48 -0800 Subject: [PATCH 09/10] fix: update yarn lock --- yarn.lock | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/yarn.lock b/yarn.lock index 62614ea94..7b9c2f260 100644 --- a/yarn.lock +++ b/yarn.lock @@ -463,10 +463,10 @@ "@jridgewell/resolve-uri" "^3.1.0" "@jridgewell/sourcemap-codec" "^1.4.14" -"@jsforce/jsforce-node@^3.4.1", "@jsforce/jsforce-node@^3.5.1": - version "3.5.1" - resolved "https://registry.yarnpkg.com/@jsforce/jsforce-node/-/jsforce-node-3.5.1.tgz#f350e8c3897cce42f6b1cdbfc437c1c66aa13dd2" - integrity sha512-P+pfsLL6AddDeBP3iswjlB1+YM4w2ZsWTqunGjMA0/Aj8Jt4gA+XycV+fGEbGzsm6DvSvbZUnyrfkRYNsT9F8Q== +"@jsforce/jsforce-node@^3.5.1", "@jsforce/jsforce-node@^3.6.1": + version "3.6.4" + resolved "https://registry.yarnpkg.com/@jsforce/jsforce-node/-/jsforce-node-3.6.4.tgz#c1055e2064a501633e9d86f6f2fe1b287c6ce9ce" + integrity sha512-9IZL5lFDE1nUnPYnzOleH0xaEE3Sc9sQcLKwx1LQeSyAI/KvnxySadlIpZAdTrJap4hDRFQkXiEFiJ3oFwj/zg== dependencies: "@sindresorhus/is" "^4" base64url "^3.0.1" @@ -477,7 +477,6 @@ https-proxy-agent "^5.0.0" multistream "^3.1.0" node-fetch "^2.6.1" - strip-ansi "^6.0.0" xml2js "^0.6.2" "@nodelib/fs.scandir@2.1.5": @@ -522,12 +521,12 @@ strip-ansi "6.0.1" ts-retry-promise "^0.8.1" -"@salesforce/core@^8.6.1", "@salesforce/core@^8.6.2": - version "8.6.2" - resolved "https://registry.yarnpkg.com/@salesforce/core/-/core-8.6.2.tgz#50120d923504ceb04604b7f03e359386845a9f9d" - integrity sha512-LFzTLnavDeWsZBB7b2iuVz0F6yeuTcJzQxCy5n+rACY2/Lbw6UJDK/bOSt4wlss6fKrkyU1FTHNlUK5ZoBEveg== +"@salesforce/core@^8.6.1", "@salesforce/core@^8.8.2": + version "8.8.2" + resolved "https://registry.yarnpkg.com/@salesforce/core/-/core-8.8.2.tgz#0fc1632cc183b8c62e333f1f884bf3ee0f4aee6e" + integrity sha512-EOH75R2Nr2tg7b3gbyzRNwZPfZ/dZOpmMKmFHKL9oCtUI59+N4IkVljg6dpKYypVKuJJTzjI7T2ibnA8/cluZg== dependencies: - "@jsforce/jsforce-node" "^3.4.1" + "@jsforce/jsforce-node" "^3.6.1" "@salesforce/kit" "^3.2.2" "@salesforce/schemas" "^1.9.0" "@salesforce/ts-types" "^2.0.10" From 9ddbce9bd718d59249ec9f26250d4eae2cf66af3 Mon Sep 17 00:00:00 2001 From: mahantesh-patil Date: Mon, 17 Feb 2025 15:09:36 -0800 Subject: [PATCH 10/10] fix: fix a typo --- src/package/packageVersionReport.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/package/packageVersionReport.ts b/src/package/packageVersionReport.ts index 06e6f5de0..5a289a10d 100644 --- a/src/package/packageVersionReport.ts +++ b/src/package/packageVersionReport.ts @@ -44,7 +44,7 @@ let verboseFields = ['SubscriberPackageVersion.Dependencies', 'CodeCoveragePerce const default61Fields = ['ValidatedAsync']; // Add fields here that are available only api version of v64.0 or higher. -const deafult64Fields = ['TotalNumberOfMetadataFiles']; +const default64Fields = ['TotalNumberOfMetadataFiles']; const verbose61Fields = ['EndToEndBuildDurationInSeconds']; @@ -63,7 +63,7 @@ function constructQuery(connectionVersion: number, verbose: boolean): string { // TotalNumberOfMetadataFiles is included as query field for api version of v64.0 or higher. let queryFields = connectionVersion > 63 - ? [...defaultFields, ...default61Fields, ...deafult64Fields] + ? [...defaultFields, ...default61Fields, ...default64Fields] : connectionVersion > 60 ? [...defaultFields, ...default61Fields] : defaultFields;