UNPKG

@flxbl-io/sfp

Version:

sfp is a CLI tool to help you manage your Salesforce projects in an artifact centric model

96 lines 8.69 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); __setModuleDefault(result, mod); return result; }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const sfp_logger_1 = __importStar(require("@flxbl-io/sfp-logger")); const PackageMetadataPrinter_1 = __importDefault(require("../../display/PackageMetadataPrinter")); const SFPOrg_1 = __importDefault(require("../../org/SFPOrg")); const packaging_1 = require("@salesforce/packaging"); const Delay_1 = require("../../utils/Delay"); class InstallUnlockedPackageImpl { constructor(logger, targetUserName, packageId, installationOptions, packageName) { this.logger = logger; this.targetUserName = targetUserName; this.packageId = packageId; this.installationOptions = installationOptions; this.packageName = packageName; } setInstallationKey(installationKey) { this.installationOptions.installationkey = installationKey; } async install(payloadToDisplay) { let connection = (await SFPOrg_1.default.create({ aliasOrUsername: this.targetUserName })).getConnection(); //Print Metadata carried in the package if (payloadToDisplay) PackageMetadataPrinter_1.default.printMetadataToDeploy(payloadToDisplay, this.logger); const subscriberPackageVersion = new packaging_1.SubscriberPackageVersion({ connection, aliasOrId: this.packageId, password: this.installationOptions.installationkey, }); const request = { SubscriberPackageVersionKey: await subscriberPackageVersion.getId(), Password: this.installationOptions.installationkey, ApexCompileType: 'package', SecurityType: this.installationOptions.securitytype, UpgradeType: this.installationOptions.upgradetype, EnableRss: true, }; //Fire a package installation let pkgInstallRequest = await subscriberPackageVersion.install(request, {}); let status = this.parseStatus(pkgInstallRequest, this.targetUserName, this.packageName ? this.packageName : this.packageId, this.logger); while (status == 'IN_PROGRESS') { pkgInstallRequest = await packaging_1.SubscriberPackageVersion.getInstallRequest(pkgInstallRequest.Id, connection); status = this.parseStatus(pkgInstallRequest, this.targetUserName, this.packageName ? this.packageName : this.packageId, this.logger); await (0, Delay_1.delay)(30000); //Poll every 30 seconds } } parseStatus(request, username, pkgName, logger) { const { Status } = request; if (Status === 'SUCCESS') { sfp_logger_1.default.log(`Status: ${(0, sfp_logger_1.COLOR_SUCCESS)(`Succesfully Installed`)} ${pkgName} to ${username} with Id ${request.Id}`, sfp_logger_1.LoggerLevel.INFO, logger); return Status; } else if (['IN_PROGRESS', 'UNKNOWN'].includes(Status)) { sfp_logger_1.default.log(`Status: ${(0, sfp_logger_1.COLOR_KEY_MESSAGE)(`In Progress`)} Installing ${pkgName} to ${username} with Id ${request.Id}`, sfp_logger_1.LoggerLevel.INFO, logger); return 'IN_PROGRESS'; } else { let errorMessage = '<empty>'; const errors = request?.Errors?.errors; if (errors?.length) { errorMessage = 'Installation errors: '; for (let i = 0; i < errors.length; i++) { errorMessage += `\n${i + 1}) ${errors[i].message}`; } } throw new Error(`Unable to install ${pkgName} due to \n` + errorMessage); } } } exports.default = InstallUnlockedPackageImpl; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW5zdGFsbFVubG9ja2VkUGFja2FnZUltcGwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29yZS9wYWNrYWdlL3BhY2thZ2VJbnN0YWxsZXJzL0luc3RhbGxVbmxvY2tlZFBhY2thZ2VJbXBsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxtRUFBd0c7QUFDeEcsa0dBQTBFO0FBQzFFLDhEQUFzQztBQUN0QyxxREFBaUg7QUFDakgsNkNBQTBDO0FBSzFDLE1BQXFCLDBCQUEwQjtJQUMzQyxZQUNZLE1BQWMsRUFDZCxjQUFzQixFQUN0QixTQUFpQixFQUNqQixtQkFBa0QsRUFDbEQsV0FBbUI7UUFKbkIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLG1CQUFjLEdBQWQsY0FBYyxDQUFRO1FBQ3RCLGNBQVMsR0FBVCxTQUFTLENBQVE7UUFDakIsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUErQjtRQUNsRCxnQkFBVyxHQUFYLFdBQVcsQ0FBUTtJQUUvQixDQUFDO0lBRU0sa0JBQWtCLENBQUMsZUFBdUI7UUFDN0MsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGVBQWUsR0FBRyxlQUFlLENBQUM7SUFDL0QsQ0FBQztJQUVNLEtBQUssQ0FBQyxPQUFPLENBQUMsZ0JBQXNCO1FBQ3ZDLElBQUksVUFBVSxHQUFHLENBQUMsTUFBTSxnQkFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLGVBQWUsRUFBRSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ2pHLHVDQUF1QztRQUN2QyxJQUFJLGdCQUFnQjtZQUFFLGdDQUFzQixDQUFDLHFCQUFxQixDQUFDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUVsRyxNQUFNLHdCQUF3QixHQUFHLElBQUksb0NBQXdCLENBQUM7WUFDMUQsVUFBVTtZQUNWLFNBQVMsRUFBRSxJ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