Skip to content

Commit

Permalink
chore: merge main
Browse files Browse the repository at this point in the history
  • Loading branch information
shetzel committed Apr 4, 2024
2 parents 1713a40 + 3635fa5 commit 4a7bfd3
Show file tree
Hide file tree
Showing 8 changed files with 947 additions and 1,515 deletions.
8 changes: 6 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# -- CLEAN
.eslintcache
.wireit



# use yarn by default, so ignore npm
package-lock.json
Expand Down Expand Up @@ -34,6 +34,10 @@ docs
*.tsbuildinfo
node_modules


.eslintcache
.wireit

# --
# put files here you don't want cleaned with sf-clean

Expand Down
1,741 changes: 590 additions & 1,151 deletions CHANGELOG.md

Large diffs are not rendered by default.

14 changes: 7 additions & 7 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@salesforce/packaging",
"version": "3.2.12",
"version": "3.2.37",
"description": "Packaging library for the Salesforce packaging platform",
"main": "lib/exported",
"types": "lib/exported.d.ts",
Expand Down Expand Up @@ -43,11 +43,11 @@
"dependencies": {
"@oclif/core": "^3",
"@salesforce/core": "^6.7.6",
"@salesforce/kit": "^3.0.15",
"@salesforce/kit": "^3.1.0",
"@salesforce/schemas": "^1.7.0",
"@salesforce/source-deploy-retrieve": "^10.3.1",
"@salesforce/source-deploy-retrieve": "^10.7.0",
"@salesforce/ts-types": "^2.0.9",
"fast-xml-parser": "^4.3.4",
"fast-xml-parser": "^4.3.6",
"globby": "^11",
"graphology": "^0.25.4",
"graphology-traversal": "^0.3.1",
Expand All @@ -57,14 +57,14 @@
},
"devDependencies": {
"@salesforce/cli-plugins-testkit": "^4.4.12",
"@salesforce/dev-scripts": "^8.3.0",
"@salesforce/dev-scripts": "^8.4.2",
"@salesforce/ts-sinon": "^1.4.19",
"@types/globby": "^9.1.0",
"@types/jszip": "^3.4.1",
"eslint-plugin-sf-plugin": "^1.17.2",
"eslint-plugin-sf-plugin": "^1.17.5",
"shelljs": "0.8.5",
"ts-node": "^10.9.2",
"typescript": "^5.3.3"
"typescript": "^5.4.3"
},
"publishConfig": {
"access": "public"
Expand Down
4 changes: 2 additions & 2 deletions src/package/packageInstall.ts
Original file line number Diff line number Diff line change
Expand Up @@ -195,13 +195,13 @@ export async function waitForPublish(
export async function pollStatus(
connection: Connection,
installRequestId: string,
options: PackageInstallOptions = { pollingFrequency: 5000, pollingTimeout: 300000 }
options: PackageInstallOptions = { pollingFrequency: 5000, pollingTimeout: 300_000 }
): Promise<PackageInstallRequest> {
let packageInstallRequest = await getStatus(connection, installRequestId);

const { pollingFrequency, pollingTimeout } = options;
const frequency = numberToDuration(pollingFrequency ?? 5000);
const timeout = numberToDuration(pollingTimeout ?? 300000);
const timeout = numberToDuration(pollingTimeout ?? 300_000);

const pollingOptions: PollingClient.Options = {
frequency,
Expand Down
4 changes: 2 additions & 2 deletions src/package/packageVersionCreate.ts
Original file line number Diff line number Diff line change
Expand Up @@ -436,8 +436,8 @@ export class PackageVersionCreate {
return this.createRequestObject(preserveFiles, packageVersTmpRoot, packageVersBlobZipFile);
}

private verifyHasSource(componentSet: ConvertResult): void {
if (componentSet?.converted?.length === 0) {
private verifyHasSource(result: ConvertResult): void {
if (!result.converted || result.converted?.length === 0) {
throw messages.createError('noSourceInRootDirectory', [this.packageObject.path ?? '<unknown>']);
}
}
Expand Down
16 changes: 13 additions & 3 deletions src/utils/packageUtils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -484,7 +484,7 @@ export async function zipDir(dir: string, zipfile: string): Promise<void> {

function getElapsedTime(timer: [number, number]): string {
const elapsed = process.hrtime(timer);
return (elapsed[0] * 1000 + elapsed[1] / 1000000).toFixed(3);
return (elapsed[0] * 1000 + elapsed[1] / 1_000_000).toFixed(3);
}

export function copyDir(src: string, dest: string): void {
Expand All @@ -498,7 +498,14 @@ export function copyDir(src: string, dest: string): void {
return entry.isDirectory() ? copyDir(srcPath, destPath) : fs.copyFileSync(srcPath, destPath);
});
}

/**
* Parse and copy properties from both of these arguments into a new object
*
* @param packageDescriptorJson
* @param definitionFileJson
* @returns the resulting object with specific properties
* overridden from definition file based on case-insensitive matches.
*/
export function copyDescriptorProperties(
packageDescriptorJson: PackageDescriptorJson,
definitionFileJson: ScratchOrgInfo
Expand All @@ -510,7 +517,10 @@ export function copyDescriptorProperties(
packageDescriptorJsonCopy,
Object.fromEntries(
['country', 'edition', 'language', 'features', 'orgPreferences', 'snapshot', 'release', 'sourceOrg'].map(
(prop) => [[prop], definitionFileJsonCopy[prop]]
(prop) => {
const matchCase = Object.keys(definitionFileJsonCopy).find((key) => key.toLowerCase() === prop.toLowerCase());
return [[prop], matchCase ? definitionFileJsonCopy[matchCase] : undefined];
}
)
)
) as PackageDescriptorJson;
Expand Down
68 changes: 68 additions & 0 deletions test/package/packageVersionCreate.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1074,6 +1074,74 @@ describe('Package Version Create', () => {
);
});
});

describe('handle case sensitivity for project-scratch-def.json keys', () => {
it('should create package version from the snapshot (lower-case) property in definition file', async () => {
const scratchOrgDefFileContent = '{ "snapshot": "SnapScratchOrg" }';
const scratchOrgDefFileName = 'project-scratch-def.json';
$$.SANDBOX.stub(fs.promises, 'readFile').withArgs(scratchOrgDefFileName).resolves(scratchOrgDefFileContent);
// eslint-disable-next-line @typescript-eslint/no-explicit-any
$$.SANDBOX.stub(MetadataResolver.prototype, 'generateMDFolderForArtifact' as any).resolves();
$$.SANDBOX.stub(fs, 'existsSync').returns(true);
const writeFileSpy = $$.SANDBOX.spy(fs.promises, 'writeFile');

const pvc = new PackageVersionCreate({ connection, project, definitionfile: scratchOrgDefFileName, packageId });
const result = await pvc.createPackageVersion();
expect(result).to.have.all.keys(
'Branch',
'ConvertedFromVersionId',
'CreatedBy',
'CreatedDate',
'Error',
'HasMetadataRemoved',
'HasPassedCodeCoverageCheck',
'Id',
'Package2Id',
'Package2Name',
'Package2VersionId',
'Status',
'SubscriberPackageVersionId',
'Tag'
);

// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
const package2DescriptorJson = writeFileSpy.firstCall.args[1]; // package2-descriptor.json contents
expect(package2DescriptorJson).to.have.string('snapshot');
});

it("should create package version from the snapShot (camel-case or any-case) property in definition file's", async () => {
const scratchOrgDefFileContent = '{ "snapShot": "SnapScratchOrg2" }';
const scratchOrgDefFileName = 'project-scratch-def.json';
$$.SANDBOX.stub(fs.promises, 'readFile').withArgs(scratchOrgDefFileName).resolves(scratchOrgDefFileContent);
// eslint-disable-next-line @typescript-eslint/no-explicit-any
$$.SANDBOX.stub(MetadataResolver.prototype, 'generateMDFolderForArtifact' as any).resolves();
$$.SANDBOX.stub(fs, 'existsSync').returns(true);
const writeFileSpy = $$.SANDBOX.spy(fs.promises, 'writeFile');

const pvc = new PackageVersionCreate({ connection, project, definitionfile: scratchOrgDefFileName, packageId });
const result = await pvc.createPackageVersion();
expect(result).to.have.all.keys(
'Branch',
'ConvertedFromVersionId',
'CreatedBy',
'CreatedDate',
'Error',
'HasMetadataRemoved',
'HasPassedCodeCoverageCheck',
'Id',
'Package2Id',
'Package2Name',
'Package2VersionId',
'Status',
'SubscriberPackageVersionId',
'Tag'
);

// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
const package2DescriptorJson = writeFileSpy.firstCall.args[1]; // package2-descriptor.json contents
expect(package2DescriptorJson).to.have.string('snapshot');
});
});
});

describe('PackageXml read/write', () => {
Expand Down
Loading

0 comments on commit 4a7bfd3

Please sign in to comment.