{"version":3,"file":"cross-fetch.js","sources":["../node_modules/whatwg-fetch/fetch.js"],"sourcesContent":["var support = {\n  searchParams: 'URLSearchParams' in self,\n  iterable: 'Symbol' in self && 'iterator' in Symbol,\n  blob:\n    'FileReader' in self &&\n    'Blob' in self &&\n    (function() {\n      try {\n        new Blob()\n        return true\n      } catch (e) {\n        return false\n      }\n    })(),\n  formData: 'FormData' in self,\n  arrayBuffer: 'ArrayBuffer' in self\n}\n\nfunction isDataView(obj) {\n  return obj && DataView.prototype.isPrototypeOf(obj)\n}\n\nif (support.arrayBuffer) {\n  var viewClasses = [\n    '[object Int8Array]',\n    '[object Uint8Array]',\n    '[object Uint8ClampedArray]',\n    '[object Int16Array]',\n    '[object Uint16Array]',\n    '[object Int32Array]',\n    '[object Uint32Array]',\n    '[object Float32Array]',\n    '[object Float64Array]'\n  ]\n\n  var isArrayBufferView =\n    ArrayBuffer.isView ||\n    function(obj) {\n      return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1\n    }\n}\n\nfunction normalizeName(name) {\n  if (typeof name !== 'string') {\n    name = String(name)\n  }\n  if (/[^a-z0-9\\-#$%&'*+.^_`|~]/i.test(name)) {\n    throw new TypeError('Invalid character in header field name')\n  }\n  return name.toLowerCase()\n}\n\nfunction normalizeValue(value) {\n  if (typeof value !== 'string') {\n    value = String(value)\n  }\n  return value\n}\n\n// Build a destructive iterator for the value list\nfunction iteratorFor(items) {\n  var iterator = {\n    next: function() {\n      var value = items.shift()\n      return {done: value === undefined, value: value}\n    }\n  }\n\n  if (support.iterable) {\n    iterator[Symbol.iterator] = function() {\n      return iterator\n    }\n  }\n\n  return iterator\n}\n\nexport function Headers(headers) {\n  this.map = {}\n\n  if (headers instanceof Headers) {\n    headers.forEach(function(value, name) {\n      this.append(name, value)\n    }, this)\n  } else if (Array.isArray(headers)) {\n    headers.forEach(function(header) {\n      this.append(header[0], header[1])\n    }, this)\n  } else if (headers) {\n    Object.getOwnPropertyNames(headers).forEach(function(name) {\n      this.append(name, headers[name])\n    }, this)\n  }\n}\n\nHeaders.prototype.append = function(name, value) {\n  name = normalizeName(name)\n  value = normalizeValue(value)\n  var oldValue = this.map[name]\n  this.map[name] = oldValue ? oldValue + ', ' + value : value\n}\n\nHeaders.prototype['delete'] = function(name) {\n  delete this.map[normalizeName(name)]\n}\n\nHeaders.prototype.get = function(name) {\n  name = normalizeName(name)\n  return this.has(name) ? this.map[name] : null\n}\n\nHeaders.prototype.has = function(name) {\n  return this.map.hasOwnProperty(normalizeName(name))\n}\n\nHeaders.prototype.set = function(name, value) {\n  this.map[normalizeName(name)] = normalizeValue(value)\n}\n\nHeaders.prototype.forEach = function(callback, thisArg) {\n  for (var name in this.map) {\n    if (this.map.hasOwnProperty(name)) {\n      callback.call(thisArg, this.map[name], name, this)\n    }\n  }\n}\n\nHeaders.prototype.keys = function() {\n  var items = []\n  this.forEach(function(value, name) {\n    items.push(name)\n  })\n  return iteratorFor(items)\n}\n\nHeaders.prototype.values = function() {\n  var items = []\n  this.forEach(function(value) {\n    items.push(value)\n  })\n  return iteratorFor(items)\n}\n\nHeaders.prototype.entries = function() {\n  var items = []\n  this.forEach(function(value, name) {\n    items.push([name, value])\n  })\n  return iteratorFor(items)\n}\n\nif (support.iterable) {\n  Headers.prototype[Symbol.iterator] = Headers.prototype.entries\n}\n\nfunction consumed(body) {\n  if (body.bodyUsed) {\n    return Promise.reject(new TypeError('Already read'))\n  }\n  body.bodyUsed = true\n}\n\nfunction fileReaderReady(reader) {\n  return new Promise(function(resolve, reject) {\n    reader.onload = function() {\n      resolve(reader.result)\n    }\n    reader.onerror = function() {\n      reject(reader.error)\n    }\n  })\n}\n\nfunction readBlobAsArrayBuffer(blob) {\n  var reader = new FileReader()\n  var promise = fileReaderReady(reader)\n  reader.readAsArrayBuffer(blob)\n  return promise\n}\n\nfunction readBlobAsText(blob) {\n  var reader = new FileReader()\n  var promise = fileReaderReady(reader)\n  reader.readAsText(blob)\n  return promise\n}\n\nfunction readArrayBufferAsText(buf) {\n  var view = new Uint8Array(buf)\n  var chars = new Array(view.length)\n\n  for (var i = 0; i < view.length; i++) {\n    chars[i] = String.fromCharCode(view[i])\n  }\n  return chars.join('')\n}\n\nfunction bufferClone(buf) {\n  if (buf.slice) {\n    return buf.slice(0)\n  } else {\n    var view = new Uint8Array(buf.byteLength)\n    view.set(new Uint8Array(buf))\n    return view.buffer\n  }\n}\n\nfunction Body() {\n  this.bodyUsed = false\n\n  this._initBody = function(body) {\n    this._bodyInit = body\n    if (!body) {\n      this._bodyText = ''\n    } else if (typeof body === 'string') {\n      this._bodyText = body\n    } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\n      this._bodyBlob = body\n    } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\n      this._bodyFormData = body\n    } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n      this._bodyText = body.toString()\n    } else if (support.arrayBuffer && support.blob && isDataView(body)) {\n      this._bodyArrayBuffer = bufferClone(body.buffer)\n      // IE 10-11 can't handle a DataView body.\n      this._bodyInit = new Blob([this._bodyArrayBuffer])\n    } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\n      this._bodyArrayBuffer = bufferClone(body)\n    } else {\n      this._bodyText = body = Object.prototype.toString.call(body)\n    }\n\n    if (!this.headers.get('content-type')) {\n      if (typeof body === 'string') {\n        this.headers.set('content-type', 'text/plain;charset=UTF-8')\n      } else if (this._bodyBlob && this._bodyBlob.type) {\n        this.headers.set('content-type', this._bodyBlob.type)\n      } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n        this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8')\n      }\n    }\n  }\n\n  if (support.blob) {\n    this.blob = function() {\n      var rejected = consumed(this)\n      if (rejected) {\n        return rejected\n      }\n\n      if (this._bodyBlob) {\n        return Promise.resolve(this._bodyBlob)\n      } else if (this._bodyArrayBuffer) {\n        return Promise.resolve(new Blob([this._bodyArrayBuffer]))\n      } else if (this._bodyFormData) {\n        throw new Error('could not read FormData body as blob')\n      } else {\n        return Promise.resolve(new Blob([this._bodyText]))\n      }\n    }\n\n    this.arrayBuffer = function() {\n      if (this._bodyArrayBuffer) {\n        return consumed(this) || Promise.resolve(this._bodyArrayBuffer)\n      } else {\n        return this.blob().then(readBlobAsArrayBuffer)\n      }\n    }\n  }\n\n  this.text = function() {\n    var rejected = consumed(this)\n    if (rejected) {\n      return rejected\n    }\n\n    if (this._bodyBlob) {\n      return readBlobAsText(this._bodyBlob)\n    } else if (this._bodyArrayBuffer) {\n      return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))\n    } else if (this._bodyFormData) {\n      throw new Error('could not read FormData body as text')\n    } else {\n      return Promise.resolve(this._bodyText)\n    }\n  }\n\n  if (support.formData) {\n    this.formData = function() {\n      return this.text().then(decode)\n    }\n  }\n\n  this.json = function() {\n    return this.text().then(JSON.parse)\n  }\n\n  return this\n}\n\n// HTTP methods whose capitalization should be normalized\nvar methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT']\n\nfunction normalizeMethod(method) {\n  var upcased = method.toUpperCase()\n  return methods.indexOf(upcased) > -1 ? upcased : method\n}\n\nexport function Request(input, options) {\n  options = options || {}\n  var body = options.body\n\n  if (input instanceof Request) {\n    if (input.bodyUsed) {\n      throw new TypeError('Already read')\n    }\n    this.url = input.url\n    this.credentials = input.credentials\n    if (!options.headers) {\n      this.headers = new Headers(input.headers)\n    }\n    this.method = input.method\n    this.mode = input.mode\n    this.signal = input.signal\n    if (!body && input._bodyInit != null) {\n      body = input._bodyInit\n      input.bodyUsed = true\n    }\n  } else {\n    this.url = String(input)\n  }\n\n  this.credentials = options.credentials || this.credentials || 'same-origin'\n  if (options.headers || !this.headers) {\n    this.headers = new Headers(options.headers)\n  }\n  this.method = normalizeMethod(options.method || this.method || 'GET')\n  this.mode = options.mode || this.mode || null\n  this.signal = options.signal || this.signal\n  this.referrer = null\n\n  if ((this.method === 'GET' || this.method === 'HEAD') && body) {\n    throw new TypeError('Body not allowed for GET or HEAD requests')\n  }\n  this._initBody(body)\n}\n\nRequest.prototype.clone = function() {\n  return new Request(this, {body: this._bodyInit})\n}\n\nfunction decode(body) {\n  var form = new FormData()\n  body\n    .trim()\n    .split('&')\n    .forEach(function(bytes) {\n      if (bytes) {\n        var split = bytes.split('=')\n        var name = split.shift().replace(/\\+/g, ' ')\n        var value = split.join('=').replace(/\\+/g, ' ')\n        form.append(decodeURIComponent(name), decodeURIComponent(value))\n      }\n    })\n  return form\n}\n\nfunction parseHeaders(rawHeaders) {\n  var headers = new Headers()\n  // Replace instances of \\r\\n and \\n followed by at least one space or horizontal tab with a space\n  // https://tools.ietf.org/html/rfc7230#section-3.2\n  var preProcessedHeaders = rawHeaders.replace(/\\r?\\n[\\t ]+/g, ' ')\n  preProcessedHeaders.split(/\\r?\\n/).forEach(function(line) {\n    var parts = line.split(':')\n    var key = parts.shift().trim()\n    if (key) {\n      var value = parts.join(':').trim()\n      headers.append(key, value)\n    }\n  })\n  return headers\n}\n\nBody.call(Request.prototype)\n\nexport function Response(bodyInit, options) {\n  if (!options) {\n    options = {}\n  }\n\n  this.type = 'default'\n  this.status = options.status === undefined ? 200 : options.status\n  this.ok = this.status >= 200 && this.status < 300\n  this.statusText = 'statusText' in options ? options.statusText : 'OK'\n  this.headers = new Headers(options.headers)\n  this.url = options.url || ''\n  this._initBody(bodyInit)\n}\n\nBody.call(Response.prototype)\n\nResponse.prototype.clone = function() {\n  return new Response(this._bodyInit, {\n    status: this.status,\n    statusText: this.statusText,\n    headers: new Headers(this.headers),\n    url: this.url\n  })\n}\n\nResponse.error = function() {\n  var response = new Response(null, {status: 0, statusText: ''})\n  response.type = 'error'\n  return response\n}\n\nvar redirectStatuses = [301, 302, 303, 307, 308]\n\nResponse.redirect = function(url, status) {\n  if (redirectStatuses.indexOf(status) === -1) {\n    throw new RangeError('Invalid status code')\n  }\n\n  return new Response(null, {status: status, headers: {location: url}})\n}\n\nexport var DOMException = self.DOMException\ntry {\n  new DOMException()\n} catch (err) {\n  DOMException = function(message, name) {\n    this.message = message\n    this.name = name\n    var error = Error(message)\n    this.stack = error.stack\n  }\n  DOMException.prototype = Object.create(Error.prototype)\n  DOMException.prototype.constructor = DOMException\n}\n\nexport function fetch(input, init) {\n  return new Promise(function(resolve, reject) {\n    var request = new Request(input, init)\n\n    if (request.signal && request.signal.aborted) {\n      return reject(new DOMException('Aborted', 'AbortError'))\n    }\n\n    var xhr = new XMLHttpRequest()\n\n    function abortXhr() {\n      xhr.abort()\n    }\n\n    xhr.onload = function() {\n      var options = {\n        status: xhr.status,\n        statusText: xhr.statusText,\n        headers: parseHeaders(xhr.getAllResponseHeaders() || '')\n      }\n      options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL')\n      var body = 'response' in xhr ? xhr.response : xhr.responseText\n      resolve(new Response(body, options))\n    }\n\n    xhr.onerror = function() {\n      reject(new TypeError('Network request failed'))\n    }\n\n    xhr.ontimeout = function() {\n      reject(new TypeError('Network request failed'))\n    }\n\n    xhr.onabort = function() {\n      reject(new DOMException('Aborted', 'AbortError'))\n    }\n\n    xhr.open(request.method, request.url, true)\n\n    if (request.credentials === 'include') {\n      xhr.withCredentials = true\n    } else if (request.credentials === 'omit') {\n      xhr.withCredentials = false\n    }\n\n    if ('responseType' in xhr && support.blob) {\n      xhr.responseType = 'blob'\n    }\n\n    request.headers.forEach(function(value, name) {\n      xhr.setRequestHeader(name, value)\n    })\n\n    if (request.signal) {\n      request.signal.addEventListener('abort', abortXhr)\n\n      xhr.onreadystatechange = function() {\n        // DONE (success or failure)\n        if (xhr.readyState === 4) {\n          request.signal.removeEventListener('abort', abortXhr)\n        }\n      }\n    }\n\n    xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit)\n  })\n}\n\nfetch.polyfill = true\n\nif (!self.fetch) {\n  self.fetch = fetch\n  self.Headers = Headers\n  self.Request = Request\n  self.Response = Response\n}\n"],"names":["viewClasses","isArrayBufferView","support","self","Symbol","Blob","e","normalizeName","name","String","test","TypeError","toLowerCase","normalizeValue","value","iteratorFor","items","iterator","next","shift","done","undefined","Headers","headers","this","map","forEach","append","Array","isArray","header","Object","getOwnPropertyNames","consumed","body","bodyUsed","Promise","reject","fileReaderReady","reader","resolve","onload","result","onerror","error","readBlobAsArrayBuffer","blob","FileReader","promise","readAsArrayBuffer","bufferClone","buf","slice","view","Uint8Array","byteLength","set","buffer","Body","_initBody","obj","_bodyInit","_bodyText","prototype","isPrototypeOf","_bodyBlob","FormData","_bodyFormData","URLSearchParams","toString","DataView","_bodyArrayBuffer","ArrayBuffer","call","get","type","rejected","Error","arrayBuffer","then","text","readAsText","chars","length","i","fromCharCode","join","readArrayBufferAsText","formData","decode","json","JSON","parse","isView","indexOf","oldValue","has","hasOwnProperty","callback","thisArg","keys","push","values","entries","methods","Request","input","options","method","upcased","url","credentials","mode","signal","toUpperCase","referrer","form","trim","split","bytes","replace","decodeURIComponent","Response","bodyInit","status","ok","statusText","clone","response","redirectStatuses","redirect","RangeError","location","DOMException","err","message","stack","create","constructor","fetch","init","request","aborted","xhr","XMLHttpRequest","abortXhr","abort","rawHeaders","getAllResponseHeaders","line","parts","key","responseURL","responseText","ontimeout","onabort","open","withCredentials","responseType","setRequestHeader","addEventListener","onreadystatechange","readyState","removeEventListener","send","polyfill"],"mappings":"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"}