"use strict"; require("typings-global"); var helpers = require("./smartssh.classes.helpers"); var smartssh_classes_sshdir_1 = require("./smartssh.classes.sshdir"); var SshInstance = (function () { function SshInstance(optionsArg) { if (optionsArg === void 0) { optionsArg = {}; } optionsArg ? void (0) : optionsArg = {}; this.sshDir = new smartssh_classes_sshdir_1.SshDir(optionsArg.sshDir); this.sshKeys = this.sshDir.getKeys(); this.sshSync = optionsArg.sshSync; } ; SshInstance.prototype.addKey = function (sshKeyArg) { this.sshKeys.push(sshKeyArg); this.sync(); }; ; SshInstance.prototype.getKey = function (hostArg) { var filteredArray = this.sshKeys.filter(function (keyArg) { return (keyArg.host == hostArg); }); if (filteredArray.length > 0) { return filteredArray[0]; } else { return undefined; } }; ; SshInstance.prototype.getKeys = function () { return this.sshKeys; }; SshInstance.prototype.removeKey = function (sshKeyArg) { var keyIndex = helpers.getKeyIndex(sshKeyArg.host); this.sshKeys.splice(keyIndex, 1); this.sync(); }; ; SshInstance.prototype.replaceKey = function (sshKeyOldArg, sshKeyNewArg) { var keyIndex = helpers.getKeyIndex(sshKeyOldArg.host); this.sshKeys.splice(keyIndex, 1, sshKeyNewArg); this.sync(); }; ; SshInstance.prototype.sync = function () { if (this.sshSync) { this.sshDir.sync(this.sshConfig, this.sshKeys); // call sync method of sshDir class; } }; ; return SshInstance; }()); exports.SshInstance = SshInstance; //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNtYXJ0c3NoLmNsYXNzZXMuc3NoaW5zdGFuY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLFFBQU8sZ0JBQ1AsQ0FBQyxDQURzQjtBQUV2QixJQUFZLE9BQU8sV0FBTSw0QkFBNEIsQ0FBQyxDQUFBO0FBRXRELHdDQUFxQiwyQkFBMkIsQ0FBQyxDQUFBO0FBSWpEO0lBS0kscUJBQVksVUFBK0M7UUFBL0MsMEJBQStDLEdBQS9DLGVBQStDO1FBQ3ZELFVBQVUsR0FBRyxLQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsVUFBVSxHQUFHLEVBQUUsQ0FBQztRQUN2QyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksZ0NBQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDNUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3JDLElBQUksQ0FBQyxPQUFPLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQztJQUN0QyxDQUFDOztJQUNELDRCQUFNLEdBQU4sVUFBTyxTQUFnQjtRQUNuQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM3QixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDaEIsQ0FBQzs7SUFDRCw0QkFBTSxHQUFOLFVBQU8sT0FBYztRQUNqQixJQUFJLGFBQWEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxVQUFTLE1BQU07WUFDbkQsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxPQUFPLENBQUMsQ0FBQztRQUNwQyxDQUFDLENBQUMsQ0FBQztRQUNILEVBQUUsQ0FBQSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUEsQ0FBQztZQUN6QixNQUFNLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzVCLENBQUM7UUFBQyxJQUFJLENBQUMsQ0FBQztZQUNKLE1BQU0sQ0FBQyxTQUFTLENBQUM7UUFDckIsQ0FBQztJQUNMLENBQUM7O0lBRUQsNkJBQU8sR0FBUDtRQUNJLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3hCLENBQUM7SUFFRCwrQkFBUyxHQUFULFVBQVUsU0FBZ0I7UUFDdEIsSUFBSSxRQUFRLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbkQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNoQixDQUFDOztJQUNELGdDQUFVLEdBQVYsVUFBVyxZQUFtQixFQUFDLFlBQW1CO1FBQzlDLElBQUksUUFBUSxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RELElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBQyxDQUFDLEVBQUMsWUFBWSxDQUFDLENBQUM7UUFDN0MsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2hCLENBQUM7O0lBQ0QsMEJBQUksR0FBSjtRQUNJLEVBQUUsQ0FBQSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQSxDQUFDO1lBQ2IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxvQ0FBb0M7UUFDdkYsQ0FBQztJQUNMLENBQUM7O0lBQ0wsa0JBQUM7QUFBRCxDQTdDQSxBQTZDQyxJQUFBO0FBN0NZLG1CQUFXLGNBNkN2QixDQUFBIiwiZmlsZSI6InNtYXJ0c3NoLmNsYXNzZXMuc3NoaW5zdGFuY2UuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXCJ0eXBpbmdzLWdsb2JhbFwiXHJcbmltcG9ydCAqIGFzIHBsdWdpbnMgZnJvbSBcIi4vc21hcnRzc2gucGx1Z2luc1wiO1xyXG5pbXBvcnQgKiBhcyBoZWxwZXJzIGZyb20gXCIuL3NtYXJ0c3NoLmNsYXNzZXMuaGVscGVyc1wiO1xyXG5cclxuaW1wb3J0IHtTc2hEaXJ9IGZyb20gXCIuL3NtYXJ0c3NoLmNsYXNzZXMuc3NoZGlyXCI7XHJcbmltcG9ydCB7U3NoQ29uZmlnfSBmcm9tIFwiLi9zbWFydHNzaC5jbGFzc2VzLnNzaGNvbmZpZ1wiO1xyXG5pbXBvcnQge1NzaEtleX0gZnJvbSBcIi4vc21hcnRzc2guY2xhc3Nlcy5zc2hrZXlcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBTc2hJbnN0YW5jZSB7XHJcbiAgICBwcml2YXRlIHNzaENvbmZpZzpTc2hDb25maWc7IC8vIHNzaENvbmZpZyAoZS5nLiByZXByZXNlbnRzIH4vLnNzaC9jb25maWcpXHJcbiAgICBwcml2YXRlIHNzaERpcjpTc2hEaXI7IC8vIHBvaW50cyB0byBzc2hEaXIgY2xhc3MgaW5zdGFuY2UuXHJcbiAgICBwcml2YXRlIHNzaEtleXM6U3NoS2V5W107IC8vaG9sZHMgYWxsIHNzaCBrZXlzXHJcbiAgICBwcml2YXRlIHNzaFN5bmM6Ym9vbGVhbjsgLy8gaWYgc2V0IHRvIHRydWUsIHRoZSBzc2ggZGlyIHdpbGwgYmUga2VwdCBpbiBzeW5jIGF1dG9tYXRpY2FsbHlcclxuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnNBcmc6e3NzaERpcj86c3RyaW5nLHNzaFN5bmM/OmJvb2xlYW59PXt9KXtcclxuICAgICAgICBvcHRpb25zQXJnID8gdm9pZCgwKSA6IG9wdGlvbnNBcmcgPSB7fTtcclxuICAgICAgICB0aGlzLnNzaERpciA9IG5ldyBTc2hEaXIob3B0aW9uc0FyZy5zc2hEaXIpO1xyXG4gICAgICAgIHRoaXMuc3NoS2V5cyA9IHRoaXMuc3NoRGlyLmdldEtleXMoKTtcclxuICAgICAgICB0aGlzLnNzaFN5bmMgPSBvcHRpb25zQXJnLnNzaFN5bmM7XHJcbiAgICB9O1xyXG4gICAgYWRkS2V5KHNzaEtleUFyZzpTc2hLZXkpe1xyXG4gICAgICAgIHRoaXMuc3NoS2V5cy5wdXNoKHNzaEtleUFyZyk7XHJcbiAgICAgICAgdGhpcy5zeW5jKCk7XHJcbiAgICB9O1xyXG4gICAgZ2V0S2V5KGhvc3RBcmc6c3RyaW5nKXtcclxuICAgICAgICBsZXQgZmlsdGVyZWRBcnJheSA9IHRoaXMuc3NoS2V5cy5maWx0ZXIoZnVuY3Rpb24oa2V5QXJnKXtcclxuICAgICAgICAgICAgcmV0dXJuIChrZXlBcmcuaG9zdCA9PSBob3N0QXJnKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICBpZihmaWx0ZXJlZEFycmF5Lmxlbmd0aCA+IDApe1xyXG4gICAgICAgICAgICByZXR1cm4gZmlsdGVyZWRBcnJheVswXTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbiAgICBcclxuICAgIGdldEtleXMoKXtcclxuICAgICAgICByZXR1cm4gdGhpcy5zc2hLZXlzO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICByZW1vdmVLZXkoc3NoS2V5QXJnOlNzaEtleSl7XHJcbiAgICAgICAgbGV0IGtleUluZGV4ID0gaGVscGVycy5nZXRLZXlJbmRleChzc2hLZXlBcmcuaG9zdCk7XHJcbiAgICAgICAgdGhpcy5zc2hLZXlzLnNwbGljZShrZXlJbmRleCwxKTtcclxuICAgICAgICB0aGlzLnN5bmMoKTtcclxuICAgIH07XHJcbiAgICByZXBsYWNlS2V5KHNzaEtleU9sZEFyZzpTc2hLZXksc3NoS2V5TmV3QXJnOlNzaEtleSl7XHJcbiAgICAgICAgbGV0IGtleUluZGV4ID0gaGVscGVycy5nZXRLZXlJbmRleChzc2hLZXlPbGRBcmcuaG9zdCk7XHJcbiAgICAgICAgdGhpcy5zc2hLZXlzLnNwbGljZShrZXlJbmRleCwxLHNzaEtleU5ld0FyZyk7XHJcbiAgICAgICAgdGhpcy5zeW5jKCk7XHJcbiAgICB9O1xyXG4gICAgc3luYygpe1xyXG4gICAgICAgIGlmKHRoaXMuc3NoU3luYyl7XHJcbiAgICAgICAgICAgIHRoaXMuc3NoRGlyLnN5bmModGhpcy5zc2hDb25maWcsdGhpcy5zc2hLZXlzKTsgLy8gY2FsbCBzeW5jIG1ldGhvZCBvZiBzc2hEaXIgY2xhc3M7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxufVxyXG5cclxuXHJcbiJdfQ==