keyvenant
Version:
Keyvenant is a JavaScript tool to generate and export CovenantSQL keys to facilitate key management locally and in web extensions.
57 lines • 4.33 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const fs_1 = __importDefault(require("fs"));
const path_1 = __importDefault(require("path"));
exports.isBrowser = typeof process === 'undefined' || !process.nextTick;
function isHex(str) {
return str.length % 2 === 0 && str.match(/^[0-9a-f]+$/i)
? true
: false;
}
function isBase64(str) {
if (str.length % 4 > 0 || str.match(/[^0-9a-z+\/=]/i)) {
return false;
}
const index = str.indexOf('=');
return (index === -1 || str.slice(index).match(/={1,2}/))
? true
: false;
}
function string2Buffer(str, enc) {
if (!enc && isHex(str)) {
enc = 'hex';
}
if (!enc && isBase64(str)) {
enc = 'base64';
}
return Buffer.from(str, enc);
}
exports.string2Buffer = string2Buffer;
function generateKeystoreFilename(address) {
let date = new Date().toISOString();
// Windows does not support letter ':' in filename
let filename = 'UTC--' + date.replace(/\:/g, '-') + '--' + address;
return filename;
}
function exportToFile(keystore) {
// if in browser return keystore object as stringify JSON
if (exports.isBrowser) {
return JSON.stringify(keystore);
}
let filename = generateKeystoreFilename(keystore.address);
// default path is keystore folder
let outpath = path_1.default.join(filename);
fs_1.default.writeFileSync(outpath, JSON.stringify(keystore, null, 2));
return outpath;
}
exports.exportToFile = exportToFile;
function importFromFile(filepath) {
let file = fs_1.default.readFileSync(filepath, 'utf8');
let keystore = JSON.parse(file);
return keystore;
}
exports.importFromFile = importFromFile;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3V0aWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNENBQW1CO0FBQ25CLGdEQUF1QjtBQUVWLFFBQUEsU0FBUyxHQUFHLE9BQU8sT0FBTyxLQUFLLFdBQVcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUE7QUFFNUUsU0FBUyxLQUFLLENBQUMsR0FBVztJQUN4QixPQUFPLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQztRQUN0RCxDQUFDLENBQUMsSUFBSTtRQUNOLENBQUMsQ0FBQyxLQUFLLENBQUE7QUFDWCxDQUFDO0FBRUQsU0FBUyxRQUFRLENBQUMsR0FBVztJQUMzQixJQUFJLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLEVBQUU7UUFDckQsT0FBTyxLQUFLLENBQUE7S0FDYjtJQUNELE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDOUIsT0FBTyxDQUFDLEtBQUssS0FBSyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN2RCxDQUFDLENBQUMsSUFBSTtRQUNOLENBQUMsQ0FBQyxLQUFLLENBQUE7QUFDWCxDQUFDO0FBRUQsU0FBZ0IsYUFBYSxDQUFDLEdBQVcsRUFBRSxHQUFZO0lBQ25ELElBQUksQ0FBQyxHQUFHLElBQUksS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1FBQ3RCLEdBQUcsR0FBRyxLQUFLLENBQUE7S0FDWjtJQUNELElBQUksQ0FBQyxHQUFHLElBQUksUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1FBQ3pCLEdBQUcsR0FBRyxRQUFRLENBQUE7S0FDZjtJQUVELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUE7QUFDaEMsQ0FBQztBQVRELHNDQVNDO0FBRUQsU0FBUyx3QkFBd0IsQ0FDL0IsT0FBZTtJQUVmLElBQUksSUFBSSxHQUFXLElBQUksSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUE7SUFDM0Msa0RBQWtEO0lBQ2xELElBQUksUUFBUSxHQUFXLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsR0FBRyxJQUFJLEdBQUcsT0FBTyxDQUFBO0lBRTFFLE9BQU8sUUFBUSxDQUFBO0FBQ2pCLENBQUM7QUFFRCxTQUFnQixZQUFZLENBQzFCLFFBQWE7SUFFYix5REFBeUQ7SUFDekQsSUFBSSxpQkFBUyxFQUFFO1FBQ2IsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFBO0tBQ2hDO0lBRUQsSUFBSSxRQUFRLEdBQVcsd0JBQXdCLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBQ2pFLGtDQUFrQztJQUNsQyxJQUFJLE9BQU8sR0FBVyxjQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBRXpDLFlBQUUsQ0FBQyxhQUFhLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQzVELE9BQU8sT0FBTyxDQUFBO0FBQ2hCLENBQUM7QUFkRCxvQ0FjQztBQUVELFNBQWdCLGNBQWMsQ0FDNUIsUUFBZ0I7SUFFaEIsSUFBSSxJQUFJLEdBQUcsWUFBRSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUE7SUFDNUMsSUFBSSxRQUFRLEdBQVcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUV2QyxPQUFPLFFBQVEsQ0FBQTtBQUNqQixDQUFDO0FBUEQsd0NBT0MifQ==