Skip to content

Commit bf9ccf5

Browse files
authored
Merge pull request #5 from arsood/v2.1.0
V2.1.0
2 parents 5f2eeab + d529f86 commit bf9ccf5

22 files changed

+336
-282
lines changed

.gitignore

+4
Original file line numberDiff line numberDiff line change
@@ -39,3 +39,7 @@ test_dir/test.key
3939

4040
# Cooler-Env secret key
4141
test_dir/test.key
42+
43+
44+
# Cooler-Env secret key
45+
config/development.key

dist/commands/add.d.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
declare const add: (argv: any) => void;
1+
declare const add: (argv: any) => Promise<void>;
22
export default add;
33
//# sourceMappingURL=add.d.ts.map

dist/commands/add.d.ts.map

+1-1
Original file line numberDiff line numberDiff line change

dist/commands/add.js

+51-45
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,13 @@
11
"use strict";
2+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4+
return new (P || (P = Promise))(function (resolve, reject) {
5+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8+
step((generator = generator.apply(thisArg, _arguments || [])).next());
9+
});
10+
};
211
var __importDefault = (this && this.__importDefault) || function (mod) {
312
return (mod && mod.__esModule) ? mod : { "default": mod };
413
};
@@ -10,7 +19,7 @@ const clear_1 = __importDefault(require("clear"));
1019
const chalk_1 = __importDefault(require("chalk"));
1120
const figlet_1 = __importDefault(require("figlet"));
1221
const cryptify_1 = __importDefault(require("cryptify"));
13-
const add = (argv) => {
22+
const add = (argv) => __awaiter(void 0, void 0, void 0, function* () {
1423
const CONFIG_DIR_PATH = path_1.default.join(process.cwd(), argv.p ? argv.p : "config");
1524
const ENCRYPTION_KEY_PATH = path_1.default.join(CONFIG_DIR_PATH, `${argv.e}.key`);
1625
const ENCRYPTED_FILE_PATH = path_1.default.join(CONFIG_DIR_PATH, `${argv.e}.yml.enc`);
@@ -26,53 +35,50 @@ const add = (argv) => {
2635
if (!fs_1.default.existsSync(ENCRYPTED_FILE_PATH)) {
2736
return console.log(chalk_1.default.red(`Encrypted file not found for environment "${argv.e}"`));
2837
}
29-
inquirer_1.default
30-
.prompt([
31-
{
32-
name: "keyName",
33-
type: "input",
34-
message: "What is the name of the key you would like to add?",
35-
validate: (value) => {
36-
if (value.length) {
37-
return true;
38-
}
39-
return "Please enter the name of the key you would like to add.";
38+
try {
39+
const answers = yield inquirer_1.default.prompt([
40+
{
41+
name: "keyName",
42+
type: "input",
43+
message: "What is the name of the key you would like to add?",
44+
validate: (value) => {
45+
if (value.length) {
46+
return true;
47+
}
48+
return "Please enter the name of the key you would like to add.";
49+
},
4050
},
41-
},
42-
{
43-
name: "keyValue",
44-
type: "input",
45-
message: "What is the value of the key you would like to add?",
46-
validate: (value) => {
47-
if (value.length) {
48-
return true;
49-
}
50-
return "Please enter the value of the key you would like to add.";
51+
{
52+
name: "keyValue",
53+
type: "input",
54+
message: "What is the value of the key you would like to add?",
55+
validate: (value) => {
56+
if (value.length) {
57+
return true;
58+
}
59+
return "Please enter the value of the key you would like to add.";
60+
},
5161
},
52-
},
53-
])
54-
.then((answers) => {
62+
]);
5563
fs_1.default.copyFileSync(ENCRYPTED_FILE_PATH, DECRYPTED_FILE_PATH);
5664
const secretKeyData = fs_1.default.readFileSync(ENCRYPTION_KEY_PATH).toString();
5765
const decryptedFileInstance = new cryptify_1.default(DECRYPTED_FILE_PATH, secretKeyData, undefined, undefined, true, true);
58-
decryptedFileInstance
59-
.decrypt()
60-
.then((files) => {
61-
fs_1.default.unlinkSync(DECRYPTED_FILE_PATH);
62-
if (!files)
63-
return;
64-
const parsedObj = JSON.parse(files[0]);
65-
if (parsedObj[answers.keyName]) {
66-
return console.log(chalk_1.default.red("The key exists already. Try editing instead?"));
67-
}
68-
parsedObj[answers.keyName] = answers.keyValue;
69-
fs_1.default.writeFileSync(ENCRYPTED_FILE_PATH, JSON.stringify(parsedObj));
70-
const encryptedFileInstance = new cryptify_1.default(ENCRYPTED_FILE_PATH, secretKeyData, undefined, undefined, true, true);
71-
encryptedFileInstance.encrypt();
72-
})
73-
.then(() => {
74-
console.log("Done! 🌟");
75-
});
76-
});
77-
};
66+
const files = yield decryptedFileInstance.decrypt();
67+
fs_1.default.unlinkSync(DECRYPTED_FILE_PATH);
68+
if (!files)
69+
return;
70+
const parsedObj = JSON.parse(files[0]);
71+
if (parsedObj[answers.keyName]) {
72+
return console.log(chalk_1.default.red("The key exists already. Try editing instead?"));
73+
}
74+
parsedObj[answers.keyName] = answers.keyValue;
75+
fs_1.default.writeFileSync(ENCRYPTED_FILE_PATH, JSON.stringify(parsedObj));
76+
const encryptedFileInstance = new cryptify_1.default(ENCRYPTED_FILE_PATH, secretKeyData, undefined, undefined, true, true);
77+
yield encryptedFileInstance.encrypt();
78+
console.log("Done! 🌟");
79+
}
80+
catch (e) {
81+
console.log("🚫 Cooler-Env 🚫");
82+
}
83+
});
7884
exports.default = add;

dist/commands/delete.d.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
declare const deleteCmd: (argv: any) => void;
1+
declare const deleteCmd: (argv: any) => Promise<void>;
22
export default deleteCmd;
33
//# sourceMappingURL=delete.d.ts.map

dist/commands/delete.d.ts.map

+1-1
Original file line numberDiff line numberDiff line change

dist/commands/delete.js

+32-24
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,13 @@
11
"use strict";
2+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4+
return new (P || (P = Promise))(function (resolve, reject) {
5+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8+
step((generator = generator.apply(thisArg, _arguments || [])).next());
9+
});
10+
};
211
var __importDefault = (this && this.__importDefault) || function (mod) {
312
return (mod && mod.__esModule) ? mod : { "default": mod };
413
};
@@ -10,7 +19,7 @@ const clear_1 = __importDefault(require("clear"));
1019
const chalk_1 = __importDefault(require("chalk"));
1120
const figlet_1 = __importDefault(require("figlet"));
1221
const cryptify_1 = __importDefault(require("cryptify"));
13-
const deleteCmd = (argv) => {
22+
const deleteCmd = (argv) => __awaiter(void 0, void 0, void 0, function* () {
1423
const CONFIG_DIR_PATH = path_1.default.join(process.cwd(), argv.p ? argv.p : "config");
1524
const ENCRYPTION_KEY_PATH = path_1.default.join(CONFIG_DIR_PATH, `${argv.e}.key`);
1625
const ENCRYPTED_FILE_PATH = path_1.default.join(CONFIG_DIR_PATH, `${argv.e}.yml.enc`);
@@ -29,41 +38,40 @@ const deleteCmd = (argv) => {
2938
fs_1.default.copyFileSync(ENCRYPTED_FILE_PATH, DECRYPTED_FILE_PATH);
3039
const secretKeyData = fs_1.default.readFileSync(ENCRYPTION_KEY_PATH).toString();
3140
const decryptedFileInstance = new cryptify_1.default(DECRYPTED_FILE_PATH, secretKeyData, undefined, undefined, true, true);
32-
decryptedFileInstance.decrypt().then((files) => {
41+
try {
42+
const files = yield decryptedFileInstance.decrypt();
3343
fs_1.default.unlinkSync(DECRYPTED_FILE_PATH);
3444
if (!files)
3545
return;
3646
const parsedObj = JSON.parse(files[0]);
3747
if (Object.keys(parsedObj).length === 0) {
3848
return console.log(chalk_1.default.red("Nothing to delete. Please add some keys first."));
3949
}
40-
inquirer_1.default
41-
.prompt([
50+
const answers = yield inquirer_1.default.prompt([
4251
{
4352
name: "keysToDelete",
4453
type: "checkbox",
4554
message: "Which key(s) would you like to delete?",
4655
choices: Object.keys(parsedObj),
4756
},
48-
])
49-
.then((answers) => {
50-
const filteredKeys = Object.keys(parsedObj).filter((key) => {
51-
if (answers.keysToDelete.includes(key)) {
52-
return false;
53-
}
54-
return true;
55-
});
56-
let newObj = {};
57-
filteredKeys.forEach((key) => {
58-
newObj[key] = parsedObj[key];
59-
});
60-
const encryptedFileInstance = new cryptify_1.default(ENCRYPTED_FILE_PATH, secretKeyData, undefined, undefined, true, true);
61-
fs_1.default.writeFileSync(ENCRYPTED_FILE_PATH, JSON.stringify(newObj));
62-
encryptedFileInstance.encrypt();
63-
})
64-
.then(() => {
65-
console.log("Done! 🌟");
57+
]);
58+
const filteredKeys = Object.keys(parsedObj).filter((key) => {
59+
if (answers.keysToDelete.includes(key)) {
60+
return false;
61+
}
62+
return true;
6663
});
67-
});
68-
};
64+
let newObj = {};
65+
filteredKeys.forEach((key) => {
66+
newObj[key] = parsedObj[key];
67+
});
68+
const encryptedFileInstance = new cryptify_1.default(ENCRYPTED_FILE_PATH, secretKeyData, undefined, undefined, true, true);
69+
fs_1.default.writeFileSync(ENCRYPTED_FILE_PATH, JSON.stringify(newObj));
70+
yield encryptedFileInstance.encrypt();
71+
console.log("Done! 🌟");
72+
}
73+
catch (e) {
74+
console.log("🚫 Cooler-Env 🚫");
75+
}
76+
});
6977
exports.default = deleteCmd;

dist/commands/edit.d.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
declare const edit: (argv: any) => void;
1+
declare const edit: (argv: any) => Promise<void>;
22
export default edit;
33
//# sourceMappingURL=edit.d.ts.map

dist/commands/edit.d.ts.map

+1-1
Original file line numberDiff line numberDiff line change

dist/commands/edit.js

+44-39
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,13 @@
11
"use strict";
2+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4+
return new (P || (P = Promise))(function (resolve, reject) {
5+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8+
step((generator = generator.apply(thisArg, _arguments || [])).next());
9+
});
10+
};
211
var __importDefault = (this && this.__importDefault) || function (mod) {
312
return (mod && mod.__esModule) ? mod : { "default": mod };
413
};
@@ -10,7 +19,7 @@ const clear_1 = __importDefault(require("clear"));
1019
const chalk_1 = __importDefault(require("chalk"));
1120
const figlet_1 = __importDefault(require("figlet"));
1221
const cryptify_1 = __importDefault(require("cryptify"));
13-
const edit = (argv) => {
22+
const edit = (argv) => __awaiter(void 0, void 0, void 0, function* () {
1423
const CONFIG_DIR_PATH = path_1.default.join(process.cwd(), argv.p ? argv.p : "config");
1524
const ENCRYPTION_KEY_PATH = path_1.default.join(CONFIG_DIR_PATH, `${argv.e}.key`);
1625
const ENCRYPTED_FILE_PATH = path_1.default.join(CONFIG_DIR_PATH, `${argv.e}.yml.enc`);
@@ -29,49 +38,45 @@ const edit = (argv) => {
2938
fs_1.default.copyFileSync(ENCRYPTED_FILE_PATH, DECRYPTED_FILE_PATH);
3039
const secretKeyData = fs_1.default.readFileSync(ENCRYPTION_KEY_PATH).toString();
3140
const decryptedFileInstance = new cryptify_1.default(DECRYPTED_FILE_PATH, secretKeyData, undefined, undefined, true, true);
32-
decryptedFileInstance.decrypt().then((files) => {
33-
fs_1.default.unlinkSync(DECRYPTED_FILE_PATH);
34-
if (!files)
35-
return;
36-
const parsedObj = JSON.parse(files[0]);
37-
if (Object.keys(parsedObj).length === 0) {
38-
return console.log(chalk_1.default.red("Nothing to edit. Please add some keys first."));
39-
}
40-
inquirer_1.default
41-
.prompt([
41+
const files = yield decryptedFileInstance.decrypt();
42+
fs_1.default.unlinkSync(DECRYPTED_FILE_PATH);
43+
if (!files)
44+
return;
45+
const parsedObj = JSON.parse(files[0]);
46+
if (Object.keys(parsedObj).length === 0) {
47+
return console.log(chalk_1.default.red("Nothing to edit. Please add some keys first."));
48+
}
49+
try {
50+
const listAnswers = yield inquirer_1.default.prompt([
4251
{
4352
name: "keyToEdit",
4453
type: "list",
4554
message: "Which key would you like to edit?",
4655
choices: Object.keys(parsedObj),
4756
},
48-
])
49-
.then((listAnswers) => {
50-
inquirer_1.default
51-
.prompt([
52-
{
53-
name: "keyEditedValue",
54-
type: "input",
55-
message: "What is the new value of this key?",
56-
default: parsedObj[listAnswers.keyToEdit],
57-
validate: (value) => {
58-
if (value.length) {
59-
return true;
60-
}
61-
return "Please enter the new value of the key you would like to edit.";
62-
},
57+
]);
58+
const inputAnswers = yield inquirer_1.default.prompt([
59+
{
60+
name: "keyEditedValue",
61+
type: "input",
62+
message: "What is the new value of this key?",
63+
default: parsedObj[listAnswers.keyToEdit],
64+
validate: (value) => {
65+
if (value.length) {
66+
return true;
67+
}
68+
return "Please enter the new value of the key you would like to edit.";
6369
},
64-
])
65-
.then((inputAnswers) => {
66-
parsedObj[listAnswers.keyToEdit] = inputAnswers.keyEditedValue;
67-
const encryptedFileInstance = new cryptify_1.default(ENCRYPTED_FILE_PATH, secretKeyData, undefined, undefined, true, true);
68-
fs_1.default.writeFileSync(ENCRYPTED_FILE_PATH, JSON.stringify(parsedObj));
69-
encryptedFileInstance.encrypt();
70-
})
71-
.then(() => {
72-
console.log("Done! 🌟");
73-
});
74-
});
75-
});
76-
};
70+
},
71+
]);
72+
parsedObj[listAnswers.keyToEdit] = inputAnswers.keyEditedValue;
73+
const encryptedFileInstance = new cryptify_1.default(ENCRYPTED_FILE_PATH, secretKeyData, undefined, undefined, true, true);
74+
fs_1.default.writeFileSync(ENCRYPTED_FILE_PATH, JSON.stringify(parsedObj));
75+
yield encryptedFileInstance.encrypt();
76+
console.log("Done! 🌟");
77+
}
78+
catch (e) {
79+
console.log("🚫 Cooler-Env 🚫");
80+
}
81+
});
7782
exports.default = edit;

dist/commands/init.d.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
type ArgumentType = {
22
[key: string]: string;
33
};
4-
declare const init: (argv: ArgumentType) => void | Promise<string[] | undefined>;
4+
declare const init: (argv: ArgumentType) => Promise<void | string[]>;
55
export default init;
66
//# sourceMappingURL=init.d.ts.map

dist/commands/init.d.ts.map

+1-1
Original file line numberDiff line numberDiff line change

dist/commands/init.js

+12-3
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,13 @@
11
"use strict";
2+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4+
return new (P || (P = Promise))(function (resolve, reject) {
5+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8+
step((generator = generator.apply(thisArg, _arguments || [])).next());
9+
});
10+
};
211
var __importDefault = (this && this.__importDefault) || function (mod) {
312
return (mod && mod.__esModule) ? mod : { "default": mod };
413
};
@@ -10,7 +19,7 @@ const crypto_1 = __importDefault(require("crypto"));
1019
const cryptify_1 = __importDefault(require("cryptify"));
1120
const clear_1 = __importDefault(require("clear"));
1221
const figlet_1 = __importDefault(require("figlet"));
13-
const init = (argv) => {
22+
const init = (argv) => __awaiter(void 0, void 0, void 0, function* () {
1423
const CONFIG_DIR_PATH = path_1.default.join(process.cwd(), argv.p ? argv.p : "config");
1524
const ENCRYPTION_KEY_PATH = path_1.default.join(CONFIG_DIR_PATH, `${argv.e}.key`);
1625
const ENCRYPTED_FILE_PATH = path_1.default.join(CONFIG_DIR_PATH, `${argv.e}.yml.enc`);
@@ -38,6 +47,6 @@ const init = (argv) => {
3847
console.log(chalk_1.default.green(`Writing encrypted file to: ${ENCRYPTED_FILE_PATH}`));
3948
const encryptedFileInstance = new cryptify_1.default(ENCRYPTED_FILE_PATH, newKey, undefined, undefined, true, true);
4049
console.log("Init complete! 💯");
41-
return encryptedFileInstance.encrypt();
42-
};
50+
return yield encryptedFileInstance.encrypt();
51+
});
4352
exports.default = init;

0 commit comments

Comments
 (0)