csvtojson
Version:
A tool concentrating on converting csv data to JSON with customised parser supporting
64 lines • 603 kB
HTML
<!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"> </span>
<span class="cline-any cline-no"> </span>
<span class="cline-any cline-no"> </span>
<span class="cline-any cline-no"> </span>
<span class="cline-any cline-no"> </span>
<span class="cline-any cline-no"> </span>
<span class="cline-any cline-no"> </span>
<span class="cline-any cline-neutral"> </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&&require;<span class="cstat-no" title="statement not covered" ></span>if(!h&&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&&require,g=0;g<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&&(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&&(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&&(this._needEmitFinalResult=this.listeners("end_parsed").length>0),null===this._needEmitResult&&(this._needEmitResult=this.listeners("record_parsed").length>0),null===this._needEmitJson&&(this._needEmitJson=this.listeners("json").length>0),null===this._needEmitCsv&&(this._needEmitCsv=this.listeners("csv").length>0),null===this._needJson&&(this._needJson=this._needEmitJson||this._needEmitFinalResult||this._needEmitResult||this.transform||this._options.objectMode),null===this._needPush&&(this._needPush=this.listeners("data").length>0||this.listeners("readable").length>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<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>-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<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>-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]>=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&a[e])){<span class="cstat-no" title="statement not covered" >for(;128===(192&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&&(this.started=!0,a=l(a),this.param.toArrayString&&this._needPush&&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&&a.length>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&&this._csvLineBuffer.length>0?("string"==typeof this._csvLineBuffer&&(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&&!c._headers&&(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>0)<span class="cstat-no" title="statement not covered" >if(this.preProcessLine&&"function"==typeof this.preProcessLine&&(d.lines=this._preProcessLines(d.lines,this.lastIndex)),c._headers)<span class="cstat-no" title="statement not covered" >if(c.workerNum<=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>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>0&&(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]&&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>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&&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>1&&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>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&&this._needJson&&(e=JSON.parse(f),"string"==typeof c&&(c=JSON.parse(c))),this.transform&&"function"==typeof this.transform&&(this.transform(e,c,b),f=null),this._needEmitJson&&this.emit("json",e,b),this._needEmitCsv&&("string"==typeof c&&(c=JSON.parse(c)),this.emit("csv",c,b)),this.param.constructResult&&this._needEmitFinalResult&&this.finalResult.push(e),this._needEmitResult&&this.emit("record_parsed",e,c,b),this.param.toArrayString&&b>0&&this._needPush&&this.push(","+m),this._options&&this._options.objectMode?this.push(e):this._needPush&&(null===f&&(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&&b.workerMgr.destroyWorker(),a(),b._needPush||b.emit("end")}</span>,this._csvLineBuffer.length>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&&(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&&this.emit("error",r.unclosed_quote(this.recordNum,this._csvLineBuffer),this._csvLineBuffer),this.param.toArrayString&&this._needPush&&this.push(m+"]","utf8"),this.workerMgr&&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&&a){<span class="cstat-no" title="statement not covered" >for(var b=0,c=a.length;c>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&&"undefined"==typeof d&&(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&&f.destroy&&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&&"function"==typeof b&&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&&"function"==typeof b&&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&&(b=<span class="fstat-no" title="function not covered" >fu</span>nction(){}),a&&"function"==typeof a&&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&&"function"==typeof a&&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)&&(b[e]=a[e]);<span class="cstat-no" title="statement not covered" >r</span></span>eturn b.ignoreColumns.length>0&&!d.test(b.ignoreColumns.join(""))&&(b._postIgnoreColumns=!0),b.includeColumns.length>0&&!d.test(b.includeColumns.join(""))&&(b._postIncludeColumns=!0),(b.ignoreColumns.length||b.includeColumns.length)&&(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]&&(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>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],"")]&&(a[e.replace(f[0],"")]=[]),g=f[1],a=a[e.replace(f[0],"")],""===g&&(g=a.length),a[g]||(a[g]={}),a=a[g]):(void 0===a[e]&&(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&&a.config.flatKeys?[g]:g.split("."),</span>i=<span class="cstat-no" title="statement not covered" >d(a.resultRow,h,e,a.config&&a.config.flatKeys);<span class="cstat-no" title="statement not covered" ></span>if(f=h.shift(),b=a.config&&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]&&i[f]instanceof Array||(i[f]=[]),i[f]?(c=b[1],""===c&&(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>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]&&(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]&&(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&&b.ignoreColumns.length>0)<span class="cstat-no" title="statement not covered" >for(var c=0,d=b.ignoreColumns.length;d>c;c++)<span class="cstat-no" title="statement not covered" >b.ignoreColumns[c]>=0&&a.splice(b.ignoreColumns[c],1);<span class="cstat-no" title="statement not covered" >i</span></span></span>f(b.includeColumns instanceof Array&&b.includeColumns.length>0){<span class="cstat-no" title="statement not covered" >for(var e=[],f=0,g=b.includeColumns.length;g>f;f++)<span class="cstat-no" title="statement not covered" >b.includeColumns[f]>=0&&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>d&&(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&&a)<span class="cstat-no" title="statement not covered" >for(var c=0,d=a.length;d>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]&&(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>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>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&&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&&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>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&&""!==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&&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&&(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*")>-1?c._headerFlag[b]="omit":a.indexOf("*flat*")>-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#!")>-1?d._headerType[c]=m:b.indexOf("string#!")>-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&&"false"===b.toLowerCase()||4===b.length&&"true"===b.toLowerCase()?p(a):"{"===b[0]&&"}"===b[b.length-1]||"["===b[0]&&"]"===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&&"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&&("string"==typeof b?this.regExp=new RegExp(b):this.regExp=b),"undefined"!=typeof c&&(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&&this.param.checkType&&""===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&&"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&&"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]&&"}"===d[d.length-1]||"["===d[0]&&"]"===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&&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