UNPKG

2.25 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3const lodash_1 = require("lodash");
4const Colour_1 = require("../lib/Colour");
5const Crypt_1 = require("../lib/Crypt");
6const PromptableConfig_1 = require("../lib/PromptableConfig");
7function setRegular(cfg, k, value) {
8 Object.defineProperty(cfg, k, {
9 configurable: true,
10 enumerable: true,
11 value,
12 writable: true
13 });
14}
15function setVirtual(pcfg, cfg, k, v) {
16 let attempt = 1;
17 const colourFns = [undefined, Colour_1.Colour.green, Colour_1.Colour.yellow, Colour_1.Colour.red];
18 Object.defineProperty(cfg, k, {
19 configurable: true,
20 enumerable: true,
21 get: function getter() {
22 const pwd = pcfg.promptedEncryptionPassword();
23 try {
24 const decrypted = Crypt_1.Crypt.decryptVar(v, pwd);
25 setRegular(cfg, k, decrypted);
26 attempt = 1;
27 return decrypted;
28 }
29 catch (e) {
30 const msg = [
31 Colour_1.Colour.red(e.message),
32 ` [${colourFns[attempt].call(Colour_1.Colour, attempt)}/`,
33 `${Colour_1.Colour.red(3 /* MAX_ATTEMPTS */.toString())}]\n`
34 ].join('');
35 process.stderr.write(msg);
36 if (attempt++ < 3 /* MAX_ATTEMPTS */) {
37 delete pcfg['data'].password;
38 pcfg.promptedEncryptionPassword['cache'].clear();
39 return getter();
40 }
41 else {
42 process.exit(1);
43 }
44 }
45 },
46 set(v$) {
47 if (Crypt_1.Crypt.isEncrypted(v$)) {
48 setVirtual(pcfg, cfg, k, v$);
49 }
50 else {
51 setRegular(cfg, k, v$);
52 }
53 }
54 });
55}
56function parseJointCfgForEncryption(cfg) {
57 cfg = lodash_1.cloneDeep(cfg);
58 const pcfg = new PromptableConfig_1.PromptableConfig(cfg);
59 lodash_1.forEach(cfg, (v, k) => {
60 if (Crypt_1.Crypt.isEncrypted(v)) {
61 setVirtual(pcfg, cfg, k, v);
62 }
63 });
64 return cfg;
65}
66exports.parseJointCfgForEncryption = parseJointCfgForEncryption;
67
\No newline at end of file