blob: 0774ab0e6d07cd70e97dda40d837910ea33a0c0e [file] [log] [blame]
{"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":["support","self","Symbol","Blob","e","viewClasses","isArrayBufferView","ArrayBuffer","isView","obj","indexOf","Object","prototype","toString","call","normalizeName","name","String","test","TypeError","toLowerCase","normalizeValue","value","iteratorFor","items","iterator","next","shift","done","undefined","Headers","headers","this","map","forEach","append","Array","isArray","header","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","_bodyInit","_bodyText","isPrototypeOf","_bodyBlob","FormData","_bodyFormData","URLSearchParams","DataView","isDataView","_bodyArrayBuffer","get","type","rejected","Error","arrayBuffer","then","text","readAsText","readBlobAsText","chars","length","i","fromCharCode","join","readArrayBufferAsText","formData","decode","json","JSON","parse","oldValue","has","hasOwnProperty","callback","thisArg","keys","push","values","entries","methods","Request","input","options","url","credentials","method","mode","signal","upcased","toUpperCase","normalizeMethod","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","line","parts","key","parseHeaders","getAllResponseHeaders","responseURL","responseText","ontimeout","onabort","open","withCredentials","responseType","setRequestHeader","addEventListener","onreadystatechange","readyState","removeEventListener","send","polyfill"],"mappings":"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"}