@flxbl-io/sfp
Version:
sfp is a CLI tool to help you manage your Salesforce projects in an artifact centric model
87 lines • 8.2 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const PackageDependencyResolver_1 = __importDefault(require("./PackageDependencyResolver"));
const Package2VersionFetcher_1 = __importDefault(require("../version/Package2VersionFetcher"));
/**
* Resolves external package dependency versions to their subscriber version
*/
class ExternalPackage2DependencyResolver {
//TOOD: Finalize Keys
constructor(conn, projectConfig, keys) {
this.conn = conn;
this.projectConfig = projectConfig;
this.keys = keys;
}
async resolveExternalPackage2DependenciesToVersions(packagesToBeResolved, packagesToBeSkipped, isDependencyValidated) {
if (isDependencyValidated == undefined)
isDependencyValidated = true;
//Do a dependency resolution first only for external dependencies
//Resolve .LATEST to exact version numbers
let revisedProjectConfig = await new PackageDependencyResolver_1.default(this.conn, this.projectConfig, packagesToBeSkipped, null, isDependencyValidated).resolvePackageDependencyVersions();
let packageVersions = [];
let packageVersionFetcher = new Package2VersionFetcher_1.default(this.conn);
let packagesToKeys;
if (this.keys) {
packagesToKeys = this.parseKeys(this.keys);
}
//Resolve provided version Number to SubscriberVersionId
for (const sfdxPackage of revisedProjectConfig.packageDirectories) {
if (packagesToBeResolved && !packagesToBeResolved.includes(sfdxPackage.package))
continue;
if (sfdxPackage.dependencies && Array.isArray(sfdxPackage.dependencies)) {
for (let i = 0; i < sfdxPackage.dependencies.length; i++) {
let dependency = sfdxPackage.dependencies[i];
if (packagesToBeSkipped && packagesToBeSkipped.includes(dependency.package)) {
let dependendentPackage = { name: dependency.package };
packageVersions.push(dependendentPackage);
continue;
}
if (!packageVersions.find((elem) => elem.name == dependency.package)) {
let dependendentPackage = { name: dependency.package };
if (dependency.versionNumber) {
dependendentPackage.versionNumber = dependency.versionNumber;
let packageVersion = await packageVersionFetcher.fetchByPackage2Id(revisedProjectConfig.packageAliases[dependendentPackage.name], dependendentPackage.versionNumber, true);
dependendentPackage.subscriberPackageVersionId =
packageVersion[0].SubscriberPackageVersionId;
}
else {
dependendentPackage.subscriberPackageVersionId =
revisedProjectConfig.packageAliases[dependendentPackage.name];
}
if (packagesToKeys?.[dependendentPackage.name]) {
dependendentPackage.key = packagesToKeys[dependency.package];
}
packageVersions.push(dependendentPackage);
}
}
}
}
return packageVersions;
}
/**
* Parse keys in string format "packageA:key packageB:key packageC:key"
* Returns map of packages to keys
* @param keys
*/
parseKeys(keys) {
let output = {};
keys = keys.trim();
let listOfKeys = keys.split(' ');
for (let key of listOfKeys) {
let packageKeyPair = key.split(':');
if (packageKeyPair.length === 2) {
output[packageKeyPair[0]] = packageKeyPair[1];
}
else {
// Format is incorrect, throw an error
throw new Error(`Error parsing keys, format should be: "packageA:key packageB:key packageC:key"`);
}
}
return output;
}
}
exports.default = ExternalPackage2DependencyResolver;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXh0ZXJuYWxQYWNrYWdlMkRlcGVuZGVuY3lSZXNvbHZlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb3JlL3BhY2thZ2UvZGVwZW5kZW5jaWVzL0V4dGVybmFsUGFja2FnZTJEZXBlbmRlbmN5UmVzb2x2ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFDQSw0RkFBb0U7QUFFcEUsK0ZBQXVFO0FBR3ZFOztHQUVHO0FBQ0gsTUFBcUIsa0NBQWtDO0lBQ25ELHFCQUFxQjtJQUNyQixZQUFvQixJQUFnQixFQUFVLGFBQWEsRUFBVSxJQUFJO1FBQXJELFNBQUksR0FBSixJQUFJLENBQVk7UUFBVSxrQkFBYSxHQUFiLGFBQWEsQ0FBQTtRQUFVLFNBQUksR0FBSixJQUFJLENBQUE7SUFBRyxDQUFDO0lBRXRFLEtBQUssQ0FBQyw2Q0FBNkMsQ0FDdEQsb0JBQStCLEVBQy9CLG1CQUE4QixFQUM5QixxQkFBK0I7UUFFL0IsSUFBSSxxQkFBcUIsSUFBSSxTQUFTO1lBQUUscUJBQXFCLEdBQUcsSUFBSSxDQUFDO1FBQ3JFLGlFQUFpRTtRQUNqRSwwQ0FBMEM7UUFDMUMsSUFBSSxvQkFBb0IsR0FBRyxNQUFNLElBQUksbUNBQXlCLENBQzFELElBQUksQ0FBQyxJQUFJLEVBQ1QsSUFBSSxDQUFDLGFBQWEsRUFDbEIsbUJBQW1CLEVBQ25CLElBQUksRUFDSixxQkFBcUIsQ0FDeEIsQ0FBQyxnQ0FBZ0MsRUFBRSxDQUFDO1FBRXJDLElBQUksZUFBZSxHQUFxQixFQUFFLENBQUM7UUFDM0MsSUFBSSxxQkFBcUIsR0FBRyxJQUFJLGdDQUFzQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVsRSxJQUFJLGNBQXVDLENBQUM7UUFDNUMsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDWixjQUFjLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDL0Ms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