UNPKG

csvtojson

Version:

A tool concentrating on converting csv data to JSON with customised parser supporting

64 lines 603 kB
<!doctype html> <html lang="en"> <head> <title>Code coverage report for csv2json/dist/csvtojson.min.js</title> <meta charset="utf-8" /> <link rel="stylesheet" href="../../prettify.css" /> <link rel="stylesheet" href="../../base.css" /> <meta name="viewport" content="width=device-width, initial-scale=1"> <style type='text/css'> .coverage-summary .sorter { background-image: url(../../sort-arrow-sprite.png); } </style> </head> <body> <div class='wrapper'> <div class='pad1'> <h1> <a href="../../index.html">All files</a> / <a href="index.html">csv2json/dist</a> csvtojson.min.js </h1> <div class='clearfix'> <div class='fl pad1y space-right2'> <span class="strong">0% </span> <span class="quiet">Statements</span> <span class='fraction'>0/5007</span> </div> <div class='fl pad1y space-right2'> <span class="strong">0% </span> <span class="quiet">Branches</span> <span class='fraction'>0/5826</span> </div> <div class='fl pad1y space-right2'> <span class="strong">0% </span> <span class="quiet">Functions</span> <span class='fraction'>0/1473</span> </div> <div class='fl pad1y space-right2'> <span class="strong">0% </span> <span class="quiet">Lines</span> <span class='fraction'>0/6</span> </div> </div> <p class="quiet"> Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block. </p> </div> <div class='status-line low'></div> <pre><table class="coverage"> <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a> <a name='L2'></a><a href='#L2'>2</a> <a name='L3'></a><a href='#L3'>3</a> <a name='L4'></a><a href='#L4'>4</a> <a name='L5'></a><a href='#L5'>5</a> <a name='L6'></a><a href='#L6'>6</a> <a name='L7'></a><a href='#L7'>7</a> <a name='L8'></a><a href='#L8'>8</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-no">&nbsp;</span> <span class="cline-any cline-no">&nbsp;</span> <span class="cline-any cline-no">&nbsp;</span> <span class="cline-any cline-no">&nbsp;</span> <span class="cline-any cline-no">&nbsp;</span> <span class="cline-any cline-no">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">/*Automatically Generated. Do not modify.*/ <span class="cstat-no" title="statement not covered" >!function <span class="fstat-no" title="function not covered" >a(</span>b,c,d){function <span class="fstat-no" title="function not covered" >e(</span>g,h){<span class="cstat-no" title="statement not covered" >if(!c[g]){<span class="cstat-no" title="statement not covered" >if(!b[g]){var i=<span class="cstat-no" title="statement not covered" >"function"==typeof require&amp;&amp;require;<span class="cstat-no" title="statement not covered" ></span>if(!h&amp;&amp;i)<span class="cstat-no" title="statement not covered" >return i(g,!0);<span class="cstat-no" title="statement not covered" >i</span></span>f(f)<span class="cstat-no" title="statement not covered" >return f(g,!0);v</span></span>ar j=<span class="cstat-no" title="statement not covered" >new Error("Cannot find module '"+g+"'");<span class="cstat-no" title="statement not covered" ></span>throw j.code="MODULE_NOT_FOUND",j}</span>v</span>ar k=<span class="cstat-no" title="statement not covered" >c[g]={exports:{}};<span class="cstat-no" title="statement not covered" ></span>b[g][0].call(k.exports,<span class="fstat-no" title="function not covered" >fu</span>nction(a){var c=<span class="cstat-no" title="statement not covered" >b[g][1][a];<span class="cstat-no" title="statement not covered" ></span>return e(c?c:a)}</span>,k,k.exports,a,b,c,d)}<span class="cstat-no" title="statement not covered" ></span>r</span>eturn c[g].exports}<span class="cstat-no" title="statement not covered" ></span>for(var f="function"==typeof require&amp;&amp;require,g=0;g&lt;d.length;g++)<span class="cstat-no" title="statement not covered" >e(d[g]);<span class="cstat-no" title="statement not covered" >r</span></span>eturn e}</span>({1:[<span class="fstat-no" title="function not covered" >fu</span>nction(a,b,c){<span class="cstat-no" title="statement not covered" >window&amp;&amp;(window.csvtojson=a("./index.js"),window.csvtojson.version=a("./package.json").version)}</span>,{"./index.js":2,"./package.json":134}],2:[<span class="fstat-no" title="function not covered" >fu</span>nction(a,b,c){<span class="cstat-no" title="statement not covered" >b.exports=a("./libs/csv2json.js")}</span>,{"./libs/csv2json.js":24}],3:[<span class="fstat-no" title="function not covered" >fu</span>nction(a,b,c){function <span class="fstat-no" title="function not covered" >d(</span>a,b,c){<span class="cstat-no" title="statement not covered" >Error.call(this,""),this.err=a,this.line=b,this.extra=c,this.message="Error: "+a+". JSON Line number: "+b+(c?" near: "+c:""),this.name="CSV Error"}</span>var e=<span class="cstat-no" title="statement not covered" >a("util");<span class="cstat-no" title="statement not covered" ></span>b.exports=d,e.inherits(d,Error),d.prototype.toString=<span class="fstat-no" title="function not covered" >fu</span>nction(){<span class="cstat-no" title="statement not covered" >return JSON.stringify([this.err,this.line,this.extra])}</span>,d.column_mismatched=<span class="fstat-no" title="function not covered" >fu</span>nction(a,b){<span class="cstat-no" title="statement not covered" >return new d("column_mismatched",a,b)}</span>,d.unclosed_quote=<span class="fstat-no" title="function not covered" >fu</span>nction(a,b){<span class="cstat-no" title="statement not covered" >return new d("unclosed_quote",a,b)}</span>,d.fromArray=<span class="fstat-no" title="function not covered" >fu</span>nction(a){<span class="cstat-no" title="statement not covered" >return new d(a[0],a[1],a[2])}</span>}</span>,{util:73}],4:[<span class="fstat-no" title="function not covered" >fu</span>nction(a,b,c){<span class="cstat-no" title="statement not covered" >(<span class="fstat-no" title="function not covered" >fu</span>nction(c,d){function <span class="fstat-no" title="function not covered" >e(</span>a,b){<span class="cstat-no" title="statement not covered" >return j.call(this,b),this._options=b||{},this.param=n(a),this.param._options=this._options,this.started=!1,this.recordNum=0,this.lineNumber=0,this._csvLineBuffer="",this.lastIndex=0,this.param.forked&amp;&amp;(this.param.forked=!1,this.workerNum=2),this.flushCb=null,this.processEnd=!1,this.sequenceBuffer=[],this._needJson=null,this._needEmitResult=null,this._needEmitFinalResult=null,this._needEmitJson=null,this._needPush=null,this._needEmitCsv=null,this._csvTransf=null,this.finalResult=[],this.on("error",f(this)),this.on("end",f(this)),this.initWorker(),c.nextTick(<span class="fstat-no" title="function not covered" >fu</span>nction(){<span class="cstat-no" title="statement not covered" >null===this._needEmitFinalResult&amp;&amp;(this._needEmitFinalResult=this.listeners("end_parsed").length&gt;0),null===this._needEmitResult&amp;&amp;(this._needEmitResult=this.listeners("record_parsed").length&gt;0),null===this._needEmitJson&amp;&amp;(this._needEmitJson=this.listeners("json").length&gt;0),null===this._needEmitCsv&amp;&amp;(this._needEmitCsv=this.listeners("csv").length&gt;0),null===this._needJson&amp;&amp;(this._needJson=this._needEmitJson||this._needEmitFinalResult||this._needEmitResult||this.transform||this._options.objectMode),null===this._needPush&amp;&amp;(this._needPush=this.listeners("data").length&gt;0||this.listeners("readable").length&gt;0),this.param._needParseJson=this._needJson||this._needPush}</span>.bind(this)),this}</span>function <span class="fstat-no" title="function not covered" >f(</span>a){<span class="cstat-no" title="statement not covered" >return <span class="fstat-no" title="function not covered" >fu</span>nction(b){<span class="cstat-no" title="statement not covered" >a._hasDone||(a._hasDone=!0,c.nextTick(<span class="fstat-no" title="function not covered" >fu</span>nction(){<span class="cstat-no" title="statement not covered" >a.emit("done",b)}</span>))}</span>}</span>function <span class="fstat-no" title="function not covered" >g(</span>a){<span class="cstat-no" title="statement not covered" >return v?d.from(a,"utf8"):new d(a,"utf8")}</span>function <span class="fstat-no" title="function not covered" >h(</span>a){<span class="cstat-no" title="statement not covered" >if(a._postIgnoreColumns){<span class="cstat-no" title="statement not covered" >for(var b=0;b&lt;a.ignoreColumns.length;b++){var c=<span class="cstat-no" title="statement not covered" >a.ignoreColumns[b];<span class="cstat-no" title="statement not covered" ></span>if("string"==typeof c){var d=<span class="cstat-no" title="statement not covered" >a._headers.indexOf(c);<span class="cstat-no" title="statement not covered" ></span>d&gt;-1?a.ignoreColumns[b]=d:a.ignoreColumns[b]=-1}</span>}<span class="cstat-no" title="statement not covered" ></span>a</span>.ignoreColumns.sort(<span class="fstat-no" title="function not covered" >fu</span>nction(a,b){<span class="cstat-no" title="statement not covered" >return b-a}</span>)}<span class="cstat-no" title="statement not covered" ></span>i</span>f(a._postIncludeColumns)<span class="cstat-no" title="statement not covered" >for(var b=0;b&lt;a.includeColumns.length;b++){var e=<span class="cstat-no" title="statement not covered" >a.includeColumns[b];<span class="cstat-no" title="statement not covered" ></span>if("string"==typeof e){var d=<span class="cstat-no" title="statement not covered" >a._headers.indexOf(e);<span class="cstat-no" title="statement not covered" ></span>d&gt;-1?a.includeColumns[b]=d:a.includeColumns[b]=-1}</span>}<span class="cstat-no" title="statement not covered" ></span>a</span></span>.ignoreColumns=t.uniq(a.ignoreColumns),a.includeColumns=t.uniq(a.includeColumns)}</span>var i=<span class="cstat-no" title="statement not covered" >a("util"),</span>j=<span class="cstat-no" title="statement not covered" >a("stream").Transform,</span>k=<span class="cstat-no" title="statement not covered" >a("os"),</span>l=<span class="cstat-no" title="statement not covered" >a("strip-bom"),</span>m=<span class="cstat-no" title="statement not covered" >k.EOL,</span>n=<span class="cstat-no" title="statement not covered" >a("./defParam"),</span>o=<span class="cstat-no" title="statement not covered" >a("./fileline"),</span>p=<span class="cstat-no" title="statement not covered" >a("./fileLineToCSVLine"),</span>q=<span class="cstat-no" title="statement not covered" >a("./linesToJson"),</span>r=<span class="cstat-no" title="statement not covered" >a("./CSVError"),</span>s=<span class="cstat-no" title="statement not covered" >null,</span>t=<span class="cstat-no" title="statement not covered" >a("lodash"),</span>u=<span class="cstat-no" title="statement not covered" >a("./rowSplit");<span class="cstat-no" title="statement not covered" ></span>i.inherits(e,j);v</span>ar v=<span class="cstat-no" title="statement not covered" >c.versions.node.split(".")[0]&gt;=6;<span class="cstat-no" title="statement not covered" ></span>e.prototype._transform=<span class="fstat-no" title="function not covered" >fu</span>nction(a,b,c){<span class="cstat-no" title="statement not covered" >a=this.prepareData(a);v</span>ar e=<span class="cstat-no" title="statement not covered" >a.length-1,</span>f=<span class="cstat-no" title="statement not covered" >null;<span class="cstat-no" title="statement not covered" ></span>if(0!=(128&amp;a[e])){<span class="cstat-no" title="statement not covered" >for(;128===(192&amp;a[e]);)<span class="cstat-no" title="statement not covered" >e--;<span class="cstat-no" title="statement not covered" >e</span></span>--}<span class="cstat-no" title="statement not covered" ></span>i</span>f(e!=a.length-1){<span class="cstat-no" title="statement not covered" >f=a.slice(e+1),a=a.slice(0,e+1);v</span>ar h=<span class="cstat-no" title="statement not covered" >c,</span>i=<span class="cstat-no" title="statement not covered" >this;<span class="cstat-no" title="statement not covered" ></span>c=<span class="fstat-no" title="function not covered" >fu</span>nction(){<span class="cstat-no" title="statement not covered" >i._csvLineBuffer?i._csvLineBuffer=d.concat([g(i._csvLineBuffer,"utf8"),f]):i._csvLineBuffer=f,h()}</span>}<span class="cstat-no" title="statement not covered" ></span>a</span>=a.toString("utf8"),this.started===!1&amp;&amp;(this.started=!0,a=l(a),this.param.toArrayString&amp;&amp;this._needPush&amp;&amp;this.push("["+m,"utf8"));v</span>ar i=<span class="cstat-no" title="statement not covered" >this;<span class="cstat-no" title="statement not covered" ></span>this.preProcessRaw(a,<span class="fstat-no" title="function not covered" >fu</span>nction(a){<span class="cstat-no" title="statement not covered" >a&amp;&amp;a.length&gt;0?i.processData(a,c):c()}</span>)}</span>,e.prototype.prepareData=<span class="fstat-no" title="function not covered" >fu</span>nction(a){<span class="cstat-no" title="statement not covered" >return this._csvLineBuffer&amp;&amp;this._csvLineBuffer.length&gt;0?("string"==typeof this._csvLineBuffer&amp;&amp;(this._csvLineBuffer=g(this._csvLineBuffer)),d.concat([this._csvLineBuffer,a])):a}</span>,e.prototype.setPartialData=<span class="fstat-no" title="function not covered" >fu</span>nction(a){<span class="cstat-no" title="statement not covered" >this._csvLineBuffer=a}</span>,e.prototype.processData=<span class="fstat-no" title="function not covered" >fu</span>nction(a,b){var c=<span class="cstat-no" title="statement not covered" >this.param;<span class="cstat-no" title="statement not covered" ></span>c.ignoreEmpty&amp;&amp;!c._headers&amp;&amp;(a=a.trimLeft());v</span>ar d=<span class="cstat-no" title="statement not covered" >o(a,this.param);<span class="cstat-no" title="statement not covered" ></span>if(d.lines.length&gt;0)<span class="cstat-no" title="statement not covered" >if(this.preProcessLine&amp;&amp;"function"==typeof this.preProcessLine&amp;&amp;(d.lines=this._preProcessLines(d.lines,this.lastIndex)),c._headers)<span class="cstat-no" title="statement not covered" >if(c.workerNum&lt;=1){var e=<span class="cstat-no" title="statement not covered" >p(d,c);<span class="cstat-no" title="statement not covered" ></span>this.setPartialData(e.partial);v</span>ar f=<span class="cstat-no" title="statement not covered" >q(e.lines,c,this.recordNum);<span class="cstat-no" title="statement not covered" ></span>this.processResult(f),this.lastIndex+=f.length,this.recordNum+=f.length,b()}</span>else <span class="cstat-no" title="statement not covered" >this.workerProcess(d,b);e</span></span>lse <span class="cstat-no" title="statement not covered" >this.processHead(d,b);e</span></span>lse <span class="cstat-no" title="statement not covered" >this.setPartialData(d.partial),b()}</span></span>,e.prototype._preProcessLines=<span class="fstat-no" title="function not covered" >fu</span>nction(a,b){<span class="cstat-no" title="statement not covered" >for(var c=[],d=0,e=a.length;e&gt;d;d++){var f=<span class="cstat-no" title="statement not covered" >this.preProcessLine(a[d],b+d+1);<span class="cstat-no" title="statement not covered" ></span>"string"==typeof f?c.push(f):(c.push(a[d]),this.emit("error",new Error("preProcessLine should return a string but got: "+JSON.stringify(f))))}<span class="cstat-no" title="statement not covered" ></span>r</span>eturn c}</span>,e.prototype.initWorker=<span class="fstat-no" title="function not covered" >fu</span>nction(){var b=<span class="cstat-no" title="statement not covered" >this.param.workerNum-1;<span class="cstat-no" title="statement not covered" ></span>b&gt;0&amp;&amp;(s=a("./workerMgr"),this.workerMgr=s(),this.workerMgr.initWorker(b,this.param))}</span>,e.prototype.preRawData=<span class="fstat-no" title="function not covered" >fu</span>nction(a){<span class="cstat-no" title="statement not covered" >return this.preProcessRaw=a,this}</span>,e.prototype.preFileLine=<span class="fstat-no" title="function not covered" >fu</span>nction(a){<span class="cstat-no" title="statement not covered" >return this.preProcessLine=a,this}</span>,e.prototype.workerProcess=<span class="fstat-no" title="function not covered" >fu</span>nction(a,b){var c=<span class="cstat-no" title="statement not covered" >this,</span>d=<span class="cstat-no" title="statement not covered" >a,</span>e=<span class="cstat-no" title="statement not covered" >this.getEol();<span class="cstat-no" title="statement not covered" ></span>this.setPartialData(d.partial),this.workerMgr.sendWorker(d.lines.join(e)+e,this.lastIndex,b,<span class="fstat-no" title="function not covered" >fu</span>nction(a,b){var d,e=<span class="cstat-no" title="statement not covered" >c.sequenceBuffer[0];<span class="cstat-no" title="statement not covered" ></span>if(e.idx===b){<span class="cstat-no" title="statement not covered" >e.result=a;<span class="cstat-no" title="statement not covered" >f</span>or(var f=[];c.sequenceBuffer[0]&amp;&amp;c.sequenceBuffer[0].result;)<span class="cstat-no" title="statement not covered" >d=c.sequenceBuffer.shift(),f=f.concat(d.result);<span class="cstat-no" title="statement not covered" >c</span></span>.processResult(f),c.recordNum+=f.length}</span>else <span class="cstat-no" title="statement not covered" >for(var g=0,h=c.sequenceBuffer.length;h&gt;g;g++)<span class="cstat-no" title="statement not covered" >if(d=c.sequenceBuffer[g],d.idx===b){<span class="cstat-no" title="statement not covered" >d.result=a;<span class="cstat-no" title="statement not covered" >b</span>reak}</span>}</span></span></span>),this.sequenceBuffer.push({idx:this.lastIndex,result:null}),this.lastIndex+=d.lines.length}</span>,e.prototype.processHead=<span class="fstat-no" title="function not covered" >fu</span>nction(b,c){var d=<span class="cstat-no" title="statement not covered" >this.param;<span class="cstat-no" title="statement not covered" ></span>if(d._headers)<span class="cstat-no" title="statement not covered" >return c();<span class="cstat-no" title="statement not covered" >d</span></span>._needFilterRow=!1;v</span>ar e=<span class="cstat-no" title="statement not covered" >b.lines,</span>f=<span class="cstat-no" title="statement not covered" >"",</span>g=<span class="cstat-no" title="statement not covered" >[];<span class="cstat-no" title="statement not covered" ></span>if(!d.noheader)<span class="cstat-no" title="statement not covered" >for(;e.length;){var i=<span class="cstat-no" title="statement not covered" >f+e.shift(),</span>j=<span class="cstat-no" title="statement not covered" >u(i,d);<span class="cstat-no" title="statement not covered" ></span>if(j.closed){<span class="cstat-no" title="statement not covered" >g=j.cols,f="";<span class="cstat-no" title="statement not covered" >b</span>reak}<span class="cstat-no" title="statement not covered" ></span>f</span>=i+this.getEol()}<span class="cstat-no" title="statement not covered" ></span>i</span></span>f(d._needFilterRow=!0,!d.noheader&amp;&amp;0===g.length)<span class="cstat-no" title="statement not covered" >return this.setPartialData(f),c();<span class="cstat-no" title="statement not covered" >d</span></span>.noheader?d.headers?d._headers=d.headers:d._headers=[]:d.headers?d._headers=d.headers:d._headers=g,h(d),d._headers=a("./filterRow")(d._headers,d);v</span>ar e=<span class="cstat-no" title="statement not covered" >p(b,d);<span class="cstat-no" title="statement not covered" ></span>this.setPartialData(e.partial),this.param.workerNum&gt;1&amp;&amp;this.workerMgr.setParams(d);v</span>ar k=<span class="cstat-no" title="statement not covered" >q(e.lines,d,0);<span class="cstat-no" title="statement not covered" ></span>this.processResult(k),this.lastIndex+=k.length,this.recordNum+=k.length,c()}</span>,e.prototype.processResult=<span class="fstat-no" title="function not covered" >fu</span>nction(a){<span class="cstat-no" title="statement not covered" >for(var b=0,c=a.length;c&gt;b;b++){var d=<span class="cstat-no" title="statement not covered" >a[b];<span class="cstat-no" title="statement not covered" ></span>d.err?this.emit("error",d.err):this.emitResult(d)}</span>}</span>,e.prototype.emitResult=<span class="fstat-no" title="function not covered" >fu</span>nction(a){var b=<span class="cstat-no" title="statement not covered" >a.index,</span>c=<span class="cstat-no" title="statement not covered" >a.row,</span>d=<span class="cstat-no" title="statement not covered" >a.json,</span>e=<span class="cstat-no" title="statement not covered" >null,</span>f=<span class="cstat-no" title="statement not covered" >null;<span class="cstat-no" title="statement not covered" ></span>"string"==typeof d?f=d:e=d,null===e&amp;&amp;this._needJson&amp;&amp;(e=JSON.parse(f),"string"==typeof c&amp;&amp;(c=JSON.parse(c))),this.transform&amp;&amp;"function"==typeof this.transform&amp;&amp;(this.transform(e,c,b),f=null),this._needEmitJson&amp;&amp;this.emit("json",e,b),this._needEmitCsv&amp;&amp;("string"==typeof c&amp;&amp;(c=JSON.parse(c)),this.emit("csv",c,b)),this.param.constructResult&amp;&amp;this._needEmitFinalResult&amp;&amp;this.finalResult.push(e),this._needEmitResult&amp;&amp;this.emit("record_parsed",e,c,b),this.param.toArrayString&amp;&amp;b&gt;0&amp;&amp;this._needPush&amp;&amp;this.push(","+m),this._options&amp;&amp;this._options.objectMode?this.push(e):this._needPush&amp;&amp;(null===f&amp;&amp;(f=JSON.stringify(e)),this.push(this.param.toArrayString?f:f+m,"utf8"))}</span>,e.prototype.preProcessRaw=<span class="fstat-no" title="function not covered" >fu</span>nction(a,b){<span class="cstat-no" title="statement not covered" >b(a)}</span>,e.prototype.preProcessLine=<span class="fstat-no" title="function not covered" >fu</span>nction(a,b){<span class="cstat-no" title="statement not covered" >return a}</span>,e.prototype._flush=<span class="fstat-no" title="function not covered" >fu</span>nction(a){var b=<span class="cstat-no" title="statement not covered" >this;<span class="cstat-no" title="statement not covered" ></span>if(this.flushCb=<span class="fstat-no" title="function not covered" >fu</span>nction(){<span class="cstat-no" title="statement not covered" >b.emit("end_parsed",b.finalResult),b.workerMgr&amp;&amp;b.workerMgr.destroyWorker(),a(),b._needPush||b.emit("end")}</span>,this._csvLineBuffer.length&gt;0){var c=<span class="cstat-no" title="statement not covered" >this.getEol();<span class="cstat-no" title="statement not covered" ></span>this._csvLineBuffer[this._csvLineBuffer.length-1]!==c&amp;&amp;(this._csvLineBuffer+=c),this.processData(this._csvLineBuffer,<span class="fstat-no" title="function not covered" >fu</span>nction(){<span class="cstat-no" title="statement not covered" >this.checkAndFlush()}</span>.bind(this))}</span>else <span class="cstat-no" title="statement not covered" >this.checkAndFlush()}</span></span>,e.prototype.checkAndFlush=<span class="fstat-no" title="function not covered" >fu</span>nction(){<span class="cstat-no" title="statement not covered" >0!==this._csvLineBuffer.length&amp;&amp;this.emit("error",r.unclosed_quote(this.recordNum,this._csvLineBuffer),this._csvLineBuffer),this.param.toArrayString&amp;&amp;this._needPush&amp;&amp;this.push(m+"]","utf8"),this.workerMgr&amp;&amp;this.workerMgr.isRunning()?this.workerMgr.drain=<span class="fstat-no" title="function not covered" >fu</span>nction(){<span class="cstat-no" title="statement not covered" >this.flushCb()}</span>.bind(this):this.flushCb()}</span>,e.prototype.getEol=<span class="fstat-no" title="function not covered" >fu</span>nction(a){<span class="cstat-no" title="statement not covered" >if(!this.param.eol&amp;&amp;a){<span class="cstat-no" title="statement not covered" >for(var b=0,c=a.length;c&gt;b;b++){<span class="cstat-no" title="statement not covered" >if("\r"===a[b])<span class="cstat-no" title="statement not covered" >return"\n"===a[b+1]?this.param.eol="\r\n":this.param.eol="\r",this.param.eol;<span class="cstat-no" title="statement not covered" >i</span></span>f("\n"===a[b])<span class="cstat-no" title="statement not covered" >return this.param.eol="\n",this.param.eol}<span class="cstat-no" title="statement not covered" ></span></span>t</span>his.param.eol=m}<span class="cstat-no" title="statement not covered" ></span>r</span>eturn this.param.eol||m}</span>,e.prototype.fromFile=<span class="fstat-no" title="function not covered" >fu</span>nction(b,c,d){var e=<span class="cstat-no" title="statement not covered" >a("fs"),</span>f=<span class="cstat-no" title="statement not covered" >null;<span class="cstat-no" title="statement not covered" ></span>return"object"==typeof c&amp;&amp;"undefined"==typeof d&amp;&amp;(d=c,c=null),this.wrapCallback(c,<span class="fstat-no" title="function not covered" >fu</span>nction(){<span class="cstat-no" title="statement not covered" >f&amp;&amp;f.destroy&amp;&amp;f.destroy()}</span>),e.exists(b,<span class="fstat-no" title="function not covered" >fu</span>nction(a){<span class="cstat-no" title="statement not covered" >a?(f=e.createReadStream(b,d),f.pipe(this)):this.emit("error",new Error("File not exists"))}</span>.bind(this)),this}</span>,e.prototype.fromStream=<span class="fstat-no" title="function not covered" >fu</span>nction(a,b){<span class="cstat-no" title="statement not covered" >return b&amp;&amp;"function"==typeof b&amp;&amp;this.wrapCallback(b),a.pipe(this),this}</span>,e.prototype.transf=<span class="fstat-no" title="function not covered" >fu</span>nction(a){<span class="cstat-no" title="statement not covered" >return this.transform=a,this}</span>,e.prototype.fromString=<span class="fstat-no" title="function not covered" >fu</span>nction(a,b){<span class="cstat-no" title="statement not covered" >return"string"!=typeof a?b(new Error("Passed CSV Data is not a string.")):(b&amp;&amp;"function"==typeof b&amp;&amp;this.wrapCallback(b,<span class="fstat-no" title="function not covered" >fu</span>nction(){}),c.nextTick(<span class="fstat-no" title="function not covered" >fu</span>nction(){<span class="cstat-no" title="statement not covered" >this.end(a)}</span>.bind(this)),this)}</span>,e.prototype.wrapCallback=<span class="fstat-no" title="function not covered" >fu</span>nction(a,b){<span class="cstat-no" title="statement not covered" >void 0===b&amp;&amp;(b=<span class="fstat-no" title="function not covered" >fu</span>nction(){}),a&amp;&amp;"function"==typeof a&amp;&amp;this.once("end_parsed",<span class="fstat-no" title="function not covered" >fu</span>nction(b){<span class="cstat-no" title="statement not covered" >this.hasError||a(null,b)}</span>.bind(this)),this.once("error",<span class="fstat-no" title="function not covered" >fu</span>nction(c){<span class="cstat-no" title="statement not covered" >this.hasError=!0,a&amp;&amp;"function"==typeof a&amp;&amp;a(c),b()}</span>.bind(this))}</span>,b.exports=e}</span>).call(this,a("_process"),a("buffer").Buffer)}</span>,{"./CSVError":3,"./defParam":6,"./fileLineToCSVLine":13,"./fileline":14,"./filterRow":15,"./linesToJson":19,"./rowSplit":22,"./workerMgr":23,_process:42,buffer:33,fs:31,lodash:129,os:41,stream:60,"strip-bom":133,util:73}],5:[<span class="fstat-no" title="function not covered" >fu</span>nction(a,b,c){var d=<span class="cstat-no" title="statement not covered" >a("./getEol"),</span>e=<span class="cstat-no" title="statement not covered" >a("./rowSplit");<span class="cstat-no" title="statement not covered" ></span>b.exports=<span class="fstat-no" title="function not covered" >fu</span>nction(a,b){<span class="cstat-no" title="statement not covered" >for(var c=[],f="";a.length;){var g=<span class="cstat-no" title="statement not covered" >f+a.shift(),</span>h=<span class="cstat-no" title="statement not covered" >e(g,b);<span class="cstat-no" title="statement not covered" ></span>h.closed?(c.push(h.cols),f=""):f=g+(d(g,b)||"\n")}<span class="cstat-no" title="statement not covered" ></span>r</span>eturn{lines:c,partial:f}}</span>}</span>,{"./getEol":17,"./rowSplit":22}],6:[<span class="fstat-no" title="function not covered" >fu</span>nction(a,b,c){<span class="cstat-no" title="statement not covered" >(<span class="fstat-no" title="function not covered" >fu</span>nction(a){function <span class="fstat-no" title="function not covered" >c(</span>b,c){<span class="cstat-no" title="statement not covered" >return a.env[b]?a.env[b]:c}</span>var d=<span class="cstat-no" title="statement not covered" >/^[0-9]+$/;<span class="cstat-no" title="statement not covered" ></span>b.exports=<span class="fstat-no" title="function not covered" >fu</span>nction(a){var b=<span class="cstat-no" title="statement not covered" >{constructResult:!0,delimiter:",",ignoreColumns:[],includeColumns:[],quote:'"',trim:!0,checkType:!1,toArrayString:!1,ignoreEmpty:!1,workerNum:c("CSV_WORKER",1),fork:!1,noheader:!1,headers:null,flatKeys:!1,maxRowLength:0,checkColumn:!1,escape:'"',colParser:{},_columnConv:[],_headerType:[],_headerTitle:[],_headerFlag:[],_headers:null,_needFilterRow:!1};<span class="cstat-no" title="statement not covered" ></span>a||(a={});<span class="cstat-no" title="statement not covered" >f</span>or(var e in a)<span class="cstat-no" title="statement not covered" >a.hasOwnProperty(e)&amp;&amp;(b[e]=a[e]);<span class="cstat-no" title="statement not covered" >r</span></span>eturn b.ignoreColumns.length&gt;0&amp;&amp;!d.test(b.ignoreColumns.join(""))&amp;&amp;(b._postIgnoreColumns=!0),b.includeColumns.length&gt;0&amp;&amp;!d.test(b.includeColumns.join(""))&amp;&amp;(b._postIncludeColumns=!0),(b.ignoreColumns.length||b.includeColumns.length)&amp;&amp;(b._needFilterRow=!0,b._postIgnoreColumns||b.ignoreColumns.sort(<span class="fstat-no" title="function not covered" >fu</span>nction(a,b){<span class="cstat-no" title="statement not covered" >return b-a}</span>)),b}</span>}</span>).call(this,a("_process"))}</span>,{_process:42}],7:[<span class="fstat-no" title="function not covered" >fu</span>nction(a,b,c){<span class="cstat-no" title="statement not covered" >b.exports=[a("./parser_array.js"),a("./parser_json.js"),a("./parser_omit.js"),a("./parser_jsonarray.js"),a("./parser_flat.js")]}</span>,{"./parser_array.js":8,"./parser_flat.js":9,"./parser_json.js":10,"./parser_jsonarray.js":11,"./parser_omit.js":12}],8:[<span class="fstat-no" title="function not covered" >fu</span>nction(a,b,c){<span class="cstat-no" title="statement not covered" >b.exports={name:"array",processSafe:!0,regExp:/^\*array\*/,parserFunc:<span class="fstat-no" title="function not covered" >fu</span>nction(a){var b=<span class="cstat-no" title="statement not covered" >a.head.replace(this.regExp,"");<span class="cstat-no" title="statement not covered" ></span>void 0===a.resultRow[b]&amp;&amp;(a.resultRow[b]=[]),a.resultRow[b].push(a.item)}</span>}}</span>,{}],9:[<span class="fstat-no" title="function not covered" >fu</span>nction(a,b,c){<span class="cstat-no" title="statement not covered" >b.exports={name:"flat",processSafe:!0,regExp:/^\*flat\*/,parserFunc:<span class="fstat-no" title="function not covered" >fu</span>nction(a){var b=<span class="cstat-no" title="statement not covered" >this.getHeadStr(),</span>c=<span class="cstat-no" title="statement not covered" >a.item;<span class="cstat-no" title="statement not covered" ></span>a.resultRow[b]=c}</span>}}</span>,{}],10:[<span class="fstat-no" title="function not covered" >fu</span>nction(a,b,c){function <span class="fstat-no" title="function not covered" >d(</span>a,b,c,d){<span class="cstat-no" title="statement not covered" >for(var e,f,g;b.length&gt;1;)<span class="cstat-no" title="statement not covered" >e=b.shift(),f=d?!1:e.match(c),f?(void 0===a[e.replace(f[0],"")]&amp;&amp;(a[e.replace(f[0],"")]=[]),g=f[1],a=a[e.replace(f[0],"")],""===g&amp;&amp;(g=a.length),a[g]||(a[g]={}),a=a[g]):(void 0===a[e]&amp;&amp;(a[e]={}),a=a[e]);<span class="cstat-no" title="statement not covered" >r</span></span>eturn a}</span>var e=<span class="cstat-no" title="statement not covered" >/\[([0-9]*)\]/;<span class="cstat-no" title="statement not covered" ></span>b.exports={name:"json",processSafe:!0,regExp:/^\*json\*/,parserFunc:<span class="fstat-no" title="function not covered" >fu</span>nction(a){var b,c,f,g=<span class="cstat-no" title="statement not covered" >this.getHeadStr(),</span>h=<span class="cstat-no" title="statement not covered" >a.config&amp;&amp;a.config.flatKeys?[g]:g.split("."),</span>i=<span class="cstat-no" title="statement not covered" >d(a.resultRow,h,e,a.config&amp;&amp;a.config.flatKeys);<span class="cstat-no" title="statement not covered" ></span>if(f=h.shift(),b=a.config&amp;&amp;a.config.flatKeys?!1:f.match(e))<span class="cstat-no" title="statement not covered" >try{<span class="cstat-no" title="statement not covered" >f=f.replace(b[0],""),i[f]&amp;&amp;i[f]instanceof Array||(i[f]=[]),i[f]?(c=b[1],""===c&amp;&amp;(c=i[f].length),i[f][c]=a.item):a.resultRow[g]=a.item}</span>catch(j){<span class="cstat-no" title="statement not covered" >a.resultRow[g]=a.item}</span>e</span>lse<span class="cstat-no" title="statement not covered" >"string"==typeof i?a.resultRow[g]=a.item:i[f]=a.item}</span></span>}}</span>,{}],11:[<span class="fstat-no" title="function not covered" >fu</span>nction(a,b,c){<span class="cstat-no" title="statement not covered" >b.exports={name:"jsonarray",processSafe:!0,regExp:/^\*jsonarray\*/,parserFunc:<span class="fstat-no" title="function not covered" >fu</span>nction(a){<span class="cstat-no" title="statement not covered" >for(var b=a.head.replace(this.regExp,""),c=b.split("."),d=a.resultRow;c.length&gt;1;){var e=<span class="cstat-no" title="statement not covered" >c.shift();<span class="cstat-no" title="statement not covered" ></span>void 0===d[e]&amp;&amp;(d[e]={}),d=d[e]}</span>v</span>ar f=<span class="cstat-no" title="statement not covered" >c.shift();<span class="cstat-no" title="statement not covered" ></span>void 0===d[f]&amp;&amp;(d[f]=[]),d[f].push(a.item)}</span>}}</span>,{}],12:[<span class="fstat-no" title="function not covered" >fu</span>nction(a,b,c){<span class="cstat-no" title="statement not covered" >b.exports={name:"omit",regExp:/^\*omit\*/,processSafe:!0,parserFunc:<span class="fstat-no" title="function not covered" >fu</span>nction(){}}}</span>,{}],13:[<span class="fstat-no" title="function not covered" >fu</span>nction(a,b,c){var d=<span class="cstat-no" title="statement not covered" >a("./csvline");<span class="cstat-no" title="statement not covered" ></span>b.exports=<span class="fstat-no" title="function not covered" >fu</span>nction(a,b){var c=<span class="cstat-no" title="statement not covered" >a.lines,</span>e=<span class="cstat-no" title="statement not covered" >d(c,b);<span class="cstat-no" title="statement not covered" ></span>return{lines:e.lines,partial:e.partial+a.partial}}</span>}</span>,{"./csvline":5}],14:[<span class="fstat-no" title="function not covered" >fu</span>nction(a,b,c){var d=<span class="cstat-no" title="statement not covered" >a("./getEol");<span class="cstat-no" title="statement not covered" ></span>b.exports=<span class="fstat-no" title="function not covered" >fu</span>nction(a,b){var c=<span class="cstat-no" title="statement not covered" >d(a,b),</span>e=<span class="cstat-no" title="statement not covered" >a.split(c),</span>f=<span class="cstat-no" title="statement not covered" >e.pop();<span class="cstat-no" title="statement not covered" ></span>return{lines:e,partial:f}}</span>}</span>,{"./getEol":17}],15:[<span class="fstat-no" title="function not covered" >fu</span>nction(a,b,c){<span class="cstat-no" title="statement not covered" >b.exports=<span class="fstat-no" title="function not covered" >fu</span>nction(a,b){<span class="cstat-no" title="statement not covered" >if(b.ignoreColumns instanceof Array&amp;&amp;b.ignoreColumns.length&gt;0)<span class="cstat-no" title="statement not covered" >for(var c=0,d=b.ignoreColumns.length;d&gt;c;c++)<span class="cstat-no" title="statement not covered" >b.ignoreColumns[c]&gt;=0&amp;&amp;a.splice(b.ignoreColumns[c],1);<span class="cstat-no" title="statement not covered" >i</span></span></span>f(b.includeColumns instanceof Array&amp;&amp;b.includeColumns.length&gt;0){<span class="cstat-no" title="statement not covered" >for(var e=[],f=0,g=b.includeColumns.length;g&gt;f;f++)<span class="cstat-no" title="statement not covered" >b.includeColumns[f]&gt;=0&amp;&amp;e.push(a[b.includeColumns[f]]);<span class="cstat-no" title="statement not covered" >a</span></span>=e}<span class="cstat-no" title="statement not covered" ></span>r</span>eturn a}</span>}</span>,{}],16:[<span class="fstat-no" title="function not covered" >fu</span>nction(a,b,c){function <span class="fstat-no" title="function not covered" >d(</span>a,b){var c;<span class="cstat-no" title="statement not covered" >if("auto"===b.delimiter)<span class="cstat-no" title="statement not covered" >c=e;e</span>lse{<span class="cstat-no" title="statement not covered" >if(!(b.delimiter instanceof Array))<span class="cstat-no" title="statement not covered" >return b.delimiter;<span class="cstat-no" title="statement not covered" >c</span></span>=b.delimiter}</span>v</span>ar d=<span class="cstat-no" title="statement not covered" >0,</span>f=<span class="cstat-no" title="statement not covered" >",";<span class="cstat-no" title="statement not covered" ></span>return c.forEach(<span class="fstat-no" title="function not covered" >fu</span>nction(b){var c=<span class="cstat-no" title="statement not covered" >a.split(b).length;<span class="cstat-no" title="statement not covered" ></span>c&gt;d&amp;&amp;(f=b,d=c)}</span>),f}<span class="cstat-no" title="statement not covered" ></span>b.exports=d;v</span>ar e=<span class="cstat-no" title="statement not covered" >[",","|"," ",";",":"]}</span>,{}],17:[<span class="fstat-no" title="function not covered" >fu</span>nction(a,b,c){<span class="cstat-no" title="statement not covered" >a("os").EOL;<span class="cstat-no" title="statement not covered" >b</span>.exports=<span class="fstat-no" title="function not covered" >fu</span>nction(a,b){<span class="cstat-no" title="statement not covered" >if(!b.eol&amp;&amp;a)<span class="cstat-no" title="statement not covered" >for(var c=0,d=a.length;d&gt;c;c++){<span class="cstat-no" title="statement not covered" >if("\r"===a[c])<span class="cstat-no" title="statement not covered" >return"\n"===a[c+1]?b.eol="\r\n":a[c+1]&amp;&amp;(b.eol="\r"),b.eol;<span class="cstat-no" title="statement not covered" >i</span></span>f("\n"===a[c])<span class="cstat-no" title="statement not covered" >return b.eol="\n",b.eol}<span class="cstat-no" title="statement not covered" ></span></span>r</span></span>eturn b.eol}</span>}</span>,{os:41}],18:[<span class="fstat-no" title="function not covered" >fu</span>nction(a,b,c){function <span class="fstat-no" title="function not covered" >d(</span>a,c){<span class="cstat-no" title="statement not covered" >return new b.exports.Converter(a,c)}<span class="cstat-no" title="statement not covered" ></span>b.exports=d,b.exports.Converter=a("./Converter.js")}</span>,{"./Converter.js":4}],19:[<span class="fstat-no" title="function not covered" >fu</span>nction(a,b,c){function <span class="fstat-no" title="function not covered" >d(</span>a,b,c){<span class="cstat-no" title="statement not covered" >for(var d=[],e=0,f=a.length;f&gt;e;e++)<span class="cstat-no" title="statement not covered" >d.push({err:null,json:{},index:c++,row:a[e]});<span class="cstat-no" title="statement not covered" >r</span></span>eturn d}</span>function <span class="fstat-no" title="function not covered" >e(</span>a,b,c){<span class="cstat-no" title="statement not covered" >for(var d=[],e=0,g=a.length;g&gt;e;e++){var h=<span class="cstat-no" title="statement not covered" >f(a[e],b,c++);<span class="cstat-no" title="statement not covered" ></span>h&amp;&amp;d.push(h)}<span class="cstat-no" title="statement not covered" ></span>r</span>eturn d}</span>function <span class="fstat-no" title="function not covered" >f(</span>a,b,c){var d=<span class="cstat-no" title="statement not covered" >b.parseRules;<span class="cstat-no" title="statement not covered" ></span>if(b.checkColumn&amp;&amp;a.length!==d.length)<span class="cstat-no" title="statement not covered" >return{err:s.column_mismatched(c)};v</span></span>ar e=<span class="cstat-no" title="statement not covered" >b._headers,</span>f=<span class="cstat-no" title="statement not covered" >g(a,e,b);<span class="cstat-no" title="statement not covered" ></span>return f?{json:f,index:c,row:a}:null}</span>function <span class="fstat-no" title="function not covered" >g(</span>a,b,c){<span class="cstat-no" title="statement not covered" >for(var d=!1,e={},f=0,g=a.length;g&gt;f;f++){var m,n,o;<span class="cstat-no" title="statement not covered" >if(o=a[f],!c.ignoreEmpty||""!==o){<span class="cstat-no" title="statement not covered" >d=!0,n=b[f],n&amp;&amp;""!==n||(n=b[f]="field"+(f+1));v</span>ar p=<span class="cstat-no" title="statement not covered" >h(n,f,c);<span class="cstat-no" title="statement not covered" ></span>if(p){var q=<span class="cstat-no" title="statement not covered" >p(o,n,e,a,f);<span class="cstat-no" title="statement not covered" ></span>void 0!==q&amp;&amp;i(e,n,q)}</span>else{var r=<span class="cstat-no" title="statement not covered" >j(n,f,c);<span class="cstat-no" title="statement not covered" ></span>if("omit"===r)<span class="cstat-no" title="statement not covered" >continue;<span class="cstat-no" title="statement not covered" >c</span></span>.checkType&amp;&amp;(m=l(o,n,f,c),o=m(o));v</span>ar s=<span class="cstat-no" title="statement not covered" >k(n,f,c);<span class="cstat-no" title="statement not covered" ></span>"flat"===r||c.flatKeys?e[s]=o:i(e,s,o)}</span>}</span>}<span class="cstat-no" title="statement not covered" ></span>r</span>eturn d?e:!1}</span>function <span class="fstat-no" title="function not covered" >h(</span>a,b,c){<span class="cstat-no" title="statement not covered" >if(void 0!==c._columnConv[b])<span class="cstat-no" title="statement not covered" >return c._columnConv[b];v</span></span>ar d=<span class="cstat-no" title="statement not covered" >c.colParser[a];<span class="cstat-no" title="statement not covered" ></span>if(void 0===d)<span class="cstat-no" title="statement not covered" >return c._columnConv[b]=!1;<span class="cstat-no" title="statement not covered" >i</span></span>f("string"==typeof d){<span class="cstat-no" title="statement not covered" >d=d.trim().toLowerCase();v</span>ar e=<span class="cstat-no" title="statement not covered" >u[d];<span class="cstat-no" title="statement not covered" ></span>return e?c._columnConv[b]=e:c._columnConv[b]=!1}<span class="cstat-no" title="statement not covered" ></span>r</span>eturn"function"==typeof d?c._columnConv[b]=d:c._columnConv[b]=!1}</span>function <span class="fstat-no" title="function not covered" >i(</span>b,c,d){var e=<span class="cstat-no" title="statement not covered" >a("lodash/set"),</span>f=<span class="cstat-no" title="statement not covered" >c.split(".");<span class="cstat-no" title="statement not covered" ></span>1===f.length?b[c]=d:e(b,c,d)}</span>function <span class="fstat-no" title="function not covered" >j(</span>a,b,c){<span class="cstat-no" title="statement not covered" >return"string"==typeof c._headerFlag[b]?c._headerFlag[b]:a.indexOf("*omit*")&gt;-1?c._headerFlag[b]="omit":a.indexOf("*flat*")&gt;-1?c._headerFlag[b]="flat":c._headerFlag[b]=""}</span>function <span class="fstat-no" title="function not covered" >k(</span>a,b,c){<span class="cstat-no" title="statement not covered" >if(c._headerTitle[b])<span class="cstat-no" title="statement not covered" >return c._headerTitle[b];v</span></span>ar d=(<span class="cstat-no" title="statement not covered" >j(a,b,c),a.replace("*flat*","").replace("string#!","").replace("number#!",""))</span>;<span class="cstat-no" title="statement not covered" >return c._headerTitle[b]=d}</span>function <span class="fstat-no" title="function not covered" >l(</span>a,b,c,d){<span class="cstat-no" title="statement not covered" >return d._headerType[c]?d._headerType[c]:b.indexOf("number#!")&gt;-1?d._headerType[c]=m:b.indexOf("string#!")&gt;-1?d._headerType[c]=n:d.checkType?d._headerType[c]=o:d._headerType[c]=n}</span>function <span class="fstat-no" title="function not covered" >m(</span>a){var b=<span class="cstat-no" title="statement not covered" >parseFloat(a);<span class="cstat-no" title="statement not covered" ></span>return isNaN(b)?a:b}</span>function <span class="fstat-no" title="function not covered" >n(</span>a){<span class="cstat-no" title="statement not covered" >return a.toString()}</span>function <span class="fstat-no" title="function not covered" >o(</span>a){var b=<span class="cstat-no" title="statement not covered" >a.trim();<span class="cstat-no" title="statement not covered" ></span>return""===b?n(a):t.test(b)?m(a):5===b.length&amp;&amp;"false"===b.toLowerCase()||4===b.length&amp;&amp;"true"===b.toLowerCase()?p(a):"{"===b[0]&amp;&amp;"}"===b[b.length-1]||"["===b[0]&amp;&amp;"]"===b[b.length-1]?q(a):n(a)}</span>function <span class="fstat-no" title="function not covered" >p(</span>a){var b=<span class="cstat-no" title="statement not covered" >a.trim();<span class="cstat-no" title="statement not covered" ></span>return 5===b.length&amp;&amp;"false"===b.toLowerCase()?!1:!0}</span>function <span class="fstat-no" title="function not covered" >q(</span>a){<span class="cstat-no" title="statement not covered" >try{<span class="cstat-no" title="statement not covered" >return JSON.parse(a)}</span>catch(b){<span class="cstat-no" title="statement not covered" >return a}</span>}</span>var r=<span class="cstat-no" title="statement not covered" >a("./parserMgr.js"),</span>s=<span class="cstat-no" title="statement not covered" >a("./CSVError"),</span>t=<span class="cstat-no" title="statement not covered" >/^[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?$/;<span class="cstat-no" title="statement not covered" ></span>b.exports=<span class="fstat-no" title="function not covered" >fu</span>nction(a,b,c){<span class="cstat-no" title="statement not covered" >if(b._needParseJson){<span class="cstat-no" title="statement not covered" >if(b._headers||(b._headers=[]),!b.parseRules){var f=<span class="cstat-no" title="statement not covered" >b._headers;<span class="cstat-no" title="statement not covered" ></span>b.parseRules=r.initParsers(f,b)}<span class="cstat-no" title="statement not covered" ></span>r</span>eturn e(a,b,c)}<span class="cstat-no" title="statement not covered" ></span>r</span>eturn d(a,b,c)}</span>;v</span>ar u=<span class="cstat-no" title="statement not covered" >{string:n,number:m,omit:<span class="fstat-no" title="function not covered" >fu</span>nction(){}}}</span>,{"./CSVError":3,"./parserMgr.js":21,"lodash/set":131}],20:[<span class="fstat-no" title="function not covered" >fu</span>nction(a,b,c){function <span class="fstat-no" title="function not covered" >d(</span>a,b,c,d){<span class="cstat-no" title="statement not covered" >this.name="undefined"==typeof a?"Default":a,this.regExp=null,this.type="",this.processSafe=d,"undefined"!=typeof b&amp;&amp;("string"==typeof b?this.regExp=new RegExp(b):this.regExp=b),"undefined"!=typeof c&amp;&amp;(this.parse=c)}</span>var e=<span class="cstat-no" title="statement not covered" >["number","string"];<span class="cstat-no" title="statement not covered" ></span>d.prototype.convertType=<span class="fstat-no" title="function not covered" >fu</span>nction(a){var b=<span class="cstat-no" title="statement not covered" >this.type;<span class="cstat-no" title="statement not covered" ></span>if("number"===b){var c=<span class="cstat-no" title="statement not covered" >parseFloat(a);<span class="cstat-no" title="statement not covered" ></span>return isNaN(c)?0:c}<span class="cstat-no" title="statement not covered" ></span>i</span>f(this.param&amp;&amp;this.param.checkType&amp;&amp;""===b){var d=<span class="cstat-no" title="statement not covered" >a.trim();<span class="cstat-no" title="statement not covered" ></span>if(""===d)<span class="cstat-no" title="statement not covered" >return d;<span class="cstat-no" title="statement not covered" >i</span></span>f(!isNaN(d))<span class="cstat-no" title="statement not covered" >return parseFloat(d);<span class="cstat-no" title="statement not covered" >i</span></span>f(5===d.length&amp;&amp;"false"===d.toLowerCase())<span class="cstat-no" title="statement not covered" >return!1;<span class="cstat-no" title="statement not covered" >i</span></span>f(4===d.length&amp;&amp;"true"===d.toLowerCase())<span class="cstat-no" title="statement not covered" >return!0;<span class="cstat-no" title="statement not covered" >i</span></span>f(!("{"===d[0]&amp;&amp;"}"===d[d.length-1]||"["===d[0]&amp;&amp;"]"===d[d.length-1]))<span class="cstat-no" title="statement not covered" >return a;<span class="cstat-no" title="statement not covered" >t</span></span>ry{<span class="cstat-no" title="statement not covered" >return JSON.parse(d)}</span>catch(e){<span class="cstat-no" title="statement not covered" >return a}</span>}<span class="cstat-no" title="statement not covered" ></span>r</span>eturn a}</span>,d.prototype.setParam=<span class="fstat-no" title="function not covered" >fu</span>nction(a){<span class="cstat-no" title="statement not covered" >this.param=a}</span>,d.prototype.test=<span class="fstat-no" title="function not covered" >fu</span>nction(a){<span class="cstat-no" title="statement not covered" >return this.regExp&amp;&amp;this.regExp.test(a)}</span>,d.prototype.parse=<span class="fstat-no" title="function not covered" >fu</span>nction(a){<span class="cstat-no" title="statement not covered" >a.resultRow[a.head]=a.item}</span>,d.prototype.getHeadStr=<span class="f