@unito/integration-cli
Version:
Integration CLI
55 lines (54 loc) • 2.64 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
const core_1 = require("@oclif/core");
const chalk_1 = tslib_1.__importDefault(require("chalk"));
const inquirer_1 = tslib_1.__importDefault(require("inquirer"));
const baseCommand_1 = require("../baseCommand");
const errors_1 = require("../errors");
const integrations_1 = require("../resources/integrations");
const GlobalConfiguration = tslib_1.__importStar(require("../resources/globalConfiguration"));
const IntegrationsPlatform = tslib_1.__importStar(require("../services/integrationsPlatform"));
const IntegrationConfiguration = tslib_1.__importStar(require("../resources/configuration"));
const integrationsPlatform_1 = require("../resources/integrationsPlatform");
class Encrypt extends baseCommand_1.BaseCommand {
static description = 'Encrypt data';
static examples = ['<%= config.bin %> <%= command.id %>'];
static flags = {
environment: core_1.Flags.custom({
description: 'the environment of the platform',
options: Object.values(GlobalConfiguration.Environment),
default: GlobalConfiguration.Environment.Production,
})(),
sensitive: core_1.Flags.boolean({
description: 'once encrypted, sensitive data cannot be decrypted',
default: false,
}),
};
async catch(error) {
/* istanbul ignore if */
if ((0, errors_1.handleError)(this, error)) {
this.exit(-1);
}
throw error;
}
async run() {
(0, integrations_1.validateIsIntegrationDirectory)();
const { flags } = await this.parse(Encrypt);
// Read the configurations.
const globalConfiguration = await GlobalConfiguration.read(this.config.configDir);
const environment = flags.environment ?? GlobalConfiguration.Environment.Production;
const integrationConfiguration = await IntegrationConfiguration.getConfiguration(environment);
await (0, integrationsPlatform_1.validateAuthenticated)(globalConfiguration, environment);
const { data } = await inquirer_1.default.prompt({
name: 'data',
message: 'Enter text to encrypt',
type: 'input',
});
core_1.ux.action.start('Encrypting data', undefined, { stdout: true });
const { encryptedData } = await IntegrationsPlatform.encryptData(integrationConfiguration.name, data, flags.sensitive);
core_1.ux.action.stop();
core_1.ux.log(`Encrypted Data: ${chalk_1.default.greenBright(encryptedData)}`);
}
}
exports.default = Encrypt;