UNPKG

1.2 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3exports.secretsDecrypt = void 0;
4const fs = require("fs-extra");
5const globby = require("globby");
6const path = require("path");
7const colors_1 = require("../colors");
8const crypto_util_1 = require("../security/crypto.util");
9/**
10 * Decrypts all files in given directory (*.enc), saves decrypted versions without ending `.enc`.
11 * Using provided encKey.
12 */
13function secretsDecrypt(dir, encKey, algorithm, del) {
14 const patterns = dir.map(d => `${d}/**/*.enc`);
15 const filenames = globby.sync(patterns);
16 filenames.forEach(filename => {
17 const enc = fs.readFileSync(filename);
18 const plain = crypto_util_1.decryptRandomIVBuffer(enc, encKey, algorithm);
19 const plainFilename = filename.slice(0, filename.length - '.enc'.length);
20 fs.writeFileSync(plainFilename, plain);
21 if (del) {
22 fs.unlinkSync(filename);
23 }
24 console.log(` ${path.basename(filename)} > ${path.basename(plainFilename)}`);
25 });
26 console.log(`decrypted ${colors_1.yellow(filenames.length)} files in ${colors_1.dimGrey(dir.join(' '))}`);
27}
28exports.secretsDecrypt = secretsDecrypt;