{"version":3,"file":"index.cjs","names":[],"sources":["../../../../node_modules/pump/index.js"],"sourcesContent":["var once = require('once')\nvar eos = require('end-of-stream')\nvar fs = require('fs') // we only need fs to get the ReadStream and WriteStream prototypes\n\nvar noop = function () {}\nvar ancient = /^v?\\.0/.test(process.version)\n\nvar isFn = function (fn) {\n  return typeof fn === 'function'\n}\n\nvar isFS = function (stream) {\n  if (!ancient) return false // newer node version do not need to care about fs is a special way\n  if (!fs) return false // browser\n  return (stream instanceof (fs.ReadStream || noop) || stream instanceof (fs.WriteStream || noop)) && isFn(stream.close)\n}\n\nvar isRequest = function (stream) {\n  return stream.setHeader && isFn(stream.abort)\n}\n\nvar destroyer = function (stream, reading, writing, callback) {\n  callback = once(callback)\n\n  var closed = false\n  stream.on('close', function () {\n    closed = true\n  })\n\n  eos(stream, {readable: reading, writable: writing}, function (err) {\n    if (err) return callback(err)\n    closed = true\n    callback()\n  })\n\n  var destroyed = false\n  return function (err) {\n    if (closed) return\n    if (destroyed) return\n    destroyed = true\n\n    if (isFS(stream)) return stream.close(noop) // use close for fs streams to avoid fd leaks\n    if (isRequest(stream)) return stream.abort() // request.destroy just do .end - .abort is what we want\n\n    if (isFn(stream.destroy)) return stream.destroy()\n\n    callback(err || new Error('stream was destroyed'))\n  }\n}\n\nvar call = function (fn) {\n  fn()\n}\n\nvar pipe = function (from, to) {\n  return from.pipe(to)\n}\n\nvar pump = function () {\n  var streams = Array.prototype.slice.call(arguments)\n  var callback = isFn(streams[streams.length - 1] || noop) && streams.pop() || noop\n\n  if (Array.isArray(streams[0])) streams = streams[0]\n  if (streams.length < 2) throw new Error('pump requires two streams per minimum')\n\n  var error\n  var destroys = streams.map(function (stream, i) {\n    var reading = i < streams.length - 1\n    var writing = i > 0\n    return destroyer(stream, reading, writing, function (err) {\n      if (!error) error = err\n      if (err) destroys.forEach(call)\n      if (reading) return\n      destroys.forEach(call)\n      callback(error)\n    })\n  })\n\n  return streams.reduce(pipe)\n}\n\nmodule.exports = pump\n"],"x_google_ignoreList":[0],"mappings":";;;;;;CAAA,IAAI;CACJ,IAAI;CACJ,IAAI,KAAK,QAAQ,KAAK;CAEtB,IAAI,OAAO,WAAY;CACvB,IAAI,UAAU,SAAS,KAAK,QAAQ,QAAQ;CAE5C,IAAI,OAAO,SAAU,IAAI;AACvB,SAAO,OAAO,OAAO;;CAGvB,IAAI,OAAO,SAAU,QAAQ;AAC3B,MAAI,CAAC,QAAS,QAAO;AACrB,MAAI,CAAC,GAAI,QAAO;AAChB,UAAQ,mBAAmB,GAAG,cAAc,SAAS,mBAAmB,GAAG,eAAe,UAAU,KAAK,OAAO,MAAM;;CAGxH,IAAI,YAAY,SAAU,QAAQ;AAChC,SAAO,OAAO,aAAa,KAAK,OAAO,MAAM;;CAG/C,IAAI,YAAY,SAAU,QAAQ,SAAS,SAAS,UAAU;AAC5D,aAAW,KAAK,SAAS;EAEzB,IAAI,SAAS;AACb,SAAO,GAAG,SAAS,WAAY;AAC7B,YAAS;IACT;AAEF,MAAI,QAAQ;GAAC,UAAU;GAAS,UAAU;GAAQ,EAAE,SAAU,KAAK;AACjE,OAAI,IAAK,QAAO,SAAS,IAAI;AAC7B,YAAS;AACT,aAAU;IACV;EAEF,IAAI,YAAY;AAChB,SAAO,SAAU,KAAK;AACpB,OAAI,OAAQ;AACZ,OAAI,UAAW;AACf,eAAY;AAEZ,OAAI,KAAK,OAAO,CAAE,QAAO,OAAO,MAAM,KAAK;AAC3C,OAAI,UAAU,OAAO,CAAE,QAAO,OAAO,OAAO;AAE5C,OAAI,KAAK,OAAO,QAAQ,CAAE,QAAO,OAAO,SAAS;AAEjD,YAAS,uBAAO,IAAI,MAAM,uBAAuB,CAAC;;;CAItD,IAAI,OAAO,SAAU,IAAI;AACvB,MAAI;;CAGN,IAAI,OAAO,SAAU,MAAM,IAAI;AAC7B,SAAO,KAAK,KAAK,GAAG;;CAGtB,IAAI,OAAO,WAAY;EACrB,IAAI,UAAU,MAAM,UAAU,MAAM,KAAK,UAAU;EACnD,IAAI,WAAW,KAAK,QAAQ,QAAQ,SAAS,MAAM,KAAK,IAAI,QAAQ,KAAK,IAAI;AAE7E,MAAI,MAAM,QAAQ,QAAQ,GAAG,CAAE,WAAU,QAAQ;AACjD,MAAI,QAAQ,SAAS,EAAG,OAAM,IAAI,MAAM,wCAAwC;EAEhF,IAAI;EACJ,IAAI,WAAW,QAAQ,IAAI,SAAU,QAAQ,GAAG;GAC9C,IAAI,UAAU,IAAI,QAAQ,SAAS;AAEnC,UAAO,UAAU,QAAQ,SADX,IAAI,GACyB,SAAU,KAAK;AACxD,QAAI,CAAC,MAAO,SAAQ;AACpB,QAAI,IAAK,UAAS,QAAQ,KAAK;AAC/B,QAAI,QAAS;AACb,aAAS,QAAQ,KAAK;AACtB,aAAS,MAAM;KACf;IACF;AAEF,SAAO,QAAQ,OAAO,KAAK;;AAG7B,QAAO,UAAU"}