UNPKG

@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
"use strict"; 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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