{"version":3,"sources":["jsdelivr-header.js","/npm/adit@1.0.11/dist/index.js"],"names":[],"mappings":"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","file":"/npm/adit@1.0.11/dist/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/adit@1.0.11/dist/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _slicedToArray2 = require('babel-runtime/helpers/slicedToArray');\n\nvar _slicedToArray3 = _interopRequireDefault(_slicedToArray2);\n\nvar _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');\n\nvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\nvar _createClass2 = require('babel-runtime/helpers/createClass');\n\nvar _createClass3 = _interopRequireDefault(_createClass2);\n\nvar _symbol = require('babel-runtime/core-js/symbol');\n\nvar _symbol2 = _interopRequireDefault(_symbol);\n\nvar _path = require('path');\n\nvar path = _interopRequireWildcard(_path);\n\nvar _fs = require('fs');\n\nvar _net = require('net');\n\nvar net = _interopRequireWildcard(_net);\n\nvar _events = require('events');\n\nvar _ssh = require('ssh2');\n\nvar _ssh2 = _interopRequireDefault(_ssh);\n\nvar _vow = require('vow');\n\nvar vow = _interopRequireWildcard(_vow);\n\nvar _sshUrl = require('ssh-url');\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar defer = (0, _symbol2.default)();\nvar inDefer = (0, _symbol2.default)();\nvar outDefer = (0, _symbol2.default)();\nvar retryTimes = (0, _symbol2.default)();\nvar tryMethod = (0, _symbol2.default)();\n\nvar Adit = function () {\n  (0, _createClass3.default)(Adit, null, [{\n    key: 'getPort',\n\n\n    /**\n     * Return default port or passed port or get port within the range\n     * @static\n     * @param {Number | Array} port\n     * @return {Number}\n     */\n\n\n    /**\n     * @static\n     * @type {Connection}\n     */\n    value: function getPort(port) {\n      if (Array.isArray(port)) {\n        return Adit.getRandom(port[0], port[1]);\n      }\n\n      return port;\n    }\n\n    /**\n     * Get random number\n     * @static\n     * @param {Number} min\n     * @param {Number} max\n     * @return {Number}\n     */\n\n\n    /**\n     * @static\n     * @type {Function}\n     */\n\n\n    /**\n     * @private\n     * @type {Net}\n     */\n\n  }, {\n    key: 'getRandom',\n    value: function getRandom(min, max) {\n      return Math.floor(Math.random() * (max - min)) + min;\n    }\n\n    /**\n     * Simplify port set\n     * @static\n     * @param {Object} from\n     * @param {Object} to\n     * @return {Object}\n     */\n\n  }, {\n    key: 'getAddresses',\n    value: function getAddresses(from, to) {\n      from = {\n        host: from.host || 'localhost',\n        port: Adit.getPort(from.port)\n      };\n      to = {\n        host: to.host || 'localhost',\n        port: Adit.getPort(to.port)\n      };\n\n      return { from: from, to: to };\n    }\n  }, {\n    key: 'parse',\n    value: function parse(string, password) {\n      var _string$split = string.split(' '),\n          _string$split2 = (0, _slicedToArray3.default)(_string$split, 2),\n          auth = _string$split2[0],\n          url = _string$split2[1];\n\n      // Like 9000:example.com:80\n\n\n      auth = auth.split(':');\n      url = (0, _sshUrl.parse)(url);\n\n      return {\n        host: url.hostname,\n        port: url.port || 22,\n        username: url.user,\n        password: password || null,\n\n        from: {\n          host: 'localhost',\n          port: auth[0]\n        },\n\n        to: {\n          host: auth[1],\n          port: auth[2]\n        }\n      };\n    }\n\n    /**\n     * @constructor\n     * @param {Object | String} settings\n     * @param {String} [password]\n     * @param {String} settings.host\n     * @param {String} [settings.username]\n     * @param {Number | Array} [settings.port] - number or range\n     * @param {String} [settings.password]\n     * @param {String} [settings.agent]\n     * @param {String} [settings.key]\n     * @return {Adit}\n     */\n\n  }]);\n\n  function Adit(settings, password) {\n    (0, _classCallCheck3.default)(this, Adit);\n\n    if (typeof settings === 'string') {\n      settings = Adit.parse(settings, password);\n    }\n\n    /**\n     * Host name/address\n     * @type {String}\n     */\n    this.host = settings.host;\n\n    /**\n     * Original port range, needed if we infact received port range,\n     * so we could extract new port for new connection\n     * @type {Number | Array}\n     */\n    this.portRange = settings.port || 22;\n\n    /**\n     * Currently used port\n     * @type {Number}\n     */\n    this.port = Adit.getPort(this.portRange);\n\n    /**\n     * Username of the remote host\n     * @type {String}\n     */\n    this.username = settings.username || process.env.USER || null;\n\n    /**\n     * User password\n     * @type {String | null}\n     */\n    this.password = settings.password || null;\n\n    /**\n     * Path to ssh-agent socket\n     * @type {String | null}\n     */\n    this.agent = settings.agent || process.env.SSH_AUTH_SOCK || null;\n\n    /**\n     * Authorization key\n     * @type {Buffer | null}\n     */\n    this.key = null;\n\n    /**\n     * \"From\" forward settings\n     * @type {Object | null}\n     */\n    this.from = settings.from || null;\n\n    /**\n     * \"To\" forward settings\n     * @type {Object | null}\n     */\n    this.to = settings.to || null;\n\n    /**\n     * How many times should we try to reconnect?\n     * @private\n     * @type {Number}\n     */\n    this[retryTimes] = 0;\n\n    /**\n    * Deferred object which we will resolve when connect to the remote host\n    * @private\n    * @type {Object}\n    */\n    this[defer] = vow.defer();\n\n    /**\n     * Deferred object which we will resolve when forwarding to *remote* host is established\n     * @private\n     * @type {Object}\n     */\n    this[inDefer] = vow.defer();\n\n    /**\n     * Deferred object which we will resolve when forwarding to *local* host is established\n     * @private\n     * @type {Object}\n     */\n    this[outDefer] = vow.defer();\n\n    /**\n     * Promise object which will be resolved when connect to the remote host\n     * @type {Object}\n     */\n    this.promise = this[defer].promise();\n\n    /**\n     * Our ssh connection\n     * @type {Connection}\n     */\n    this.connection = new Adit.Connection();\n\n    /**\n     * Event emitter\n     * @type {EventEmitter}\n     */\n    this.events = new _events.EventEmitter();\n\n    /**\n     * Store all streams, so we could clean up event loop queue\n     * @type {Array}\n     */\n    this.streams = [];\n\n    /**\n     * Event listener\n     * @type {Function}\n     */\n    this.on = this.events.on.bind(this.events);\n\n    // Authentification strategy\n    // If password is defined - use it\n    // If agent or key is defined explicitly - use one of them, prioritize the agent\n    // If agent or key is not passed - use environment varible if deinfed, prioritize the agent\n    // Note: if key is used, assume it is added without passphrase, otherwise you should use agent\n    if (this.password) {\n      this.key = this.agent = null;\n    } else if (!settings.agent && !settings.password && settings.key) {\n      this.key = Adit.read(settings.key);\n      this.agent = null;\n    } else if (!this.agent && !this.password && process.env.HOME) {\n      this.key = Adit.read(path.join(process.env.HOME, '.ssh', 'id_rsa'));\n    }\n\n    if (!this.password && !this.agent && !this.key) {\n      throw new Error('SSH-agent is not enabled, private key doesn\\'t exist \\n' + 'and password is not provided we need at least one of those things');\n    }\n  }\n\n  /**\n   * Do the Adit#addEvents and Adit#connect\n   * @see Adit#connect\n   */\n\n\n  (0, _createClass3.default)(Adit, [{\n    key: 'open',\n    value: function open() {\n      var retries = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n\n      this.addEvents();\n      this.connect(retries);\n      return this.promise;\n    }\n\n    /**\n     * Connect to the remote server\n     * @param {Number} [retries = 0] - how many times can we try to connect\n     */\n\n  }, {\n    key: 'connect',\n    value: function connect() {\n      var retries = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n\n      this[retryTimes] = retries;\n\n      var settings = {\n        host: this.host,\n        port: this.port,\n        username: this.username\n      };\n\n      if (this.password) {\n        settings.password = this.password;\n      } else if (this.agent) {\n        settings.agent = this.agent;\n      } else {\n        settings.privateKey = this.key;\n      }\n\n      this.connection.connect(settings);\n    }\n\n    /**\n     * Close connection to the remote server\n     */\n\n  }, {\n    key: 'close',\n    value: function close() {\n      this.connection.end();\n    }\n\n    /**\n    * Helper for the Adit#reTry\n    * @private\n    */\n\n  }, {\n    key: tryMethod,\n    value: function value() {\n      // Close current connection\n      this.close();\n\n      // Try new port\n      this.port = Adit.getPort(this.portRange);\n\n      // Recreate the connection\n      this.connection = new Adit.Connection();\n\n      // Shot decrement\n      this.open(this[retryTimes] - 1);\n    }\n\n    /**\n     * Try to reconnect to the remote host (has side effect)\n     * @param {*} error - error that will be thrown if we don't want to try anymore\n     */\n\n  }, {\n    key: 'reTry',\n    value: function reTry(error) {\n      if (this[retryTimes] !== 0) {\n        this[tryMethod]();\n      } else {\n        this[defer].reject(error);\n      }\n    }\n\n    /**\n     * Forward all connections\n     * @return {Promise}\n     */\n\n  }, {\n    key: 'forward',\n    value: function forward() {\n      var _this = this;\n\n      return this.open().then(function () {\n        return _this.out(_this.from, _this.to);\n      });\n    }\n\n    /**\n     * Get all connections from remote\n     * @return {Promise}\n     */\n\n  }, {\n    key: 'reverse',\n    value: function reverse() {\n      var _this2 = this;\n\n      return this.open().then(function () {\n        return _this2.in(_this2.to, _this2.from);\n      });\n    }\n\n    /**\n     * Forward requests from remote server to your local one\n     * @param {Object} from\n     * @param {Object} to\n     * @return {Promise}\n     */\n\n  }, {\n    key: 'in',\n    value: function _in(from, to) {\n      var _this3 = this;\n\n      var _Adit$getAddresses = Adit.getAddresses(from, to);\n\n      from = _Adit$getAddresses.from;\n      to = _Adit$getAddresses.to;\n\n\n      this.connection.on('tcp connection', function (info, accept) {\n        var stream = accept();\n\n        stream.on('data', _this3.events.emit.bind(_this3.events, 'data'));\n\n        // Connect to the socket and output the stream\n        var socket = Adit.net.connect(to.port, to.host, function () {\n          stream.pipe(socket);\n          socket.pipe(stream);\n        });\n\n        _this3.events.emit('tcp connection');\n\n        // Store all streams, so we can clean it up afterwards\n        _this3.streams.push(socket, stream);\n      });\n\n      this.connection.forwardIn(from.host, from.port, function (error) {\n        if (error) {\n          _this3.events.emit('error', error);\n          _this3[inDefer].reject(error);\n        } else {\n          _this3[inDefer].resolve(_this3);\n        }\n      });\n\n      return this[inDefer].promise();\n    }\n\n    /**\n     * Forward requests from local server to remote one\n     * @param {Object} from\n     * @param {Object} to\n     * @return {Promise}\n     */\n\n  }, {\n    key: 'out',\n    value: function out(from, to) {\n      var _this4 = this;\n\n      // Since for `forwardOut` creates only one connection, we would have to create a\n      // server to pipe all requests\n      var _Adit$getAddresses2 = Adit.getAddresses(from, to);\n\n      from = _Adit$getAddresses2.from;\n      to = _Adit$getAddresses2.to;\n      Adit.net.createServer(function (socket) {\n        _this4.connection.forwardOut(from.host, from.port, to.host, to.port, function (error, stream) {\n          // If error reject out promise connection and propogate the error\n          if (error) {\n            _this4.events.emit('error', error);\n            return;\n          }\n\n          stream.on('data', _this4.events.emit.bind(_this4.events, 'data'));\n\n          // Pipe requests\n          socket.pipe(stream);\n          stream.pipe(socket);\n\n          // Store all streams, so we can clean it up afterwards\n          _this4.streams.push(socket, stream);\n        });\n      }).listen(from.port, from.host, function () {\n        // Resolve the connection\n        _this4[outDefer].resolve(_this4);\n      });\n\n      return this[outDefer].promise();\n    }\n\n    /**\n     * Attach common events and deal with them\n     */\n\n  }, {\n    key: 'addEvents',\n    value: function addEvents() {\n      var _this5 = this;\n\n      // Wait for remote connection\n      this.connection.on('ready', function () {\n        _this5[defer].resolve(_this5);\n      });\n\n      this.connection.on('error', function (error) {\n        _this5.events.emit('error', error);\n        _this5.reTry();\n      });\n\n      this.connection.on('close', function (error) {\n        // End all streams, to clean up event loop queue\n        _this5.streams.forEach(function (stream) {\n          return stream.end();\n        });\n        _this5.events.emit('close', error);\n      });\n    }\n  }]);\n  return Adit;\n}();\n\nAdit.net = net;\nAdit.Connection = _ssh2.default;\nAdit.read = _fs.readFileSync;\nexports.default = Adit;\nmodule.exports = exports['default'];"]}