{"version":3,"sources":["jsdelivr-header.js","/npm/response@0.18.0/index.js"],"names":[],"mappings":"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","file":"/npm/response@0.18.0/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/response@0.18.0/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","var stream = require('stream')\n  , mime = require('mime')\n  , util = require('util')\n  , bl = require('bl')\n  , caseless = require('caseless')\n  , bestencoding = require('best-encoding')\n  , zlib = require('zlib')\n  ;\n\n// This could eventually be its own module.\nfunction mutations (src, dest) {\n  if (src.headers && dest.setHeader) {\n    for (var i in src.headers) dest.setHeader(i, src.headers[i])\n  }\n  if (src.path &&\n      (!src.headers || (src.getHeader ? !src.getHeader('content-type') : !src.headers['content-type'])) &&\n      dest.setHeader) {\n    src.on('error', function (e) {\n      dest.statusCode = 404\n      dest.setHeader('content-type', 'text/plain')\n      dest.write('Not Found')\n      dest.end()\n    })\n    dest.setHeader('content-type', mime.lookup(src.path))\n  }\n  if (src.statusCode) dest.statusCode = src.statusCode\n}\n\nfunction Response (view, opts) {\n  var self = this\n  if (typeof view !== 'string' && typeof view !== 'function' && !Buffer.isBuffer(view)) {\n    opts = view\n    view = null\n  }\n  self.opts = opts || {}\n  if (self.opts.gzip) self.opts.compress = gzip\n  self.view = view\n  self.buffering = bl()\n  self.headers = {}\n  self.dests = []\n  stream.Transform.call(self)\n  self.on('pipe', function (src) {\n    mutations(src, self)\n    src.on('error', function (e) {\n      // TODO: Handle 404 errors\n      self.emit('error', e)\n    })\n  })\n  self.on('error', self.error.bind(self))\n  if (view) {\n    if (typeof view === 'string' || Buffer.isBuffer(view)) {\n      process.nextTick(function () {\n        self.end(view)\n      })\n    }\n  }\n  caseless.httpify(this, this.headers)\n  if (self.opts.compress) {\n    var encoding\n    if (self.opts.compress.headers) {\n      encoding = bestencoding(self.opts.compress)\n    } else if (typeof self.opts.compress === 'string') {\n      encoding = self.opts.compress\n    } else {\n      encoding = 'gzip'\n    }\n\n    if (encoding && encoding !== 'identity') {\n      if (encoding !== 'gzip' && encoding !== 'deflate') throw new Error(\"I don't know this encoding.\")\n      self.statusCode = 200\n      self.setHeader('content-encoding', encoding)\n      if (encoding === 'gzip') self.compressor = zlib.createGzip()\n      if (encoding === 'deflate') self.compressor = zlib.createDeflate()\n      stream.Transform.prototype.pipe.call(this, self.compressor)\n    }\n  }\n}\nutil.inherits(Response, stream.Transform)\n\nResponse.prototype._transform = function (chunk, encoding, cb) {\n  if (this._pipe) {\n    this._pipe()\n    this._pipe = null\n  }\n  if (typeof this.view === 'function') this.buffering.append(chunk)\n  else this.push(chunk)\n  cb(null)\n}\nResponse.prototype.pipe = function () {\n  this.dests.push(arguments[0])\n  if (this.compressor) this.compressor.pipe.apply(this.compressor, arguments)\n  else stream.Transform.prototype.pipe.apply(this, arguments)\n}\nResponse.prototype._pipe = function () {\n  var self = this\n  this.dests.forEach(function (dest) {\n    mutations(self, dest)\n  })\n}\nResponse.prototype.error = function (e, status) {\n  var self = this\n\n  if (!status && typeof e === 'number') {\n    self.statusCode = e\n    self.end()\n    return\n  }\n\n  self.statusCode = status || 500\n  if (self._erroring) return\n  self._erroring = true\n  if (typeof self.view === 'function') {\n    self.view.call(self, e, null, function (e, data) {\n      if (e) return self.end('Internal Server Error')\n      self.end(data)\n    })\n  } else {\n    // TODO: Default tracebacks on errors.\n    self.end( e ? e.message || 'Error' : 'Error')\n  }\n}\nResponse.prototype.status = function(statusCode) {\n  this.statusCode = statusCode;\n  return this\n}\nResponse.prototype.location = function(location) {\n  this.setHeader('Location', location)\n  return this\n}\nResponse.prototype.end = function (data) {\n  var a = arguments\n    , self = this\n    ;\n  if (data) this.write(data)\n  if (typeof self.view === 'function') {\n    self.view.call(self, null, self.buffering, function (e, data) {\n      if (e) self.error(e)\n      if (self.compressor) {\n        self.compressor.write(data)\n      } else {\n        self.dests.forEach(function (dest) {\n          dest.write(data)\n        })\n      }\n      stream.Transform.prototype.end.apply(self)\n    })\n  } else {\n    stream.Transform.prototype.end.apply(self)\n  }\n}\n\nfunction response (view, opts) {\n  return new Response(view, opts)\n}\n\nvar typemap = {};\ntypemap['txt'] = function(view) {\n  return (typeof view != 'string') ? view.toString() : view\n}\ntypemap['json'] = function(view) {\n  return JSON.stringify(view)\n}\n\nObject.keys(mime.types).forEach(function (mimeName) {\n\n    // set mime convenience methods\n  function _response (view, opts) {\n    view = (typemap[mimeName]) ? typemap[mimeName](view) : view\n    var r = response(view, opts)\n    r.setHeader('content-type', mime.types[mimeName])\n    return r\n  }\n  response[mimeName] = _response\n  // set mime methods\n  Response.prototype[mimeName] = function (view) {\n    view = (typemap[mimeName]) ? typemap[mimeName](view) : view\n    var self = this\n    self.setHeader('content-type', mime.types[mimeName])\n    process.nextTick(function () {\n        self.end(view)\n    })\n    return this\n  }\n})\n\nresponse.error = function () {\n  var r = response()\n  r.error.apply(r, arguments)\n  return r\n}\n\n// TODO alias express methods\n// .charset\n// .send\n// .jsonp\n\n// TODO redirect api\n// TODO error, notfound\n\nmodule.exports = response\n"]}