@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
JavaScript
;
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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