Files
portfolio/node_modules/.cache/babel-loader/6b9e73ff3a8638dbbc5fcc193c752017.json
2021-09-20 16:54:47 -04:00

1 line
21 KiB
JSON

{"ast":null,"code":"var capability = require('./capability');\n\nvar inherits = require('inherits');\n\nvar stream = require('readable-stream');\n\nvar rStates = exports.readyStates = {\n UNSENT: 0,\n OPENED: 1,\n HEADERS_RECEIVED: 2,\n LOADING: 3,\n DONE: 4\n};\n\nvar IncomingMessage = exports.IncomingMessage = function (xhr, response, mode, fetchTimer) {\n var self = this;\n stream.Readable.call(self);\n self._mode = mode;\n self.headers = {};\n self.rawHeaders = [];\n self.trailers = {};\n self.rawTrailers = []; // Fake the 'close' event, but only once 'end' fires\n\n self.on('end', function () {\n // The nextTick is necessary to prevent the 'request' module from causing an infinite loop\n process.nextTick(function () {\n self.emit('close');\n });\n });\n\n if (mode === 'fetch') {\n self._fetchResponse = response;\n self.url = response.url;\n self.statusCode = response.status;\n self.statusMessage = response.statusText;\n response.headers.forEach(function (header, key) {\n self.headers[key.toLowerCase()] = header;\n self.rawHeaders.push(key, header);\n });\n\n if (capability.writableStream) {\n var writable = new WritableStream({\n write: function (chunk) {\n return new Promise(function (resolve, reject) {\n if (self._destroyed) {\n reject();\n } else if (self.push(new Buffer(chunk))) {\n resolve();\n } else {\n self._resumeFetch = resolve;\n }\n });\n },\n close: function () {\n global.clearTimeout(fetchTimer);\n if (!self._destroyed) self.push(null);\n },\n abort: function (err) {\n if (!self._destroyed) self.emit('error', err);\n }\n });\n\n try {\n response.body.pipeTo(writable).catch(function (err) {\n global.clearTimeout(fetchTimer);\n if (!self._destroyed) self.emit('error', err);\n });\n return;\n } catch (e) {} // pipeTo method isn't defined. Can't find a better way to feature test this\n\n } // fallback for when writableStream or pipeTo aren't available\n\n\n var reader = response.body.getReader();\n\n function read() {\n reader.read().then(function (result) {\n if (self._destroyed) return;\n\n if (result.done) {\n global.clearTimeout(fetchTimer);\n self.push(null);\n return;\n }\n\n self.push(new Buffer(result.value));\n read();\n }).catch(function (err) {\n global.clearTimeout(fetchTimer);\n if (!self._destroyed) self.emit('error', err);\n });\n }\n\n read();\n } else {\n self._xhr = xhr;\n self._pos = 0;\n self.url = xhr.responseURL;\n self.statusCode = xhr.status;\n self.statusMessage = xhr.statusText;\n var headers = xhr.getAllResponseHeaders().split(/\\r?\\n/);\n headers.forEach(function (header) {\n var matches = header.match(/^([^:]+):\\s*(.*)/);\n\n if (matches) {\n var key = matches[1].toLowerCase();\n\n if (key === 'set-cookie') {\n if (self.headers[key] === undefined) {\n self.headers[key] = [];\n }\n\n self.headers[key].push(matches[2]);\n } else if (self.headers[key] !== undefined) {\n self.headers[key] += ', ' + matches[2];\n } else {\n self.headers[key] = matches[2];\n }\n\n self.rawHeaders.push(matches[1], matches[2]);\n }\n });\n self._charset = 'x-user-defined';\n\n if (!capability.overrideMimeType) {\n var mimeType = self.rawHeaders['mime-type'];\n\n if (mimeType) {\n var charsetMatch = mimeType.match(/;\\s*charset=([^;])(;|$)/);\n\n if (charsetMatch) {\n self._charset = charsetMatch[1].toLowerCase();\n }\n }\n\n if (!self._charset) self._charset = 'utf-8'; // best guess\n }\n }\n};\n\ninherits(IncomingMessage, stream.Readable);\n\nIncomingMessage.prototype._read = function () {\n var self = this;\n var resolve = self._resumeFetch;\n\n if (resolve) {\n self._resumeFetch = null;\n resolve();\n }\n};\n\nIncomingMessage.prototype._onXHRProgress = function () {\n var self = this;\n var xhr = self._xhr;\n var response = null;\n\n switch (self._mode) {\n case 'text:vbarray':\n // For IE9\n if (xhr.readyState !== rStates.DONE) break;\n\n try {\n // This fails in IE8\n response = new global.VBArray(xhr.responseBody).toArray();\n } catch (e) {}\n\n if (response !== null) {\n self.push(new Buffer(response));\n break;\n }\n\n // Falls through in IE8\t\n\n case 'text':\n try {\n // This will fail when readyState = 3 in IE9. Switch mode and wait for readyState = 4\n response = xhr.responseText;\n } catch (e) {\n self._mode = 'text:vbarray';\n break;\n }\n\n if (response.length > self._pos) {\n var newData = response.substr(self._pos);\n\n if (self._charset === 'x-user-defined') {\n var buffer = new Buffer(newData.length);\n\n for (var i = 0; i < newData.length; i++) buffer[i] = newData.charCodeAt(i) & 0xff;\n\n self.push(buffer);\n } else {\n self.push(newData, self._charset);\n }\n\n self._pos = response.length;\n }\n\n break;\n\n case 'arraybuffer':\n if (xhr.readyState !== rStates.DONE || !xhr.response) break;\n response = xhr.response;\n self.push(new Buffer(new Uint8Array(response)));\n break;\n\n case 'moz-chunked-arraybuffer':\n // take whole\n response = xhr.response;\n if (xhr.readyState !== rStates.LOADING || !response) break;\n self.push(new Buffer(new Uint8Array(response)));\n break;\n\n case 'ms-stream':\n response = xhr.response;\n if (xhr.readyState !== rStates.LOADING) break;\n var reader = new global.MSStreamReader();\n\n reader.onprogress = function () {\n if (reader.result.byteLength > self._pos) {\n self.push(new Buffer(new Uint8Array(reader.result.slice(self._pos))));\n self._pos = reader.result.byteLength;\n }\n };\n\n reader.onload = function () {\n self.push(null);\n }; // reader.onerror = ??? // TODO: this\n\n\n reader.readAsArrayBuffer(response);\n break;\n } // The ms-stream case handles end separately in reader.onload()\n\n\n if (self._xhr.readyState === rStates.DONE && self._mode !== 'ms-stream') {\n self.push(null);\n }\n};","map":{"version":3,"sources":["/Users/tylerkoenig/Code/personal/react-scss2/node_modules/stream-http/lib/response.js"],"names":["capability","require","inherits","stream","rStates","exports","readyStates","UNSENT","OPENED","HEADERS_RECEIVED","LOADING","DONE","IncomingMessage","xhr","response","mode","fetchTimer","self","Readable","call","_mode","headers","rawHeaders","trailers","rawTrailers","on","process","nextTick","emit","_fetchResponse","url","statusCode","status","statusMessage","statusText","forEach","header","key","toLowerCase","push","writableStream","writable","WritableStream","write","chunk","Promise","resolve","reject","_destroyed","Buffer","_resumeFetch","close","global","clearTimeout","abort","err","body","pipeTo","catch","e","reader","getReader","read","then","result","done","value","_xhr","_pos","responseURL","getAllResponseHeaders","split","matches","match","undefined","_charset","overrideMimeType","mimeType","charsetMatch","prototype","_read","_onXHRProgress","readyState","VBArray","responseBody","toArray","responseText","length","newData","substr","buffer","i","charCodeAt","Uint8Array","MSStreamReader","onprogress","byteLength","slice","onload","readAsArrayBuffer"],"mappings":"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","sourcesContent":["var capability = require('./capability')\nvar inherits = require('inherits')\nvar stream = require('readable-stream')\n\nvar rStates = exports.readyStates = {\n\tUNSENT: 0,\n\tOPENED: 1,\n\tHEADERS_RECEIVED: 2,\n\tLOADING: 3,\n\tDONE: 4\n}\n\nvar IncomingMessage = exports.IncomingMessage = function (xhr, response, mode, fetchTimer) {\n\tvar self = this\n\tstream.Readable.call(self)\n\n\tself._mode = mode\n\tself.headers = {}\n\tself.rawHeaders = []\n\tself.trailers = {}\n\tself.rawTrailers = []\n\n\t// Fake the 'close' event, but only once 'end' fires\n\tself.on('end', function () {\n\t\t// The nextTick is necessary to prevent the 'request' module from causing an infinite loop\n\t\tprocess.nextTick(function () {\n\t\t\tself.emit('close')\n\t\t})\n\t})\n\n\tif (mode === 'fetch') {\n\t\tself._fetchResponse = response\n\n\t\tself.url = response.url\n\t\tself.statusCode = response.status\n\t\tself.statusMessage = response.statusText\n\t\t\n\t\tresponse.headers.forEach(function (header, key){\n\t\t\tself.headers[key.toLowerCase()] = header\n\t\t\tself.rawHeaders.push(key, header)\n\t\t})\n\n\t\tif (capability.writableStream) {\n\t\t\tvar writable = new WritableStream({\n\t\t\t\twrite: function (chunk) {\n\t\t\t\t\treturn new Promise(function (resolve, reject) {\n\t\t\t\t\t\tif (self._destroyed) {\n\t\t\t\t\t\t\treject()\n\t\t\t\t\t\t} else if(self.push(new Buffer(chunk))) {\n\t\t\t\t\t\t\tresolve()\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tself._resumeFetch = resolve\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t},\n\t\t\t\tclose: function () {\n\t\t\t\t\tglobal.clearTimeout(fetchTimer)\n\t\t\t\t\tif (!self._destroyed)\n\t\t\t\t\t\tself.push(null)\n\t\t\t\t},\n\t\t\t\tabort: function (err) {\n\t\t\t\t\tif (!self._destroyed)\n\t\t\t\t\t\tself.emit('error', err)\n\t\t\t\t}\n\t\t\t})\n\n\t\t\ttry {\n\t\t\t\tresponse.body.pipeTo(writable).catch(function (err) {\n\t\t\t\t\tglobal.clearTimeout(fetchTimer)\n\t\t\t\t\tif (!self._destroyed)\n\t\t\t\t\t\tself.emit('error', err)\n\t\t\t\t})\n\t\t\t\treturn\n\t\t\t} catch (e) {} // pipeTo method isn't defined. Can't find a better way to feature test this\n\t\t}\n\t\t// fallback for when writableStream or pipeTo aren't available\n\t\tvar reader = response.body.getReader()\n\t\tfunction read () {\n\t\t\treader.read().then(function (result) {\n\t\t\t\tif (self._destroyed)\n\t\t\t\t\treturn\n\t\t\t\tif (result.done) {\n\t\t\t\t\tglobal.clearTimeout(fetchTimer)\n\t\t\t\t\tself.push(null)\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tself.push(new Buffer(result.value))\n\t\t\t\tread()\n\t\t\t}).catch(function (err) {\n\t\t\t\tglobal.clearTimeout(fetchTimer)\n\t\t\t\tif (!self._destroyed)\n\t\t\t\t\tself.emit('error', err)\n\t\t\t})\n\t\t}\n\t\tread()\n\t} else {\n\t\tself._xhr = xhr\n\t\tself._pos = 0\n\n\t\tself.url = xhr.responseURL\n\t\tself.statusCode = xhr.status\n\t\tself.statusMessage = xhr.statusText\n\t\tvar headers = xhr.getAllResponseHeaders().split(/\\r?\\n/)\n\t\theaders.forEach(function (header) {\n\t\t\tvar matches = header.match(/^([^:]+):\\s*(.*)/)\n\t\t\tif (matches) {\n\t\t\t\tvar key = matches[1].toLowerCase()\n\t\t\t\tif (key === 'set-cookie') {\n\t\t\t\t\tif (self.headers[key] === undefined) {\n\t\t\t\t\t\tself.headers[key] = []\n\t\t\t\t\t}\n\t\t\t\t\tself.headers[key].push(matches[2])\n\t\t\t\t} else if (self.headers[key] !== undefined) {\n\t\t\t\t\tself.headers[key] += ', ' + matches[2]\n\t\t\t\t} else {\n\t\t\t\t\tself.headers[key] = matches[2]\n\t\t\t\t}\n\t\t\t\tself.rawHeaders.push(matches[1], matches[2])\n\t\t\t}\n\t\t})\n\n\t\tself._charset = 'x-user-defined'\n\t\tif (!capability.overrideMimeType) {\n\t\t\tvar mimeType = self.rawHeaders['mime-type']\n\t\t\tif (mimeType) {\n\t\t\t\tvar charsetMatch = mimeType.match(/;\\s*charset=([^;])(;|$)/)\n\t\t\t\tif (charsetMatch) {\n\t\t\t\t\tself._charset = charsetMatch[1].toLowerCase()\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (!self._charset)\n\t\t\t\tself._charset = 'utf-8' // best guess\n\t\t}\n\t}\n}\n\ninherits(IncomingMessage, stream.Readable)\n\nIncomingMessage.prototype._read = function () {\n\tvar self = this\n\n\tvar resolve = self._resumeFetch\n\tif (resolve) {\n\t\tself._resumeFetch = null\n\t\tresolve()\n\t}\n}\n\nIncomingMessage.prototype._onXHRProgress = function () {\n\tvar self = this\n\n\tvar xhr = self._xhr\n\n\tvar response = null\n\tswitch (self._mode) {\n\t\tcase 'text:vbarray': // For IE9\n\t\t\tif (xhr.readyState !== rStates.DONE)\n\t\t\t\tbreak\n\t\t\ttry {\n\t\t\t\t// This fails in IE8\n\t\t\t\tresponse = new global.VBArray(xhr.responseBody).toArray()\n\t\t\t} catch (e) {}\n\t\t\tif (response !== null) {\n\t\t\t\tself.push(new Buffer(response))\n\t\t\t\tbreak\n\t\t\t}\n\t\t\t// Falls through in IE8\t\n\t\tcase 'text':\n\t\t\ttry { // This will fail when readyState = 3 in IE9. Switch mode and wait for readyState = 4\n\t\t\t\tresponse = xhr.responseText\n\t\t\t} catch (e) {\n\t\t\t\tself._mode = 'text:vbarray'\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tif (response.length > self._pos) {\n\t\t\t\tvar newData = response.substr(self._pos)\n\t\t\t\tif (self._charset === 'x-user-defined') {\n\t\t\t\t\tvar buffer = new Buffer(newData.length)\n\t\t\t\t\tfor (var i = 0; i < newData.length; i++)\n\t\t\t\t\t\tbuffer[i] = newData.charCodeAt(i) & 0xff\n\n\t\t\t\t\tself.push(buffer)\n\t\t\t\t} else {\n\t\t\t\t\tself.push(newData, self._charset)\n\t\t\t\t}\n\t\t\t\tself._pos = response.length\n\t\t\t}\n\t\t\tbreak\n\t\tcase 'arraybuffer':\n\t\t\tif (xhr.readyState !== rStates.DONE || !xhr.response)\n\t\t\t\tbreak\n\t\t\tresponse = xhr.response\n\t\t\tself.push(new Buffer(new Uint8Array(response)))\n\t\t\tbreak\n\t\tcase 'moz-chunked-arraybuffer': // take whole\n\t\t\tresponse = xhr.response\n\t\t\tif (xhr.readyState !== rStates.LOADING || !response)\n\t\t\t\tbreak\n\t\t\tself.push(new Buffer(new Uint8Array(response)))\n\t\t\tbreak\n\t\tcase 'ms-stream':\n\t\t\tresponse = xhr.response\n\t\t\tif (xhr.readyState !== rStates.LOADING)\n\t\t\t\tbreak\n\t\t\tvar reader = new global.MSStreamReader()\n\t\t\treader.onprogress = function () {\n\t\t\t\tif (reader.result.byteLength > self._pos) {\n\t\t\t\t\tself.push(new Buffer(new Uint8Array(reader.result.slice(self._pos))))\n\t\t\t\t\tself._pos = reader.result.byteLength\n\t\t\t\t}\n\t\t\t}\n\t\t\treader.onload = function () {\n\t\t\t\tself.push(null)\n\t\t\t}\n\t\t\t// reader.onerror = ??? // TODO: this\n\t\t\treader.readAsArrayBuffer(response)\n\t\t\tbreak\n\t}\n\n\t// The ms-stream case handles end separately in reader.onload()\n\tif (self._xhr.readyState === rStates.DONE && self._mode !== 'ms-stream') {\n\t\tself.push(null)\n\t}\n}\n"]},"metadata":{},"sourceType":"script"}