{"version":3,"file":"index.cjs","sources":["../../../../../node_modules/statuses/index.js"],"sourcesContent":["/*!\n * statuses\n * Copyright(c) 2014 Jonathan Ong\n * Copyright(c) 2016 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict'\n\n/**\n * Module dependencies.\n * @private\n */\n\nvar codes = require('./codes.json')\n\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = status\n\n// status code to message map\nstatus.message = codes\n\n// status message (lower-case) to code map\nstatus.code = createMessageToStatusCodeMap(codes)\n\n// array of status codes\nstatus.codes = createStatusCodeList(codes)\n\n// status codes for redirects\nstatus.redirect = {\n  300: true,\n  301: true,\n  302: true,\n  303: true,\n  305: true,\n  307: true,\n  308: true\n}\n\n// status codes for empty bodies\nstatus.empty = {\n  204: true,\n  205: true,\n  304: true\n}\n\n// status codes for when you should retry the request\nstatus.retry = {\n  502: true,\n  503: true,\n  504: true\n}\n\n/**\n * Create a map of message to status code.\n * @private\n */\n\nfunction createMessageToStatusCodeMap (codes) {\n  var map = {}\n\n  Object.keys(codes).forEach(function forEachCode (code) {\n    var message = codes[code]\n    var status = Number(code)\n\n    // populate map\n    map[message.toLowerCase()] = status\n  })\n\n  return map\n}\n\n/**\n * Create a list of all status codes.\n * @private\n */\n\nfunction createStatusCodeList (codes) {\n  return Object.keys(codes).map(function mapCode (code) {\n    return Number(code)\n  })\n}\n\n/**\n * Get the status code for given message.\n * @private\n */\n\nfunction getStatusCode (message) {\n  var msg = message.toLowerCase()\n\n  if (!Object.prototype.hasOwnProperty.call(status.code, msg)) {\n    throw new Error('invalid status message: \"' + message + '\"')\n  }\n\n  return status.code[msg]\n}\n\n/**\n * Get the status message for given code.\n * @private\n */\n\nfunction getStatusMessage (code) {\n  if (!Object.prototype.hasOwnProperty.call(status.message, code)) {\n    throw new Error('invalid status code: ' + code)\n  }\n\n  return status.message[code]\n}\n\n/**\n * Get the status code.\n *\n * Given a number, this will throw if it is not a known status\n * code, otherwise the code will be returned. Given a string,\n * the string will be parsed for a number and return the code\n * if valid, otherwise will lookup the code assuming this is\n * the status message.\n *\n * @param {string|number} code\n * @returns {number}\n * @public\n */\n\nfunction status (code) {\n  if (typeof code === 'number') {\n    return getStatusMessage(code)\n  }\n\n  if (typeof code !== 'string') {\n    throw new TypeError('code must be a number or string')\n  }\n\n  // '403'\n  var n = parseInt(code, 10)\n  if (!isNaN(n)) {\n    return getStatusMessage(n)\n  }\n\n  return getStatusCode(code)\n}\n"],"names":["require$$0","codes","status"],"mappings":";;;;;;;;;AAcA,IAAI,QAAQA;AAOZ,IAAA,WAAiB;AAGjB,OAAO,UAAU;AAGjB,OAAO,OAAO,6BAA6B,KAAK;AAGhD,OAAO,QAAQ,qBAAqB,KAAK;AAGzC,OAAO,WAAW;AAAA,EAChB,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AACP;AAGA,OAAO,QAAQ;AAAA,EACb,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AACP;AAGA,OAAO,QAAQ;AAAA,EACb,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AACP;AAOA,SAAS,6BAA8BC,QAAO;AAC5C,MAAI,MAAM,CAAA;AAEV,SAAO,KAAKA,MAAK,EAAE,QAAQ,SAAS,YAAa,MAAM;AACrD,QAAI,UAAUA,OAAM,IAAI;AACxB,QAAIC,UAAS,OAAO,IAAI;AAGxB,QAAI,QAAQ,YAAW,CAAE,IAAIA;AAAA,EACjC,CAAG;AAED,SAAO;AACT;AAOA,SAAS,qBAAsBD,QAAO;AACpC,SAAO,OAAO,KAAKA,MAAK,EAAE,IAAI,SAAS,QAAS,MAAM;AACpD,WAAO,OAAO,IAAI;AAAA,EACtB,CAAG;AACH;AAOA,SAAS,cAAe,SAAS;AAC/B,MAAI,MAAM,QAAQ,YAAW;AAE7B,MAAI,CAAC,OAAO,UAAU,eAAe,KAAK,OAAO,MAAM,GAAG,GAAG;AAC3D,UAAM,IAAI,MAAM,8BAA8B,UAAU,GAAG;AAAA,EAC/D;AAEE,SAAO,OAAO,KAAK,GAAG;AACxB;AAOA,SAAS,iBAAkB,MAAM;AAC/B,MAAI,CAAC,OAAO,UAAU,eAAe,KAAK,OAAO,SAAS,IAAI,GAAG;AAC/D,UAAM,IAAI,MAAM,0BAA0B,IAAI;AAAA,EAClD;AAEE,SAAO,OAAO,QAAQ,IAAI;AAC5B;AAgBA,SAAS,OAAQ,MAAM;AACrB,MAAI,OAAO,SAAS,UAAU;AAC5B,WAAO,iBAAiB,IAAI;AAAA,EAChC;AAEE,MAAI,OAAO,SAAS,UAAU;AAC5B,UAAM,IAAI,UAAU,iCAAiC;AAAA,EACzD;AAGE,MAAI,IAAI,SAAS,MAAM,EAAE;AACzB,MAAI,CAAC,MAAM,CAAC,GAAG;AACb,WAAO,iBAAiB,CAAC;AAAA,EAC7B;AAEE,SAAO,cAAc,IAAI;AAC3B;;;","x_google_ignoreList":[0]}