From e4532271cc0b4e63bdb506e5a847f147ff781b00 Mon Sep 17 00:00:00 2001 From: Phil Kunz Date: Sat, 25 Jun 2016 02:29:34 +0200 Subject: [PATCH] major structural update --- dist/smartssh.classes.sshconfig.d.ts | 13 +++- dist/smartssh.classes.sshconfig.js | 18 ++++- dist/smartssh.classes.sshdir.d.ts | 5 +- dist/smartssh.classes.sshdir.js | 16 +++-- dist/smartssh.classes.sshinstance.d.ts | 6 +- dist/smartssh.classes.sshinstance.js | 27 +++++--- dist/smartssh.classes.sshkey.d.ts | 19 ++--- dist/smartssh.classes.sshkey.js | 67 ++++++++++-------- test/test.js | 10 +-- test/test.ts | 8 +-- ts/smartssh.classes.sshconfig.ts | 28 +++----- ts/smartssh.classes.sshkey.ts | 96 +++++++++++++++----------- 12 files changed, 181 insertions(+), 132 deletions(-) diff --git a/dist/smartssh.classes.sshconfig.d.ts b/dist/smartssh.classes.sshconfig.d.ts index efe15e0..bfcf190 100644 --- a/dist/smartssh.classes.sshconfig.d.ts +++ b/dist/smartssh.classes.sshconfig.d.ts @@ -1,4 +1,15 @@ import "typings-global"; +import { SshKey } from "./smartssh.classes.sshkey"; export declare class SshConfig { - constructor(); + sshKeyArray: SshKey[]; + constructor(sshKeyArrayArg: SshKey[]); + /** + * the current config + */ + config: configObject[]; +} +export interface configObject { + host: string; + authorized: boolean; + sshKey: SshKey; } diff --git a/dist/smartssh.classes.sshconfig.js b/dist/smartssh.classes.sshconfig.js index daac300..34c4091 100644 --- a/dist/smartssh.classes.sshconfig.js +++ b/dist/smartssh.classes.sshconfig.js @@ -1,10 +1,24 @@ "use strict"; require("typings-global"); var SshConfig = (function () { - function SshConfig() { + function SshConfig(sshKeyArrayArg) { + this.sshKeyArray = sshKeyArrayArg; } + Object.defineProperty(SshConfig.prototype, "config", { + /** + * the current config + */ + get: function () { + var configArray; + return configArray; + }, + enumerable: true, + configurable: true + }); return SshConfig; }()); exports.SshConfig = SshConfig; +; +; -//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNtYXJ0c3NoLmNsYXNzZXMuc3NoY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxRQUFPLGdCQUFnQixDQUFDLENBQUE7QUFHeEI7SUFDSTtJQUVBLENBQUM7SUFDTCxnQkFBQztBQUFELENBSkEsQUFJQyxJQUFBO0FBSlksaUJBQVMsWUFJckIsQ0FBQSIsImZpbGUiOiJzbWFydHNzaC5jbGFzc2VzLnNzaGNvbmZpZy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBcInR5cGluZ3MtZ2xvYmFsXCI7XG5pbXBvcnQgKiBhcyBwbHVnaW5zIGZyb20gXCIuL3NtYXJ0c3NoLnBsdWdpbnNcIjtcbmltcG9ydCAqIGFzIGhlbHBlcnMgZnJvbSBcIi4vc21hcnRzc2guY2xhc3Nlcy5oZWxwZXJzXCI7XG5leHBvcnQgY2xhc3MgU3NoQ29uZmlnIHtcbiAgICBjb25zdHJ1Y3Rvcigpe1xuICAgICAgICBcbiAgICB9XG59Il19 +//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNtYXJ0c3NoLmNsYXNzZXMuc3NoY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxRQUFPLGdCQUFnQixDQUFDLENBQUE7QUFLeEI7SUFFSSxtQkFBWSxjQUF1QjtRQUMvQixJQUFJLENBQUMsV0FBVyxHQUFHLGNBQWMsQ0FBQztJQUN0QyxDQUFDO0lBS0Qsc0JBQUksNkJBQU07UUFIVjs7V0FFRzthQUNIO1lBQ0ksSUFBSSxXQUEwQixDQUFDO1lBQy9CLE1BQU0sQ0FBQyxXQUFXLENBQUM7UUFDdkIsQ0FBQzs7O09BQUE7SUFDTCxnQkFBQztBQUFELENBYkEsQUFhQyxJQUFBO0FBYlksaUJBQVMsWUFhckIsQ0FBQTtBQUFBLENBQUM7QUFNRCxDQUFDIiwiZmlsZSI6InNtYXJ0c3NoLmNsYXNzZXMuc3NoY29uZmlnLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFwidHlwaW5ncy1nbG9iYWxcIjtcbmltcG9ydCAqIGFzIHBsdWdpbnMgZnJvbSBcIi4vc21hcnRzc2gucGx1Z2luc1wiO1xuaW1wb3J0ICogYXMgaGVscGVycyBmcm9tIFwiLi9zbWFydHNzaC5jbGFzc2VzLmhlbHBlcnNcIjtcbmltcG9ydCB7U3NoS2V5fSBmcm9tIFwiLi9zbWFydHNzaC5jbGFzc2VzLnNzaGtleVwiXG5cbmV4cG9ydCBjbGFzcyBTc2hDb25maWcge1xuICAgIHNzaEtleUFycmF5OlNzaEtleVtdO1xuICAgIGNvbnN0cnVjdG9yKHNzaEtleUFycmF5QXJnOlNzaEtleVtdKXtcbiAgICAgICAgdGhpcy5zc2hLZXlBcnJheSA9IHNzaEtleUFycmF5QXJnO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIHRoZSBjdXJyZW50IGNvbmZpZ1xuICAgICAqL1xuICAgIGdldCBjb25maWcoKXtcbiAgICAgICAgbGV0IGNvbmZpZ0FycmF5OmNvbmZpZ09iamVjdFtdO1xuICAgICAgICByZXR1cm4gY29uZmlnQXJyYXk7XG4gICAgfVxufTtcblxuZXhwb3J0IGludGVyZmFjZSBjb25maWdPYmplY3Qge1xuICAgIGhvc3Q6c3RyaW5nO1xuICAgIGF1dGhvcml6ZWQ6Ym9vbGVhbjtcbiAgICBzc2hLZXk6U3NoS2V5O1xufTtcblxuIl19 diff --git a/dist/smartssh.classes.sshdir.d.ts b/dist/smartssh.classes.sshdir.d.ts index 7902ad7..2d8113d 100644 --- a/dist/smartssh.classes.sshdir.d.ts +++ b/dist/smartssh.classes.sshdir.d.ts @@ -1,10 +1,9 @@ import "typings-global"; -import { SshInstance } from "./smartssh.classes.sshinstance"; import { SshKey } from "./smartssh.classes.sshkey"; export declare class SshDir { path: string; - sshInstance: SshInstance; - constructor(sshInstanceArg: SshInstance, sshDirPathArg?: string); + private sshKeyArray; + constructor(sshKeyArray: SshKey[], sshDirPathArg?: string); writeToDir(): void; readFromDir(): void; getKeys(): SshKey[]; diff --git a/dist/smartssh.classes.sshdir.js b/dist/smartssh.classes.sshdir.js index 2254763..bf40f79 100644 --- a/dist/smartssh.classes.sshdir.js +++ b/dist/smartssh.classes.sshdir.js @@ -3,17 +3,21 @@ require("typings-global"); var plugins = require("./smartssh.plugins"); var helpers = require("./smartssh.classes.helpers"); var SshDir = (function () { - function SshDir(sshInstanceArg, sshDirPathArg) { - var sshDirPath; + function SshDir(sshKeyArray, sshDirPathArg) { + this.sshKeyArray = sshKeyArray; if (sshDirPathArg) { - sshDirPath = sshDirPathArg; + this.path = sshDirPathArg; } else { - sshDirPath = plugins.smartpath.get.home(); + this.path = plugins.path.join(plugins.smartpath.get.home(), ".ssh/"); } - this.path = sshDirPath; + ; } SshDir.prototype.writeToDir = function () { + var _this = this; + this.sshKeyArray.forEach(function (sshKeyArg) { + sshKeyArg.store(_this.path); + }); }; ; SshDir.prototype.readFromDir = function () { @@ -25,4 +29,4 @@ var SshDir = (function () { }()); exports.SshDir = SshDir; -//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNtYXJ0c3NoLmNsYXNzZXMuc3NoZGlyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxRQUFPLGdCQUFnQixDQUFDLENBQUE7QUFDeEIsSUFBWSxPQUFPLFdBQU0sb0JBQW9CLENBQUMsQ0FBQTtBQUM5QyxJQUFZLE9BQU8sV0FBTSw0QkFBNEIsQ0FBQyxDQUFBO0FBSXREO0lBR0ksZ0JBQVksY0FBMEIsRUFBQyxhQUFxQjtRQUN4RCxJQUFJLFVBQWlCLENBQUM7UUFDdEIsRUFBRSxDQUFBLENBQUMsYUFBYSxDQUFDLENBQUEsQ0FBQztZQUNkLFVBQVUsR0FBRyxhQUFhLENBQUM7UUFDL0IsQ0FBQztRQUFDLElBQUksQ0FBQyxDQUFDO1lBQ0osVUFBVSxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzlDLENBQUM7UUFDRCxJQUFJLENBQUMsSUFBSSxHQUFHLFVBQVUsQ0FBQztJQUMzQixDQUFDO0lBQ0QsMkJBQVUsR0FBVjtJQUVBLENBQUM7O0lBQ0QsNEJBQVcsR0FBWDtJQUVBLENBQUM7SUFDRCx3QkFBTyxHQUFQO1FBQ0ksTUFBTSxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUNMLGFBQUM7QUFBRCxDQXJCQSxBQXFCQyxJQUFBO0FBckJZLGNBQU0sU0FxQmxCLENBQUEiLCJmaWxlIjoic21hcnRzc2guY2xhc3Nlcy5zc2hkaXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXCJ0eXBpbmdzLWdsb2JhbFwiO1xuaW1wb3J0ICogYXMgcGx1Z2lucyBmcm9tIFwiLi9zbWFydHNzaC5wbHVnaW5zXCI7XG5pbXBvcnQgKiBhcyBoZWxwZXJzIGZyb20gXCIuL3NtYXJ0c3NoLmNsYXNzZXMuaGVscGVyc1wiO1xuaW1wb3J0IHtTc2hJbnN0YW5jZX0gZnJvbSBcIi4vc21hcnRzc2guY2xhc3Nlcy5zc2hpbnN0YW5jZVwiO1xuaW1wb3J0IHtTc2hLZXl9IGZyb20gXCIuL3NtYXJ0c3NoLmNsYXNzZXMuc3Noa2V5XCI7XG5pbXBvcnQge1NzaENvbmZpZ30gZnJvbSBcIi4vc21hcnRzc2guY2xhc3Nlcy5zc2hjb25maWdcIjtcbmV4cG9ydCBjbGFzcyBTc2hEaXIgeyAvLyBzc2hEaXIgY2xhc3MgLT4gTk9UIEVYUE9SVEVELCBPTkxZIEZPUiBJTlRFUk5BTCBVU0VcbiAgICBwYXRoOnN0cmluZzsgLy8gdGhlIHBhdGggb2YgdGhlIHNzaCBkaXJlY3RvcnlcbiAgICBzc2hJbnN0YW5jZTpTc2hJbnN0YW5jZTtcbiAgICBjb25zdHJ1Y3Rvcihzc2hJbnN0YW5jZUFyZzpTc2hJbnN0YW5jZSxzc2hEaXJQYXRoQXJnPzpzdHJpbmcpe1xuICAgICAgICBsZXQgc3NoRGlyUGF0aDpzdHJpbmc7XG4gICAgICAgIGlmKHNzaERpclBhdGhBcmcpe1xuICAgICAgICAgICAgc3NoRGlyUGF0aCA9IHNzaERpclBhdGhBcmc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzc2hEaXJQYXRoID0gcGx1Z2lucy5zbWFydHBhdGguZ2V0LmhvbWUoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnBhdGggPSBzc2hEaXJQYXRoO1xuICAgIH1cbiAgICB3cml0ZVRvRGlyKCl7IC8vIHN5bmNzIHNzaEluc3RhbmNlIHRvIGRpcmVjdG9yeVxuICAgICAgICBcbiAgICB9O1xuICAgIHJlYWRGcm9tRGlyKCl7IC8vIHN5bmNzIHNzaEluc3RhbmNlIGZyb20gZGlyZWN0b3J5XG4gICAgICAgIFxuICAgIH1cbiAgICBnZXRLZXlzKCl7XG4gICAgICAgIHJldHVybiBoZWxwZXJzLnNzaEtleUFycmF5RnJvbURpcih0aGlzLnBhdGgpO1xuICAgIH1cbn0iXX0= +//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNtYXJ0c3NoLmNsYXNzZXMuc3NoZGlyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxRQUFPLGdCQUFnQixDQUFDLENBQUE7QUFDeEIsSUFBWSxPQUFPLFdBQU0sb0JBQW9CLENBQUMsQ0FBQTtBQUM5QyxJQUFZLE9BQU8sV0FBTSw0QkFBNEIsQ0FBQyxDQUFBO0FBSXREO0lBR0ksZ0JBQVksV0FBb0IsRUFBQyxhQUFxQjtRQUNsRCxJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztRQUMvQixFQUFFLENBQUEsQ0FBQyxhQUFhLENBQUMsQ0FBQSxDQUFDO1lBQ2QsSUFBSSxDQUFDLElBQUksR0FBRyxhQUFhLENBQUM7UUFDOUIsQ0FBQztRQUFDLElBQUksQ0FBQyxDQUFDO1lBQ0osSUFBSSxDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsRUFBQyxPQUFPLENBQUMsQ0FBQztRQUN4RSxDQUFDO1FBQUEsQ0FBQztJQUNOLENBQUM7SUFDRCwyQkFBVSxHQUFWO1FBQUEsaUJBS0M7UUFKRyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxVQUFDLFNBQVM7WUFDL0IsU0FBUyxDQUFDLEtBQUssQ0FBQyxLQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFL0IsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOztJQUNELDRCQUFXLEdBQVg7SUFFQSxDQUFDO0lBQ0Qsd0JBQU8sR0FBUDtRQUNJLE1BQU0sQ0FBQyxPQUFPLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFDTCxhQUFDO0FBQUQsQ0F2QkEsQUF1QkMsSUFBQTtBQXZCWSxjQUFNLFNBdUJsQixDQUFBIiwiZmlsZSI6InNtYXJ0c3NoLmNsYXNzZXMuc3NoZGlyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFwidHlwaW5ncy1nbG9iYWxcIjtcbmltcG9ydCAqIGFzIHBsdWdpbnMgZnJvbSBcIi4vc21hcnRzc2gucGx1Z2luc1wiO1xuaW1wb3J0ICogYXMgaGVscGVycyBmcm9tIFwiLi9zbWFydHNzaC5jbGFzc2VzLmhlbHBlcnNcIjtcbmltcG9ydCB7U3NoSW5zdGFuY2V9IGZyb20gXCIuL3NtYXJ0c3NoLmNsYXNzZXMuc3NoaW5zdGFuY2VcIjtcbmltcG9ydCB7U3NoS2V5fSBmcm9tIFwiLi9zbWFydHNzaC5jbGFzc2VzLnNzaGtleVwiO1xuaW1wb3J0IHtTc2hDb25maWd9IGZyb20gXCIuL3NtYXJ0c3NoLmNsYXNzZXMuc3NoY29uZmlnXCI7XG5leHBvcnQgY2xhc3MgU3NoRGlyIHsgLy8gc3NoRGlyIGNsYXNzIC0+IE5PVCBFWFBPUlRFRCwgT05MWSBGT1IgSU5URVJOQUwgVVNFXG4gICAgcGF0aDpzdHJpbmc7IC8vIHRoZSBwYXRoIG9mIHRoZSBzc2ggZGlyZWN0b3J5XG4gICAgcHJpdmF0ZSBzc2hLZXlBcnJheTpTc2hLZXlbXTtcbiAgICBjb25zdHJ1Y3Rvcihzc2hLZXlBcnJheTpTc2hLZXlbXSxzc2hEaXJQYXRoQXJnPzpzdHJpbmcpe1xuICAgICAgICB0aGlzLnNzaEtleUFycmF5ID0gc3NoS2V5QXJyYXk7XG4gICAgICAgIGlmKHNzaERpclBhdGhBcmcpe1xuICAgICAgICAgICAgdGhpcy5wYXRoID0gc3NoRGlyUGF0aEFyZztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMucGF0aCA9IHBsdWdpbnMucGF0aC5qb2luKHBsdWdpbnMuc21hcnRwYXRoLmdldC5ob21lKCksXCIuc3NoL1wiKTtcbiAgICAgICAgfTtcbiAgICB9XG4gICAgd3JpdGVUb0RpcigpeyAvLyBzeW5jcyBzc2hJbnN0YW5jZSB0byBkaXJlY3RvcnlcbiAgICAgICAgdGhpcy5zc2hLZXlBcnJheS5mb3JFYWNoKChzc2hLZXlBcmcpID0+IHtcbiAgICAgICAgICAgIHNzaEtleUFyZy5zdG9yZSh0aGlzLnBhdGgpO1xuICAgICAgICAgICAgXG4gICAgICAgIH0pO1xuICAgIH07XG4gICAgcmVhZEZyb21EaXIoKXsgLy8gc3luY3Mgc3NoSW5zdGFuY2UgZnJvbSBkaXJlY3RvcnlcbiAgICAgICAgXG4gICAgfVxuICAgIGdldEtleXMoKXtcbiAgICAgICAgcmV0dXJuIGhlbHBlcnMuc3NoS2V5QXJyYXlGcm9tRGlyKHRoaXMucGF0aCk7XG4gICAgfVxufSJdfQ== diff --git a/dist/smartssh.classes.sshinstance.d.ts b/dist/smartssh.classes.sshinstance.d.ts index 989614f..86fb214 100644 --- a/dist/smartssh.classes.sshinstance.d.ts +++ b/dist/smartssh.classes.sshinstance.d.ts @@ -1,10 +1,9 @@ import "typings-global"; -import { SshDir } from "./smartssh.classes.sshdir"; import { SshKey } from "./smartssh.classes.sshkey"; export declare class SshInstance { + private _sshKeyArray; private _sshConfig; - sshDir: SshDir; - protected sshKeyArray: SshKey[]; + private _sshDir; private _sshSync; constructor(optionsArg?: { sshDirPath?: string; @@ -23,6 +22,7 @@ export declare class SshInstance { * read ab SshInstance from disk */ readFromDisk(): void; + private _makeConfig(); /** * method to invoke SshInstance _sync automatically when sshSync is true */ diff --git a/dist/smartssh.classes.sshinstance.js b/dist/smartssh.classes.sshinstance.js index 2eec503..0723331 100644 --- a/dist/smartssh.classes.sshinstance.js +++ b/dist/smartssh.classes.sshinstance.js @@ -1,28 +1,30 @@ "use strict"; require("typings-global"); var smartssh_classes_sshdir_1 = require("./smartssh.classes.sshdir"); +var smartssh_classes_sshconfig_1 = require("./smartssh.classes.sshconfig"); var SshInstance = (function () { function SshInstance(optionsArg) { if (optionsArg === void 0) { optionsArg = {}; } optionsArg ? void (0) : optionsArg = {}; - this.sshKeyArray = []; + this._sshKeyArray = []; + this._sshConfig = new smartssh_classes_sshconfig_1.SshConfig(this._sshKeyArray); + this._sshDir = new smartssh_classes_sshdir_1.SshDir(this._sshKeyArray, optionsArg.sshDirPath); this._sshSync = optionsArg.sshSync; - this.sshDir = new smartssh_classes_sshdir_1.SshDir(this, optionsArg.sshDirPath); } ; //altering methods SshInstance.prototype.addKey = function (sshKeyArg) { this._syncAuto("from"); - this.sshKeyArray.push(sshKeyArg); + this._sshKeyArray.push(sshKeyArg); this._syncAuto("to"); }; ; SshInstance.prototype.removeKey = function (sshKeyArg) { this._syncAuto("from"); - var filteredArray = this.sshKeyArray.filter(function (sshKeyArg2) { + var filteredArray = this._sshKeyArray.filter(function (sshKeyArg2) { return (sshKeyArg != sshKeyArg2); }); - this.sshKeyArray = filteredArray; + this._sshKeyArray = filteredArray; this._syncAuto("to"); }; ; @@ -36,7 +38,7 @@ var SshInstance = (function () { // SshInstance.prototype.getKey = function (hostArg) { this._syncAuto("from"); - var filteredArray = this.sshKeyArray.filter(function (keyArg) { + var filteredArray = this._sshKeyArray.filter(function (keyArg) { return (keyArg.host == hostArg); }); if (filteredArray.length > 0) { @@ -50,7 +52,7 @@ var SshInstance = (function () { Object.defineProperty(SshInstance.prototype, "sshKeys", { get: function () { this._syncAuto("from"); - return this.sshKeyArray; + return this._sshKeyArray; }, enumerable: true, configurable: true @@ -69,6 +71,11 @@ var SshInstance = (function () { SshInstance.prototype.readFromDisk = function () { this._sync("from"); }; + /* =============================================================== + ========================= Private Methods ======================== + ================================================================*/ + SshInstance.prototype._makeConfig = function () { + }; /** * method to invoke SshInstance _sync automatically when sshSync is true */ @@ -81,10 +88,10 @@ var SshInstance = (function () { */ SshInstance.prototype._sync = function (directionArg) { if (directionArg == "from") { - this.sshDir.readFromDir(); // call sync method of sshDir class; + this._sshDir.readFromDir(); // call sync method of sshDir class; } else if (directionArg == "to") { - this.sshDir.writeToDir(); + this._sshDir.writeToDir(); } else { throw new Error("directionArg not recognised. Must be 'to' or 'from'"); @@ -95,4 +102,4 @@ var SshInstance = (function () { }()); exports.SshInstance = SshInstance; -//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNtYXJ0c3NoLmNsYXNzZXMuc3NoaW5zdGFuY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLFFBQU8sZ0JBQ1AsQ0FBQyxDQURzQjtBQUl2Qix3Q0FBcUIsMkJBQTJCLENBQUMsQ0FBQTtBQUlqRDtJQUtJLHFCQUFZLFVBQW1EO1FBQW5ELDBCQUFtRCxHQUFuRCxlQUFtRDtRQUMzRCxVQUFVLEdBQUcsS0FBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLFVBQVUsR0FBRyxFQUFFLENBQUM7UUFDdkMsSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDO1FBQ25DLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxnQ0FBTSxDQUFDLElBQUksRUFBQyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDekQsQ0FBQzs7SUFFRCxrQkFBa0I7SUFDbEIsNEJBQU0sR0FBTixVQUFPLFNBQWdCO1FBQ25CLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDakMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN6QixDQUFDOztJQUNELCtCQUFTLEdBQVQsVUFBVSxTQUFnQjtRQUN0QixJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3ZCLElBQUksYUFBYSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLFVBQUMsVUFBaUI7WUFDMUQsTUFBTSxDQUFDLENBQUMsU0FBUyxJQUFJLFVBQVUsQ0FBQyxDQUFDO1FBQ3JDLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFdBQVcsR0FBRyxhQUFhLENBQUM7UUFDakMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN6QixDQUFDOztJQUNELGdDQUFVLEdBQVYsVUFBVyxZQUFtQixFQUFDLFlBQW1CO1FBQzlDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUM3QixJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzFCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDekIsQ0FBQzs7SUFFRCxFQUFFO0lBQ0YsNEJBQU0sR0FBTixVQUFPLE9BQWM7UUFDakIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN2QixJQUFJLGFBQWEsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxVQUFTLE1BQU07WUFDdkQsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxPQUFPLENBQUMsQ0FBQztRQUNwQyxDQUFDLENBQUMsQ0FBQztRQUNILEVBQUUsQ0FBQSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUEsQ0FBQztZQUN6QixNQUFNLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzVCLENBQUM7UUFBQyxJQUFJLENBQUMsQ0FBQztZQUNKLE1BQU0sQ0FBQyxTQUFTLENBQUM7UUFDckIsQ0FBQztJQUNMLENBQUM7O0lBQ0Qsc0JBQUksZ0NBQU87YUFBWDtZQUNJLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDdkIsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUM7UUFDNUIsQ0FBQzs7O09BQUE7O0lBRUQsWUFBWTtJQUVaOztPQUVHO0lBQ0gsaUNBQVcsR0FBWDtRQUNJLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDckIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsa0NBQVksR0FBWjtRQUNJLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUVEOztPQUVHO0lBQ0ssK0JBQVMsR0FBakIsVUFBa0IsWUFBWTtRQUMxQixFQUFFLENBQUEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO1lBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQ7O09BRUc7SUFDSywyQkFBSyxHQUFiLFVBQWMsWUFBbUI7UUFDN0IsRUFBRSxDQUFBLENBQUMsWUFBWSxJQUFJLE1BQU0sQ0FBQyxDQUFBLENBQUM7WUFDdkIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLG9DQUFvQztRQUNuRSxDQUFDO1FBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQSxDQUFDLFlBQVksSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQzdCLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDN0IsQ0FBQztRQUFDLElBQUksQ0FBQyxDQUFDO1lBQ0osTUFBTSxJQUFJLEtBQUssQ0FBQyxxREFBcUQsQ0FBQyxDQUFDO1FBQzNFLENBQUM7SUFDTCxDQUFDOztJQUNMLGtCQUFDO0FBQUQsQ0FyRkEsQUFxRkMsSUFBQTtBQXJGWSxtQkFBVyxjQXFGdkIsQ0FBQSIsImZpbGUiOiJzbWFydHNzaC5jbGFzc2VzLnNzaGluc3RhbmNlLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFwidHlwaW5ncy1nbG9iYWxcIlxuaW1wb3J0ICogYXMgcGx1Z2lucyBmcm9tIFwiLi9zbWFydHNzaC5wbHVnaW5zXCI7XG5pbXBvcnQgKiBhcyBoZWxwZXJzIGZyb20gXCIuL3NtYXJ0c3NoLmNsYXNzZXMuaGVscGVyc1wiO1xuXG5pbXBvcnQge1NzaERpcn0gZnJvbSBcIi4vc21hcnRzc2guY2xhc3Nlcy5zc2hkaXJcIjtcbmltcG9ydCB7U3NoQ29uZmlnfSBmcm9tIFwiLi9zbWFydHNzaC5jbGFzc2VzLnNzaGNvbmZpZ1wiO1xuaW1wb3J0IHtTc2hLZXl9IGZyb20gXCIuL3NtYXJ0c3NoLmNsYXNzZXMuc3Noa2V5XCI7XG5cbmV4cG9ydCBjbGFzcyBTc2hJbnN0YW5jZSB7XG4gICAgcHJpdmF0ZSBfc3NoQ29uZmlnOlNzaENvbmZpZzsgLy8gc3NoQ29uZmlnIChlLmcuIHJlcHJlc2VudHMgfi8uc3NoL2NvbmZpZylcbiAgICBzc2hEaXI6U3NoRGlyOyAvLyBwb2ludHMgdG8gc3NoRGlyIGNsYXNzIGluc3RhbmNlLlxuICAgIHByb3RlY3RlZCBzc2hLZXlBcnJheTpTc2hLZXlbXTsgLy9ob2xkcyBhbGwgc3NoIGtleXNcbiAgICBwcml2YXRlIF9zc2hTeW5jOmJvb2xlYW47IC8vIGlmIHNldCB0byB0cnVlLCB0aGUgc3NoIGRpciB3aWxsIGJlIGtlcHQgaW4gc3luYyBhdXRvbWF0aWNhbGx5XG4gICAgY29uc3RydWN0b3Iob3B0aW9uc0FyZzp7c3NoRGlyUGF0aD86c3RyaW5nLHNzaFN5bmM/OmJvb2xlYW59PXt9KXtcbiAgICAgICAgb3B0aW9uc0FyZyA/IHZvaWQoMCkgOiBvcHRpb25zQXJnID0ge307XG4gICAgICAgIHRoaXMuc3NoS2V5QXJyYXkgPSBbXTtcbiAgICAgICAgdGhpcy5fc3NoU3luYyA9IG9wdGlvbnNBcmcuc3NoU3luYztcbiAgICAgICAgdGhpcy5zc2hEaXIgPSBuZXcgU3NoRGlyKHRoaXMsb3B0aW9uc0FyZy5zc2hEaXJQYXRoKTtcbiAgICB9O1xuICAgIFxuICAgIC8vYWx0ZXJpbmcgbWV0aG9kc1xuICAgIGFkZEtleShzc2hLZXlBcmc6U3NoS2V5KXtcbiAgICAgICAgdGhpcy5fc3luY0F1dG8oXCJmcm9tXCIpO1xuICAgICAgICB0aGlzLnNzaEtleUFycmF5LnB1c2goc3NoS2V5QXJnKTtcbiAgICAgICAgdGhpcy5fc3luY0F1dG8oXCJ0b1wiKTtcbiAgICB9O1xuICAgIHJlbW92ZUtleShzc2hLZXlBcmc6U3NoS2V5KXtcbiAgICAgICAgdGhpcy5fc3luY0F1dG8oXCJmcm9tXCIpO1xuICAgICAgICBsZXQgZmlsdGVyZWRBcnJheSA9IHRoaXMuc3NoS2V5QXJyYXkuZmlsdGVyKChzc2hLZXlBcmcyOlNzaEtleSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIChzc2hLZXlBcmcgIT0gc3NoS2V5QXJnMik7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnNzaEtleUFycmF5ID0gZmlsdGVyZWRBcnJheTtcbiAgICAgICAgdGhpcy5fc3luY0F1dG8oXCJ0b1wiKTtcbiAgICB9O1xuICAgIHJlcGxhY2VLZXkoc3NoS2V5T2xkQXJnOlNzaEtleSxzc2hLZXlOZXdBcmc6U3NoS2V5KXtcbiAgICAgICAgdGhpcy5fc3luY0F1dG8oXCJmcm9tXCIpO1xuICAgICAgICB0aGlzLnJlbW92ZUtleShzc2hLZXlPbGRBcmcpO1xuICAgICAgICB0aGlzLmFkZEtleShzc2hLZXlOZXdBcmcpO1xuICAgICAgICB0aGlzLl9zeW5jQXV0byhcInRvXCIpO1xuICAgIH07XG4gICAgXG4gICAgLy9cbiAgICBnZXRLZXkoaG9zdEFyZzpzdHJpbmcpOlNzaEtleXtcbiAgICAgICAgdGhpcy5fc3luY0F1dG8oXCJmcm9tXCIpO1xuICAgICAgICBsZXQgZmlsdGVyZWRBcnJheSA9IHRoaXMuc3NoS2V5QXJyYXkuZmlsdGVyKGZ1bmN0aW9uKGtleUFyZyl7XG4gICAgICAgICAgICByZXR1cm4gKGtleUFyZy5ob3N0ID09IGhvc3RBcmcpO1xuICAgICAgICB9KTtcbiAgICAgICAgaWYoZmlsdGVyZWRBcnJheS5sZW5ndGggPiAwKXtcbiAgICAgICAgICAgIHJldHVybiBmaWx0ZXJlZEFycmF5WzBdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgIH07XG4gICAgZ2V0IHNzaEtleXMoKTpTc2hLZXlbXSB7XG4gICAgICAgIHRoaXMuX3N5bmNBdXRvKFwiZnJvbVwiKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3NoS2V5QXJyYXk7XG4gICAgfTtcblxuICAgIC8vRlMgbWV0aG9kc1xuXG4gICAgLyoqXG4gICAgICogd3JpdGUgU3NoSW5zdGFuY2UgdG8gZGlza1xuICAgICAqL1xuICAgIHdyaXRlVG9EaXNrKCl7XG4gICAgICAgIHRoaXMuX3N5bmMoXCJ0b1wiKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiByZWFkIGFiIFNzaEluc3RhbmNlIGZyb20gZGlza1xuICAgICAqL1xuICAgIHJlYWRGcm9tRGlzaygpe1xuICAgICAgICB0aGlzLl9zeW5jKFwiZnJvbVwiKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBtZXRob2QgdG8gaW52b2tlIFNzaEluc3RhbmNlIF9zeW5jIGF1dG9tYXRpY2FsbHkgd2hlbiBzc2hTeW5jIGlzIHRydWVcbiAgICAgKi9cbiAgICBwcml2YXRlIF9zeW5jQXV0byhkaXJlY3Rpb25Bcmcpe1xuICAgICAgICBpZih0aGlzLl9zc2hTeW5jKSB0aGlzLl9zeW5jKGRpcmVjdGlvbkFyZyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogcHJpdmF0ZSBtZXRob2QgdG8gc3luYyBTc2hJbnN0YW5jZVxuICAgICAqL1xuICAgIHByaXZhdGUgX3N5bmMoZGlyZWN0aW9uQXJnOnN0cmluZyl7XG4gICAgICAgIGlmKGRpcmVjdGlvbkFyZyA9PSBcImZyb21cIil7XG4gICAgICAgICAgICB0aGlzLnNzaERpci5yZWFkRnJvbURpcigpOyAvLyBjYWxsIHN5bmMgbWV0aG9kIG9mIHNzaERpciBjbGFzcztcbiAgICAgICAgfSBlbHNlIGlmKGRpcmVjdGlvbkFyZyA9PSBcInRvXCIpIHtcbiAgICAgICAgICAgIHRoaXMuc3NoRGlyLndyaXRlVG9EaXIoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcImRpcmVjdGlvbkFyZyBub3QgcmVjb2duaXNlZC4gTXVzdCBiZSAndG8nIG9yICdmcm9tJ1wiKTtcbiAgICAgICAgfVxuICAgIH07XG59XG5cblxuIl19 +//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNtYXJ0c3NoLmNsYXNzZXMuc3NoaW5zdGFuY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLFFBQU8sZ0JBQ1AsQ0FBQyxDQURzQjtBQUl2Qix3Q0FBcUIsMkJBQTJCLENBQUMsQ0FBQTtBQUNqRCwyQ0FBd0IsOEJBQThCLENBQUMsQ0FBQTtBQUd2RDtJQUtJLHFCQUFZLFVBQW1EO1FBQW5ELDBCQUFtRCxHQUFuRCxlQUFtRDtRQUMzRCxVQUFVLEdBQUcsS0FBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLFVBQVUsR0FBRyxFQUFFLENBQUM7UUFDdkMsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLHNDQUFTLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ25ELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxnQ0FBTSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ25FLElBQUksQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQztJQUN2QyxDQUFDOztJQUVELGtCQUFrQjtJQUNsQiw0QkFBTSxHQUFOLFVBQU8sU0FBZ0I7UUFDbkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN2QixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNsQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3pCLENBQUM7O0lBQ0QsK0JBQVMsR0FBVCxVQUFVLFNBQWdCO1FBQ3RCLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdkIsSUFBSSxhQUFhLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsVUFBQyxVQUFpQjtZQUMzRCxNQUFNLENBQUMsQ0FBQyxTQUFTLElBQUksVUFBVSxDQUFDLENBQUM7UUFDckMsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsWUFBWSxHQUFHLGFBQWEsQ0FBQztRQUNsQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3pCLENBQUM7O0lBQ0QsZ0NBQVUsR0FBVixVQUFXLFlBQW1CLEVBQUMsWUFBbUI7UUFDOUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN2QixJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzdCLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDMUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN6QixDQUFDOztJQUVELEVBQUU7SUFDRiw0QkFBTSxHQUFOLFVBQU8sT0FBYztRQUNqQixJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3ZCLElBQUksYUFBYSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLFVBQVMsTUFBTTtZQUN4RCxNQUFNLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxJQUFJLE9BQU8sQ0FBQyxDQUFDO1FBQ3BDLENBQUMsQ0FBQyxDQUFDO1FBQ0gsRUFBRSxDQUFBLENBQUMsYUFBYSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQSxDQUFDO1lBQ3pCLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDNUIsQ0FBQztRQUFDLElBQUksQ0FBQyxDQUFDO1lBQ0osTUFBTSxDQUFDLFNBQVMsQ0FBQztRQUNyQixDQUFDO0lBQ0wsQ0FBQzs7SUFDRCxzQkFBSSxnQ0FBTzthQUFYO1lBQ0ksSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN2QixNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQztRQUM3QixDQUFDOzs7T0FBQTs7SUFFRCxZQUFZO0lBRVo7O09BRUc7SUFDSCxpQ0FBVyxHQUFYO1FBQ0ksSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBRUQ7O09BRUc7SUFDSCxrQ0FBWSxHQUFaO1FBQ0ksSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN2QixDQUFDO0lBRUQ7O3NFQUVrRTtJQUUxRCxpQ0FBVyxHQUFuQjtJQUVBLENBQUM7SUFFRDs7T0FFRztJQUNLLCtCQUFTLEdBQWpCLFVBQWtCLFlBQVk7UUFDMUIsRUFBRSxDQUFBLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztZQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVEOztPQUVHO0lBQ0ssMkJBQUssR0FBYixVQUFjLFlBQW1CO1FBQzdCLEVBQUUsQ0FBQSxDQUFDLFlBQVksSUFBSSxNQUFNLENBQUMsQ0FBQSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxvQ0FBb0M7UUFDcEUsQ0FBQztRQUFDLElBQUksQ0FBQyxFQUFFLENBQUEsQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQztZQUM3QixJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQzlCLENBQUM7UUFBQyxJQUFJLENBQUMsQ0FBQztZQUNKLE1BQU0sSUFBSSxLQUFLLENBQUMscURBQXFELENBQUMsQ0FBQztRQUMzRSxDQUFDO0lBQ0wsQ0FBQzs7SUFDTCxrQkFBQztBQUFELENBOUZBLEFBOEZDLElBQUE7QUE5RlksbUJBQVcsY0E4RnZCLENBQUEiLCJmaWxlIjoic21hcnRzc2guY2xhc3Nlcy5zc2hpbnN0YW5jZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBcInR5cGluZ3MtZ2xvYmFsXCJcbmltcG9ydCAqIGFzIHBsdWdpbnMgZnJvbSBcIi4vc21hcnRzc2gucGx1Z2luc1wiO1xuaW1wb3J0ICogYXMgaGVscGVycyBmcm9tIFwiLi9zbWFydHNzaC5jbGFzc2VzLmhlbHBlcnNcIjtcblxuaW1wb3J0IHtTc2hEaXJ9IGZyb20gXCIuL3NtYXJ0c3NoLmNsYXNzZXMuc3NoZGlyXCI7XG5pbXBvcnQge1NzaENvbmZpZ30gZnJvbSBcIi4vc21hcnRzc2guY2xhc3Nlcy5zc2hjb25maWdcIjtcbmltcG9ydCB7U3NoS2V5fSBmcm9tIFwiLi9zbWFydHNzaC5jbGFzc2VzLnNzaGtleVwiO1xuXG5leHBvcnQgY2xhc3MgU3NoSW5zdGFuY2Uge1xuICAgIHByaXZhdGUgX3NzaEtleUFycmF5OlNzaEtleVtdOyAvL2hvbGRzIGFsbCBzc2gga2V5c1xuICAgIHByaXZhdGUgX3NzaENvbmZpZzpTc2hDb25maWc7IC8vIHNzaENvbmZpZyAoZS5nLiByZXByZXNlbnRzIH4vLnNzaC9jb25maWcpXG4gICAgcHJpdmF0ZSBfc3NoRGlyOlNzaERpcjsgLy8gcG9pbnRzIHRvIHNzaERpciBjbGFzcyBpbnN0YW5jZS5cbiAgICBwcml2YXRlIF9zc2hTeW5jOmJvb2xlYW47IC8vIGlmIHNldCB0byB0cnVlLCB0aGUgc3NoIGRpciB3aWxsIGJlIGtlcHQgaW4gc3luYyBhdXRvbWF0aWNhbGx5XG4gICAgY29uc3RydWN0b3Iob3B0aW9uc0FyZzp7c3NoRGlyUGF0aD86c3RyaW5nLHNzaFN5bmM/OmJvb2xlYW59PXt9KXtcbiAgICAgICAgb3B0aW9uc0FyZyA/IHZvaWQoMCkgOiBvcHRpb25zQXJnID0ge307XG4gICAgICAgIHRoaXMuX3NzaEtleUFycmF5ID0gW107XG4gICAgICAgIHRoaXMuX3NzaENvbmZpZyA9IG5ldyBTc2hDb25maWcodGhpcy5fc3NoS2V5QXJyYXkpO1xuICAgICAgICB0aGlzLl9zc2hEaXIgPSBuZXcgU3NoRGlyKHRoaXMuX3NzaEtleUFycmF5LG9wdGlvbnNBcmcuc3NoRGlyUGF0aCk7XG4gICAgICAgIHRoaXMuX3NzaFN5bmMgPSBvcHRpb25zQXJnLnNzaFN5bmM7XG4gICAgfTtcbiAgICBcbiAgICAvL2FsdGVyaW5nIG1ldGhvZHNcbiAgICBhZGRLZXkoc3NoS2V5QXJnOlNzaEtleSl7XG4gICAgICAgIHRoaXMuX3N5bmNBdXRvKFwiZnJvbVwiKTtcbiAgICAgICAgdGhpcy5fc3NoS2V5QXJyYXkucHVzaChzc2hLZXlBcmcpO1xuICAgICAgICB0aGlzLl9zeW5jQXV0byhcInRvXCIpO1xuICAgIH07XG4gICAgcmVtb3ZlS2V5KHNzaEtleUFyZzpTc2hLZXkpe1xuICAgICAgICB0aGlzLl9zeW5jQXV0byhcImZyb21cIik7XG4gICAgICAgIGxldCBmaWx0ZXJlZEFycmF5ID0gdGhpcy5fc3NoS2V5QXJyYXkuZmlsdGVyKChzc2hLZXlBcmcyOlNzaEtleSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIChzc2hLZXlBcmcgIT0gc3NoS2V5QXJnMik7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLl9zc2hLZXlBcnJheSA9IGZpbHRlcmVkQXJyYXk7XG4gICAgICAgIHRoaXMuX3N5bmNBdXRvKFwidG9cIik7XG4gICAgfTtcbiAgICByZXBsYWNlS2V5KHNzaEtleU9sZEFyZzpTc2hLZXksc3NoS2V5TmV3QXJnOlNzaEtleSl7XG4gICAgICAgIHRoaXMuX3N5bmNBdXRvKFwiZnJvbVwiKTtcbiAgICAgICAgdGhpcy5yZW1vdmVLZXkoc3NoS2V5T2xkQXJnKTtcbiAgICAgICAgdGhpcy5hZGRLZXkoc3NoS2V5TmV3QXJnKTtcbiAgICAgICAgdGhpcy5fc3luY0F1dG8oXCJ0b1wiKTtcbiAgICB9O1xuICAgIFxuICAgIC8vXG4gICAgZ2V0S2V5KGhvc3RBcmc6c3RyaW5nKTpTc2hLZXl7XG4gICAgICAgIHRoaXMuX3N5bmNBdXRvKFwiZnJvbVwiKTtcbiAgICAgICAgbGV0IGZpbHRlcmVkQXJyYXkgPSB0aGlzLl9zc2hLZXlBcnJheS5maWx0ZXIoZnVuY3Rpb24oa2V5QXJnKXtcbiAgICAgICAgICAgIHJldHVybiAoa2V5QXJnLmhvc3QgPT0gaG9zdEFyZyk7XG4gICAgICAgIH0pO1xuICAgICAgICBpZihmaWx0ZXJlZEFycmF5Lmxlbmd0aCA+IDApe1xuICAgICAgICAgICAgcmV0dXJuIGZpbHRlcmVkQXJyYXlbMF07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgfTtcbiAgICBnZXQgc3NoS2V5cygpOlNzaEtleVtdIHtcbiAgICAgICAgdGhpcy5fc3luY0F1dG8oXCJmcm9tXCIpO1xuICAgICAgICByZXR1cm4gdGhpcy5fc3NoS2V5QXJyYXk7XG4gICAgfTtcblxuICAgIC8vRlMgbWV0aG9kc1xuXG4gICAgLyoqXG4gICAgICogd3JpdGUgU3NoSW5zdGFuY2UgdG8gZGlza1xuICAgICAqL1xuICAgIHdyaXRlVG9EaXNrKCl7XG4gICAgICAgIHRoaXMuX3N5bmMoXCJ0b1wiKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiByZWFkIGFiIFNzaEluc3RhbmNlIGZyb20gZGlza1xuICAgICAqL1xuICAgIHJlYWRGcm9tRGlzaygpe1xuICAgICAgICB0aGlzLl9zeW5jKFwiZnJvbVwiKTtcbiAgICB9XG5cbiAgICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICA9PT09PT09PT09PT09PT09PT09PT09PT09IFByaXZhdGUgTWV0aG9kcyA9PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cblxuICAgIHByaXZhdGUgX21ha2VDb25maWcgKCl7XG5cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBtZXRob2QgdG8gaW52b2tlIFNzaEluc3RhbmNlIF9zeW5jIGF1dG9tYXRpY2FsbHkgd2hlbiBzc2hTeW5jIGlzIHRydWVcbiAgICAgKi9cbiAgICBwcml2YXRlIF9zeW5jQXV0byhkaXJlY3Rpb25Bcmcpe1xuICAgICAgICBpZih0aGlzLl9zc2hTeW5jKSB0aGlzLl9zeW5jKGRpcmVjdGlvbkFyZyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogcHJpdmF0ZSBtZXRob2QgdG8gc3luYyBTc2hJbnN0YW5jZVxuICAgICAqL1xuICAgIHByaXZhdGUgX3N5bmMoZGlyZWN0aW9uQXJnOnN0cmluZyl7XG4gICAgICAgIGlmKGRpcmVjdGlvbkFyZyA9PSBcImZyb21cIil7XG4gICAgICAgICAgICB0aGlzLl9zc2hEaXIucmVhZEZyb21EaXIoKTsgLy8gY2FsbCBzeW5jIG1ldGhvZCBvZiBzc2hEaXIgY2xhc3M7XG4gICAgICAgIH0gZWxzZSBpZihkaXJlY3Rpb25BcmcgPT0gXCJ0b1wiKSB7XG4gICAgICAgICAgICB0aGlzLl9zc2hEaXIud3JpdGVUb0RpcigpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiZGlyZWN0aW9uQXJnIG5vdCByZWNvZ25pc2VkLiBNdXN0IGJlICd0bycgb3IgJ2Zyb20nXCIpO1xuICAgICAgICB9XG4gICAgfTtcbn1cblxuXG4iXX0= diff --git a/dist/smartssh.classes.sshkey.d.ts b/dist/smartssh.classes.sshkey.d.ts index fc2daf7..57ee18f 100644 --- a/dist/smartssh.classes.sshkey.d.ts +++ b/dist/smartssh.classes.sshkey.d.ts @@ -1,18 +1,21 @@ import "typings-global"; export declare class SshKey { - private privKey; - private pubKey; - private hostVar; + private _privKey; + private _pubKey; + private _hostVar; + private _authorized; constructor(optionsArg?: { private?: string; public?: string; host?: string; + authorized?: boolean; }); host: string; - privateKey: string; - privateKeyBase64: string; - publicKey: string; - publicKeyBase64: string; - type: string; + privKey: string; + privKeyBase64: string; + pubKey: string; + pubKeyBase64: string; + type: any; + read(filePathArg: any): void; store(filePathArg?: string): void; } diff --git a/dist/smartssh.classes.sshkey.js b/dist/smartssh.classes.sshkey.js index ca32750..72e71f5 100644 --- a/dist/smartssh.classes.sshkey.js +++ b/dist/smartssh.classes.sshkey.js @@ -4,91 +4,101 @@ var plugins = require("./smartssh.plugins"); var SshKey = (function () { function SshKey(optionsArg) { if (optionsArg === void 0) { optionsArg = {}; } - this.privKey = optionsArg.private; - this.pubKey = optionsArg.public; - this.hostVar = optionsArg.host; + this._privKey = optionsArg.private; + this._pubKey = optionsArg.public; + this._hostVar = optionsArg.host; + this._authorized = optionsArg.authorized; } ; Object.defineProperty(SshKey.prototype, "host", { - // getters + // this.host get: function () { - return this.hostVar; + return this._hostVar; }, - // setters set: function (hostArg) { - this.hostVar = hostArg; + this._hostVar = hostArg; }, enumerable: true, configurable: true }); ; - Object.defineProperty(SshKey.prototype, "privateKey", { + ; + Object.defineProperty(SshKey.prototype, "privKey", { + // this.privKey get: function () { - return this.privKey; + return this._privKey; }, set: function (privateKeyArg) { - this.privKey = privateKeyArg; + this._privKey = privateKeyArg; }, enumerable: true, configurable: true }); ; - Object.defineProperty(SshKey.prototype, "privateKeyBase64", { + ; + Object.defineProperty(SshKey.prototype, "privKeyBase64", { + // this.privKeyBase64 get: function () { - return plugins.base64.encode(this.privKey); + return plugins.base64.encode(this._privKey); }, set: function (privateKeyArg) { - this.privKey = plugins.base64.decode(privateKeyArg); + this._privKey = plugins.base64.decode(privateKeyArg); }, enumerable: true, configurable: true }); - Object.defineProperty(SshKey.prototype, "publicKey", { + Object.defineProperty(SshKey.prototype, "pubKey", { + // this.pubKey get: function () { - return this.pubKey; + return this._pubKey; }, set: function (publicKeyArg) { - this.pubKey = publicKeyArg; + this._pubKey = publicKeyArg; }, enumerable: true, configurable: true }); - Object.defineProperty(SshKey.prototype, "publicKeyBase64", { + ; + Object.defineProperty(SshKey.prototype, "pubKeyBase64", { + // this.pubKeyBase64 get: function () { - return plugins.base64.encode(this.pubKey); + return plugins.base64.encode(this._pubKey); }, set: function (publicKeyArg) { - this.pubKey = plugins.base64.decode(publicKeyArg); + this._pubKey = plugins.base64.decode(publicKeyArg); }, enumerable: true, configurable: true }); Object.defineProperty(SshKey.prototype, "type", { get: function () { - if (this.privKey && this.pubKey) { + if (this._privKey && this._pubKey) { return "duplex"; } - else if (this.privKey) { + else if (this._privKey) { return "private"; } - else if (this.pubKey) { + else if (this._pubKey) { return "public"; } }, + set: function (someVlueArg) { + console.log("the type of an SshKey connot be set. This value is autpcomputed."); + }, enumerable: true, configurable: true }); ; - ; - ; - ; + // methods + SshKey.prototype.read = function (filePathArg) { + }; SshKey.prototype.store = function (filePathArg) { var filePathObj = plugins.path.parse(filePathArg); if (filePathObj.ext = ".priv") { - plugins.smartfile.memory.toFsSync(this.privKey, { fileName: filePathObj.name + filePathObj.ext, filePath: filePathObj.dir }); + plugins.smartfile.memory.toFsSync(this._privKey, filePathArg); } else if (filePathObj.ext = ".pub") { - plugins.smartfile.memory.toFsSync(this.pubKey, { fileName: filePathObj.name + filePathObj.ext, filePath: filePathObj.dir }); + plugins.smartfile.memory.toFsSync(this._pubKey, filePathArg); } else { plugins.fs.ensureDirSync(filePathObj.dir); @@ -99,5 +109,6 @@ var SshKey = (function () { return SshKey; }()); exports.SshKey = SshKey; +var testKey = new SshKey(); -//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNtYXJ0c3NoLmNsYXNzZXMuc3Noa2V5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxRQUFPLGdCQUFnQixDQUFDLENBQUE7QUFDeEIsSUFBWSxPQUFPLFdBQU0sb0JBQW9CLENBQUMsQ0FBQTtBQUc5QztJQUlJLGdCQUFZLFVBQTJEO1FBQTNELDBCQUEyRCxHQUEzRCxlQUEyRDtRQUNuRSxJQUFJLENBQUMsT0FBTyxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUM7UUFDbEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxPQUFPLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQztJQUNuQyxDQUFDOztJQUdELHNCQUFJLHdCQUFJO1FBRFIsVUFBVTthQUNWO1lBQ0ksTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDeEIsQ0FBQztRQXVCRCxVQUFVO2FBQ1YsVUFBUyxPQUFjO1lBQ25CLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQzNCLENBQUM7OztPQTFCQTs7SUFDRCxzQkFBSSw4QkFBVTthQUFkO1lBQ0ksTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDeEIsQ0FBQzthQXdCRCxVQUFlLGFBQW9CO1lBQy9CLElBQUksQ0FBQyxPQUFPLEdBQUcsYUFBYSxDQUFDO1FBQ2pDLENBQUM7OztPQTFCQTs7SUFDRCxzQkFBSSxvQ0FBZ0I7YUFBcEI7WUFDSSxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQy9DLENBQUM7YUF5QkQsVUFBcUIsYUFBb0I7WUFDckMsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN4RCxDQUFDOzs7T0EzQkE7SUFDRCxzQkFBSSw2QkFBUzthQUFiO1lBQ0ksTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDdkIsQ0FBQzthQTBCRCxVQUFjLFlBQW1CO1lBQzdCLElBQUksQ0FBQyxNQUFNLEdBQUcsWUFBWSxDQUFDO1FBQy9CLENBQUM7OztPQTVCQTtJQUNELHNCQUFJLG1DQUFlO2FBQW5CO1lBQ0ksTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM5QyxDQUFDO2FBMkJELFVBQW9CLFlBQW1CO1lBQ25DLElBQUksQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDdEQsQ0FBQzs7O09BN0JBO0lBQ0Qsc0JBQUksd0JBQUk7YUFBUjtZQUNJLEVBQUUsQ0FBQSxDQUFDLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFBLENBQUM7Z0JBQzVCLE1BQU0sQ0FBQyxRQUFRLENBQUM7WUFDcEIsQ0FBQztZQUFDLElBQUksQ0FBQyxFQUFFLENBQUEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUEsQ0FBQztnQkFDcEIsTUFBTSxDQUFDLFNBQVMsQ0FBQztZQUNyQixDQUFDO1lBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQSxDQUFDO2dCQUNuQixNQUFNLENBQUMsUUFBUSxDQUFDO1lBQ3BCLENBQUM7UUFDTCxDQUFDOzs7T0FBQTs7Ozs7SUFzQkQsc0JBQUssR0FBTCxVQUFNLFdBQW1CO1FBQ3JCLElBQUksV0FBVyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ2xELEVBQUUsQ0FBQSxDQUFDLFdBQVcsQ0FBQyxHQUFHLEdBQUcsT0FBTyxDQUFDLENBQUEsQ0FBQztZQUMxQixPQUFPLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBQyxFQUFDLFFBQVEsRUFBQyxXQUFXLENBQUMsSUFBSSxHQUFHLFdBQVcsQ0FBQyxHQUFHLEVBQUMsUUFBUSxFQUFDLFdBQVcsQ0FBQyxHQUFHLEVBQUMsQ0FBQyxDQUFDO1FBQzNILENBQUM7UUFBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsV0FBVyxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUMsQ0FBQSxDQUFDO1lBQ2pDLE9BQU8sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFDLEVBQUMsUUFBUSxFQUFDLFdBQVcsQ0FBQyxJQUFJLEdBQUcsV0FBVyxDQUFDLEdBQUcsRUFBQyxRQUFRLEVBQUMsV0FBVyxDQUFDLEdBQUcsRUFBQyxDQUFDLENBQUM7UUFDMUgsQ0FBQztRQUFDLElBQUksQ0FBQyxDQUFDO1lBQ0osT0FBTyxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsZ0NBQWdDO1lBQzNGLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsZ0NBQWdDO1FBQzlGLENBQUM7SUFDTCxDQUFDO0lBQ0wsYUFBQztBQUFELENBcEVBLEFBb0VDLElBQUE7QUFwRVksY0FBTSxTQW9FbEIsQ0FBQSIsImZpbGUiOiJzbWFydHNzaC5jbGFzc2VzLnNzaGtleS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBcInR5cGluZ3MtZ2xvYmFsXCI7XG5pbXBvcnQgKiBhcyBwbHVnaW5zIGZyb20gXCIuL3NtYXJ0c3NoLnBsdWdpbnNcIjtcbmltcG9ydCAqIGFzIGhlbHBlcnMgZnJvbSBcIi4vc21hcnRzc2guY2xhc3Nlcy5oZWxwZXJzXCI7XG5cbmV4cG9ydCBjbGFzcyBTc2hLZXkge1xuICAgIHByaXZhdGUgcHJpdktleTpzdHJpbmc7XG4gICAgcHJpdmF0ZSBwdWJLZXk6c3RyaW5nO1xuICAgIHByaXZhdGUgaG9zdFZhcjpzdHJpbmc7XG4gICAgY29uc3RydWN0b3Iob3B0aW9uc0FyZzp7cHJpdmF0ZT86c3RyaW5nLHB1YmxpYz86c3RyaW5nLGhvc3Q/OnN0cmluZ309e30pe1xuICAgICAgICB0aGlzLnByaXZLZXkgPSBvcHRpb25zQXJnLnByaXZhdGU7XG4gICAgICAgIHRoaXMucHViS2V5ID0gb3B0aW9uc0FyZy5wdWJsaWM7XG4gICAgICAgIHRoaXMuaG9zdFZhciA9IG9wdGlvbnNBcmcuaG9zdDtcbiAgICB9O1xuICAgIFxuICAgIC8vIGdldHRlcnNcbiAgICBnZXQgaG9zdCgpe1xuICAgICAgICByZXR1cm4gdGhpcy5ob3N0VmFyO1xuICAgIH07XG4gICAgZ2V0IHByaXZhdGVLZXkoKXtcbiAgICAgICAgcmV0dXJuIHRoaXMucHJpdktleTtcbiAgICB9O1xuICAgIGdldCBwcml2YXRlS2V5QmFzZTY0KCl7XG4gICAgICAgIHJldHVybiBwbHVnaW5zLmJhc2U2NC5lbmNvZGUodGhpcy5wcml2S2V5KTtcbiAgICB9XG4gICAgZ2V0IHB1YmxpY0tleSgpe1xuICAgICAgICByZXR1cm4gdGhpcy5wdWJLZXk7XG4gICAgfVxuICAgIGdldCBwdWJsaWNLZXlCYXNlNjQoKXtcbiAgICAgICAgcmV0dXJuIHBsdWdpbnMuYmFzZTY0LmVuY29kZSh0aGlzLnB1YktleSk7XG4gICAgfVxuICAgIGdldCB0eXBlKCl7XG4gICAgICAgIGlmKHRoaXMucHJpdktleSAmJiB0aGlzLnB1YktleSl7XG4gICAgICAgICAgICByZXR1cm4gXCJkdXBsZXhcIjtcbiAgICAgICAgfSBlbHNlIGlmKHRoaXMucHJpdktleSl7XG4gICAgICAgICAgICByZXR1cm4gXCJwcml2YXRlXCI7XG4gICAgICAgIH0gZWxzZSBpZih0aGlzLnB1YktleSl7XG4gICAgICAgICAgICByZXR1cm4gXCJwdWJsaWNcIjtcbiAgICAgICAgfVxuICAgIH07XG4gICAgXG4gICAgLy8gc2V0dGVyc1xuICAgIHNldCBob3N0KGhvc3RBcmc6c3RyaW5nKXtcbiAgICAgICAgdGhpcy5ob3N0VmFyID0gaG9zdEFyZztcbiAgICB9O1xuICAgIHNldCBwcml2YXRlS2V5KHByaXZhdGVLZXlBcmc6c3RyaW5nKXtcbiAgICAgICAgdGhpcy5wcml2S2V5ID0gcHJpdmF0ZUtleUFyZztcbiAgICB9O1xuICAgIFxuICAgIHNldCBwcml2YXRlS2V5QmFzZTY0KHByaXZhdGVLZXlBcmc6c3RyaW5nKSB7XG4gICAgICAgIHRoaXMucHJpdktleSA9IHBsdWdpbnMuYmFzZTY0LmRlY29kZShwcml2YXRlS2V5QXJnKTtcbiAgICB9XG5cbiAgICBzZXQgcHVibGljS2V5KHB1YmxpY0tleUFyZzpzdHJpbmcpe1xuICAgICAgICB0aGlzLnB1YktleSA9IHB1YmxpY0tleUFyZztcbiAgICB9O1xuXG4gICAgc2V0IHB1YmxpY0tleUJhc2U2NChwdWJsaWNLZXlBcmc6c3RyaW5nKSB7XG4gICAgICAgIHRoaXMucHViS2V5ID0gcGx1Z2lucy5iYXNlNjQuZGVjb2RlKHB1YmxpY0tleUFyZyk7XG4gICAgfVxuICAgIFxuICAgIHN0b3JlKGZpbGVQYXRoQXJnPzpzdHJpbmcpe1xuICAgICAgICBsZXQgZmlsZVBhdGhPYmogPSBwbHVnaW5zLnBhdGgucGFyc2UoZmlsZVBhdGhBcmcpO1xuICAgICAgICBpZihmaWxlUGF0aE9iai5leHQgPSBcIi5wcml2XCIpe1xuICAgICAgICAgICAgcGx1Z2lucy5zbWFydGZpbGUubWVtb3J5LnRvRnNTeW5jKHRoaXMucHJpdktleSx7ZmlsZU5hbWU6ZmlsZVBhdGhPYmoubmFtZSArIGZpbGVQYXRoT2JqLmV4dCxmaWxlUGF0aDpmaWxlUGF0aE9iai5kaXJ9KTtcbiAgICAgICAgfSBlbHNlIGlmIChmaWxlUGF0aE9iai5leHQgPSBcIi5wdWJcIil7XG4gICAgICAgICAgICBwbHVnaW5zLnNtYXJ0ZmlsZS5tZW1vcnkudG9Gc1N5bmModGhpcy5wdWJLZXkse2ZpbGVOYW1lOmZpbGVQYXRoT2JqLm5hbWUgKyBmaWxlUGF0aE9iai5leHQsZmlsZVBhdGg6ZmlsZVBhdGhPYmouZGlyfSk7XG4gICAgICAgIH0gZWxzZSB7IC8vd2UgYXNzdW1lIHdlIGFyZSBnaXZlbiBhIGRpcmVjdG9yeSBhcyBmaWxlUGF0aEFyZywgc28gd2Ugc3RvcmUgdGhlIHdob2xlIGtleVxuICAgICAgICAgICAgcGx1Z2lucy5mcy5lbnN1cmVEaXJTeW5jKGZpbGVQYXRoT2JqLmRpcik7XG4gICAgICAgICAgICB0aGlzLnN0b3JlKHBsdWdpbnMucGF0aC5qb2luKGZpbGVQYXRoT2JqLmRpcixcImtleS5wcml2XCIpKTsgLy8gY2FsbCB0aGlzIGZ1bmN0aW9uIHJlY3Vyc2l2bHlcbiAgICAgICAgICAgIHRoaXMuc3RvcmUocGx1Z2lucy5wYXRoLmpvaW4oZmlsZVBhdGhPYmouZGlyLFwia2V5LnB1YlwiKSk7IC8vIGNhbGwgdGhpcyBmdW5jdGlvbiByZWN1cnNpdmx5XG4gICAgICAgIH1cbiAgICB9XG59Il19 +//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNtYXJ0c3NoLmNsYXNzZXMuc3Noa2V5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxRQUFPLGdCQUFnQixDQUFDLENBQUE7QUFDeEIsSUFBWSxPQUFPLFdBQU0sb0JBQW9CLENBQUMsQ0FBQTtBQUc5QztJQUtJLGdCQUFZLFVBQStFO1FBQS9FLDBCQUErRSxHQUEvRSxlQUErRTtRQUN2RixJQUFJLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUM7UUFDbkMsSUFBSSxDQUFDLE9BQU8sR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQztRQUNoQyxJQUFJLENBQUMsV0FBVyxHQUFHLFVBQVUsQ0FBQyxVQUFVLENBQUM7SUFDN0MsQ0FBQzs7SUFHRCxzQkFBSSx3QkFBSTtRQURSLFlBQVk7YUFDWjtZQUNJLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQ3pCLENBQUM7YUFDRCxVQUFTLE9BQWM7WUFDbkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUM7UUFDNUIsQ0FBQzs7O09BSEE7OztJQU1ELHNCQUFJLDJCQUFPO1FBRFgsZUFBZTthQUNmO1lBQ0ksTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDekIsQ0FBQzthQUNELFVBQVksYUFBb0I7WUFDNUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxhQUFhLENBQUM7UUFDbEMsQ0FBQzs7O09BSEE7OztJQU1ELHNCQUFJLGlDQUFhO1FBRGpCLHFCQUFxQjthQUNyQjtZQUNJLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDaEQsQ0FBQzthQUNELFVBQWtCLGFBQW9CO1lBQ2xDLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDekQsQ0FBQzs7O09BSEE7SUFNRCxzQkFBSSwwQkFBTTtRQURWLGNBQWM7YUFDZDtZQUNJLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQ3hCLENBQUM7YUFDRCxVQUFXLFlBQW1CO1lBQzFCLElBQUksQ0FBQyxPQUFPLEdBQUcsWUFBWSxDQUFDO1FBQ2hDLENBQUM7OztPQUhBOztJQU1ELHNCQUFJLGdDQUFZO1FBRGhCLG9CQUFvQjthQUNwQjtZQUNJLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDL0MsQ0FBQzthQUNELFVBQWlCLFlBQW1CO1lBQ2hDLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDdkQsQ0FBQzs7O09BSEE7SUFNRCxzQkFBSSx3QkFBSTthQUFSO1lBQ0ksRUFBRSxDQUFBLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUEsQ0FBQztnQkFDOUIsTUFBTSxDQUFDLFFBQVEsQ0FBQztZQUNwQixDQUFDO1lBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQSxDQUFDO2dCQUNyQixNQUFNLENBQUMsU0FBUyxDQUFDO1lBQ3JCLENBQUM7WUFBQyxJQUFJLENBQUMsRUFBRSxDQUFBLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFBLENBQUM7Z0JBQ3BCLE1BQU0sQ0FBQyxRQUFRLENBQUM7WUFDcEIsQ0FBQztRQUNMLENBQUM7YUFDRCxVQUFTLFdBQWU7WUFDcEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxtRUFBbUUsQ0FBQyxDQUFBO1FBQ3BGLENBQUM7OztPQUhBOztJQUtELFVBQVU7SUFDVixxQkFBSSxHQUFKLFVBQUssV0FBVztJQUVoQixDQUFDO0lBQ0Qsc0JBQUssR0FBTCxVQUFNLFdBQW1CO1FBQ3JCLElBQUksV0FBVyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ2xELEVBQUUsQ0FBQSxDQUFDLFdBQVcsQ0FBQyxHQUFHLEdBQUcsT0FBTyxDQUFDLENBQUEsQ0FBQztZQUMxQixPQUFPLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBQyxXQUFXLENBQUMsQ0FBQztRQUNqRSxDQUFDO1FBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLENBQUEsQ0FBQztZQUNqQyxPQUFPLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBQyxXQUFXLENBQUMsQ0FBQztRQUNoRSxDQUFDO1FBQUMsSUFBSSxDQUFDLENBQUM7WUFDSixPQUFPLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDMUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxFQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxnQ0FBZ0M7WUFDM0YsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxFQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxnQ0FBZ0M7UUFDOUYsQ0FBQztJQUNMLENBQUM7SUFDTCxhQUFDO0FBQUQsQ0FsRkEsQUFrRkMsSUFBQTtBQWxGWSxjQUFNLFNBa0ZsQixDQUFBO0FBRUQsSUFBSSxPQUFPLEdBQUcsSUFBSSxNQUFNLEVBQUUsQ0FBQyIsImZpbGUiOiJzbWFydHNzaC5jbGFzc2VzLnNzaGtleS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBcInR5cGluZ3MtZ2xvYmFsXCI7XG5pbXBvcnQgKiBhcyBwbHVnaW5zIGZyb20gXCIuL3NtYXJ0c3NoLnBsdWdpbnNcIjtcbmltcG9ydCAqIGFzIGhlbHBlcnMgZnJvbSBcIi4vc21hcnRzc2guY2xhc3Nlcy5oZWxwZXJzXCI7XG5cbmV4cG9ydCBjbGFzcyBTc2hLZXkge1xuICAgIHByaXZhdGUgX3ByaXZLZXk6c3RyaW5nO1xuICAgIHByaXZhdGUgX3B1YktleTpzdHJpbmc7XG4gICAgcHJpdmF0ZSBfaG9zdFZhcjpzdHJpbmc7XG4gICAgcHJpdmF0ZSBfYXV0aG9yaXplZDpib29sZWFuO1xuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnNBcmc6e3ByaXZhdGU/OnN0cmluZyxwdWJsaWM/OnN0cmluZyxob3N0PzpzdHJpbmcsYXV0aG9yaXplZD86Ym9vbGVhbn09e30pe1xuICAgICAgICB0aGlzLl9wcml2S2V5ID0gb3B0aW9uc0FyZy5wcml2YXRlO1xuICAgICAgICB0aGlzLl9wdWJLZXkgPSBvcHRpb25zQXJnLnB1YmxpYztcbiAgICAgICAgdGhpcy5faG9zdFZhciA9IG9wdGlvbnNBcmcuaG9zdDtcbiAgICAgICAgdGhpcy5fYXV0aG9yaXplZCA9IG9wdGlvbnNBcmcuYXV0aG9yaXplZDtcbiAgICB9O1xuICAgIFxuICAgIC8vIHRoaXMuaG9zdFxuICAgIGdldCBob3N0KCl7XG4gICAgICAgIHJldHVybiB0aGlzLl9ob3N0VmFyO1xuICAgIH07XG4gICAgc2V0IGhvc3QoaG9zdEFyZzpzdHJpbmcpe1xuICAgICAgICB0aGlzLl9ob3N0VmFyID0gaG9zdEFyZztcbiAgICB9O1xuXG4gICAgLy8gdGhpcy5wcml2S2V5XG4gICAgZ2V0IHByaXZLZXkoKXtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3ByaXZLZXk7XG4gICAgfTtcbiAgICBzZXQgcHJpdktleShwcml2YXRlS2V5QXJnOnN0cmluZyl7XG4gICAgICAgIHRoaXMuX3ByaXZLZXkgPSBwcml2YXRlS2V5QXJnO1xuICAgIH07XG5cbiAgICAvLyB0aGlzLnByaXZLZXlCYXNlNjRcbiAgICBnZXQgcHJpdktleUJhc2U2NCgpe1xuICAgICAgICByZXR1cm4gcGx1Z2lucy5iYXNlNjQuZW5jb2RlKHRoaXMuX3ByaXZLZXkpO1xuICAgIH1cbiAgICBzZXQgcHJpdktleUJhc2U2NChwcml2YXRlS2V5QXJnOnN0cmluZykge1xuICAgICAgICB0aGlzLl9wcml2S2V5ID0gcGx1Z2lucy5iYXNlNjQuZGVjb2RlKHByaXZhdGVLZXlBcmcpO1xuICAgIH1cblxuICAgIC8vIHRoaXMucHViS2V5XG4gICAgZ2V0IHB1YktleSgpe1xuICAgICAgICByZXR1cm4gdGhpcy5fcHViS2V5O1xuICAgIH1cbiAgICBzZXQgcHViS2V5KHB1YmxpY0tleUFyZzpzdHJpbmcpe1xuICAgICAgICB0aGlzLl9wdWJLZXkgPSBwdWJsaWNLZXlBcmc7XG4gICAgfTtcblxuICAgIC8vIHRoaXMucHViS2V5QmFzZTY0XG4gICAgZ2V0IHB1YktleUJhc2U2NCgpe1xuICAgICAgICByZXR1cm4gcGx1Z2lucy5iYXNlNjQuZW5jb2RlKHRoaXMuX3B1YktleSk7XG4gICAgfVxuICAgIHNldCBwdWJLZXlCYXNlNjQocHVibGljS2V5QXJnOnN0cmluZykge1xuICAgICAgICB0aGlzLl9wdWJLZXkgPSBwbHVnaW5zLmJhc2U2NC5kZWNvZGUocHVibGljS2V5QXJnKTtcbiAgICB9XG5cblxuICAgIGdldCB0eXBlKCl7XG4gICAgICAgIGlmKHRoaXMuX3ByaXZLZXkgJiYgdGhpcy5fcHViS2V5KXtcbiAgICAgICAgICAgIHJldHVybiBcImR1cGxleFwiO1xuICAgICAgICB9IGVsc2UgaWYodGhpcy5fcHJpdktleSl7XG4gICAgICAgICAgICByZXR1cm4gXCJwcml2YXRlXCI7XG4gICAgICAgIH0gZWxzZSBpZih0aGlzLl9wdWJLZXkpe1xuICAgICAgICAgICAgcmV0dXJuIFwicHVibGljXCI7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIHNldCB0eXBlKHNvbWVWbHVlQXJnOmFueSl7XG4gICAgICAgIGNvbnNvbGUubG9nKFwidGhlIHR5cGUgb2YgYW4gU3NoS2V5IGNvbm5vdCBiZSBzZXQuIFRoaXMgdmFsdWUgaXMgIGF1dHBjb21wdXRlZC5cIilcbiAgICB9XG5cbiAgICAvLyBtZXRob2RzXG4gICAgcmVhZChmaWxlUGF0aEFyZyl7XG4gICAgICAgIFxuICAgIH1cbiAgICBzdG9yZShmaWxlUGF0aEFyZz86c3RyaW5nKXtcbiAgICAgICAgbGV0IGZpbGVQYXRoT2JqID0gcGx1Z2lucy5wYXRoLnBhcnNlKGZpbGVQYXRoQXJnKTtcbiAgICAgICAgaWYoZmlsZVBhdGhPYmouZXh0ID0gXCIucHJpdlwiKXtcbiAgICAgICAgICAgIHBsdWdpbnMuc21hcnRmaWxlLm1lbW9yeS50b0ZzU3luYyh0aGlzLl9wcml2S2V5LGZpbGVQYXRoQXJnKTtcbiAgICAgICAgfSBlbHNlIGlmIChmaWxlUGF0aE9iai5leHQgPSBcIi5wdWJcIil7XG4gICAgICAgICAgICBwbHVnaW5zLnNtYXJ0ZmlsZS5tZW1vcnkudG9Gc1N5bmModGhpcy5fcHViS2V5LGZpbGVQYXRoQXJnKTtcbiAgICAgICAgfSBlbHNlIHsgLy93ZSBhc3N1bWUgd2UgYXJlIGdpdmVuIGEgZGlyZWN0b3J5IGFzIGZpbGVQYXRoQXJnLCBzbyB3ZSBzdG9yZSB0aGUgd2hvbGUga2V5XG4gICAgICAgICAgICBwbHVnaW5zLmZzLmVuc3VyZURpclN5bmMoZmlsZVBhdGhPYmouZGlyKTtcbiAgICAgICAgICAgIHRoaXMuc3RvcmUocGx1Z2lucy5wYXRoLmpvaW4oZmlsZVBhdGhPYmouZGlyLFwia2V5LnByaXZcIikpOyAvLyBjYWxsIHRoaXMgZnVuY3Rpb24gcmVjdXJzaXZseVxuICAgICAgICAgICAgdGhpcy5zdG9yZShwbHVnaW5zLnBhdGguam9pbihmaWxlUGF0aE9iai5kaXIsXCJrZXkucHViXCIpKTsgLy8gY2FsbCB0aGlzIGZ1bmN0aW9uIHJlY3Vyc2l2bHlcbiAgICAgICAgfVxuICAgIH1cbn1cblxubGV0IHRlc3RLZXkgPSBuZXcgU3NoS2V5KCk7Il19 diff --git a/test/test.js b/test/test.js index 117af4c..83ae47d 100644 --- a/test/test.js +++ b/test/test.js @@ -18,13 +18,13 @@ describe("smartssh", function () { testSshKey.type.should.equal("duplex"); }); it(".publicKey should be public key", function () { - testSshKey.publicKey.should.equal("someExamplePublicKey"); + testSshKey.pubKey.should.equal("someExamplePublicKey"); }); it(".privateKey should be private key", function () { - testSshKey.privateKey.should.equal("someExamplePrivateKey"); + testSshKey.privKey.should.equal("someExamplePrivateKey"); }); it(".publicKeyBase64 should be public key base 64 encoded", function () { - testSshKey.publicKeyBase64; + testSshKey.pubKeyBase64; }); }); describe(".SshInstance", function () { @@ -57,7 +57,7 @@ describe("smartssh", function () { sshKeyArray[2].host.should.equal("github.com"); }); it(".getKey() should get a specific key selected by host", function () { - testSshInstance.getKey("github.com").publicKey.should.equal("someGitHubPublicKey"); + testSshInstance.getKey("github.com").pubKey.should.equal("someGitHubPublicKey"); }); it(".removeKey() should remove a key", function () { testSshInstance.removeKey(testSshInstance.getKey("bitbucket.org")); @@ -66,4 +66,4 @@ describe("smartssh", function () { }); }); -//# sourceMappingURL=data:application/json;charset=utf8;base64,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SSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLENBQUM7WUFDbEQsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ25ELENBQUMsQ0FBQyxDQUFDO1FBQ0gsRUFBRSxDQUFDLHNEQUFzRCxFQUFDO1lBQ3RELGVBQWUsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUN2RixDQUFDLENBQUMsQ0FBQTtRQUNGLEVBQUUsQ0FBQyxrQ0FBa0MsRUFBQztZQUNsQyxlQUFlLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQztZQUNuRSxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQy9ELENBQUMsQ0FBQyxDQUFBO0lBQ04sQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDLENBQUMsQ0FBQSIsImZpbGUiOiJ0ZXN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFwidHlwaW5ncy10ZXN0XCJcbmltcG9ydCBcInNob3VsZFwiO1xuaW1wb3J0IHNtYXJ0c3NoID0gcmVxdWlyZShcIi4uL2Rpc3QvaW5kZXhcIik7XG5kZXNjcmliZShcInNtYXJ0c3NoXCIsZnVuY3Rpb24oKXtcbiAgICBsZXQgdGVzdFNzaEluc3RhbmNlOnNtYXJ0c3NoLlNzaEluc3RhbmNlO1xuICAgIGxldCB0ZXN0U3NoS2V5OnNtYXJ0c3NoLlNzaEtleTtcbiAgICBkZXNjcmliZShcIi5Tc2hLZXlcIixmdW5jdGlvbigpe1xuICAgICAgICBpdChcIiduZXcnIGtleXdvcmQgc2hvdWxkIGNyZWF0ZSBhIHZhbGlkIFNzaEtleSBvYmplY3RcIixmdW5jdGlvbigpe1xuICAgICAgICAgICAgdGVzdFNzaEtleSA9IG5ldyBzbWFydHNzaC5Tc2hLZXkoe1xuICAgICAgICAgICAgICAgIGhvc3Q6XCJleGFtcGxlLmNvbVwiLFxuICAgICAgICAgICAgICAgIHByaXZhdGU6XCJzb21lRXhhbXBsZVByaXZhdGVLZXlcIixcbiAgICAgICAgICAgICAgICBwdWJsaWM6XCJzb21lRXhhbXBsZVB1YmxpY0tleVwiXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRlc3RTc2hLZXkuc2hvdWxkLmJlLmluc3RhbmNlb2Yoc21hcnRzc2guU3NoS2V5KTtcbiAgICAgICAgfSk7XG4gICAgICAgIGl0KFwiLnR5cGUgc2hvdWxkIGJlIGEgdmFsaWQgdHlwZVwiLGZ1bmN0aW9uKCl7XG4gICAgICAgICAgICB0ZXN0U3NoS2V5LnR5cGUuc2hvdWxkLmVxdWFsKFwiZHVwbGV4XCIpO1xuICAgICAgICB9KTtcbiAgICAgICAgaXQoXCIucHVibGljS2V5IHNob3VsZCBiZSBwdWJsaWMga2V5XCIsZnVuY3Rpb24oKXtcbiAgICAgICAgICAgIHRlc3RTc2hLZXkucHVibGljS2V5LnNob3VsZC5lcXVhbChcInNvbWVFeGFtcGxlUHVibGljS2V5XCIpO1xuICAgICAgICB9KTtcbiAgICAgICAgaXQoXCIucHJpdmF0ZUtleSBzaG91bGQgYmUgcHJpdmF0ZSBrZXlcIixmdW5jdGlvbigpe1xuICAgICAgICAgICAgdGVzdFNzaEtleS5wcml2YXRlS2V5LnNob3VsZC5lcXVhbChcInNvbWVFeGFtcGxlUHJpdmF0ZUtleVwiKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGl0KFwiLnB1YmxpY0tleUJhc2U2NCBzaG91bGQgYmUgcHVibGljIGtleSBiYXNlIDY0IGVuY29kZWRcIixmdW5jdGlvbigpe1xuICAgICAgICAgICAgdGVzdFNzaEtleS5wdWJsaWNLZXlCYXNlNjQ7XG4gICAgICAgIH0pXG4gICAgfSk7XG4gICAgZGVzY3JpYmUoXCIuU3NoSW5zdGFuY2VcIixmdW5jdGlvbigpe1xuICAgICAgICBpdChcIiduZXcnIGtleXdvcmQgc2hvdWxkIGNyZWF0ZSBhIG5ldyBTc2hJbnN0YW5jZSBvYmplY3QgZnJvbSBjbGFzc1wiLGZ1bmN0aW9uKCl7XG4gICAgICAgICAgICB0ZXN0U3NoSW5zdGFuY2UgPSBuZXcgc21hcnRzc2guU3NoSW5zdGFuY2UoKTtcbiAgICAgICAgICAgIHRlc3RTc2hJbnN0YW5jZS5zaG91bGQuYmUuaW5zdGFuY2VvZihzbWFydHNzaC5Tc2hJbnN0YW5jZSk7XG4gICAgICAgIH0pO1xuICAgICAgICBpdChcIi5hZGRLZXkoKSBzaG91bGQgYWNjZXB0IGEgbmV3IFNzaEtleSBvYmplY3RcIixmdW5jdGlvbigpe1xuICAgICAgICAgICAgdGVzdFNzaEluc3RhbmNlLmFkZEtleShuZXcgc21hcnRzc2guU3NoS2V5KHtcbiAgICAgICAgICAgICAgICBwdWJsaWM6XCJzb21lUHVibGljS2V5XCIsXG4gICAgICAgICAgICAgICAgcHJpdmF0ZTpcInNvbWVQcml2YXRlS2V5XCIsXG4gICAgICAgICAgICAgICAgaG9zdDpcImdpdGxhYi5jb21cIlxuICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgdGVzdFNzaEluc3RhbmNlLmFkZEtleShuZXcgc21hcnRzc2guU3NoS2V5KHtcbiAgICAgICAgICAgICAgICBwdWJsaWM6XCJzb21lUHVibGljS2V5XCIsXG4gICAgICAgICAgICAgICAgcHJpdmF0ZTpcInNvbWVQcml2YXRlS2V5XCIsXG4gICAgICAgICAgICAgICAgaG9zdDpcImJpdGJ1Y2tldC5vcmdcIlxuICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgdGVzdFNzaEluc3RhbmNlLmFkZEtleShuZXcgc21hcnRzc2guU3NoS2V5KHtcbiAgICAgICAgICAgICAgICBwdWJsaWM6XCJzb21lR2l0SHViUHVibGljS2V5XCIsXG4gICAgICAgICAgICAgICAgcHJpdmF0ZTpcInNvbWVHaXRIdWJQcml2YXRlS2V5XCIsXG4gICAgICAgICAgICAgICAgaG9zdDpcImdpdGh1Yi5jb21cIlxuICAgICAgICAgICAgfSkpO1xuICAgICAgICB9KTtcbiAgICAgICAgaXQoXCIuc3NoS2V5cyBzaG91bGQgcG9pbnQgdG8gYW4gYXJyYXkgb2Ygc3NoS2V5c1wiLGZ1bmN0aW9uKCl7XG4gICAgICAgICAgICBsZXQgc3NoS2V5QXJyYXkgPSB0ZXN0U3NoSW5zdGFuY2Uuc3NoS2V5cztcbiAgICAgICAgICAgIHNzaEtleUFycmF5LnNob3VsZC5iZS5BcnJheSgpO1xuICAgICAgICAgICAgc3NoS2V5QXJyYXlbMF0uaG9zdC5zaG91bGQuZXF1YWwoXCJnaXRsYWIuY29tXCIpO1xuICAgICAgICAgICAgc3NoS2V5QXJyYXlbMV0uaG9zdC5zaG91bGQuZXF1YWwoXCJiaXRidWNrZXQub3JnXCIpO1xuICAgICAgICAgICAgc3NoS2V5QXJyYXlbMl0uaG9zdC5zaG91bGQuZXF1YWwoXCJnaXRodWIuY29tXCIpO1xuICAgICAgICB9KTtcbiAgICAgICAgaXQoXCIuZ2V0S2V5KCkgc2hvdWxkIGdldCBhIHNwZWNpZmljIGtleSBzZWxlY3RlZCBieSBob3N0XCIsZnVuY3Rpb24oKXtcbiAgICAgICAgICAgIHRlc3RTc2hJbnN0YW5jZS5nZXRLZXkoXCJnaXRodWIuY29tXCIpLnB1YmxpY0tleS5zaG91bGQuZXF1YWwoXCJzb21lR2l0SHViUHVibGljS2V5XCIpO1xuICAgICAgICB9KVxuICAgICAgICBpdChcIi5yZW1vdmVLZXkoKSBzaG91bGQgcmVtb3ZlIGEga2V5XCIsZnVuY3Rpb24oKXtcbiAgICAgICAgICAgIHRlc3RTc2hJbnN0YW5jZS5yZW1vdmVLZXkodGVzdFNzaEluc3RhbmNlLmdldEtleShcImJpdGJ1Y2tldC5vcmdcIikpO1xuICAgICAgICAgICAgdGVzdFNzaEluc3RhbmNlLnNzaEtleXNbMV0uaG9zdC5zaG91bGQuZXF1YWwoXCJnaXRodWIuY29tXCIpO1xuICAgICAgICB9KVxuICAgIH0pO1xufSkiXX0= +//# sourceMappingURL=data:application/json;charset=utf8;base64,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SSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLENBQUM7WUFDbEQsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ25ELENBQUMsQ0FBQyxDQUFDO1FBQ0gsRUFBRSxDQUFDLHNEQUFzRCxFQUFDO1lBQ3RELGVBQWUsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUNwRixDQUFDLENBQUMsQ0FBQTtRQUNGLEVBQUUsQ0FBQyxrQ0FBa0MsRUFBQztZQUNsQyxlQUFlLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQztZQUNuRSxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQy9ELENBQUMsQ0FBQyxDQUFBO0lBQ04sQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDLENBQUMsQ0FBQSIsImZpbGUiOiJ0ZXN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFwidHlwaW5ncy10ZXN0XCJcbmltcG9ydCBcInNob3VsZFwiO1xuaW1wb3J0IHNtYXJ0c3NoID0gcmVxdWlyZShcIi4uL2Rpc3QvaW5kZXhcIik7XG5kZXNjcmliZShcInNtYXJ0c3NoXCIsZnVuY3Rpb24oKXtcbiAgICBsZXQgdGVzdFNzaEluc3RhbmNlOnNtYXJ0c3NoLlNzaEluc3RhbmNlO1xuICAgIGxldCB0ZXN0U3NoS2V5OnNtYXJ0c3NoLlNzaEtleTtcbiAgICBkZXNjcmliZShcIi5Tc2hLZXlcIixmdW5jdGlvbigpe1xuICAgICAgICBpdChcIiduZXcnIGtleXdvcmQgc2hvdWxkIGNyZWF0ZSBhIHZhbGlkIFNzaEtleSBvYmplY3RcIixmdW5jdGlvbigpe1xuICAgICAgICAgICAgdGVzdFNzaEtleSA9IG5ldyBzbWFydHNzaC5Tc2hLZXkoe1xuICAgICAgICAgICAgICAgIGhvc3Q6XCJleGFtcGxlLmNvbVwiLFxuICAgICAgICAgICAgICAgIHByaXZhdGU6XCJzb21lRXhhbXBsZVByaXZhdGVLZXlcIixcbiAgICAgICAgICAgICAgICBwdWJsaWM6XCJzb21lRXhhbXBsZVB1YmxpY0tleVwiXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRlc3RTc2hLZXkuc2hvdWxkLmJlLmluc3RhbmNlb2Yoc21hcnRzc2guU3NoS2V5KTtcbiAgICAgICAgfSk7XG4gICAgICAgIGl0KFwiLnR5cGUgc2hvdWxkIGJlIGEgdmFsaWQgdHlwZVwiLGZ1bmN0aW9uKCl7XG4gICAgICAgICAgICB0ZXN0U3NoS2V5LnR5cGUuc2hvdWxkLmVxdWFsKFwiZHVwbGV4XCIpO1xuICAgICAgICB9KTtcbiAgICAgICAgaXQoXCIucHVibGljS2V5IHNob3VsZCBiZSBwdWJsaWMga2V5XCIsZnVuY3Rpb24oKXtcbiAgICAgICAgICAgIHRlc3RTc2hLZXkucHViS2V5LnNob3VsZC5lcXVhbChcInNvbWVFeGFtcGxlUHVibGljS2V5XCIpO1xuICAgICAgICB9KTtcbiAgICAgICAgaXQoXCIucHJpdmF0ZUtleSBzaG91bGQgYmUgcHJpdmF0ZSBrZXlcIixmdW5jdGlvbigpe1xuICAgICAgICAgICAgdGVzdFNzaEtleS5wcml2S2V5LnNob3VsZC5lcXVhbChcInNvbWVFeGFtcGxlUHJpdmF0ZUtleVwiKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGl0KFwiLnB1YmxpY0tleUJhc2U2NCBzaG91bGQgYmUgcHVibGljIGtleSBiYXNlIDY0IGVuY29kZWRcIixmdW5jdGlvbigpe1xuICAgICAgICAgICAgdGVzdFNzaEtleS5wdWJLZXlCYXNlNjQ7XG4gICAgICAgIH0pXG4gICAgfSk7XG4gICAgZGVzY3JpYmUoXCIuU3NoSW5zdGFuY2VcIixmdW5jdGlvbigpe1xuICAgICAgICBpdChcIiduZXcnIGtleXdvcmQgc2hvdWxkIGNyZWF0ZSBhIG5ldyBTc2hJbnN0YW5jZSBvYmplY3QgZnJvbSBjbGFzc1wiLGZ1bmN0aW9uKCl7XG4gICAgICAgICAgICB0ZXN0U3NoSW5zdGFuY2UgPSBuZXcgc21hcnRzc2guU3NoSW5zdGFuY2UoKTtcbiAgICAgICAgICAgIHRlc3RTc2hJbnN0YW5jZS5zaG91bGQuYmUuaW5zdGFuY2VvZihzbWFydHNzaC5Tc2hJbnN0YW5jZSk7XG4gICAgICAgIH0pO1xuICAgICAgICBpdChcIi5hZGRLZXkoKSBzaG91bGQgYWNjZXB0IGEgbmV3IFNzaEtleSBvYmplY3RcIixmdW5jdGlvbigpe1xuICAgICAgICAgICAgdGVzdFNzaEluc3RhbmNlLmFkZEtleShuZXcgc21hcnRzc2guU3NoS2V5KHtcbiAgICAgICAgICAgICAgICBwdWJsaWM6XCJzb21lUHVibGljS2V5XCIsXG4gICAgICAgICAgICAgICAgcHJpdmF0ZTpcInNvbWVQcml2YXRlS2V5XCIsXG4gICAgICAgICAgICAgICAgaG9zdDpcImdpdGxhYi5jb21cIlxuICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgdGVzdFNzaEluc3RhbmNlLmFkZEtleShuZXcgc21hcnRzc2guU3NoS2V5KHtcbiAgICAgICAgICAgICAgICBwdWJsaWM6XCJzb21lUHVibGljS2V5XCIsXG4gICAgICAgICAgICAgICAgcHJpdmF0ZTpcInNvbWVQcml2YXRlS2V5XCIsXG4gICAgICAgICAgICAgICAgaG9zdDpcImJpdGJ1Y2tldC5vcmdcIlxuICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgdGVzdFNzaEluc3RhbmNlLmFkZEtleShuZXcgc21hcnRzc2guU3NoS2V5KHtcbiAgICAgICAgICAgICAgICBwdWJsaWM6XCJzb21lR2l0SHViUHVibGljS2V5XCIsXG4gICAgICAgICAgICAgICAgcHJpdmF0ZTpcInNvbWVHaXRIdWJQcml2YXRlS2V5XCIsXG4gICAgICAgICAgICAgICAgaG9zdDpcImdpdGh1Yi5jb21cIlxuICAgICAgICAgICAgfSkpO1xuICAgICAgICB9KTtcbiAgICAgICAgaXQoXCIuc3NoS2V5cyBzaG91bGQgcG9pbnQgdG8gYW4gYXJyYXkgb2Ygc3NoS2V5c1wiLGZ1bmN0aW9uKCl7XG4gICAgICAgICAgICBsZXQgc3NoS2V5QXJyYXkgPSB0ZXN0U3NoSW5zdGFuY2Uuc3NoS2V5cztcbiAgICAgICAgICAgIHNzaEtleUFycmF5LnNob3VsZC5iZS5BcnJheSgpO1xuICAgICAgICAgICAgc3NoS2V5QXJyYXlbMF0uaG9zdC5zaG91bGQuZXF1YWwoXCJnaXRsYWIuY29tXCIpO1xuICAgICAgICAgICAgc3NoS2V5QXJyYXlbMV0uaG9zdC5zaG91bGQuZXF1YWwoXCJiaXRidWNrZXQub3JnXCIpO1xuICAgICAgICAgICAgc3NoS2V5QXJyYXlbMl0uaG9zdC5zaG91bGQuZXF1YWwoXCJnaXRodWIuY29tXCIpO1xuICAgICAgICB9KTtcbiAgICAgICAgaXQoXCIuZ2V0S2V5KCkgc2hvdWxkIGdldCBhIHNwZWNpZmljIGtleSBzZWxlY3RlZCBieSBob3N0XCIsZnVuY3Rpb24oKXtcbiAgICAgICAgICAgIHRlc3RTc2hJbnN0YW5jZS5nZXRLZXkoXCJnaXRodWIuY29tXCIpLnB1YktleS5zaG91bGQuZXF1YWwoXCJzb21lR2l0SHViUHVibGljS2V5XCIpO1xuICAgICAgICB9KVxuICAgICAgICBpdChcIi5yZW1vdmVLZXkoKSBzaG91bGQgcmVtb3ZlIGEga2V5XCIsZnVuY3Rpb24oKXtcbiAgICAgICAgICAgIHRlc3RTc2hJbnN0YW5jZS5yZW1vdmVLZXkodGVzdFNzaEluc3RhbmNlLmdldEtleShcImJpdGJ1Y2tldC5vcmdcIikpO1xuICAgICAgICAgICAgdGVzdFNzaEluc3RhbmNlLnNzaEtleXNbMV0uaG9zdC5zaG91bGQuZXF1YWwoXCJnaXRodWIuY29tXCIpO1xuICAgICAgICB9KVxuICAgIH0pO1xufSkiXX0= diff --git a/test/test.ts b/test/test.ts index d50a4b8..2303969 100644 --- a/test/test.ts +++ b/test/test.ts @@ -17,13 +17,13 @@ describe("smartssh",function(){ testSshKey.type.should.equal("duplex"); }); it(".publicKey should be public key",function(){ - testSshKey.publicKey.should.equal("someExamplePublicKey"); + testSshKey.pubKey.should.equal("someExamplePublicKey"); }); it(".privateKey should be private key",function(){ - testSshKey.privateKey.should.equal("someExamplePrivateKey"); + testSshKey.privKey.should.equal("someExamplePrivateKey"); }); it(".publicKeyBase64 should be public key base 64 encoded",function(){ - testSshKey.publicKeyBase64; + testSshKey.pubKeyBase64; }) }); describe(".SshInstance",function(){ @@ -56,7 +56,7 @@ describe("smartssh",function(){ sshKeyArray[2].host.should.equal("github.com"); }); it(".getKey() should get a specific key selected by host",function(){ - testSshInstance.getKey("github.com").publicKey.should.equal("someGitHubPublicKey"); + testSshInstance.getKey("github.com").pubKey.should.equal("someGitHubPublicKey"); }) it(".removeKey() should remove a key",function(){ testSshInstance.removeKey(testSshInstance.getKey("bitbucket.org")); diff --git a/ts/smartssh.classes.sshconfig.ts b/ts/smartssh.classes.sshconfig.ts index c62e994..29089cd 100644 --- a/ts/smartssh.classes.sshconfig.ts +++ b/ts/smartssh.classes.sshconfig.ts @@ -5,32 +5,20 @@ import {SshKey} from "./smartssh.classes.sshkey" export class SshConfig { sshKeyArray:SshKey[]; - config:configObject[]; constructor(sshKeyArrayArg:SshKey[]){ this.sshKeyArray = sshKeyArrayArg; - this.config = []; } - makeConfig(){ - // clear old config in place - let configLength = this.config.length; - for(let i = 0; i < configLength; i++){ - this.config.pop(); - } - for(let key in this.sshKeyArray){ - let localSshKey = this.sshKeyArray[key]; - this.config.push({ - host: localSshKey.host, - authorized: localSshKey.authorized, - sshKey: localSshKey - }) - } - } - storeConfig(){ - + + /** + * the current config + */ + get config(){ + let configArray:configObject[]; + return configArray; } }; -interface configObject { +export interface configObject { host:string; authorized:boolean; sshKey:SshKey; diff --git a/ts/smartssh.classes.sshkey.ts b/ts/smartssh.classes.sshkey.ts index 4d8f5cc..91ba533 100644 --- a/ts/smartssh.classes.sshkey.ts +++ b/ts/smartssh.classes.sshkey.ts @@ -3,75 +3,87 @@ import * as plugins from "./smartssh.plugins"; import * as helpers from "./smartssh.classes.helpers"; export class SshKey { - private privKey:string; - private pubKey:string; - private hostVar:string; - private authorized:boolean; + private _privKey:string; + private _pubKey:string; + private _hostVar:string; + private _authorized:boolean; constructor(optionsArg:{private?:string,public?:string,host?:string,authorized?:boolean}={}){ - this.privKey = optionsArg.private; - this.pubKey = optionsArg.public; - this.hostVar = optionsArg.host; - this.authorized = optionsArg.authorized; + this._privKey = optionsArg.private; + this._pubKey = optionsArg.public; + this._hostVar = optionsArg.host; + this._authorized = optionsArg.authorized; }; - // getters + // this.host get host(){ - return this.hostVar; + return this._hostVar; }; - get privateKey(){ - return this.privKey; + set host(hostArg:string){ + this._hostVar = hostArg; }; - get privateKeyBase64(){ - return plugins.base64.encode(this.privKey); + + // this.privKey + get privKey(){ + return this._privKey; + }; + set privKey(privateKeyArg:string){ + this._privKey = privateKeyArg; + }; + + // this.privKeyBase64 + get privKeyBase64(){ + return plugins.base64.encode(this._privKey); } - get publicKey(){ - return this.pubKey; + set privKeyBase64(privateKeyArg:string) { + this._privKey = plugins.base64.decode(privateKeyArg); } - get publicKeyBase64(){ - return plugins.base64.encode(this.pubKey); + + // this.pubKey + get pubKey(){ + return this._pubKey; } + set pubKey(publicKeyArg:string){ + this._pubKey = publicKeyArg; + }; + + // this.pubKeyBase64 + get pubKeyBase64(){ + return plugins.base64.encode(this._pubKey); + } + set pubKeyBase64(publicKeyArg:string) { + this._pubKey = plugins.base64.decode(publicKeyArg); + } + + get type(){ - if(this.privKey && this.pubKey){ + if(this._privKey && this._pubKey){ return "duplex"; - } else if(this.privKey){ + } else if(this._privKey){ return "private"; - } else if(this.pubKey){ + } else if(this._pubKey){ return "public"; } }; - - // setters - set host(hostArg:string){ - this.hostVar = hostArg; - }; - set privateKey(privateKeyArg:string){ - this.privKey = privateKeyArg; - }; - - set privateKeyBase64(privateKeyArg:string) { - this.privKey = plugins.base64.decode(privateKeyArg); + set type(someVlueArg:any){ + console.log("the type of an SshKey connot be set. This value is autpcomputed.") } - set publicKey(publicKeyArg:string){ - this.pubKey = publicKeyArg; - }; - - set publicKeyBase64(publicKeyArg:string) { - this.pubKey = plugins.base64.decode(publicKeyArg); - } + // methods read(filePathArg){ } store(filePathArg?:string){ let filePathObj = plugins.path.parse(filePathArg); if(filePathObj.ext = ".priv"){ - plugins.smartfile.memory.toFsSync(this.privKey,filePathArg); + plugins.smartfile.memory.toFsSync(this._privKey,filePathArg); } else if (filePathObj.ext = ".pub"){ - plugins.smartfile.memory.toFsSync(this.pubKey,filePathArg); + plugins.smartfile.memory.toFsSync(this._pubKey,filePathArg); } else { //we assume we are given a directory as filePathArg, so we store the whole key plugins.fs.ensureDirSync(filePathObj.dir); this.store(plugins.path.join(filePathObj.dir,"key.priv")); // call this function recursivly this.store(plugins.path.join(filePathObj.dir,"key.pub")); // call this function recursivly } } -} \ No newline at end of file +} + +let testKey = new SshKey(); \ No newline at end of file