UNPKG

@unito/integration-cli

Version:

Integration CLI

55 lines (54 loc) 2.64 kB
"use strict"; 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;