diff --git a/papaparse.js b/papaparse.js index 77c6d77..9c7d85f 100644 --- a/papaparse.js +++ b/papaparse.js @@ -25,45 +25,45 @@ })(); var workers = {}, workerIdCounter = 0; - const PAPA_WORKER_NAME = 'papa-worker'; - let WORKER_ID; - const SCRIPT_URL = global && global.document && global.document.currentScript && global.document.currentScript.src; + var PAPA_WORKER_NAME = 'papa-worker'; + var WORKER_ID; + var SCRIPT_URL = global && global.document && global.document.currentScript && global.document.currentScript.src; var IS_WORKER = !global.document && !!global.postMessage, IS_PAPA_WORKER = IS_WORKER && global.name === PAPA_WORKER_NAME; - const parse = CsvToJson; - const unparse = JsonToCsv; + var parse = CsvToJson; + var unparse = JsonToCsv; - const RECORD_SEP = String.fromCharCode(30); - const UNIT_SEP = String.fromCharCode(31); - const BYTE_ORDER_MARK = '\ufeff'; - const BAD_DELIMITERS = ['\r', '\n', '"', BYTE_ORDER_MARK]; - const WORKERS_SUPPORTED = !IS_WORKER && !!global.Worker && SCRIPT_URL; - const NODE_STREAM_INPUT = 1; + var RECORD_SEP = String.fromCharCode(30); + var UNIT_SEP = String.fromCharCode(31); + var BYTE_ORDER_MARK = '\ufeff'; + var BAD_DELIMITERS = ['\r', '\n', '"', BYTE_ORDER_MARK]; + var WORKERS_SUPPORTED = !IS_WORKER && !!global.Worker && SCRIPT_URL; + var NODE_STREAM_INPUT = 1; // Configurable chunk sizes for local and remote files, respectively // eslint-disable-next-line prefer-const - let LocalChunkSize = 1024 * 1024 * 10; // 10 MB + var LocalChunkSize = 1024 * 1024 * 10; // 10 MB // eslint-disable-next-line prefer-const - let RemoteChunkSize = 1024 * 1024 * 5; // 5 MB + var RemoteChunkSize = 1024 * 1024 * 5; // 5 MB // eslint-disable-next-line prefer-const - let DefaultDelimiter = ','; // Used if not specified and detection fails + var DefaultDelimiter = ','; // Used if not specified and detection fails // Exposed for testing and development only /** @private */ - const Parser = _Parser; + var Parser = _Parser; /** @private */ - const ParserHandle = _ParserHandle; + var ParserHandle = _ParserHandle; /** @private */ - const NetworkStreamer = _NetworkStreamer; + var NetworkStreamer = _NetworkStreamer; /** @private */ - const FileStreamer = _FileStreamer; + var FileStreamer = _FileStreamer; /** @private */ - const StringStreamer = _StringStreamer; + var StringStreamer = _StringStreamer; /** @private */ - const ReadableStreamStreamer = _ReadableStreamStreamer; + var ReadableStreamStreamer = _ReadableStreamStreamer; /** @private */ - const DuplexStreamStreamer = typeof PAPA_BROWSER_CONTEXT === 'undefined' + var DuplexStreamStreamer = typeof PAPA_BROWSER_CONTEXT === 'undefined' ? _DuplexStreamStreamer : undefined; diff --git a/papaparse.min.js b/papaparse.min.js index 258c56f..93ce5ec 100644 --- a/papaparse.min.js +++ b/papaparse.min.js @@ -4,4 +4,4 @@ v5.3.1 https://github.com/mholt/PapaParse License: MIT - */var t="undefined"!=typeof self?self:"undefined"!=typeof window?window:void 0!==t?t:{},i={},r=0;const n="papa-worker";let s;const a=t&&t.document&&t.document.currentScript&&t.document.currentScript.src;var o=!t.document&&!!t.postMessage,h=o&&t.name===n;const u=function(e,s){var o=(s=s||{}).dynamicTyping||!1;q(o)&&(s.dynamicTypingFunction=o,o={});if(s.dynamicTyping=o,s.transform=!!q(s.transform)&&s.transform,s.worker&&p){var h=function(){if(!p)return!1;var e=a,s=new t.Worker(e,{name:n});return s.onmessage=L,s.id=r++,i[s.id]=s,s}();return h.userStep=s.step,h.userChunk=s.chunk,h.userComplete=s.complete,h.userError=s.error,s.step=q(s.step),s.chunk=q(s.chunk),s.complete=q(s.complete),s.error=q(s.error),delete s.worker,void h.postMessage({input:e,config:s,workerId:h.id})}var u=null;if(1===e&&"undefined"==typeof PAPA_BROWSER_CONTEXT)return(u=new A(s)).getStream();"string"==typeof e?u=s.download?new x(s):new R(s):!0===e.readable&&q(e.read)&&q(e.on)?u=new T(s):(t.File&&e instanceof File||e instanceof Object)&&(u=new O(s));return u.stream(e)},f=function(e,t){var i=!1,r=!0,n=",",s="\r\n",a='"',o=a+a,h=!1,u=null,f=!1;!function(){if("object"!=typeof t)return;"string"!=typeof t.delimiter||c.filter((function(e){return-1!==t.delimiter.indexOf(e)})).length||(n=t.delimiter);("boolean"==typeof t.quotes||"function"==typeof t.quotes||Array.isArray(t.quotes))&&(i=t.quotes);"boolean"!=typeof t.skipEmptyLines&&"string"!=typeof t.skipEmptyLines||(h=t.skipEmptyLines);"string"==typeof t.newline&&(s=t.newline);"string"==typeof t.quoteChar&&(a=t.quoteChar);"boolean"==typeof t.header&&(r=t.header);if(Array.isArray(t.columns)){if(0===t.columns.length)throw new Error("Option columns is empty");u=t.columns}void 0!==t.escapeChar&&(o=t.escapeChar+a);"boolean"==typeof t.escapeFormulae&&(f=t.escapeFormulae)}();var d=new RegExp(I(a),"g");"string"==typeof e&&(e=JSON.parse(e));if(Array.isArray(e)){if(!e.length||Array.isArray(e[0]))return l(null,e,h);if("object"==typeof e[0])return l(u||Object.keys(e[0]),e,h)}else if("object"==typeof e)return"string"==typeof e.data&&(e.data=JSON.parse(e.data)),Array.isArray(e.data)&&(e.fields||(e.fields=e.meta&&e.meta.fields),e.fields||(e.fields=Array.isArray(e.data[0])?e.fields:"object"==typeof e.data[0]?Object.keys(e.data[0]):[]),Array.isArray(e.data[0])||"object"==typeof e.data[0]||(e.data=[e.data])),l(e.fields||[],e.data||[],h);throw new Error("Unable to serialize unrecognized input");function l(e,t,i){var a="";"string"==typeof e&&(e=JSON.parse(e)),"string"==typeof t&&(t=JSON.parse(t));var o=Array.isArray(e)&&e.length>0,h=!Array.isArray(t[0]);if(o&&r){for(var u=0;u0&&(a+=n),a+=p(e[u],u);t.length>0&&(a+=s)}for(var f=0;f0&&!c&&(a+=n);var v=o&&h?e[y]:y;a+=p(t[f][v],y)}f0&&!c)&&(a+=s)}}return a}function p(e,t){if(null==e)return"";if(e.constructor===Date)return JSON.stringify(e).slice(1,25);!0===f&&"string"==typeof e&&null!==e.match(/^[=+\-@].*$/)&&(e="'"+e);var r=e.toString().replace(d,o);return"boolean"==typeof i&&i||"function"==typeof i&&i(e,t)||Array.isArray(i)&&i[t]||function(e,t){for(var i=0;i-1)return!0;return!1}(r,c)||r.indexOf(n)>-1||" "===r.charAt(0)||" "===r.charAt(r.length-1)?a+r+a:r}},d=String.fromCharCode(30),l=String.fromCharCode(31),c=["\r","\n",'"',"\ufeff"],p=!o&&!!t.Worker&&a;let g=10485760,m=5242880;const _=j,y=F,v=x,k=O,b=R,C=T,w="undefined"==typeof PAPA_BROWSER_CONTEXT?A:void 0;if(t.jQuery){var E=t.jQuery;E.fn.parse=function(e){var i=e.config||{},r=[];return this.each((function(e){if(!("INPUT"===E(this).prop("tagName").toUpperCase()&&"file"===E(this).attr("type").toLowerCase()&&t.FileReader)||!this.files||0===this.files.length)return!0;for(var n=0;n=this._config.preview;if(h)t.postMessage({results:a,workerId:s,finished:u});else if(q(this._config.chunk)&&!i){if(this._config.chunk(a,this._handle),this._handle.paused()||this._handle.aborted())return void(this._halted=!0);a=void 0,this._completeResults=void 0}return this._config.step||this._config.chunk||(this._completeResults.data=this._completeResults.data.concat(a.data),this._completeResults.errors=this._completeResults.errors.concat(a.errors),this._completeResults.meta=a.meta),this._completed||!u||!q(this._config.complete)||a&&a.meta.aborted||(this._config.complete(this._completeResults,this._input),this._completed=!0),u||a&&a.meta.paused||this._nextChunk(),a}this._halted=!0},this._sendError=function(e){q(this._config.error)?this._config.error(e):h&&this._config.error&&t.postMessage({workerId:s,error:e,finished:!1})}}function x(e){var t;(e=e||{}).chunkSize||(e.chunkSize=m),S.call(this,e),this._nextChunk=o?function(){this._readChunk(),this._chunkLoaded()}:function(){this._readChunk()},this.stream=function(e){this._input=e,this._nextChunk()},this._readChunk=function(){if(this._finished)this._chunkLoaded();else{if(t=new XMLHttpRequest,this._config.withCredentials&&(t.withCredentials=this._config.withCredentials),o||(t.onload=P(this._chunkLoaded,this),t.onerror=P(this._chunkError,this)),t.open(this._config.downloadRequestBody?"POST":"GET",this._input,!o),this._config.downloadRequestHeaders){var e=this._config.downloadRequestHeaders;for(var i in e)t.setRequestHeader(i,e[i])}if(this._config.chunkSize){var r=this._start+this._config.chunkSize-1;t.setRequestHeader("Range","bytes="+this._start+"-"+r)}try{t.send(this._config.downloadRequestBody)}catch(e){this._chunkError(e.message)}o&&0===t.status&&this._chunkError()}},this._chunkLoaded=function(){4===t.readyState&&(t.status<200||t.status>=400?this._chunkError():(this._start+=this._config.chunkSize?this._config.chunkSize:t.responseText.length,this._finished=!this._config.chunkSize||this._start>=function(e){var t=e.getResponseHeader("Content-Range");if(null===t)return-1;return parseInt(t.substring(t.lastIndexOf("/")+1))}(t),this.parseChunk(t.responseText)))},this._chunkError=function(e){var i=t.statusText||e;this._sendError(new Error(i))}}function O(e){var t,i;(e=e||{}).chunkSize||(e.chunkSize=g),S.call(this,e);var r="undefined"!=typeof FileReader;this.stream=function(e){this._input=e,i=e.slice||e.webkitSlice||e.mozSlice,r?((t=new FileReader).onload=P(this._chunkLoaded,this),t.onerror=P(this._chunkError,this)):t=new FileReaderSync,this._nextChunk()},this._nextChunk=function(){this._finished||this._config.preview&&!(this._rowCount=this._input.size,this.parseChunk(e.target.result)},this._chunkError=function(){this._sendError(t.error)}}function R(e){var t;e=e||{},S.call(this,e),this.stream=function(e){return t=e,this._nextChunk()},this._nextChunk=function(){if(!this._finished){var e,i=this._config.chunkSize;return i?(e=t.substring(0,i),t=t.substring(i)):(e=t,t=""),this._finished=!t,this.parseChunk(e)}}}function T(e){e=e||{},S.call(this,e);var t=[],i=!0,r=!1;this.pause=function(){S.prototype.pause.apply(this,arguments),this._input.pause()},this.resume=function(){S.prototype.resume.apply(this,arguments),this._input.resume()},this.stream=function(e){this._input=e,this._input.on("data",this._streamData),this._input.on("end",this._streamEnd),this._input.on("error",this._streamError)},this._checkIsFinished=function(){r&&1===t.length&&(this._finished=!0)},this._nextChunk=function(){this._checkIsFinished(),t.length?this.parseChunk(t.shift()):i=!0},this._streamData=P((function(e){try{t.push("string"==typeof e?e:e.toString(this._config.encoding)),i&&(i=!1,this._checkIsFinished(),this.parseChunk(t.shift()))}catch(e){this._streamError(e)}}),this),this._streamError=P((function(e){this._streamCleanUp(),this._sendError(e)}),this),this._streamEnd=P((function(){this._streamCleanUp(),r=!0,this._streamData("")}),this),this._streamCleanUp=P((function(){this._input.removeListener("data",this._streamData),this._input.removeListener("end",this._streamEnd),this._input.removeListener("error",this._streamError)}),this)}function A(e){var t=require("stream").Duplex,i=M(e),r=!0,n=!1,s=[],a=null;this._onCsvData=function(e){var t=e.data;a.push(t)||this._handle.paused()||this._handle.pause()},this._onCsvComplete=function(){a.push(null)},i.step=P(this._onCsvData,this),i.complete=P(this._onCsvComplete,this),S.call(this,i),this._nextChunk=function(){n&&1===s.length&&(this._finished=!0),s.length?s.shift()():r=!0},this._addToParseQueue=function(e,t){s.push(P((function(){if(this.parseChunk("string"==typeof e?e:e.toString(i.encoding)),q(t))return t()}),this)),r&&(r=!1,this._nextChunk())},this._onRead=function(){this._handle.paused()&&this._handle.resume()},this._onWrite=function(e,t,i){this._addToParseQueue(e,i)},this._onWriteComplete=function(){n=!0,this._addToParseQueue("")},this.getStream=function(){return a},(a=new t({readableObjectMode:!0,decodeStrings:!1,read:P(this._onRead,this),write:P(this._onWrite,this)})).once("finish",P(this._onWriteComplete,this))}function F(e){var t,i,r,n=Math.pow(2,53),s=-n,a=/^\s*-?(\d+\.?|\.\d+|\d+\.\d+)([eE][-+]?\d+)?\s*$/,o=/^(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))$/,h=this,u=0,f=0,c=!1,p=!1,g=[],m={data:[],errors:[],meta:{}};if(q(e.step)){var _=e.step;e.step=function(t){if(m=t,k())v();else{if(v(),0===m.data.length)return;u+=t.data.length,e.preview&&u>e.preview?i.abort():(m.data=m.data[0],_(m,h))}}}function y(t){return"greedy"===e.skipEmptyLines?""===t.join("").trim():1===t.length&&0===t[0].length}function v(){if(m&&r&&(C("Delimiter","UndetectableDelimiter","Unable to auto-detect delimiting character; defaulted to ','"),r=!1),e.skipEmptyLines)for(var t=0;t=g.length?"__parsed_extra":g[r]),e.transform&&(a=e.transform(a,s)),a=b(s,a),"__parsed_extra"===s?(n[s]=n[s]||[],n[s].push(a)):n[s]=a}return e.header&&(r>g.length?C("FieldMismatch","TooManyFields","Too many fields: expected "+g.length+" fields but parsed "+r,f+i):rs&&t1&&n[0].length=r.length/2?"\r\n":"\r"}(n,o)),r=!1,e.delimiter)q(e.delimiter)&&(e.delimiter=e.delimiter(n),m.meta.delimiter=e.delimiter);else{var h=function(t,i,r,n,s){var a,o,h,u;s=s||[",","\t","|",";",d,l];for(var f=0;f0&&(p+=Math.abs(k-h),h=k):h=k}_.data.length>0&&(g/=_.data.length-m),(void 0===o||p<=o)&&(void 0===u||g>u)&&g>1.99&&(o=p,a=c,u=g)}return e.delimiter=a,{successful:!!a,bestDelimiter:a}}(n,e.newline,e.skipEmptyLines,e.comments,e.delimitersToGuess);h.successful?e.delimiter=h.bestDelimiter:(r=!0,e.delimiter=","),m.meta.delimiter=e.delimiter}var u=M(e);return e.preview&&e.header&&u.preview++,t=n,i=new j(u),m=i.parse(t,s,a),v(),c?{meta:{paused:!0}}:m||{meta:{paused:!1}}},this.paused=function(){return c},this.pause=function(){c=!0,i.abort(),t=q(e.chunk)?"":t.substring(i.getCharIndex())},this.resume=function(){h.streamer._halted?(c=!1,h.streamer.parseChunk(t,!0)):setTimeout(h.resume,3)},this.aborted=function(){return p},this.abort=function(){p=!0,i.abort(),m.meta.aborted=!0,q(e.complete)&&e.complete(m),t=""}}function I(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function j(e){var t,i=(e=e||{}).delimiter,r=e.newline,n=e.comments,s=e.step,a=e.preview,o=e.fastMode,h=t=void 0===e.quoteChar?'"':e.quoteChar;if(void 0!==e.escapeChar&&(h=e.escapeChar),("string"!=typeof i||c.indexOf(i)>-1)&&(i=","),n===i)throw new Error("Comment character same as delimiter");!0===n?n="#":("string"!=typeof n||c.indexOf(n)>-1)&&(n=!1),"\n"!==r&&"\r"!==r&&"\r\n"!==r&&(r="\n");var u=0,f=!1;this.parse=function(e,d,l){if("string"!=typeof e)throw new Error("Input must be a string");var c=e.length,p=i.length,g=r.length,m=n.length,_=q(s);u=0;var y=[],v=[],k=[],b=0;if(!e)return z();if(o||!1!==o&&-1===e.indexOf(t)){for(var C=e.split(r),w=0;w=a)return y=y.slice(0,a),z(!0)}}return z()}for(var E=e.indexOf(i,u),S=e.indexOf(r,u),x=new RegExp(I(h)+I(t),"g"),O=e.indexOf(t,u);;)if(e[u]!==t)if(n&&0===k.length&&e.substring(u,u+m)===n){if(-1===S)return z();u=S+g,S=e.indexOf(r,u),E=e.indexOf(i,u)}else if(-1!==E&&(E=a)return z(!0)}else for(O=u,u++;;){if(-1===(O=e.indexOf(t,O+1)))return l||v.push({type:"Quotes",code:"MissingQuotes",message:"Quoted field unterminated",row:y.length,index:u}),j();if(O===c-1)return j(e.substring(u,O).replace(x,t));if(t!==h||e[O+1]!==h){if(t===h||0===O||e[O-1]!==h){-1!==E&&E=a)return z(!0);break}v.push({type:"Quotes",code:"InvalidQuotes",message:"Trailing quote on quoted field is malformed",row:y.length,index:u}),O++}}else O++}return j();function A(e){y.push(e),b=u}function F(t){var i=0;if(-1!==t){var r=e.substring(O+1,t);r&&""===r.trim()&&(i=r.length)}return i}function j(t){return l||(void 0===t&&(t=e.substring(u)),k.push(t),u=c,A(k),_&&D()),z()}function L(t){u=t,A(k),k=[],S=e.indexOf(r,u)}function z(e){return{data:y,errors:v,meta:{delimiter:i,linebreak:r,aborted:f,truncated:!!e,cursor:b+(d||0)}}}function D(){s(z()),y=[],v=[]}},this.abort=function(){f=!0},this.getCharIndex=function(){return u}}function L(e){var t=e.data,r=i[t.workerId],n=!1;if(t.error)r.userError(t.error,t.file);else if(t.results&&t.results.data){var s={abort:function(){n=!0,z(t.workerId,{data:[],errors:[],meta:{aborted:!0}})},pause:D,resume:D};if(q(r.userStep)){for(var a=0;a0,h=!Array.isArray(t[0]);if(o&&r){for(var u=0;u0&&(a+=n),a+=p(e[u],u);t.length>0&&(a+=s)}for(var f=0;f0&&!c&&(a+=n);var v=o&&h?e[y]:y;a+=p(t[f][v],y)}f0&&!c)&&(a+=s)}}return a}function p(e,t){if(null==e)return"";if(e.constructor===Date)return JSON.stringify(e).slice(1,25);!0===f&&"string"==typeof e&&null!==e.match(/^[=+\-@].*$/)&&(e="'"+e);var r=e.toString().replace(d,o);return"boolean"==typeof i&&i||"function"==typeof i&&i(e,t)||Array.isArray(i)&&i[t]||function(e,t){for(var i=0;i-1)return!0;return!1}(r,c)||r.indexOf(n)>-1||" "===r.charAt(0)||" "===r.charAt(r.length-1)?a+r+a:r}},d=String.fromCharCode(30),l=String.fromCharCode(31),c=["\r","\n",'"',"\ufeff"],p=!o&&!!i.Worker&&a,g=10485760,m=5242880,_=j,y=F,v=x,k=O,b=R,C=T,w="undefined"==typeof PAPA_BROWSER_CONTEXT?A:void 0;if(i.jQuery){var E=i.jQuery;E.fn.parse=function(e){var t=e.config||{},r=[];return this.each((function(e){if(!("INPUT"===E(this).prop("tagName").toUpperCase()&&"file"===E(this).attr("type").toLowerCase()&&i.FileReader)||!this.files||0===this.files.length)return!0;for(var n=0;n=this._config.preview;if(h)i.postMessage({results:a,workerId:t,finished:u});else if(q(this._config.chunk)&&!r){if(this._config.chunk(a,this._handle),this._handle.paused()||this._handle.aborted())return void(this._halted=!0);a=void 0,this._completeResults=void 0}return this._config.step||this._config.chunk||(this._completeResults.data=this._completeResults.data.concat(a.data),this._completeResults.errors=this._completeResults.errors.concat(a.errors),this._completeResults.meta=a.meta),this._completed||!u||!q(this._config.complete)||a&&a.meta.aborted||(this._config.complete(this._completeResults,this._input),this._completed=!0),u||a&&a.meta.paused||this._nextChunk(),a}this._halted=!0},this._sendError=function(e){q(this._config.error)?this._config.error(e):h&&this._config.error&&i.postMessage({workerId:t,error:e,finished:!1})}}function x(e){var t;(e=e||{}).chunkSize||(e.chunkSize=m),S.call(this,e),this._nextChunk=o?function(){this._readChunk(),this._chunkLoaded()}:function(){this._readChunk()},this.stream=function(e){this._input=e,this._nextChunk()},this._readChunk=function(){if(this._finished)this._chunkLoaded();else{if(t=new XMLHttpRequest,this._config.withCredentials&&(t.withCredentials=this._config.withCredentials),o||(t.onload=P(this._chunkLoaded,this),t.onerror=P(this._chunkError,this)),t.open(this._config.downloadRequestBody?"POST":"GET",this._input,!o),this._config.downloadRequestHeaders){var e=this._config.downloadRequestHeaders;for(var i in e)t.setRequestHeader(i,e[i])}if(this._config.chunkSize){var r=this._start+this._config.chunkSize-1;t.setRequestHeader("Range","bytes="+this._start+"-"+r)}try{t.send(this._config.downloadRequestBody)}catch(e){this._chunkError(e.message)}o&&0===t.status&&this._chunkError()}},this._chunkLoaded=function(){4===t.readyState&&(t.status<200||t.status>=400?this._chunkError():(this._start+=this._config.chunkSize?this._config.chunkSize:t.responseText.length,this._finished=!this._config.chunkSize||this._start>=function(e){var t=e.getResponseHeader("Content-Range");if(null===t)return-1;return parseInt(t.substring(t.lastIndexOf("/")+1))}(t),this.parseChunk(t.responseText)))},this._chunkError=function(e){var i=t.statusText||e;this._sendError(new Error(i))}}function O(e){var t,i;(e=e||{}).chunkSize||(e.chunkSize=g),S.call(this,e);var r="undefined"!=typeof FileReader;this.stream=function(e){this._input=e,i=e.slice||e.webkitSlice||e.mozSlice,r?((t=new FileReader).onload=P(this._chunkLoaded,this),t.onerror=P(this._chunkError,this)):t=new FileReaderSync,this._nextChunk()},this._nextChunk=function(){this._finished||this._config.preview&&!(this._rowCount=this._input.size,this.parseChunk(e.target.result)},this._chunkError=function(){this._sendError(t.error)}}function R(e){var t;e=e||{},S.call(this,e),this.stream=function(e){return t=e,this._nextChunk()},this._nextChunk=function(){if(!this._finished){var e,i=this._config.chunkSize;return i?(e=t.substring(0,i),t=t.substring(i)):(e=t,t=""),this._finished=!t,this.parseChunk(e)}}}function T(e){e=e||{},S.call(this,e);var t=[],i=!0,r=!1;this.pause=function(){S.prototype.pause.apply(this,arguments),this._input.pause()},this.resume=function(){S.prototype.resume.apply(this,arguments),this._input.resume()},this.stream=function(e){this._input=e,this._input.on("data",this._streamData),this._input.on("end",this._streamEnd),this._input.on("error",this._streamError)},this._checkIsFinished=function(){r&&1===t.length&&(this._finished=!0)},this._nextChunk=function(){this._checkIsFinished(),t.length?this.parseChunk(t.shift()):i=!0},this._streamData=P((function(e){try{t.push("string"==typeof e?e:e.toString(this._config.encoding)),i&&(i=!1,this._checkIsFinished(),this.parseChunk(t.shift()))}catch(e){this._streamError(e)}}),this),this._streamError=P((function(e){this._streamCleanUp(),this._sendError(e)}),this),this._streamEnd=P((function(){this._streamCleanUp(),r=!0,this._streamData("")}),this),this._streamCleanUp=P((function(){this._input.removeListener("data",this._streamData),this._input.removeListener("end",this._streamEnd),this._input.removeListener("error",this._streamError)}),this)}function A(e){var t=require("stream").Duplex,i=M(e),r=!0,n=!1,s=[],a=null;this._onCsvData=function(e){var t=e.data;a.push(t)||this._handle.paused()||this._handle.pause()},this._onCsvComplete=function(){a.push(null)},i.step=P(this._onCsvData,this),i.complete=P(this._onCsvComplete,this),S.call(this,i),this._nextChunk=function(){n&&1===s.length&&(this._finished=!0),s.length?s.shift()():r=!0},this._addToParseQueue=function(e,t){s.push(P((function(){if(this.parseChunk("string"==typeof e?e:e.toString(i.encoding)),q(t))return t()}),this)),r&&(r=!1,this._nextChunk())},this._onRead=function(){this._handle.paused()&&this._handle.resume()},this._onWrite=function(e,t,i){this._addToParseQueue(e,i)},this._onWriteComplete=function(){n=!0,this._addToParseQueue("")},this.getStream=function(){return a},(a=new t({readableObjectMode:!0,decodeStrings:!1,read:P(this._onRead,this),write:P(this._onWrite,this)})).once("finish",P(this._onWriteComplete,this))}function F(e){var t,i,r,n=Math.pow(2,53),s=-n,a=/^\s*-?(\d+\.?|\.\d+|\d+\.\d+)([eE][-+]?\d+)?\s*$/,o=/^(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))$/,h=this,u=0,f=0,c=!1,p=!1,g=[],m={data:[],errors:[],meta:{}};if(q(e.step)){var _=e.step;e.step=function(t){if(m=t,k())v();else{if(v(),0===m.data.length)return;u+=t.data.length,e.preview&&u>e.preview?i.abort():(m.data=m.data[0],_(m,h))}}}function y(t){return"greedy"===e.skipEmptyLines?""===t.join("").trim():1===t.length&&0===t[0].length}function v(){if(m&&r&&(C("Delimiter","UndetectableDelimiter","Unable to auto-detect delimiting character; defaulted to ','"),r=!1),e.skipEmptyLines)for(var t=0;t=g.length?"__parsed_extra":g[r]),e.transform&&(a=e.transform(a,s)),a=b(s,a),"__parsed_extra"===s?(n[s]=n[s]||[],n[s].push(a)):n[s]=a}return e.header&&(r>g.length?C("FieldMismatch","TooManyFields","Too many fields: expected "+g.length+" fields but parsed "+r,f+i):rs&&t1&&n[0].length=r.length/2?"\r\n":"\r"}(n,o)),r=!1,e.delimiter)q(e.delimiter)&&(e.delimiter=e.delimiter(n),m.meta.delimiter=e.delimiter);else{var h=function(t,i,r,n,s){var a,o,h,u;s=s||[",","\t","|",";",d,l];for(var f=0;f0&&(p+=Math.abs(k-h),h=k):h=k}_.data.length>0&&(g/=_.data.length-m),(void 0===o||p<=o)&&(void 0===u||g>u)&&g>1.99&&(o=p,a=c,u=g)}return e.delimiter=a,{successful:!!a,bestDelimiter:a}}(n,e.newline,e.skipEmptyLines,e.comments,e.delimitersToGuess);h.successful?e.delimiter=h.bestDelimiter:(r=!0,e.delimiter=","),m.meta.delimiter=e.delimiter}var u=M(e);return e.preview&&e.header&&u.preview++,t=n,i=new j(u),m=i.parse(t,s,a),v(),c?{meta:{paused:!0}}:m||{meta:{paused:!1}}},this.paused=function(){return c},this.pause=function(){c=!0,i.abort(),t=q(e.chunk)?"":t.substring(i.getCharIndex())},this.resume=function(){h.streamer._halted?(c=!1,h.streamer.parseChunk(t,!0)):setTimeout(h.resume,3)},this.aborted=function(){return p},this.abort=function(){p=!0,i.abort(),m.meta.aborted=!0,q(e.complete)&&e.complete(m),t=""}}function I(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function j(e){var t,i=(e=e||{}).delimiter,r=e.newline,n=e.comments,s=e.step,a=e.preview,o=e.fastMode,h=t=void 0===e.quoteChar?'"':e.quoteChar;if(void 0!==e.escapeChar&&(h=e.escapeChar),("string"!=typeof i||c.indexOf(i)>-1)&&(i=","),n===i)throw new Error("Comment character same as delimiter");!0===n?n="#":("string"!=typeof n||c.indexOf(n)>-1)&&(n=!1),"\n"!==r&&"\r"!==r&&"\r\n"!==r&&(r="\n");var u=0,f=!1;this.parse=function(e,d,l){if("string"!=typeof e)throw new Error("Input must be a string");var c=e.length,p=i.length,g=r.length,m=n.length,_=q(s);u=0;var y=[],v=[],k=[],b=0;if(!e)return z();if(o||!1!==o&&-1===e.indexOf(t)){for(var C=e.split(r),w=0;w=a)return y=y.slice(0,a),z(!0)}}return z()}for(var E=e.indexOf(i,u),S=e.indexOf(r,u),x=new RegExp(I(h)+I(t),"g"),O=e.indexOf(t,u);;)if(e[u]!==t)if(n&&0===k.length&&e.substring(u,u+m)===n){if(-1===S)return z();u=S+g,S=e.indexOf(r,u),E=e.indexOf(i,u)}else if(-1!==E&&(E=a)return z(!0)}else for(O=u,u++;;){if(-1===(O=e.indexOf(t,O+1)))return l||v.push({type:"Quotes",code:"MissingQuotes",message:"Quoted field unterminated",row:y.length,index:u}),j();if(O===c-1)return j(e.substring(u,O).replace(x,t));if(t!==h||e[O+1]!==h){if(t===h||0===O||e[O-1]!==h){-1!==E&&E=a)return z(!0);break}v.push({type:"Quotes",code:"InvalidQuotes",message:"Trailing quote on quoted field is malformed",row:y.length,index:u}),O++}}else O++}return j();function A(e){y.push(e),b=u}function F(t){var i=0;if(-1!==t){var r=e.substring(O+1,t);r&&""===r.trim()&&(i=r.length)}return i}function j(t){return l||(void 0===t&&(t=e.substring(u)),k.push(t),u=c,A(k),_&&D()),z()}function L(t){u=t,A(k),k=[],S=e.indexOf(r,u)}function z(e){return{data:y,errors:v,meta:{delimiter:i,linebreak:r,aborted:f,truncated:!!e,cursor:b+(d||0)}}}function D(){s(z()),y=[],v=[]}},this.abort=function(){f=!0},this.getCharIndex=function(){return u}}function L(e){var t=e.data,i=r[t.workerId],n=!1;if(t.error)i.userError(t.error,t.file);else if(t.results&&t.results.data){var s={abort:function(){n=!0,z(t.workerId,{data:[],errors:[],meta:{aborted:!0}})},pause:D,resume:D};if(q(i.userStep)){for(var a=0;a