>>=w,p-=w),p<15&&(c+=z[n++]<>>=w=b>>>24,p-=w,!(16&(w=b>>>16&255))){if(0==(64&w)){b=_[(65535&b)+(c&(1<>>=w,p-=w,(w=s-a)>3,c&=(1<<(p-=y<<3))-1,e.next_in=n,e.next_out=s,e.avail_in=n>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24)}function s(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new I.Buf16(320),this.work=new I.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function a(e){var t;return e&&e.state?(t=e.state,e.total_in=e.total_out=t.total=0,e.msg=\"\",t.wrap&&(e.adler=1&t.wrap),t.mode=P,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new I.Buf32(n),t.distcode=t.distdyn=new I.Buf32(i),t.sane=1,t.back=-1,N):U}function o(e){var t;return e&&e.state?((t=e.state).wsize=0,t.whave=0,t.wnext=0,a(e)):U}function u(e,t){var r,n;return e&&e.state?(n=e.state,t<0?(r=0,t=-t):(r=1+(t>>4),t<48&&(t&=15)),t&&(t<8||15=s.wsize?(I.arraySet(s.window,t,r-s.wsize,s.wsize,0),s.wnext=0,s.whave=s.wsize):(n<(i=s.wsize-s.wnext)&&(i=n),I.arraySet(s.window,t,r-n,i,s.wnext),(n-=i)?(I.arraySet(s.window,t,r-n,n,0),s.wnext=n,s.whave=s.wsize):(s.wnext+=i,s.wnext===s.wsize&&(s.wnext=0),s.whave>>8&255,r.check=B(r.check,C,2,0),f=h=0,r.mode=2;break}if(r.flags=0,r.head&&(r.head.done=!1),!(1&r.wrap)||(((255&h)<<8)+(h>>8))%31){e.msg=\"incorrect header check\",r.mode=30;break}if(8!=(15&h)){e.msg=\"unknown compression method\",r.mode=30;break}if(f-=4,k=8+(15&(h>>>=4)),0===r.wbits)r.wbits=k;else if(k>r.wbits){e.msg=\"invalid window size\",r.mode=30;break}r.dmax=1<>8&1),512&r.flags&&(C[0]=255&h,C[1]=h>>>8&255,r.check=B(r.check,C,2,0)),f=h=0,r.mode=3;case 3:for(;f<32;){if(0===o)break e;o--,h+=n[s++]<>>8&255,C[2]=h>>>16&255,C[3]=h>>>24&255,r.check=B(r.check,C,4,0)),f=h=0,r.mode=4;case 4:for(;f<16;){if(0===o)break e;o--,h+=n[s++]<>8),512&r.flags&&(C[0]=255&h,C[1]=h>>>8&255,r.check=B(r.check,C,2,0)),f=h=0,r.mode=5;case 5:if(1024&r.flags){for(;f<16;){if(0===o)break e;o--,h+=n[s++]<>>8&255,r.check=B(r.check,C,2,0)),f=h=0}else r.head&&(r.head.extra=null);r.mode=6;case 6:if(1024&r.flags&&(o<(c=r.length)&&(c=o),c&&(r.head&&(k=r.head.extra_len-r.length,r.head.extra||(r.head.extra=new Array(r.head.extra_len)),I.arraySet(r.head.extra,n,s,c,k)),512&r.flags&&(r.check=B(r.check,n,c,s)),o-=c,s+=c,r.length-=c),r.length))break e;r.length=0,r.mode=7;case 7:if(2048&r.flags){if(0===o)break e;for(c=0;k=n[s+c++],r.head&&k&&r.length<65536&&(r.head.name+=String.fromCharCode(k)),k&&c>9&1,r.head.done=!0),e.adler=r.check=0,r.mode=12;break;case 10:for(;f<32;){if(0===o)break e;o--,h+=n[s++]<>>=7&f,f-=7&f,r.mode=27;break}for(;f<3;){if(0===o)break e;o--,h+=n[s++]<>>=1)){case 0:r.mode=14;break;case 1:if(j(r),r.mode=20,6!==t)break;h>>>=2,f-=2;break e;case 2:r.mode=17;break;case 3:e.msg=\"invalid block type\",r.mode=30}h>>>=2,f-=2;break;case 14:for(h>>>=7&f,f-=7&f;f<32;){if(0===o)break e;o--,h+=n[s++]<>>16^65535)){e.msg=\"invalid stored block lengths\",r.mode=30;break}if(r.length=65535&h,f=h=0,r.mode=15,6===t)break e;case 15:r.mode=16;case 16:if(c=r.length){if(o>>=5,f-=5,r.ndist=1+(31&h),h>>>=5,f-=5,r.ncode=4+(15&h),h>>>=4,f-=4,286>>=3,f-=3}for(;r.have<19;)r.lens[A[r.have++]]=0;if(r.lencode=r.lendyn,r.lenbits=7,S={bits:r.lenbits},x=R(0,r.lens,0,19,r.lencode,0,r.work,S),r.lenbits=S.bits,x){e.msg=\"invalid code lengths set\",r.mode=30;break}r.have=0,r.mode=19;case 19:for(;r.have>>16&255,v=65535&E,!((_=E>>>24)<=f);){if(0===o)break e;o--,h+=n[s++]<>>=_,f-=_,r.lens[r.have++]=v;else{if(16===v){for(z=_+2;f>>=_,f-=_,0===r.have){e.msg=\"invalid bit length repeat\",r.mode=30;break}k=r.lens[r.have-1],c=3+(3&h),h>>>=2,f-=2}else if(17===v){for(z=_+3;f>>=_)),h>>>=3,f-=3}else{for(z=_+7;f>>=_)),h>>>=7,f-=7}if(r.have+c>r.nlen+r.ndist){e.msg=\"invalid bit length repeat\",r.mode=30;break}for(;c--;)r.lens[r.have++]=k}}if(30===r.mode)break;if(0===r.lens[256]){e.msg=\"invalid code -- missing end-of-block\",r.mode=30;break}if(r.lenbits=9,S={bits:r.lenbits},x=R(D,r.lens,0,r.nlen,r.lencode,0,r.work,S),r.lenbits=S.bits,x){e.msg=\"invalid literal/lengths set\",r.mode=30;break}if(r.distbits=6,r.distcode=r.distdyn,S={bits:r.distbits},x=R(F,r.lens,r.nlen,r.ndist,r.distcode,0,r.work,S),r.distbits=S.bits,x){e.msg=\"invalid distances set\",r.mode=30;break}if(r.mode=20,6===t)break e;case 20:r.mode=21;case 21:if(6<=o&&258<=u){e.next_out=a,e.avail_out=u,e.next_in=s,e.avail_in=o,r.hold=h,r.bits=f,T(e,d),a=e.next_out,i=e.output,u=e.avail_out,s=e.next_in,n=e.input,o=e.avail_in,h=r.hold,f=r.bits,12===r.mode&&(r.back=-1);break}for(r.back=0;g=(E=r.lencode[h&(1<>>16&255,v=65535&E,!((_=E>>>24)<=f);){if(0===o)break e;o--,h+=n[s++]<>b)])>>>16&255,v=65535&E,!(b+(_=E>>>24)<=f);){if(0===o)break e;o--,h+=n[s++]<>>=b,f-=b,r.back+=b}if(h>>>=_,f-=_,r.back+=_,r.length=v,0===g){r.mode=26;break}if(32&g){r.back=-1,r.mode=12;break}if(64&g){e.msg=\"invalid literal/length code\",r.mode=30;break}r.extra=15&g,r.mode=22;case 22:if(r.extra){for(z=r.extra;f>>=r.extra,f-=r.extra,r.back+=r.extra}r.was=r.length,r.mode=23;case 23:for(;g=(E=r.distcode[h&(1<>>16&255,v=65535&E,!((_=E>>>24)<=f);){if(0===o)break e;o--,h+=n[s++]<>b)])>>>16&255,v=65535&E,!(b+(_=E>>>24)<=f);){if(0===o)break e;o--,h+=n[s++]<>>=b,f-=b,r.back+=b}if(h>>>=_,f-=_,r.back+=_,64&g){e.msg=\"invalid distance code\",r.mode=30;break}r.offset=v,r.extra=15&g,r.mode=24;case 24:if(r.extra){for(z=r.extra;f>>=r.extra,f-=r.extra,r.back+=r.extra}if(r.offset>r.dmax){e.msg=\"invalid distance too far back\",r.mode=30;break}r.mode=25;case 25:if(0===u)break e;if(c=d-u,r.offset>c){if((c=r.offset-c)>r.whave&&r.sane){e.msg=\"invalid distance too far back\",r.mode=30;break}p=c>r.wnext?(c-=r.wnext,r.wsize-c):r.wnext-c,c>r.length&&(c=r.length),m=r.window}else m=i,p=a-r.offset,c=r.length;for(uc?(m=T[R+a[b]],A[I+a[b]]):(m=96,0),u=1<>S)+(h-=u)]=p<<24|m<<16|_|0,0!==h;);for(u=1<>=1;if(0!==u?(C&=u-1,C+=u):C=0,b++,0==--O[v]){if(v===y)break;v=t[r+a[b]]}if(k>>7)]}function x(e,t){e.pending_buf[e.pending++]=255&t,e.pending_buf[e.pending++]=t>>>8&255}function S(e,t,r){e.bi_valid>i-r?(e.bi_buf|=t<>i-e.bi_valid,e.bi_valid+=r-i):(e.bi_buf|=t<>>=1,r<<=1,0<--t;);return r>>>1}function C(e,t,r){var n,i,s=new Array(_+1),a=0;for(n=1;n<=_;n++)s[n]=a=a+r[n-1]<<1;for(i=0;i<=t;i++){var o=e[2*i+1];0!==o&&(e[2*i]=E(s[o]++,o))}}function A(e){var t;for(t=0;t<286;t++)e.dyn_ltree[2*t]=0;for(t=0;t<30;t++)e.dyn_dtree[2*t]=0;for(t=0;t<19;t++)e.bl_tree[2*t]=0;e.dyn_ltree[512]=1,e.opt_len=e.static_len=0,e.last_lit=e.matches=0}function I(e){8>1;1<=r;r--)B(e,s,r);for(i=u;r=e.heap[1],e.heap[1]=e.heap[e.heap_len--],B(e,s,1),n=e.heap[1],e.heap[--e.heap_max]=r,e.heap[--e.heap_max]=n,s[2*i]=s[2*r]+s[2*n],e.depth[i]=(e.depth[r]>=e.depth[n]?e.depth[r]:e.depth[n])+1,s[2*r+1]=s[2*n+1]=i,e.heap[1]=i++,B(e,s,1),2<=e.heap_len;);e.heap[--e.heap_max]=e.heap[1],function(e,t){var r,n,i,s,a,o,u=t.dyn_tree,h=t.max_code,f=t.stat_desc.static_tree,l=t.stat_desc.has_stree,d=t.stat_desc.extra_bits,c=t.stat_desc.extra_base,p=t.stat_desc.max_length,m=0;for(s=0;s<=_;s++)e.bl_count[s]=0;for(u[2*e.heap[e.heap_max]+1]=0,r=e.heap_max+1;r<573;r++)p<(s=u[2*u[2*(n=e.heap[r])+1]+1]+1)&&(s=p,m++),u[2*n+1]=s,h>=7;n<30;n++)for(w[n]=i<<7,e=0;e<1<>>=1)if(1&r&&0!==e.dyn_ltree[2*t])return 0;if(0!==e.dyn_ltree[18]||0!==e.dyn_ltree[20]||0!==e.dyn_ltree[26])return 1;for(t=32;t<256;t++)if(0!==e.dyn_ltree[2*t])return 1;return 0}(e)),R(e,e.l_desc),R(e,e.d_desc),a=function(e){var t;for(D(e,e.dyn_ltree,e.l_desc.max_code),D(e,e.dyn_dtree,e.d_desc.max_code),R(e,e.bl_desc),t=18;3<=t&&0===e.bl_tree[2*f[t]+1];t--);return e.opt_len+=3*(t+1)+5+5+4,t}(e),i=e.opt_len+3+7>>>3,(s=e.static_len+3+7>>>3)<=i&&(i=s)):i=s=r+5,r+4<=i&&-1!==t?U(e,t,r,n):4===e.strategy||s===i?(S(e,2+(n?1:0),3),T(e,l,d)):(S(e,4+(n?1:0),3),function(e,t,r,n){var i;for(S(e,t-257,5),S(e,r-1,5),S(e,n-4,4),i=0;i>>8&255,e.pending_buf[e.d_buf+2*e.last_lit+1]=255&t,e.pending_buf[e.l_buf+e.last_lit]=255&r,e.last_lit++,0===t?e.dyn_ltree[2*r]++:(e.matches++,t--,e.dyn_ltree[2*(p[r]+256+1)]++,e.dyn_dtree[2*k(t)]++),e.last_lit===e.lit_bufsize-1},r._tr_align=function(e){var t;S(e,2,3),z(e,256,l),16===(t=e).bi_valid?(x(t,t.bi_buf),t.bi_buf=0,t.bi_valid=0):8<=t.bi_valid&&(t.pending_buf[t.pending++]=255&t.bi_buf,t.bi_buf>>=8,t.bi_valid-=8)}},{\"../utils/common\":41}],53:[function(e,t,r){\"use strict\";t.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg=\"\",this.state=null,this.data_type=2,this.adler=0}},{}],54:[function(e,t,r){\"use strict\";t.exports=\"function\"==typeof setImmediate?setImmediate:function(){var e=[].slice.apply(arguments);e.splice(1,0,0),setTimeout.apply(null,e)}},{}]},{},[10])(10)})}).call(this,void 0!==r?r:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{})},{}]},{},[1])(1)})}).call(this,void 0!==r?r:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{})},{}]},{},[1])(1)})}).call(this,void 0!==r?r:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{})},{}]},{},[1])(1)})}).call(this,void 0!==r?r:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{})},{}]},{},[1])(1)})}).call(this,\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{})},{}]},{},[1])(1)});","import convertTo3DZ from './convertTo3DZ';\nimport generateContourLines from './generateContourLines';\n\nexport function add2D(result, options) {\n let zData = convertTo3DZ(result.spectra);\n if (!options.noContours) {\n result.contourLines = generateContourLines(zData);\n }\n result.minMax = zData;\n}\n","/**\n * Those functions should disappear if add2D becomes accessible in jcampconvert\n * @param spectra\n * @returns {{z: Array, minX: *, maxX: *, minY: *, maxY: *, minZ: *, maxZ: *, noise: number}}\n */\n\nexport default function convertTo3DZ(spectra) {\n let noise = 0;\n let minZ = spectra[0].data[0];\n let maxZ = minZ;\n let ySize = spectra.length;\n let xSize = spectra[0].data.length / 2;\n let z = new Array(ySize);\n for (let i = 0; i < ySize; i++) {\n z[i] = new Float64Array(xSize);\n for (let j = 0; j < xSize; j++) {\n z[i][j] = spectra[i].data[j * 2 + 1];\n if (z[i][j] < minZ) minZ = spectra[i].data[j * 2 + 1];\n if (z[i][j] > maxZ) maxZ = spectra[i].data[j * 2 + 1];\n if (i !== 0 && j !== 0) {\n noise +=\n Math.abs(z[i][j] - z[i][j - 1]) + Math.abs(z[i][j] - z[i - 1][j]);\n }\n }\n }\n const firstX = spectra[0].data[0];\n const lastX = spectra[0].data[spectra[0].data.length - 2]; // has to be -2 because it is a 1D array [x,y,x,y,...]\n const firstY = spectra[0].pageValue;\n const lastY = spectra[ySize - 1].pageValue;\n\n // Because the min / max value are the only information about the matrix if we invert\n // min and max we need to invert the array\n if (firstX > lastX) {\n for (let spectrum of z) {\n spectrum.reverse();\n }\n }\n if (firstY > lastY) {\n z.reverse();\n }\n\n let minMaxX =\n firstX < lastX\n ? { minX: firstX, maxX: lastX }\n : { minX: lastX, maxX: firstX };\n let minMaxY =\n firstY < lastY\n ? { minY: firstY, maxY: lastY }\n : { minY: lastY, maxY: firstY };\n\n return {\n z,\n minZ: minZ,\n maxZ: maxZ,\n ...minMaxX,\n ...minMaxY,\n noise: noise / ((ySize - 1) * (xSize - 1) * 2),\n };\n}\n","export default function generateContourLines(zData) {\n let noise = zData.noise;\n let z = zData.z;\n let contourLevels = [];\n let nbLevels = 7;\n let povarHeight = new Float32Array(4);\n let isOver = [];\n let nbSubSpectra = z.length;\n let nbPovars = z[0].length;\n let pAx, pAy, pBx, pBy;\n\n let x0 = zData.minX;\n let xN = zData.maxX;\n let dx = (xN - x0) / (nbPovars - 1);\n let y0 = zData.minY;\n let yN = zData.maxY;\n let dy = (yN - y0) / (nbSubSpectra - 1);\n let minZ = zData.minZ;\n let maxZ = zData.maxZ;\n\n // System.out.prvarln('y0 '+y0+' yN '+yN);\n // -------------------------\n // Povars attribution\n //\n // 0----1\n // | / |\n // | / |\n // 2----3\n //\n // ---------------------d------\n\n let lineZValue;\n for (let level = 0; level < nbLevels * 2; level++) {\n // multiply by 2 for positif and negatif\n let contourLevel = {};\n contourLevels.push(contourLevel);\n let side = level % 2;\n if (side === 0) {\n lineZValue =\n (maxZ - 5 * noise) * Math.exp(level / 2 - nbLevels) + 5 * noise;\n } else {\n lineZValue =\n -(maxZ - 5 * noise) * Math.exp(level / 2 - nbLevels) - 5 * noise;\n }\n let lines = [];\n contourLevel.zValue = lineZValue;\n contourLevel.lines = lines;\n\n if (lineZValue <= minZ || lineZValue >= maxZ) continue;\n\n for (let iSubSpectra = 0; iSubSpectra < nbSubSpectra - 1; iSubSpectra++) {\n for (let povar = 0; povar < nbPovars - 1; povar++) {\n povarHeight[0] = z[iSubSpectra][povar];\n povarHeight[1] = z[iSubSpectra][povar + 1];\n povarHeight[2] = z[iSubSpectra + 1][povar];\n povarHeight[3] = z[iSubSpectra + 1][povar + 1];\n\n for (let i = 0; i < 4; i++) {\n isOver[i] = povarHeight[i] > lineZValue;\n }\n\n // Example povar0 is over the plane and povar1 and\n // povar2 are below, we find the varersections and add\n // the segment\n if (isOver[0] !== isOver[1] && isOver[0] !== isOver[2]) {\n pAx =\n povar +\n (lineZValue - povarHeight[0]) / (povarHeight[1] - povarHeight[0]);\n pAy = iSubSpectra;\n pBx = povar;\n pBy =\n iSubSpectra +\n (lineZValue - povarHeight[0]) / (povarHeight[2] - povarHeight[0]);\n lines.push(\n pAx * dx + x0,\n pAy * dy + y0,\n pBx * dx + x0,\n pBy * dy + y0,\n );\n }\n if (isOver[3] !== isOver[1] && isOver[3] !== isOver[2]) {\n pAx = povar + 1;\n pAy =\n iSubSpectra +\n 1 -\n (lineZValue - povarHeight[3]) / (povarHeight[1] - povarHeight[3]);\n pBx =\n povar +\n 1 -\n (lineZValue - povarHeight[3]) / (povarHeight[2] - povarHeight[3]);\n pBy = iSubSpectra + 1;\n lines.push(\n pAx * dx + x0,\n pAy * dy + y0,\n pBx * dx + x0,\n pBy * dy + y0,\n );\n }\n // test around the diagonal\n if (isOver[1] !== isOver[2]) {\n pAx =\n povar +\n 1 -\n (lineZValue - povarHeight[1]) / (povarHeight[2] - povarHeight[1]);\n pAy =\n iSubSpectra +\n (lineZValue - povarHeight[1]) / (povarHeight[2] - povarHeight[1]);\n if (isOver[1] !== isOver[0]) {\n pBx =\n povar +\n 1 -\n (lineZValue - povarHeight[1]) / (povarHeight[0] - povarHeight[1]);\n pBy = iSubSpectra;\n lines.push(\n pAx * dx + x0,\n pAy * dy + y0,\n pBx * dx + x0,\n pBy * dy + y0,\n );\n }\n if (isOver[2] !== isOver[0]) {\n pBx = povar;\n pBy =\n iSubSpectra +\n 1 -\n (lineZValue - povarHeight[2]) / (povarHeight[0] - povarHeight[2]);\n lines.push(\n pAx * dx + x0,\n pAy * dy + y0,\n pBx * dx + x0,\n pBy * dy + y0,\n );\n }\n if (isOver[1] !== isOver[3]) {\n pBx = povar + 1;\n pBy =\n iSubSpectra +\n (lineZValue - povarHeight[1]) / (povarHeight[3] - povarHeight[1]);\n lines.push(\n pAx * dx + x0,\n pAy * dy + y0,\n pBx * dx + x0,\n pBy * dy + y0,\n );\n }\n if (isOver[2] !== isOver[3]) {\n pBx =\n povar +\n (lineZValue - povarHeight[2]) / (povarHeight[3] - povarHeight[2]);\n pBy = iSubSpectra + 1;\n lines.push(\n pAx * dx + x0,\n pAy * dy + y0,\n pBx * dx + x0,\n pBy * dy + y0,\n );\n }\n }\n }\n }\n }\n\n return {\n minX: zData.minX,\n maxX: zData.maxX,\n minY: zData.minY,\n maxY: zData.maxY,\n segments: contourLevels,\n };\n}\n","const GC_MS_FIELDS = ['TIC', '.RIC', 'SCANNUMBER'];\n\nexport function complexChromatogram(result) {\n let spectra = result.spectra;\n let length = spectra.length;\n let chromatogram = {\n times: new Array(length),\n series: {\n ms: {\n dimension: 2,\n data: new Array(length),\n },\n },\n };\n\n let existingGCMSFields = [];\n for (let i = 0; i < GC_MS_FIELDS.length; i++) {\n let label = convertMSFieldToLabel(GC_MS_FIELDS[i]);\n if (spectra[0][label]) {\n existingGCMSFields.push(label);\n chromatogram.series[label] = {\n dimension: 1,\n data: new Array(length),\n };\n }\n }\n\n for (let i = 0; i < length; i++) {\n let spectrum = spectra[i];\n chromatogram.times[i] = spectrum.pageValue;\n for (let j = 0; j < existingGCMSFields.length; j++) {\n chromatogram.series[existingGCMSFields[j]].data[i] = parseFloat(\n spectrum[existingGCMSFields[j]],\n );\n }\n if (spectrum.data) {\n chromatogram.series.ms.data[i] = [spectrum.data.x, spectrum.data.y];\n }\n }\n result.chromatogram = chromatogram;\n}\n\nexport function isMSField(canonicDataLabel) {\n return GC_MS_FIELDS.indexOf(canonicDataLabel) !== -1;\n}\n\nexport function convertMSFieldToLabel(value) {\n return value.toLowerCase().replace(/[^a-z0-9]/g, '');\n}\n","export default function convertToFloatArray(stringArray) {\n let floatArray = [];\n for (let i = 0; i < stringArray.length; i++) {\n floatArray.push(parseFloat(stringArray[i]));\n }\n return floatArray;\n}\n","export default function fastParseXYData(spectrum, value) {\n // TODO need to deal with result\n // console.log(value);\n // we check if deltaX is defined otherwise we calculate it\n\n let yFactor = spectrum.yFactor;\n let deltaX = spectrum.deltaX;\n\n spectrum.isXYdata = true;\n let currentData = { x: [], y: [] };\n spectrum.data = currentData;\n\n let currentX = spectrum.firstX;\n let currentY = spectrum.firstY;\n\n // we skip the first line\n //\n let endLine = false;\n let ascii;\n let i = 0;\n for (; i < value.length; i++) {\n ascii = value.charCodeAt(i);\n if (ascii === 13 || ascii === 10) {\n endLine = true;\n } else {\n if (endLine) break;\n }\n }\n\n // we proceed taking the i after the first line\n let newLine = true;\n let isDifference = false;\n let isLastDifference = false;\n let lastDifference = 0;\n let isDuplicate = false;\n let inComment = false;\n let currentValue = 0; // can be a difference or a duplicate\n let lastValue = 0; // must be the real last value\n let isNegative = false;\n let inValue = false;\n let skipFirstValue = false;\n let decimalPosition = 0;\n for (; i <= value.length; i++) {\n if (i === value.length) ascii = 13;\n else ascii = value.charCodeAt(i);\n if (inComment) {\n // we should ignore the text if we are after $$\n if (ascii === 13 || ascii === 10) {\n newLine = true;\n inComment = false;\n }\n } else {\n // when is it a new value ?\n // when it is not a digit, . or comma\n // it is a number that is either new or we continue\n if (ascii <= 57 && ascii >= 48) {\n // a number\n inValue = true;\n if (decimalPosition > 0) {\n currentValue += (ascii - 48) / Math.pow(10, decimalPosition++);\n } else {\n currentValue *= 10;\n currentValue += ascii - 48;\n }\n } else if (ascii === 44 || ascii === 46) {\n // a \",\" or \".\"\n inValue = true;\n decimalPosition++;\n } else {\n if (inValue) {\n // need to process the previous value\n if (newLine) {\n newLine = false; // we don't check the X value\n // console.log(\"NEW LINE\",isDifference, lastDifference);\n // if new line and lastDifference, the first value is just a check !\n // that we don't check ...\n if (isLastDifference) skipFirstValue = true;\n } else {\n // need to deal with duplicate and differences\n if (skipFirstValue) {\n skipFirstValue = false;\n } else {\n if (isDifference) {\n lastDifference = isNegative ? 0 - currentValue : currentValue;\n isLastDifference = true;\n isDifference = false;\n } else if (!isDuplicate) {\n lastValue = isNegative ? 0 - currentValue : currentValue;\n }\n let duplicate = isDuplicate ? currentValue - 1 : 1;\n for (let j = 0; j < duplicate; j++) {\n if (isLastDifference) {\n currentY += lastDifference;\n } else {\n currentY = lastValue;\n }\n currentData.x.push(currentX);\n currentData.y.push(currentY * yFactor);\n currentX += deltaX;\n }\n }\n }\n isNegative = false;\n currentValue = 0;\n decimalPosition = 0;\n inValue = false;\n isDuplicate = false;\n }\n\n // positive SQZ digits @ A B C D E F G H I (ascii 64-73)\n if (ascii < 74 && ascii > 63) {\n inValue = true;\n isLastDifference = false;\n currentValue = ascii - 64;\n } else if (ascii > 96 && ascii < 106) {\n // negative SQZ digits a b c d e f g h i (ascii 97-105)\n inValue = true;\n isLastDifference = false;\n currentValue = ascii - 96;\n isNegative = true;\n } else if (ascii === 115) {\n // DUP digits S T U V W X Y Z s (ascii 83-90, 115)\n inValue = true;\n isDuplicate = true;\n currentValue = 9;\n } else if (ascii > 82 && ascii < 91) {\n inValue = true;\n isDuplicate = true;\n currentValue = ascii - 82;\n } else if (ascii > 73 && ascii < 83) {\n // positive DIF digits % J K L M N O P Q R (ascii 37, 74-82)\n inValue = true;\n isDifference = true;\n currentValue = ascii - 73;\n } else if (ascii > 105 && ascii < 115) {\n // negative DIF digits j k l m n o p q r (ascii 106-114)\n inValue = true;\n isDifference = true;\n currentValue = ascii - 105;\n isNegative = true;\n } else if (ascii === 36 && value.charCodeAt(i + 1) === 36) {\n // $ sign, we need to check the next one\n inValue = true;\n inComment = true;\n } else if (ascii === 37) {\n // positive DIF digits % J K L M N O P Q R (ascii 37, 74-82)\n inValue = true;\n isDifference = true;\n currentValue = 0;\n isNegative = false;\n } else if (ascii === 45) {\n // a \"-\"\n // check if after there is a number, decimal or comma\n let ascii2 = value.charCodeAt(i + 1);\n if (\n (ascii2 >= 48 && ascii2 <= 57) ||\n ascii2 === 44 ||\n ascii2 === 46\n ) {\n inValue = true;\n if (!newLine) isLastDifference = false;\n isNegative = true;\n }\n } else if (ascii === 13 || ascii === 10) {\n newLine = true;\n inComment = false;\n }\n // and now analyse the details ... space or tabulation\n // if \"+\" we just don't care\n }\n }\n }\n}\n","const removeCommentRegExp = /\\$\\$.*/;\nconst peakTableSplitRegExp = /[,\\t ]+/;\n\nexport default function parsePeakTable(spectrum, value, result) {\n spectrum.isPeaktable = true;\n\n if (!spectrum.variables || Object.keys(spectrum.variables) === 2) {\n parseXY(spectrum, value, result);\n } else {\n parseXYZ(spectrum, value, result);\n }\n\n // we will add the data in the variables\n if (spectrum.variables) {\n for (let key in spectrum.variables) {\n spectrum.variables[key].data = spectrum.data[key];\n }\n }\n}\n\nfunction parseXY(spectrum, value, result) {\n let currentData = { x: [], y: [] };\n spectrum.data = currentData;\n\n // counts for around 20% of the time\n let lines = value.split(/,? *,?[;\\r\\n]+ */);\n\n for (let i = 1; i < lines.length; i++) {\n let values = lines[i]\n .trim()\n .replace(removeCommentRegExp, '')\n .split(peakTableSplitRegExp);\n if (values.length % 2 === 0) {\n for (let j = 0; j < values.length; j = j + 2) {\n // takes around 40% of the time to add and parse the 2 values nearly exclusively because of parseFloat\n currentData.x.push(parseFloat(values[j]) * spectrum.xFactor);\n currentData.y.push(parseFloat(values[j + 1]) * spectrum.yFactor);\n }\n } else {\n result.logs.push(`Format error: ${values}`);\n }\n }\n}\n\nfunction parseXYZ(spectrum, value, result) {\n let currentData = {};\n let variables = Object.keys(spectrum.variables);\n let numberOfVariables = variables.length;\n variables.forEach((variable) => (currentData[variable] = []));\n spectrum.data = currentData;\n\n // counts for around 20% of the time\n let lines = value.split(/,? *,?[;\\r\\n]+ */);\n\n for (let i = 1; i < lines.length; i++) {\n let values = lines[i]\n .trim()\n .replace(removeCommentRegExp, '')\n .split(peakTableSplitRegExp);\n if (values.length % numberOfVariables === 0) {\n for (let j = 0; j < values.length; j++) {\n // todo should try to find a xFactor (y, ...)\n currentData[variables[j % numberOfVariables]].push(\n parseFloat(values[j]),\n );\n }\n } else {\n result.logs.push(`Format error: ${values}`);\n }\n }\n}\n","export default function parseXYA(spectrum, value) {\n let removeSymbolRegExp = /(\\(+|\\)+|<+|>+|\\s+)/g;\n\n spectrum.isXYAdata = true;\n let values;\n let currentData = { x: [], y: [] };\n spectrum.data = currentData;\n\n let lines = value.split(/,? *,?[;\\r\\n]+ */);\n\n for (let i = 1; i < lines.length; i++) {\n values = lines[i].trim().replace(removeSymbolRegExp, '').split(',');\n currentData.x.push(parseFloat(values[0]));\n currentData.y.push(parseFloat(values[1]));\n }\n}\n","import convertTo3DZ from './convertTo3DZ';\nimport generateContourLines from './generateContourLines';\n\nexport default function add2D(result, options) {\n let zData = convertTo3DZ(result.spectra);\n if (!options.noContour) {\n result.contourLines = generateContourLines(zData, options);\n delete zData.z;\n }\n result.minMax = zData;\n}\n","import getMedian from 'ml-array-median';\n\nexport default function convertTo3DZ(spectra) {\n let minZ = spectra[0].data.y[0];\n let maxZ = minZ;\n let ySize = spectra.length;\n let xSize = spectra[0].data.x.length;\n\n let z = new Array(ySize);\n for (let i = 0; i < ySize; i++) {\n z[i] = spectra[i].data.y;\n for (let j = 0; j < xSize; j++) {\n let value = z[i][j];\n if (value < minZ) minZ = value;\n if (value > maxZ) maxZ = value;\n }\n }\n\n const firstX = spectra[0].data.x[0];\n const lastX = spectra[0].data.x[spectra[0].data.x.length - 1]; // has to be -2 because it is a 1D array [x,y,x,y,...]\n const firstY = spectra[0].pageValue;\n const lastY = spectra[ySize - 1].pageValue;\n\n // Because the min / max value are the only information about the matrix if we invert\n // min and max we need to invert the array\n if (firstX > lastX) {\n for (let spectrum of z) {\n spectrum.reverse();\n }\n }\n if (firstY > lastY) {\n z.reverse();\n }\n\n const medians = [];\n for (let i = 0; i < z.length; i++) {\n const row = Float64Array.from(z[i]);\n for (let i = 0; i < row.length; i++) {\n if (row[i] < 0) row[i] = -row[i];\n }\n medians.push(getMedian(row));\n }\n const median = getMedian(medians);\n\n return {\n z: z,\n minX: Math.min(firstX, lastX),\n maxX: Math.max(firstX, lastX),\n minY: Math.min(firstY, lastY),\n maxY: Math.max(firstY, lastY),\n minZ: minZ,\n maxZ: maxZ,\n noise: median,\n };\n}\n","export default function generateContourLines(zData, options) {\n let noise = zData.noise;\n let z = zData.z;\n let povarHeight0, povarHeight1, povarHeight2, povarHeight3;\n let isOver0, isOver1, isOver2, isOver3;\n let nbSubSpectra = z.length;\n let nbPovars = z[0].length;\n let pAx, pAy, pBx, pBy;\n\n let x0 = zData.minX;\n let xN = zData.maxX;\n let dx = (xN - x0) / (nbPovars - 1);\n let y0 = zData.minY;\n let yN = zData.maxY;\n let dy = (yN - y0) / (nbSubSpectra - 1);\n let minZ = zData.minZ;\n let maxZ = zData.maxZ;\n\n // System.out.prvarln('y0 '+y0+' yN '+yN);\n // -------------------------\n // Povars attribution\n //\n // 0----1\n // | / |\n // | / |\n // 2----3\n //\n // ---------------------d------\n\n let iter = options.nbContourLevels * 2;\n let contourLevels = new Array(iter);\n let lineZValue;\n for (let level = 0; level < iter; level++) {\n // multiply by 2 for positif and negatif\n let contourLevel = {};\n contourLevels[level] = contourLevel;\n let side = level % 2;\n let factor =\n (maxZ - options.noiseMultiplier * noise) *\n Math.exp((level >> 1) - options.nbContourLevels);\n if (side === 0) {\n lineZValue = factor + options.noiseMultiplier * noise;\n } else {\n lineZValue = 0 - factor - options.noiseMultiplier * noise;\n }\n let lines = [];\n contourLevel.zValue = lineZValue;\n contourLevel.lines = lines;\n\n if (lineZValue <= minZ || lineZValue >= maxZ) continue;\n\n for (let iSubSpectra = 0; iSubSpectra < nbSubSpectra - 1; iSubSpectra++) {\n let subSpectra = z[iSubSpectra];\n let subSpectraAfter = z[iSubSpectra + 1];\n for (let povar = 0; povar < nbPovars - 1; povar++) {\n povarHeight0 = subSpectra[povar];\n povarHeight1 = subSpectra[povar + 1];\n povarHeight2 = subSpectraAfter[povar];\n povarHeight3 = subSpectraAfter[povar + 1];\n\n isOver0 = povarHeight0 > lineZValue;\n isOver1 = povarHeight1 > lineZValue;\n isOver2 = povarHeight2 > lineZValue;\n isOver3 = povarHeight3 > lineZValue;\n\n // Example povar0 is over the plane and povar1 and\n // povar2 are below, we find the varersections and add\n // the segment\n if (isOver0 !== isOver1 && isOver0 !== isOver2) {\n pAx =\n povar + (lineZValue - povarHeight0) / (povarHeight1 - povarHeight0);\n pAy = iSubSpectra;\n pBx = povar;\n pBy =\n iSubSpectra +\n (lineZValue - povarHeight0) / (povarHeight2 - povarHeight0);\n lines.push(pAx * dx + x0);\n lines.push(pAy * dy + y0);\n lines.push(pBx * dx + x0);\n lines.push(pBy * dy + y0);\n }\n // remove push does not help !!!!\n if (isOver3 !== isOver1 && isOver3 !== isOver2) {\n pAx = povar + 1;\n pAy =\n iSubSpectra +\n 1 -\n (lineZValue - povarHeight3) / (povarHeight1 - povarHeight3);\n pBx =\n povar +\n 1 -\n (lineZValue - povarHeight3) / (povarHeight2 - povarHeight3);\n pBy = iSubSpectra + 1;\n lines.push(pAx * dx + x0);\n lines.push(pAy * dy + y0);\n lines.push(pBx * dx + x0);\n lines.push(pBy * dy + y0);\n }\n // test around the diagonal\n if (isOver1 !== isOver2) {\n pAx =\n (povar +\n 1 -\n (lineZValue - povarHeight1) / (povarHeight2 - povarHeight1)) *\n dx +\n x0;\n pAy =\n (iSubSpectra +\n (lineZValue - povarHeight1) / (povarHeight2 - povarHeight1)) *\n dy +\n y0;\n if (isOver1 !== isOver0) {\n pBx =\n povar +\n 1 -\n (lineZValue - povarHeight1) / (povarHeight0 - povarHeight1);\n pBy = iSubSpectra;\n lines.push(pAx);\n lines.push(pAy);\n lines.push(pBx * dx + x0);\n lines.push(pBy * dy + y0);\n }\n if (isOver2 !== isOver0) {\n pBx = povar;\n pBy =\n iSubSpectra +\n 1 -\n (lineZValue - povarHeight2) / (povarHeight0 - povarHeight2);\n lines.push(pAx);\n lines.push(pAy);\n lines.push(pBx * dx + x0);\n lines.push(pBy * dy + y0);\n }\n if (isOver1 !== isOver3) {\n pBx = povar + 1;\n pBy =\n iSubSpectra +\n (lineZValue - povarHeight1) / (povarHeight3 - povarHeight1);\n lines.push(pAx);\n lines.push(pAy);\n lines.push(pBx * dx + x0);\n lines.push(pBy * dy + y0);\n }\n if (isOver2 !== isOver3) {\n pBx =\n povar +\n (lineZValue - povarHeight2) / (povarHeight3 - povarHeight2);\n pBy = iSubSpectra + 1;\n lines.push(pAx);\n lines.push(pAy);\n lines.push(pBx * dx + x0);\n lines.push(pBy * dy + y0);\n }\n }\n }\n }\n }\n\n return {\n minX: zData.minX,\n maxX: zData.maxX,\n minY: zData.minY,\n maxY: zData.maxY,\n segments: contourLevels,\n };\n}\n","export default function profiling(result, action, options) {\n if (result.profiling) {\n result.profiling.push({\n action,\n time: Date.now() - options.start,\n });\n }\n}\n","export default function simpleChromatogram(result) {\n let data = result.spectra[0].data;\n result.chromatogram = {\n times: data.x.slice(),\n series: {\n intensity: {\n dimension: 1,\n data: data.y.slice(),\n },\n },\n };\n}\n","import add2D from './2d/add2D';\nimport { complexChromatogram } from './complexChromatogram';\nimport postProcessingNMR from './postProcessingNMR';\nimport profiling from './profiling';\nimport simpleChromatogram from './simpleChromatogram';\n\nexport default function postProcessing(entriesFlat, result, options) {\n // converting Hz to ppm\n postProcessingNMR(entriesFlat);\n\n for (let entry of entriesFlat) {\n if (Object.keys(entry.ntuples).length > 0) {\n let newNtuples = [];\n let keys = Object.keys(entry.ntuples);\n for (let i = 0; i < keys.length; i++) {\n let key = keys[i];\n let values = entry.ntuples[key];\n for (let j = 0; j < values.length; j++) {\n if (!newNtuples[j]) newNtuples[j] = {};\n newNtuples[j][key] = values[j];\n }\n }\n entry.ntuples = newNtuples;\n }\n\n if (entry.twoD && options.wantXY) {\n add2D(entry, options);\n\n profiling(result, 'Finished countour plot calculation', options);\n\n if (!options.keepSpectra) {\n delete entry.spectra;\n }\n }\n\n // maybe it is a GC (HPLC) / MS. In this case we add a new format\n if (options.chromatogram) {\n if (entry.spectra.length > 1) {\n complexChromatogram(entry);\n } else {\n simpleChromatogram(entry);\n }\n profiling(result, 'Finished chromatogram calculation', options);\n }\n\n delete entry.tmp;\n }\n}\n","import { gyromagneticRatio } from 'nmr-processing';\n\nexport default function postProcessingNMR(entriesFlat) {\n // specific NMR functions\n\n for (let entry of entriesFlat) {\n let observeFrequency = 0;\n let shiftOffsetVal = 0;\n for (let spectrum of entry.spectra) {\n if (entry.ntuples && entry.ntuples.symbol) {\n if (!observeFrequency && spectrum.observeFrequency) {\n observeFrequency = spectrum.observeFrequency;\n }\n if (!shiftOffsetVal && spectrum.shiftOffsetVal) {\n shiftOffsetVal = spectrum.shiftOffsetVal;\n }\n } else {\n observeFrequency = spectrum.observeFrequency;\n shiftOffsetVal = spectrum.shiftOffsetVal;\n }\n\n if (observeFrequency) {\n if (spectrum.xUnits && spectrum.xUnits.toUpperCase().includes('HZ')) {\n spectrum.xUnits = 'PPM';\n spectrum.xFactor = spectrum.xFactor / observeFrequency;\n spectrum.firstX = spectrum.firstX / observeFrequency;\n spectrum.lastX = spectrum.lastX / observeFrequency;\n spectrum.deltaX = spectrum.deltaX / observeFrequency;\n for (let i = 0; i < spectrum.data.x.length; i++) {\n spectrum.data.x[i] /= observeFrequency;\n }\n }\n }\n if (shiftOffsetVal) {\n let shift = spectrum.firstX - shiftOffsetVal;\n spectrum.firstX = spectrum.firstX - shift;\n spectrum.lastX = spectrum.lastX - shift;\n for (let i = 0; i < spectrum.data.x.length; i++) {\n spectrum.data.x[i] -= shift;\n }\n }\n\n // we will check if some nucleus are missing ...\n if (entry.ntuples && entry.ntuples.nucleus && entry.ntuples.symbol) {\n for (let i = 0; i < entry.ntuples.nucleus.length; i++) {\n let symbol = entry.ntuples.symbol[i];\n let nucleus = entry.ntuples.nucleus[i];\n if (symbol.startsWith('F') && !nucleus) {\n if (symbol === 'F1') {\n // if F1 is defined we will use F2\n if (entry.tmp.$NUC2) {\n entry.ntuples.nucleus[i] = entry.tmp.$NUC2;\n } else {\n let f2index = entry.ntuples.symbol.indexOf('F2');\n if (f2index && entry.ntuples.nucleus[f2index]) {\n entry.ntuples.nucleus[i] = entry.ntuples.nucleus[f2index];\n }\n }\n }\n if (symbol === 'F2') entry.ntuples.nucleus[i] = entry.tmp.$NUC1;\n }\n if (symbol === 'F2') {\n entry.yType = entry.ntuples.nucleus[0];\n }\n }\n }\n\n if (\n observeFrequency &&\n entry.ntuples &&\n entry.ntuples.symbol &&\n entry.ntuples.nucleus\n ) {\n let unit = '';\n let pageSymbolIndex = entry.ntuples.symbol.indexOf(spectrum.pageSymbol);\n if (entry.ntuples.units && entry.ntuples.units[pageSymbolIndex]) {\n unit = entry.ntuples.units[pageSymbolIndex];\n }\n if (unit !== 'PPM') {\n if (pageSymbolIndex !== 0) {\n throw Error('Not sure about this ntuples format');\n }\n\n let ratio0 = gyromagneticRatio[entry.ntuples.nucleus[0]];\n let ratio1 = gyromagneticRatio[entry.ntuples.nucleus[1]];\n if (!ratio0 || !ratio1) {\n throw Error('Problem with determination of gyromagnetic ratio');\n }\n let ratio = (ratio0 / ratio1) * observeFrequency;\n spectrum.pageValue /= ratio;\n }\n }\n }\n }\n}\n","export default function prepareNtuplesDatatable(currentEntry, spectrum, kind) {\n let xIndex = -1;\n let yIndex = -1;\n let firstVariable = '';\n let secondVariable = '';\n if (kind.indexOf('++') > 0) {\n firstVariable = kind.replace(/.*\\(([a-zA-Z0-9]+)\\+\\+.*/, '$1');\n secondVariable = kind.replace(/.*\\.\\.([a-zA-Z0-9]+).*/, '$1');\n } else {\n kind = kind.replace(/[^a-zA-Z]/g, '');\n firstVariable = kind.charAt(0);\n secondVariable = kind.charAt(1);\n spectrum.variables = {};\n for (let symbol of kind) {\n let lowerCaseSymbol = symbol.toLowerCase();\n let index = currentEntry.ntuples.symbol.indexOf(symbol);\n if (index === -1) throw Error(`Symbol undefined: ${symbol}`);\n spectrum.variables[lowerCaseSymbol] = {};\n for (let key in currentEntry.ntuples) {\n if (currentEntry.ntuples[key][index]) {\n spectrum.variables[lowerCaseSymbol][key.replace(/^var/, '')] =\n currentEntry.ntuples[key][index];\n }\n }\n }\n }\n xIndex = currentEntry.ntuples.symbol.indexOf(firstVariable);\n yIndex = currentEntry.ntuples.symbol.indexOf(secondVariable);\n\n if (xIndex === -1) xIndex = 0;\n if (yIndex === -1) yIndex = 0;\n\n if (currentEntry.ntuples.first) {\n if (currentEntry.ntuples.first.length > xIndex) {\n spectrum.firstX = currentEntry.ntuples.first[xIndex];\n }\n if (currentEntry.ntuples.first.length > yIndex) {\n spectrum.firstY = currentEntry.ntuples.first[yIndex];\n }\n }\n if (currentEntry.ntuples.last) {\n if (currentEntry.ntuples.last.length > xIndex) {\n spectrum.lastX = currentEntry.ntuples.last[xIndex];\n }\n if (currentEntry.ntuples.last.length > yIndex) {\n spectrum.lastY = currentEntry.ntuples.last[yIndex];\n }\n }\n if (\n currentEntry.ntuples.vardim &&\n currentEntry.ntuples.vardim.length > xIndex\n ) {\n spectrum.nbPoints = currentEntry.ntuples.vardim[xIndex];\n }\n if (currentEntry.ntuples.factor) {\n if (currentEntry.ntuples.factor.length > xIndex) {\n spectrum.xFactor = currentEntry.ntuples.factor[xIndex];\n }\n if (currentEntry.ntuples.factor.length > yIndex) {\n spectrum.yFactor = currentEntry.ntuples.factor[yIndex];\n }\n }\n if (currentEntry.ntuples.units) {\n if (currentEntry.ntuples.units.length > xIndex) {\n if (\n currentEntry.ntuples.varname &&\n currentEntry.ntuples.varname[xIndex]\n ) {\n spectrum.xUnits = `${currentEntry.ntuples.varname[xIndex]} [${currentEntry.ntuples.units[xIndex]}]`;\n } else {\n spectrum.xUnits = currentEntry.ntuples.units[xIndex];\n }\n }\n if (currentEntry.ntuples.units.length > yIndex) {\n if (\n currentEntry.ntuples.varname &&\n currentEntry.ntuples.varname[yIndex]\n ) {\n spectrum.yUnits = `${currentEntry.ntuples.varname[yIndex]} [${currentEntry.ntuples.units[yIndex]}]`;\n } else {\n spectrum.yUnits = currentEntry.ntuples.units[yIndex];\n }\n }\n }\n}\n","export default function prepareSpectrum(spectrum) {\n if (!spectrum.xFactor) spectrum.xFactor = 1;\n if (!spectrum.yFactor) spectrum.yFactor = 1;\n}\n","import { ensureString } from 'ensure-string';\n\nimport { isMSField, convertMSFieldToLabel } from './complexChromatogram';\nimport convertToFloatArray from './convertToFloatArray';\nimport fastParseXYData from './parse/fastParseXYData';\nimport parsePeakTable from './parse/parsePeakTable';\nimport parseXYA from './parse/parseXYA';\nimport postProcessing from './postProcessing';\nimport prepareNtuplesDatatable from './prepareNtuplesDatatable';\nimport prepareSpectrum from './prepareSpectrum';\nimport profiling from './profiling';\n\n// the following RegExp can only be used for XYdata, some peakTables have values with a \"E-5\" ...\nconst ntuplesSeparatorRegExp = /[ \\t]*,[ \\t]*/;\nconst numberRegExp = /^[-+]?[0-9]*\\.?[0-9]+(e[-+]?[0-9]+)?$/;\n\nclass Spectrum {}\n\nconst defaultOptions = {\n keepRecordsRegExp: /^$/,\n canonicDataLabels: true,\n canonicMetadataLabels: false,\n dynamicTyping: true,\n withoutXY: false,\n chromatogram: false,\n keepSpectra: false,\n noContour: false,\n nbContourLevels: 7,\n noiseMultiplier: 5,\n profiling: false,\n};\n\n/**\n *\n * @param {string|ArrayBuffer} jcamp\n * @param {object} [options]\n * @param {number} [options.keepRecordsRegExp=/^$/] By default we don't keep meta information\n * @param {number} [options.canonicDataLabels=true] Canonize the Labels (uppercase without symbol)\n * @param {number} [options.canonicMetadataLabels=false] Canonize the metadata Labels (uppercase without symbol)\n * @param {number} [options.dynamicTyping=false] Convert numbers to Number\n * @param {number} [options.withoutXY=false] Remove the XY data\n * @param {number} [options.chromatogram=false] Special post-processing for GC / HPLC / MS\n * @param {number} [options.keepSpectra=false] Force to keep the spectra in case of 2D\n * @param {number} [options.noContour=false] Don't calculate countour in case of 2D\n * @param {number} [options.nbContourLevels=7] Number of positive / negative contour levels to calculate\n * @param {number} [options.noiseMultiplier=5] Define for 2D the level as 5 times the median as default\n * @param {number} [options.profiling=false] Add profiling information\n */\n\nexport default function convert(jcamp, options = {}) {\n jcamp = ensureString(jcamp);\n options = { ...defaultOptions, ...options };\n options.wantXY = !options.withoutXY;\n options.start = Date.now();\n\n let entriesFlat = [];\n\n let result = {\n profiling: options.profiling ? [] : false,\n logs: [],\n entries: [],\n };\n\n let tmpResult = { children: [] };\n let currentEntry = tmpResult;\n let parentsStack = [];\n\n let spectrum = new Spectrum();\n\n if (typeof jcamp !== 'string') {\n throw new TypeError('the JCAMP should be a string');\n }\n\n profiling(result, 'Before split to LDRS', options);\n\n let ldrs = jcamp.replace(/[\\r\\n]+##/g, '\\n##').split('\\n##');\n\n profiling(result, 'Split to LDRS', options);\n\n if (ldrs[0]) ldrs[0] = ldrs[0].replace(/^[\\r\\n ]*##/, '');\n\n for (let ldr of ldrs) {\n // This is a new LDR\n let position = ldr.indexOf('=');\n let dataLabel = position > 0 ? ldr.substring(0, position) : ldr;\n let dataValue = position > 0 ? ldr.substring(position + 1).trim() : '';\n\n let canonicDataLabel = dataLabel.replace(/[_ -]/g, '').toUpperCase();\n\n if (canonicDataLabel === 'DATATABLE') {\n let endLine = dataValue.indexOf('\\n');\n if (endLine === -1) endLine = dataValue.indexOf('\\r');\n if (endLine > 0) {\n // ##DATA TABLE= (X++(I..I)), XYDATA\n // We need to find the variables\n\n let infos = dataValue.substring(0, endLine).split(/[ ,;\\t]+/);\n prepareNtuplesDatatable(currentEntry, spectrum, infos[0]);\n\n spectrum.datatable = infos[0];\n if (infos[1] && infos[1].indexOf('PEAKS') > -1) {\n canonicDataLabel = 'PEAKTABLE';\n } else if (\n infos[1] &&\n (infos[1].indexOf('XYDATA') || infos[0].indexOf('++') > 0)\n ) {\n canonicDataLabel = 'XYDATA';\n spectrum.deltaX =\n (spectrum.lastX - spectrum.firstX) / (spectrum.nbPoints - 1);\n }\n }\n }\n\n if (canonicDataLabel === 'XYDATA') {\n if (options.wantXY) {\n prepareSpectrum(spectrum);\n // well apparently we should still consider it is a PEAK TABLE if there are no '++' after\n if (dataValue.match(/.*\\+\\+.*/)) {\n // ex: (X++(Y..Y))\n spectrum.deltaX =\n (spectrum.lastX - spectrum.firstX) / (spectrum.nbPoints - 1);\n\n fastParseXYData(spectrum, dataValue, result);\n } else {\n parsePeakTable(spectrum, dataValue, result);\n }\n currentEntry.spectra.push(spectrum);\n spectrum = new Spectrum();\n }\n continue;\n } else if (canonicDataLabel === 'PEAKTABLE') {\n if (options.wantXY) {\n prepareSpectrum(spectrum);\n parsePeakTable(spectrum, dataValue, result);\n currentEntry.spectra.push(spectrum);\n spectrum = new Spectrum();\n }\n continue;\n }\n if (canonicDataLabel === 'PEAKASSIGNMENTS') {\n if (options.wantXY) {\n if (dataValue.match(/.*(XYA).*/)) {\n // ex: (XYA)\n parseXYA(spectrum, dataValue);\n }\n currentEntry.spectra.push(spectrum);\n spectrum = new Spectrum();\n }\n continue;\n }\n\n if (canonicDataLabel === 'TITLE') {\n let parentEntry = currentEntry;\n if (!parentEntry.children) {\n parentEntry.children = [];\n }\n currentEntry = {\n spectra: [],\n ntuples: {},\n info: {},\n meta: {},\n tmp: {}, // tmp information we need to keep for postprocessing\n };\n parentEntry.children.push(currentEntry);\n parentsStack.push(parentEntry);\n entriesFlat.push(currentEntry);\n currentEntry.title = dataValue;\n } else if (canonicDataLabel === 'DATATYPE') {\n currentEntry.dataType = dataValue;\n if (dataValue.match(/(^nd|\\snd\\s)/i)) {\n currentEntry.twoD = true;\n }\n } else if (canonicDataLabel === 'NTUPLES') {\n if (dataValue.match(/(^nd|\\snd\\s)/i)) {\n currentEntry.twoD = true;\n }\n } else if (canonicDataLabel === 'DATACLASS') {\n currentEntry.dataClass = dataValue;\n } else if (canonicDataLabel === 'XUNITS') {\n spectrum.xUnits = dataValue;\n } else if (canonicDataLabel === 'YUNITS') {\n spectrum.yUnits = dataValue;\n } else if (canonicDataLabel === 'FIRSTX') {\n spectrum.firstX = parseFloat(dataValue);\n } else if (canonicDataLabel === 'LASTX') {\n spectrum.lastX = parseFloat(dataValue);\n } else if (canonicDataLabel === 'FIRSTY') {\n spectrum.firstY = parseFloat(dataValue);\n } else if (canonicDataLabel === 'LASTY') {\n spectrum.lastY = parseFloat(dataValue);\n } else if (canonicDataLabel === 'NPOINTS') {\n spectrum.nbPoints = parseFloat(dataValue);\n } else if (canonicDataLabel === 'XFACTOR') {\n spectrum.xFactor = parseFloat(dataValue);\n } else if (canonicDataLabel === 'YFACTOR') {\n spectrum.yFactor = parseFloat(dataValue);\n } else if (canonicDataLabel === 'MAXX') {\n spectrum.maxX = parseFloat(dataValue);\n } else if (canonicDataLabel === 'MINX') {\n spectrum.minX = parseFloat(dataValue);\n } else if (canonicDataLabel === 'MAXY') {\n spectrum.maxY = parseFloat(dataValue);\n } else if (canonicDataLabel === 'MINY') {\n spectrum.minY = parseFloat(dataValue);\n } else if (canonicDataLabel === 'DELTAX') {\n spectrum.deltaX = parseFloat(dataValue);\n } else if (\n canonicDataLabel === '.OBSERVEFREQUENCY' ||\n canonicDataLabel === '$SFO1'\n ) {\n if (!spectrum.observeFrequency) {\n spectrum.observeFrequency = parseFloat(dataValue);\n }\n } else if (canonicDataLabel === '.OBSERVENUCLEUS') {\n if (!spectrum.xType) {\n currentEntry.xType = dataValue.replace(/[^a-zA-Z0-9]/g, '');\n }\n } else if (canonicDataLabel === '$OFFSET') {\n // OFFSET for Bruker spectra\n currentEntry.shiftOffsetNum = 0;\n if (!spectrum.shiftOffsetVal) {\n spectrum.shiftOffsetVal = parseFloat(dataValue);\n }\n } else if (canonicDataLabel === '$REFERENCEPOINT') {\n // OFFSET for Varian spectra\n // if we activate this part it does not work for ACD specmanager\n // } else if (canonicDataLabel=='.SHIFTREFERENCE') { // OFFSET FOR Bruker Spectra\n // var parts = dataValue.split(/ *, */);\n // currentEntry.shiftOffsetNum = parseInt(parts[2].trim());\n // spectrum.shiftOffsetVal = parseFloat(parts[3].trim());\n } else if (canonicDataLabel === 'VARNAME') {\n currentEntry.ntuples.varname = dataValue.split(ntuplesSeparatorRegExp);\n } else if (canonicDataLabel === 'SYMBOL') {\n currentEntry.ntuples.symbol = dataValue.split(ntuplesSeparatorRegExp);\n } else if (canonicDataLabel === 'VARTYPE') {\n currentEntry.ntuples.vartype = dataValue.split(ntuplesSeparatorRegExp);\n } else if (canonicDataLabel === 'VARFORM') {\n currentEntry.ntuples.varform = dataValue.split(ntuplesSeparatorRegExp);\n } else if (canonicDataLabel === 'VARDIM') {\n currentEntry.ntuples.vardim = convertToFloatArray(\n dataValue.split(ntuplesSeparatorRegExp),\n );\n } else if (canonicDataLabel === 'UNITS') {\n currentEntry.ntuples.units = dataValue.split(ntuplesSeparatorRegExp);\n } else if (canonicDataLabel === 'FACTOR') {\n currentEntry.ntuples.factor = convertToFloatArray(\n dataValue.split(ntuplesSeparatorRegExp),\n );\n } else if (canonicDataLabel === 'FIRST') {\n currentEntry.ntuples.first = convertToFloatArray(\n dataValue.split(ntuplesSeparatorRegExp),\n );\n } else if (canonicDataLabel === 'LAST') {\n currentEntry.ntuples.last = convertToFloatArray(\n dataValue.split(ntuplesSeparatorRegExp),\n );\n } else if (canonicDataLabel === 'MIN') {\n currentEntry.ntuples.min = convertToFloatArray(\n dataValue.split(ntuplesSeparatorRegExp),\n );\n } else if (canonicDataLabel === 'MAX') {\n currentEntry.ntuples.max = convertToFloatArray(\n dataValue.split(ntuplesSeparatorRegExp),\n );\n } else if (canonicDataLabel === '.NUCLEUS') {\n if (currentEntry.ntuples) {\n currentEntry.ntuples.nucleus = dataValue.split(ntuplesSeparatorRegExp);\n }\n } else if (canonicDataLabel === 'PAGE') {\n spectrum.page = dataValue.trim();\n spectrum.pageValue = parseFloat(dataValue.replace(/^.*=/, ''));\n spectrum.pageSymbol = spectrum.page.replace(/[=].*/, '');\n } else if (canonicDataLabel === 'RETENTIONTIME') {\n spectrum.pageValue = parseFloat(dataValue);\n } else if (isMSField(canonicDataLabel)) {\n spectrum[convertMSFieldToLabel(canonicDataLabel)] = dataValue;\n } else if (canonicDataLabel === 'SAMPLEDESCRIPTION') {\n spectrum.sampleDescription = dataValue;\n } else if (canonicDataLabel.startsWith('$NUC')) {\n if (!currentEntry.tmp[canonicDataLabel] && !dataValue.includes('off')) {\n currentEntry.tmp[canonicDataLabel] = dataValue.replace(/[<>]/g, '');\n }\n } else if (canonicDataLabel === 'END') {\n currentEntry = parentsStack.pop();\n }\n\n if (\n currentEntry &&\n currentEntry.info &&\n currentEntry.meta &&\n canonicDataLabel.match(options.keepRecordsRegExp)\n ) {\n let value = dataValue.trim();\n let target, label;\n if (dataLabel.startsWith('$')) {\n label = options.canonicMetadataLabels\n ? canonicDataLabel.substring(1)\n : dataLabel.substring(1);\n target = currentEntry.meta;\n } else {\n label = options.canonicDataLabels ? canonicDataLabel : dataLabel;\n target = currentEntry.info;\n }\n\n if (options.dynamicTyping) {\n if (value.match(numberRegExp)) {\n value = Number.parseFloat(value);\n }\n }\n if (target[label]) {\n if (!Array.isArray(target[label])) {\n target[label] = [target[label]];\n }\n target[label].push(value);\n } else {\n target[label] = value;\n }\n }\n }\n\n profiling(result, 'Finished parsing', options);\n\n postProcessing(entriesFlat, result, options);\n\n profiling(result, 'Total time', options);\n\n /*\n if (result.children && result.children.length>0) {\n result = { ...result, ...result.children[0] };\n }\n */\n result.entries = tmpResult.children;\n result.flatten = entriesFlat;\n\n return result;\n}\n","/**\n * Ensure that the data is string. If it is an ArrayBuffer it will be converted to string using TextDecoder.\n * @param {string|ArrayBuffer} blob\n * @param {object} [options={}]\n * @param {string} [options.encoding='utf8']\n * @returns {string}\n */\n\nexport function ensureString(blob, options = {}) {\n const { encoding = 'utf8' } = options;\n if (ArrayBuffer.isView(blob) || blob instanceof ArrayBuffer) {\n const decoder = new TextDecoder(encoding);\n return decoder.decode(blob);\n }\n return blob;\n}\n","import { convert as convertJcamp } from 'jcampconverter';\n\nexport function parseData(file, options) {\n let { keepRecordsRegExp = /.*/ } = options;\n let result = convertJcamp(file, {\n keepRecordsRegExp: keepRecordsRegExp,\n });\n return result.flatten.length === 0 ? {} : result.flatten[0];\n}\n","import { IOBuffer } from 'iobuffer';\n\nexport function ensureIOBuffer(data) {\n if (data instanceof Array || data instanceof Uint8Array) {\n data = new ArrayBuffer(data);\n }\n if (data instanceof ArrayBuffer) {\n return new IOBuffer(data);\n }\n return data;\n}\n","import { ensureIOBuffer } from './ensureIOBuffer';\n\nexport function setFIDSpectrumData(file, spectra) {\n file = ensureIOBuffer(file);\n let td = parseInt(spectra.meta.TD[0], 10);\n let SW_H = parseFloat(spectra.meta.SW_h[0]);\n\n let SF = parseFloat(spectra.meta.SFO1[0]);\n\n spectra.meta.DATATYPE = 'NMR FID';\n\n let DW = 1 / (2 * SW_H);\n let AQ = td * DW;\n\n let endian = parseInt(spectra.meta.BYTORDA, 10);\n endian = endian ? 0 : 1;\n\n if (endian) {\n file.setLittleEndian();\n } else {\n file.setBigEndian();\n }\n\n let nbSubSpectra = spectra.meta.nbSubSpectra ? spectra.meta.nbSubSpectra : 1;\n spectra.spectra = new Array(nbSubSpectra);\n\n for (let j = 0; j < nbSubSpectra / 2; j++) {\n let toSave = {\n dataType: 'NMR FID',\n dataTable: '(X++(R..R))',\n nbPoints: td,\n firstX: 0,\n lastX: AQ,\n nucleus: spectra.meta.NUC1,\n xUnit: 'Sec',\n yUnit: 'Arbitrary',\n data: [new Float64Array(2 * td)],\n isXYdata: true,\n observeFrequency: SF,\n title: spectra.meta.TITLE,\n deltaX: DW,\n };\n spectra.spectra[j * 2] = toSave;\n\n toSave = {\n dataType: 'NMR FID',\n dataTable: '(X++(I..I))',\n nbPoints: td,\n firstX: 0,\n lastX: AQ,\n nucleus: spectra.meta.NUC1,\n xUnit: 'Sec',\n yUnit: 'Arbitrary',\n data: new Float64Array(2 * td),\n isXYdata: true,\n directFrequency: SF,\n title: spectra.meta.TITLE,\n deltaX: DW,\n };\n spectra.spectra[j * 2 + 1] = toSave;\n\n let i = 0;\n let x = 0;\n for (; file.available(8) && i < td; i++, x = i * DW) {\n let y = file.readInt32();\n if (y === null || isNaN(y)) {\n y = 0;\n }\n spectra.spectra[j * 2].data[2 * i + 1] = y;\n spectra.spectra[j * 2].data[2 * i] = x;\n y = file.readInt32();\n if (y === null || isNaN(y)) {\n y = 0;\n }\n spectra.spectra[j * 2 + 1].data[2 * i + 1] = y;\n spectra.spectra[j * 2 + 1].data[2 * i] = x;\n }\n\n for (; i < td; i++, x = i * DW) {\n spectra.spectra[j * 2].data[2 * i + 1] = 0;\n spectra.spectra[j * 2].data[2 * i] = x;\n spectra.spectra[j * 2 + 1].data[2 * i + 1] = 0;\n spectra.spectra[j * 2 + 1].data[2 * i] = x;\n }\n }\n}\n","import { ensureIOBuffer } from './ensureIOBuffer';\n\nexport function setXYSpectrumData(file, spectra, real) {\n file = ensureIOBuffer(file);\n let td = parseInt(spectra.meta.SI, 10);\n let swP = parseFloat(spectra.meta.SW_p);\n let sf = parseFloat(spectra.meta.SF);\n let bf = sf;\n let offset = spectra.shiftOffsetVal || parseFloat(spectra.meta.OFFSET);\n\n spectra.meta.observeFrequency = sf;\n spectra.meta.brukerReference = bf;\n spectra.meta.DATATYPE = 'NMR Spectrum';\n\n let endian = parseInt(spectra.meta.BYTORDP, 10);\n endian = endian ? 0 : 1;\n\n let nbSubSpectra = spectra.meta.nbSubSpectra ? spectra.meta.nbSubSpectra : 1;\n\n if (endian) {\n file.setLittleEndian();\n } else {\n file.setBigEndian();\n }\n for (let i = 0; i < nbSubSpectra; i++) {\n let toSave = {\n dataType: 'NMR Spectrum',\n dataTable: '(X++(R..R))',\n nbPoints: td,\n firstX: offset,\n lastX: offset - swP / sf,\n xUnit: 'PPM',\n yUnit: 'Arbitrary',\n data: new Float64Array(td * 2),\n isXYdata: true,\n observeFrequency: sf,\n title: spectra.meta.TITLE,\n deltaX: -(swP / sf) / (td - 1),\n };\n\n let x = offset;\n let deltaX = toSave.deltaX;\n\n if (real) {\n for (let k = 0; k < td; ++k) {\n toSave.data[2 * k] = x;\n toSave.data[2 * k + 1] = file.readInt32();\n if (toSave.data[2 * k + 1] === null || isNaN(toSave.data[2 * k + 1])) {\n toSave.data[2 * k + 1] = 0;\n }\n x += deltaX;\n }\n } else {\n for (let k = 0; k < td; ++k) {\n toSave.data[2 * k] = x;\n toSave.data[2 * k + 1] = file.readInt32();\n if (toSave.data[2 * k + 1] === null || isNaN(toSave.data[2 * k + 1])) {\n toSave.data[2 * k + 1] = 0;\n }\n x += deltaX;\n }\n }\n\n spectra.spectra.push(toSave);\n }\n}\n","export function mergeMetadata(main, complement) {\n for (let key in complement.meta) {\n if (main.meta[key]) {\n if (!Array.isArray(main.meta[key])) {\n main.meta[key] = [main.meta[key]];\n }\n main.meta[key].push(complement.meta[key]);\n } else if (main.meta[key] === undefined) {\n main.meta[key] = [complement.meta[key]];\n }\n }\n return main;\n}\n","import { add2D } from './util/add2D';\nimport { convert1D } from './util/convert1D';\nimport { convert2D } from './util/convert2D';\n\n/**\n * Extract information and data from bruker files.\n * @param {object} brukerFiles - Needed bruker files to parse raw data.\n * @param {object} [options = {}] - options.\n * @param {boolean} [options.xy] - if true, spectra data is a object with x and y\n * @param {RegExp} [options.keepRecordsRegExp='\\/.*\\/'] - regular expresion to parse the metadata of the spectrum.\n * @param {boolean} [options.noContours=false] - if true the contour data is not generated.\n * @returns\n */\n\nexport function convertFolder(brukerFiles, options = {}) {\n let start = new Date();\n let result;\n if (brukerFiles.ser || brukerFiles['2rr']) {\n result = convert2D(brukerFiles, options);\n } else if (brukerFiles['1r'] || brukerFiles['1i'] || brukerFiles.fid) {\n result = convert1D(brukerFiles, options);\n } else {\n throw new RangeError('The current files are invalid');\n }\n //normalizing info\n result.meta.DATE = parseFloat(result.meta.DATE);\n if (result.meta.GRPDLY) {\n result.meta.GRPDLY = parseFloat(result.meta.GRPDLY);\n result.meta.DSPFVS = parseFloat(result.meta.DSPFVS);\n result.meta.DECIM = parseFloat(result.meta.DECIM);\n }\n\n for (let key in result.meta) {\n if (!Array.isArray(result.meta[key])) {\n continue;\n }\n if (result.meta[key].length === 1) {\n result.meta[key] = result.meta[key][0];\n } else if (\n typeof result.meta[key][0] === 'string' &&\n result.meta[key][0].indexOf('(0..') > -1\n ) {\n result.meta[key] = result.meta[key][0];\n }\n }\n\n if (result.twoD) {\n add2D(result, options);\n if (result.profiling) {\n result.profiling.push({\n action: 'Finished countour plot calculation',\n time: new Date() - start,\n });\n }\n if (!options.keepSpectra) {\n delete result.spectra;\n }\n }\n\n let spectra = result.spectra;\n\n if (options.xy && !!spectra) {\n //the spectraData should not be a oneD Array but an object with x and y\n if (spectra.length > 0) {\n for (let i = 0; i < spectra.length; i++) {\n let spectrum = spectra[i];\n if (spectrum.data.length) {\n let data = spectrum.data;\n let newData = {\n x: new Float64Array(data.length / 2),\n y: new Float64Array(data.length / 2),\n };\n for (let k = 0; k < data.length; k = k + 2) {\n newData.x[k / 2] = data[k];\n newData.y[k / 2] = data[k + 1];\n }\n spectrum.data = newData;\n }\n }\n }\n }\n const { file } = brukerFiles;\n if (file) {\n result.source = { file };\n }\n\n return result;\n}\n","import { mergeMetadata } from './mergeMetadata';\nimport { parseData } from './parseData';\nimport { setFIDSpectrumData } from './setFIDSpectrumData';\nimport { setXYSpectrumData } from './setXYSpectrumData';\n\nexport function convert2D(files, options) {\n let temp, temp2, result;\n if (files.proc2s && files.procs) {\n result = parseData(files.procs, options);\n temp = parseData(files.proc2s, options);\n result = mergeMetadata(result, temp);\n }\n\n temp = parseData(files.acqus, options);\n temp2 = parseData(files.acqu2s, options);\n\n temp = mergeMetadata(temp, temp2);\n\n if (!result) {\n result = temp;\n }\n for (let key in temp.meta) {\n if (result.meta[key] === undefined) {\n result.meta[key] = temp.meta[key];\n }\n }\n\n for (let key in result.meta) {\n if (!Array.isArray(result.meta[key])) {\n result.meta[key] = [result.meta[key]];\n }\n }\n\n result.meta.nbSubSpectra = files['2rr']\n ? parseInt(result.meta.SI[1], 10)\n : parseInt(result.meta.TD[1], 10);\n\n if (!result.meta.SW_p) {\n // eslint-disable-next-line camelcase\n result.meta.SW_p = result.meta.SW_h;\n }\n if (!result.meta.SF) {\n result.meta.SF = result.meta.SFO1;\n }\n\n let firstY, lastY, xOffset, yOffset;\n if (files['2rr']) {\n let sf = parseFloat(result.meta.SF[1]);\n let swP = parseFloat(result.meta.SW_p[1] || result.meta.SW[1]);\n yOffset = parseFloat(result.meta.OFFSET[1]);\n xOffset = parseFloat(result.meta.OFFSET[0]);\n firstY = yOffset;\n lastY = yOffset - swP / sf;\n result.meta.firstY = firstY;\n result.meta.lastY = lastY;\n setXYSpectrumData(files['2rr'], result, true);\n } else if (files.ser) {\n firstY = 0;\n lastY = result.meta.nbSubSpectra;\n let xWindowSize = parseFloat(result.meta.SW[0]);\n let yWindowSize = parseFloat(result.meta.SW[1]);\n let xTransmitterFrequency = parseFloat(result.meta.SFO1[0]);\n let yTransmitterFrequency = parseFloat(result.meta.SFO1[1]);\n let xTransmitterFrequencyOffset = parseFloat(result.meta.O1[0]);\n let yTransmitterFrequencyOffset = parseFloat(result.meta.O1[1]);\n xOffset =\n xTransmitterFrequencyOffset / xTransmitterFrequency + xWindowSize / 2;\n yOffset =\n yTransmitterFrequencyOffset / yTransmitterFrequency + yWindowSize / 2;\n setFIDSpectrumData(files.ser, result);\n }\n\n let pageValue = firstY;\n let nbSubSpectra = result.meta.nbSubSpectra;\n let deltaY = (lastY - firstY) / (nbSubSpectra - 1);\n for (let i = 0; i < nbSubSpectra; i++) {\n pageValue += deltaY;\n result.spectra[i].pageValue = pageValue;\n }\n let { NUC1: nuc1, AXNUC: axnuc, SF: sf } = result.meta;\n const nucleus = axnuc ? axnuc : nuc1 ? nuc1 : [];\n result.info['2D_Y_NUCLEUS'] = nucleus[1];\n result.info['2D_X_NUCLEUS'] = nucleus[0];\n result.info['2D_Y_FRECUENCY'] = sf[1];\n result.info['2D_X_FRECUENCY'] = sf[0];\n result.info['2D_Y_OFFSET'] = yOffset;\n result.info['2D_X_OFFSET'] = xOffset;\n result.info.twoD = result.twoD = true;\n\n return result;\n}\n","import { parseData } from './parseData';\nimport { setFIDSpectrumData } from './setFIDSpectrumData';\nimport { setXYSpectrumData } from './setXYSpectrumData';\n\nexport function convert1D(files, options) {\n let result = parseData(files.procs || '', options);\n let temp = parseData(files.acqus || '', options);\n if (!Object.keys(result).length) {\n result = temp;\n }\n\n for (let key in result.meta) {\n result.meta[key] = [result.meta[key]];\n }\n\n for (let currKey in temp.meta) {\n if (result.meta[currKey] === undefined) {\n result.meta[currKey] = [temp.meta[currKey]];\n }\n }\n\n if (files['1r'] || files['1i']) {\n if (files['1r']) {\n setXYSpectrumData(files['1r'], result, true);\n }\n if (files['1i']) {\n setXYSpectrumData(files['1i'], result, false);\n }\n } else if (files.fid) {\n setFIDSpectrumData(files.fid, result);\n }\n\n return result;\n}\n","import JSZip from 'jszip';\n\nexport function extractFilePaths(pathSpectrum, options = {}) {\n let { zipFiles } = options;\n\n const expnoCheck = pathSpectrum.replace(\n /([.*\\w+/]*)([0-9]+\\/)[pdata|fid|ser]\\/*.*/,\n '$1$2',\n );\n\n const procnoCheck = pathSpectrum.match('pdata')\n ? pathSpectrum.replace(/([.*\\w+/]*[0-9]+\\/pdata\\/[0-9]+\\/)*.*/, '$1')\n : false;\n let filePaths = [];\n for (let file in zipFiles) {\n if (file.endsWith('/')) continue;\n let parts = file.split('/');\n let expno =\n parts.indexOf('pdata') > 0\n ? file.slice(0, file.indexOf('pdata'))\n : parts[parts.length - 2].match(/^[0-9]+$/)\n ? file.slice(0, file.lastIndexOf('/') + 1)\n : null;\n\n if (expnoCheck !== expno) continue;\n\n if (file.match('pdata')) {\n let procno = file.slice(0, file.lastIndexOf('/') + 1);\n if (!procnoCheck) {\n if (file.match(/[1|2]+[i|r]+[i|r]*/)) continue;\n } else if (procnoCheck !== procno) {\n continue;\n }\n }\n\n filePaths.push(file);\n }\n return filePaths;\n}\n\nexport async function extractSingleSpectrumZip(pathSpectrum, options = {}) {\n let { zipFiles } = options;\n\n const filePaths = extractFilePaths(pathSpectrum, { zipFiles });\n let zipFolder = new JSZip();\n for (let file of filePaths) {\n zipFolder.file(file, await zipFiles[file].async('arraybuffer'));\n }\n\n return {\n extension: 'zip',\n name: pathSpectrum,\n binary: await zipFolder.generateAsync({\n type: 'uint8array',\n compression: 'DEFLATE',\n compressionOptions: { level: 9 },\n }),\n };\n}\n","import isAnyArray from 'is-any-array';\n\nexport function convertToFloatArray(data) {\n if (isAnyArray(data[0])) {\n return data.map((e) => Float64Array.from(e));\n } else if (isAnyArray(data)) {\n return Float64Array.from(data);\n } else if (typeof data === 'object') {\n let keys = Object.keys(data);\n for (let key of keys) {\n data[key] = convertToFloatArray(data[key]);\n }\n return data;\n }\n return data;\n}\n","/* eslint-disable no-loss-of-precision */\n/**\n * Returns the group delay for old Bruker NMR spectra\n * @param {number} gspfvs\n * @param {number} decim\n * @return {number}\n */\nexport function getDigitalFilterParameters(grpdly, dspfvs, decim) {\n let value;\n if (grpdly > 0) {\n value = Number(grpdly);\n } else {\n if (dspfvs > 14) {\n value = 0;\n } else {\n if (!brukerDspTable[dspfvs]) {\n throw new Error('dspfvs not in lookup table');\n } else {\n const dspfvsList = brukerDspTable[dspfvs];\n if (!dspfvsList[decim]) throw new Error('decim not in lookup table');\n value = dspfvsList[decim];\n }\n }\n }\n return value;\n}\n\nconst brukerDspTable = {\n 10: {\n 2: 44.75,\n 3: 33.5,\n 4: 66.625,\n 6: 59.083333333333333,\n 8: 68.5625,\n 12: 60.375,\n 16: 69.53125,\n 24: 61.020833333333333,\n 32: 70.015625,\n 48: 61.34375,\n 64: 70.2578125,\n 96: 61.505208333333333,\n 128: 70.37890625,\n 192: 61.5859375,\n 256: 70.439453125,\n 384: 61.626302083333333,\n 512: 70.4697265625,\n 768: 61.646484375,\n 1024: 70.48486328125,\n 1536: 61.656575520833333,\n 2048: 70.492431640625,\n },\n 11: {\n 2: 46,\n 3: 36.5,\n 4: 48,\n 6: 50.166666666666667,\n 8: 53.25,\n 12: 69.5,\n 16: 72.25,\n 24: 70.166666666666667,\n 32: 72.75,\n 48: 70.5,\n 64: 73,\n 96: 70.666666666666667,\n 128: 72.5,\n 192: 71.333333333333333,\n 256: 72.25,\n 384: 71.666666666666667,\n 512: 72.125,\n 768: 71.833333333333333,\n 1024: 72.0625,\n 1536: 71.916666666666667,\n 2048: 72.03125,\n },\n 12: {\n 2: 46,\n 3: 36.5,\n 4: 48,\n 6: 50.166666666666667,\n 8: 53.25,\n 12: 69.5,\n 16: 71.625,\n 24: 70.166666666666667,\n 32: 72.125,\n 48: 70.5,\n 64: 72.375,\n 96: 70.666666666666667,\n 128: 72.5,\n 192: 71.333333333333333,\n 256: 72.25,\n 384: 71.666666666666667,\n 512: 72.125,\n 768: 71.833333333333333,\n 1024: 72.0625,\n 1536: 71.916666666666667,\n 2048: 72.03125,\n },\n 13: {\n 2: 2.75,\n 3: 2.8333333333333333,\n 4: 2.875,\n 6: 2.9166666666666667,\n 8: 2.9375,\n 12: 2.9583333333333333,\n 16: 2.96875,\n 24: 2.9791666666666667,\n 32: 2.984375,\n 48: 2.9895833333333333,\n 64: 2.9921875,\n 96: 2.9947916666666667,\n },\n};\n","export function getNucleusFromMetadata(metaData, info, subfix) {\n let nucleus = [];\n if (metaData[`${subfix}AXNUC`]) {\n nucleus = metaData[`${subfix}AXNUC`];\n if (!Array.isArray(nucleus)) nucleus = [nucleus];\n nucleus = checkForNucleus(nucleus);\n }\n\n if (nucleus.length < 1 && metaData[`${subfix}NUC1`]) {\n nucleus = metaData[`${subfix}NUC1`];\n if (!Array.isArray(nucleus)) nucleus = [nucleus];\n nucleus = checkForNucleus(nucleus);\n }\n\n if (nucleus.length === 0) {\n if (metaData['.NUCLEUS']) {\n nucleus = metaData['.NUCLEUS'].split(',').map((nuc) => nuc.trim());\n } else if (metaData['.OBSERVENUCLEUS']) {\n nucleus = [metaData['.OBSERVENUCLEUS'].replace(/[^A-Za-z0-9]/g, '')];\n } else {\n nucleus = getNucleusFrom2DExperiment(info.experiment);\n }\n nucleus = checkForNucleus(nucleus);\n }\n\n if (metaData['2D_X_NUCLEUS'] && metaData['2D_Y_NUCLEUS']) {\n nucleus = [\n metaData['2D_X_NUCLEUS'].replace(/[^A-Za-z0-9]/g, ''),\n metaData['2D_Y_NUCLEUS'].replace(/[^A-Za-z0-9]/g, ''),\n ];\n }\n return nucleus;\n}\n\n/**\n * Returns a list of likely nuclei based on an experiment string\n * This is really an hypothesis and should not be used\n * @param {string} experiment\n * @return {string[]}\n */\n\nfunction getNucleusFrom2DExperiment(experiment) {\n if (typeof experiment !== 'string') {\n return [];\n }\n experiment = experiment.toLowerCase();\n if (experiment.includes('jres')) {\n return ['1H', 'Hz'];\n }\n if (experiment.includes('hmbc') || experiment.includes('hsqc')) {\n return ['1H', '13C'];\n }\n if (experiment.includes('cosy') || experiment.includes('tocsy')) {\n return ['1H', '1H'];\n }\n return [];\n}\n\nfunction checkForNucleus(nucleus) {\n nucleus = nucleus.map((value) =>\n value\n .replace(/[^A-Za-z0-9]/g, '')\n .replace('NA', '')\n .replace('off', ''),\n );\n let beforeLength = nucleus.length;\n nucleus = nucleus.filter((value) => value);\n return nucleus.length !== beforeLength ? [] : nucleus;\n}\n","import { gyromagneticRatio } from 'nmr-processing';\n\nimport { getDigitalFilterParameters } from './getDigitalFilterParameters';\nimport { getNucleusFromMetadata } from './getNucleusFromMetadata';\nimport { getSpectrumType } from './getSpectrumType';\n\nexport function getInfoFromJCAMP(metaData, options = {}) {\n const { subfix = '' } = options;\n const info = {\n dimension: 0,\n nucleus: [],\n isFid: false,\n isFt: false,\n isComplex: false,\n };\n let metadataString = JSON.stringify(metaData);\n const separator = metadataString.match('\\r\\n') ? '\\r\\n' : '\\n';\n\n let { JCAMPDX: jcampdx = '', ORIGIN: origin = '' } = metaData;\n let creator = String(jcampdx).toLowerCase() + origin.toLowerCase();\n\n if (creator.includes('mestre') || creator.includes('nova')) {\n creator = 'mnova';\n }\n\n if (creator === 'mnova') {\n if (metaData.LONGDATE) {\n info.date = metaData.LONGDATE;\n }\n }\n\n info.nucleus = getNucleusFromMetadata(metaData, info, subfix);\n info.dimension = info.nucleus.length;\n\n maybeAdd(info, 'title', metaData.TITLE);\n maybeAdd(info, 'solvent', metaData['.SOLVENTNAME']);\n maybeAdd(info, 'temperature', metaData[`${subfix}TE`] || metaData['.TE']);\n maybeAdd(info, 'type', metaData.DATATYPE);\n\n if (info.type) {\n let typeLowerCase = info.type[0].toUpperCase();\n if (typeLowerCase.indexOf('FID') >= 0) {\n info.isFid = true;\n info.isComplex = true;\n } else if (typeLowerCase.indexOf('SPECTRUM') >= 0) {\n info.isFt = true;\n info.isComplex = true;\n }\n }\n\n maybeAdd(\n info,\n 'pulseSequence',\n metaData['.PULSESEQUENCE'] ||\n metaData['.PULPROG'] ||\n metaData[`${subfix}PULPROG`],\n );\n maybeAdd(info, 'experiment', getSpectrumType(info, metaData, { subfix }));\n\n maybeAdd(info, 'originFrequency', metaData['.OBSERVEFREQUENCY']);\n\n if (creator !== 'mnova' && creator !== 'mestre') {\n const gyromagneticRatioConst = gyromagneticRatio[info.nucleus[0]];\n maybeAdd(info, 'probeName', metaData[`${subfix}PROBHD`]);\n maybeAdd(info, 'originFrequency', metaData[`${subfix}SFO1`]);\n maybeAdd(info, 'baseFrequency', metaData[`${subfix}BF1`]);\n\n if (!['baseFrequency', 'originFrequency'].some((e) => !info[e])) {\n const { baseFrequency, originFrequency } = info;\n let fieldStrength =\n 2 * Math.PI * (baseFrequency[0] / gyromagneticRatioConst) * 1e6;\n\n let frequencyOffset = baseFrequency.map(\n (bf, i) => (originFrequency[i] - bf) * 1e6,\n );\n\n maybeAdd(info, 'fieldStrength', fieldStrength);\n maybeAdd(info, 'frequencyOffset', frequencyOffset);\n }\n maybeAdd(info, 'spectralWidth', metaData[`${subfix}SW`]);\n maybeAdd(info, 'numberOfPoints', metaData[`${subfix}TD`]);\n\n const numberOfPoints = info.numberOfPoints;\n\n maybeAdd(info, 'sampleName', metaData[`${subfix}NAME`]);\n\n if (metaData[`${subfix}FNTYPE`] !== undefined) {\n maybeAdd(\n info,\n 'acquisitionMode',\n parseInt(metaData[`${subfix}FNTYPE`], 10),\n );\n }\n let varName = metaData[`${subfix}VARNAME`]\n ? metaData[`${subfix}VARNAME`].split(',')[0]\n : '';\n if (varName === 'TIME') {\n let value =\n typeof metaData.LAST === 'string' || metaData.LAST instanceof String\n ? metaData.LAST.replace(' ', '').split(',')[0]\n : metaData.LAST;\n maybeAdd(info, 'acquisitionTime', Number(value));\n }\n\n if (!info.acquisitionTime) {\n if (!['numberOfPoints', 'spectralWidth'].some((e) => !info[e])) {\n const { spectralWidth, originFrequency } = info;\n maybeAdd(\n info,\n 'acquisitionTime',\n Number(\n (numberOfPoints[0] - 1) /\n (2 * spectralWidth[0] * originFrequency[0]),\n ),\n );\n }\n }\n\n if (metaData[`${subfix}P`]) {\n let pulseStrength =\n 1e6 / (metaData[`${subfix}P`].split(separator)[1].split(' ')[1] * 4);\n maybeAdd(info, 'pulseStrength90', pulseStrength);\n }\n if (metaData[`${subfix}D`]) {\n let relaxationTime = metaData[`${subfix}D`]\n .split(separator)[1]\n .split(' ')[1];\n maybeAdd(info, 'relaxationTime', Number(relaxationTime));\n }\n\n maybeAdd(info, 'numberOfScans', Number(metaData[`${subfix}NS`]));\n\n let increment;\n if (!['numberOfPoints', 'spectralWidth'].some((e) => !info[e])) {\n const { spectralWidth, numberOfPoints } = info;\n if (info.isFid) {\n maybeAdd(info, 'groupDelay', metaData[`${subfix}GRPDLY`] || 0);\n maybeAdd(info, 'DSPFVS', metaData[`${subfix}DSPFVS`]);\n maybeAdd(info, 'DECIM', metaData[`${subfix}DECIM`]);\n\n if (!['groupDelay', 'DSPFVS', 'DECIM'].some((e) => !info[e])) {\n let { groupDelay, DSPFVS, DECIM } = info;\n let digitalFilterParameters = getDigitalFilterParameters(\n groupDelay[0],\n DSPFVS[0],\n DECIM[0],\n );\n maybeAdd(info, 'digitalFilter', digitalFilterParameters);\n }\n\n increment = numberOfPoints.map((nb) => {\n return info.acquisitionTime[0] / (nb - 1);\n });\n } else {\n increment = numberOfPoints.map((nb, i) => {\n return spectralWidth[i] / (nb - 1);\n });\n }\n }\n\n maybeAdd(info, 'increment', increment);\n if (metaData[`${subfix}DATE`]) {\n info.date = new Date(\n parseInt(metaData[`${subfix}DATE`], 10) * 1000,\n ).toISOString();\n }\n\n if (!info.solvent) {\n maybeAdd(\n info,\n 'solvent',\n Array.isArray(metaData[`${subfix}SOLVENT`])\n ? metaData[`${subfix}SOLVENT`][0]\n : metaData[`${subfix}SOLVENT`],\n );\n }\n }\n\n if (metaData.SYMBOL) {\n let symbols = metaData.SYMBOL.split(/[, ]+/);\n if (symbols.includes('R') && symbols.includes('I')) {\n info.isComplex = true;\n }\n }\n\n for (let key in info) {\n if (info[key].length === 1) info[key] = info[key][0];\n }\n\n if (!Array.isArray(info.nucleus)) info.nucleus = [info.nucleus];\n\n return info;\n}\n\nfunction maybeAdd(obj, name, value) {\n if (value !== undefined) {\n if (Array.isArray(value)) {\n obj[name] = value.map((v) => {\n return removeUnless(v);\n });\n } else {\n obj[name] = [removeUnless(value)];\n }\n }\n}\n\nfunction removeUnless(value) {\n if (typeof value === 'string') {\n if (value.startsWith('<') && value.endsWith('>')) {\n value = value.substring(1, value.length - 1);\n }\n value = value.trim();\n }\n return value.match && value.match(/[A-Za-z]/g) ? value : parseFloat(value);\n}\n","/**\n * Returns an experiment string based on a pulse sequence\n * @param {string} pulse\n * @return {string}\n */\nexport function getSpectrumType(meta = {}, info = {}, options = {}) {\n const { subfix = '' } = options;\n\n if (meta === null) meta = {};\n if (typeof meta === 'string') meta = { pulseSequence: meta };\n\n let spectyp = info[`${subfix}SPECTYP`];\n spectyp = (Array.isArray(spectyp) ? spectyp[0] : spectyp || '')\n .replace(/^<(.*)>$/, '$1') // eslint-disable-line prefer-named-capture-group\n .toLowerCase();\n\n if (spectyp.length > 0) return spectyp;\n\n let pulse = Array.isArray(meta.pulseSequence)\n ? meta.pulseSequence[0]\n : meta.pulseSequence || '';\n\n if (typeof pulse !== 'string') {\n return meta.dimension ? `${meta.dimension}d` : '';\n }\n\n pulse = pulse.toLowerCase();\n if (\n pulse.includes('zg') ||\n pulse.includes('single_pulse_dec') ||\n pulse.includes('udeft')\n ) {\n return '1d';\n }\n\n if (\n pulse.includes('hsqct') ||\n (pulse.includes('invi') && (pulse.includes('ml') || pulse.includes('di')))\n ) {\n return 'hsqctocsy';\n }\n\n if (pulse.includes('hsqc') || pulse.includes('invi')) {\n return 'hsqc';\n }\n\n if (\n pulse.includes('hmbc') ||\n (pulse.includes('inv4') && pulse.includes('lp'))\n ) {\n return 'hmbc';\n }\n\n if (pulse.includes('hmqc')) {\n return 'hmqc';\n }\n\n if (pulse.includes('cosy')) {\n return 'cosy';\n }\n\n if (pulse.includes('jres')) {\n return 'jres';\n }\n\n if (\n pulse.includes('tocsy') ||\n pulse.includes('mlev') ||\n pulse.includes('dipsi')\n ) {\n return 'tocsy';\n }\n\n if (pulse.includes('noesy')) {\n return 'noesy';\n }\n\n if (pulse.includes('roesy')) {\n return 'roesy';\n }\n\n if (pulse.includes('dept')) {\n return 'dept';\n }\n\n if (pulse.includes('jmod') || pulse.includes('apt')) {\n return 'aptjmod';\n }\n\n return meta.dimension ? `${meta.dimension}d` : '';\n}\n","import { convertZip as convertBruker } from 'brukerconverter';\n\nimport packageJson from '../package.json';\n\nimport { convertToFloatArray } from './utils/convertToFloatArray';\nimport { getInfoFromJCAMP } from './utils/getInfoFromJCAMP';\n\nconst defaultOptions = {\n noContour: true,\n xy: true,\n keepRecordsRegExp: /.*/,\n profiling: true,\n};\n\nexport async function fromBruker(zipFile, options = {}) {\n let parseData = await convertBruker(\n zipFile,\n { ...defaultOptions, ...options },\n );\n let dataStructure = [];\n for (let element of parseData) {\n let entry = element.value;\n let metadata = Object.assign({}, entry.info, entry.meta);\n let info = getInfoFromJCAMP(metadata);\n\n if (info.experiment === 'wobble_curve') continue;\n\n let dimensions = [];\n let dependentVariables = [];\n\n let dependentVariable = {};\n\n if (info.dimension === 1) {\n for (let i = 0; i < entry.spectra.length; i++) {\n let data = entry.spectra[i].data;\n data = convertToFloatArray(data);\n }\n dependentVariable.components = entry.spectra;\n } else if (info.dimension === 2) {\n entry.minMax.z = convertToFloatArray(entry.minMax.z);\n dependentVariable.components = entry.minMax;\n }\n\n let dimension = {\n increment: info.increment,\n numberOfPoints: info.numberOfPoints,\n };\n\n if (info.fid) {\n dimension.coordinatesOffset = {\n magnitude: -info.digitalFilter * info.increment,\n units: 'second',\n };\n } else {\n dimension.coordinatesOffset = {\n magnitude:\n info.frequencyOffset / info.baseFrequency - 0.5 * info.spectraWidth,\n units: 'ppm',\n };\n }\n\n dimensions.push(dimension);\n dependentVariables.push(dependentVariable);\n\n const { source } = entry;\n\n dataStructure.push({\n dimensions,\n dependentVariables,\n source,\n info: info,\n meta: metadata,\n timeStamp: new Date().valueOf(),\n version: packageJson.version,\n });\n }\n return dataStructure;\n}\n","import { convert } from 'jcampconverter';\n\nimport packageJson from '../package.json';\n\nimport { convertToFloatArray } from './utils/convertToFloatArray';\nimport { getInfoFromJCAMP } from './utils/getInfoFromJCAMP';\n\nconst expectedTypes = ['ndnmrspectrum', 'ndnmrfid', 'nmrspectrum', 'nmrfid'];\n\nexport function fromJCAMP(buffer, options = {}) {\n const {\n noContour = true,\n xy = true,\n keepRecordsRegExp = /.*/,\n profiling = true,\n } = options;\n\n let parsedData = convert(buffer, {\n noContour,\n xy,\n keepRecordsRegExp,\n profiling,\n });\n\n let dataStructure = [];\n let entries = parsedData.flatten;\n for (let entry of entries) {\n if (!isSpectraData(entry)) continue;\n if ((entry.spectra && entry.spectra.length > 0) || entry.minMax) {\n let metadata = Object.assign({}, entry.info, entry.meta);\n let info = getInfoFromJCAMP(metadata);\n\n if (info.experiment === 'wobble_curve') continue;\n\n let dimensions = [];\n let dependentVariables = [];\n\n let dependentVariable = {};\n if (info.dimension === 1) {\n for (let i = 0; i < entry.spectra.length; i++) {\n let data = entry.spectra[i].data;\n data = convertToFloatArray(data);\n }\n dependentVariable.components = entry.spectra;\n } else if (info.dimension === 2) {\n entry.minMax.z = convertToFloatArray(entry.minMax.z);\n dependentVariable.components = entry.minMax;\n }\n let dimension = {\n increment: info.increment,\n numberOfPoints: info.numberOfPoints,\n };\n\n if (info.fid) {\n dimension.coordinatesOffset = {\n magnitude: -info.digitalFilter * info.increment,\n units: 'second',\n };\n } else {\n dimension.coordinatesOffset = {\n magnitude:\n info.frequencyOffset / info.baseFrequency - 0.5 * info.spectraWidth,\n units: 'ppm',\n };\n }\n dimensions.push(dimension);\n dependentVariables.push(dependentVariable);\n\n const data = {\n dimensions,\n dependentVariables,\n info,\n meta: metadata,\n timeStamp: new Date().valueOf(),\n version: packageJson.version,\n };\n\n dataStructure.push(data);\n }\n }\n\n return dataStructure;\n}\n\nfunction isSpectraData(entry) {\n const { dataType = '', dataClass = '' } = entry;\n\n const inputDataType = dataType.replace(/\\s/g, '').toLowerCase();\n const inputDataClass = dataClass.replace(/\\s/g, '').toLowerCase();\n return (\n expectedTypes.some((type) => type === inputDataType) &&\n inputDataClass !== 'peak table'\n );\n}\n","import JSZip from 'jszip';\n\nimport { convertFolder } from './convertFolder';\nimport { extractSingleSpectrumZip } from './util/extractSingleSpectrumZip';\n\nconst BINARY = 1;\nconst TEXT = 2;\n\n/**\n * Load a zip file using jszip and looking for folders contaning bruker files to parse.\n * @param {*} zipFile - binary or base64 file of the bruker zip file.\n * @param {object} [options={}] - options for jszip and convertFolder functions.\n * @param {boolean} [options.keepOriginal=false] - options to keep a smaller zip file per spectrum.\n * @returns {Promise} - Array of spectrum parsed from fid, ser, 2rr, 1r bruker files.\n */\nexport function convertZip(zipFile, options = {}) {\n const { keepOriginal = false } = options;\n const jsZip = new JSZip();\n\n return jsZip.loadAsync(zipFile, options).then((zip) => {\n let files = {\n ser: BINARY,\n fid: BINARY,\n acqus: TEXT,\n acqu2s: TEXT,\n procs: TEXT,\n proc2s: TEXT,\n '1r': BINARY,\n '1i': BINARY,\n '2rr': BINARY,\n };\n let folders = zip.filter(function (relativePath) {\n if (relativePath.match('__MACOSX')) return false;\n if (\n relativePath.endsWith('ser') ||\n relativePath.endsWith('fid') ||\n relativePath.endsWith('1r') ||\n relativePath.endsWith('2rr')\n ) {\n return true;\n }\n return false;\n });\n\n let spectra = new Array(folders.length);\n\n for (let i = 0; i < folders.length; ++i) {\n let promises = [];\n let name = folders[i].name;\n name = name.substr(0, name.lastIndexOf('/') + 1);\n promises.push(name);\n let currFolder = zip.folder(name);\n let currFiles = currFolder.filter(function (relativePath) {\n return files[relativePath] ? true : false;\n });\n if (name.indexOf('pdata') >= 0) {\n promises.push('acqus');\n promises.push(\n zip.file(name.replace(/pdata\\/[0-9]+\\//, 'acqus')).async('string'),\n );\n let acqu2s = zip.file(name.replace(/pdata\\/[0-9]+\\//, 'acqu2s'));\n if (acqu2s) {\n promises.push('acqu2s');\n promises.push(acqu2s.async('string'));\n }\n }\n for (let j = 0; j < currFiles.length; ++j) {\n let idx = currFiles[j].name.lastIndexOf('/');\n name = currFiles[j].name.substr(idx + 1);\n promises.push(name);\n if (files[name] === BINARY) {\n promises.push(currFiles[j].async('arraybuffer'));\n } else {\n promises.push(currFiles[j].async('string'));\n }\n }\n if (keepOriginal) {\n promises.push('file');\n promises.push(\n extractSingleSpectrumZip(folders[i].name, { zipFiles: zip.files }),\n );\n }\n spectra[i] = Promise.all(promises).then((result) => {\n let brukerFiles = {};\n for (let k = 1; k < result.length; k += 2) {\n name = result[k];\n brukerFiles[name] = result[k + 1];\n }\n\n return {\n filename: result[0],\n value: convertFolder(brukerFiles, options),\n };\n });\n }\n return Promise.all(spectra);\n });\n}\n","import { parseJEOL } from 'jeolconverter';\nimport { gyromagneticRatio } from 'nmr-processing';\n\nimport packageJson from '../package.json';\n\nimport { formatDependentVariable } from './formatDependentVariable';\nimport { formatLinearDimension } from './formatLinearDimension';\nimport { toKeyValue } from './utils/toKeyValue';\n\nexport function fromJEOL(buffer) {\n let parsedData = parseJEOL(buffer);\n let info = parsedData.info;\n let headers = parsedData.headers;\n let parameters = parsedData.parameters;\n let paramArray = Object.assign({}, parameters.paramArray);\n delete parameters.paramArray;\n let data = parsedData.data;\n\n // curation of parameters\n let newInfo = {};\n newInfo.title = `title: ${headers.title} / comment: ${headers.comment} / author:${headers.author} / site: ${headers.site}`;\n newInfo.nucleus = info.nucleus.map((x) => {\n if (x === 'Proton') {\n x = '1H';\n }\n if (x === 'Carbon13') {\n x = '13C';\n }\n if (x === 'Nitrogen15') {\n x = '15N';\n }\n return x;\n });\n newInfo.sampleName = info.sampleName;\n newInfo.date = JSON.stringify(info.creationTime);\n newInfo.author = info.author;\n //newInfo.comment = info.comment;\n newInfo.solvent = info.solvent;\n newInfo.temperature = info.temperature.magnitude;\n newInfo.probeName = info.probeName || '';\n newInfo.fieldStrength = info.fieldStrength.magnitude;\n\n let gyromagneticRatioConstants = newInfo.nucleus.map(\n (nucleus) => gyromagneticRatio[nucleus],\n );\n newInfo.baseFrequency = gyromagneticRatioConstants.map(\n (gmr) => (info.fieldStrength.magnitude * gmr) / (2 * Math.PI * 1e6),\n );\n newInfo.pulseSequence = info.experiment;\n newInfo.temperature =\n info.temperature.unit.toLowerCase() === 'celsius'\n ? 273.15 + info.temperature.magnitude\n : info.temperature.magnitude;\n newInfo.digitalFilter = info.digitalFilter;\n newInfo.pulseStrength90 = 1 / (4 * info.pulseStrength90.magnitude);\n newInfo.numberOfScans = info.numberOfScans;\n newInfo.relaxationTime = info.relaxationTime.magnitude;\n\n newInfo.isComplex = info.dataSections.includes('im');\n newInfo.isFid = info.dataUnits[0] === 'Second';\n newInfo.isFt = info.dataUnits[0] === 'Ppm';\n\n newInfo.dimension = info.dimension;\n\n const dimension = newInfo.dimension;\n newInfo.originFrequency = info.originFrequency\n .map((d) => d.magnitude / 1e6)\n .slice(0, dimension);\n newInfo.numberOfPoints = info.dataPoints.slice(0, 1);\n newInfo.frequencyOffset = info.frequencyOffset\n .map((f, i) => f.magnitude * newInfo.baseFrequency[i])\n .slice(0, dimension);\n newInfo.acquisitionTime = info.acquisitionTime\n .map((a) => a.magnitude)\n .slice(0, dimension);\n newInfo.spectralWidth = info.spectralWidth\n .map((sw, i) => (sw.magnitude / info.originFrequency[i].magnitude) * 1e6)\n .slice(0, dimension);\n\n // set options for dimensions\n let dimensions = [];\n let options = {};\n let increment;\n for (let d = 0; d < info.dimension; d++) {\n increment = {\n magnitude: info.acquisitionTime[d].magnitude / (info.dataPoints[d] - 1),\n unit: 's',\n };\n if (info.dataUnits[d] === 'Second') {\n options.quantityName = 'time';\n options.originOffset = { magnitude: 0, unit: 's' };\n\n if (d === 0) {\n options.coordinatesOffset = {\n magnitude: info.digitalFilter * increment.magnitude,\n unit: 's',\n };\n } else {\n options.coordinatesOffset = { magnitude: 0, unit: 's' };\n }\n options.reciprocal = {\n originOffset: {\n magnitude: info.originFrequency[d].magnitude,\n unit: 'Hz',\n },\n quantityName: 'frequency',\n coordinatesOffset: {\n magnitude:\n (info.frequencyOffset[d].magnitude *\n info.originFrequency[d].magnitude) /\n 1000000,\n unit: 'Hz',\n },\n };\n } else if (info.dataUnits[d] === 'Ppm') {\n options.quantityName = 'frequency';\n\n let origin = info.originFrequency[d].magnitude;\n options.originOffset = { magnitude: origin, unit: 'Hz' };\n\n let firstPoint = info.dataOffsetStart[0];\n let lastPoint = info.dataOffsetStop[0];\n let dataLength = lastPoint - firstPoint + 1;\n\n let spectralWidth = info.spectralWidth[d].magnitude;\n let incr = spectralWidth / info.dataPoints[d];\n increment = { magnitude: incr, unit: 'Hz' };\n\n let offset = (info.dataAxisStop[0] * origin) / 1000000;\n options.coordinatesOffset = {\n magnitude: offset,\n unit: 'Hz',\n };\n\n // after increment is computed with whole frequency\n // and original number of points, we recast the\n // number of point for export\n if (dataLength < info.dataPoints[d]) {\n info.dataPoints[d] = dataLength;\n }\n }\n\n if (d === 0) {\n options.description = 'direct dimension';\n } else {\n options.description = 'indirect dimension';\n }\n\n dimensions.push(\n formatLinearDimension(\n headers.dataAxisTitles[d],\n info.dataPoints[d],\n increment,\n options,\n ),\n );\n }\n\n // set options for dependentVariable\n options = {\n unit: 'none',\n quantityName: 'relative intensity',\n from: info.dataOffsetStart,\n to: info.dataOffsetStop,\n };\n\n let dependentVariables = [];\n dependentVariables.push(formatDependentVariable(data, 11, options));\n\n let description = Object.assign({}, newInfo);\n\n delete description.paramList;\n description.metadata = Object.assign(\n {},\n toKeyValue(headers),\n toKeyValue(parameters),\n toKeyValue(paramArray),\n );\n\n let dataStructure = {\n timeStamp: Date.now(),\n version: packageJson.version,\n description,\n tags: ['magnetic resonance'].concat(newInfo.nucleus),\n application: {\n spectralWidthClipped:\n info.spectralWidthClipped[0].magnitude / newInfo.baseFrequency[0],\n },\n dimensions: dimensions,\n dependentVariables: dependentVariables,\n };\n return [dataStructure];\n}\n","import { IOBuffer } from 'iobuffer';\r\n\r\nimport * as table from './conversionTables';\r\nimport {\r\n getPar,\r\n getMagnitude,\r\n getParamName,\r\n getArray,\r\n getUnit,\r\n getString,\r\n getDigitalFilter,\r\n} from './utils';\r\n\r\n/**\r\n * A parser for 1D and 2D JDL NMR Files\r\n * @param {ArrayBuffer} buffer - a buffer object containing the JDL file\r\n * @return {Object} - an Object with converted data\r\n */\r\nexport function parseJEOL(buffer) {\r\n let ioBuffer = new IOBuffer(buffer);\r\n ioBuffer.setBigEndian();\r\n\r\n // read header section\r\n let byte;\r\n let header = {};\r\n let byteArray = [];\r\n\r\n header.fileIdentifier = ioBuffer.readChars(8);\r\n header.endian = table.endianness[ioBuffer.readInt8()];\r\n header.majorVersion = ioBuffer.readUint8();\r\n header.minorVersion = ioBuffer.readUint16();\r\n header.dataDimensionNumber = ioBuffer.readUint8();\r\n\r\n header.dataDimensionExist = ioBuffer\r\n .readByte()\r\n .toString(2)\r\n .split('')\r\n .map((x) => Boolean(Number(x)));\r\n\r\n byte = ioBuffer.readByte();\r\n header.dataType = table.dataTypeTable[byte >> 6];\r\n header.dataFormat = table.dataFormatTable[byte & 0b00111111];\r\n header.dataInstrument = table.instrumentTable[ioBuffer.readInt8()];\r\n header.translate = getArray(ioBuffer, 8, 'readUint8');\r\n header.dataAxisType = getArray(ioBuffer, 8, 'readUint8').map(\r\n (x) => table.dataAxisTypeTable[x],\r\n );\r\n\r\n header.dataUnits = getUnit(ioBuffer, 8);\r\n header.title = getString(ioBuffer, 124);\r\n\r\n for (byte in getArray(ioBuffer, 4, 'readUint8')) {\r\n byteArray.push(table.dataAxisRangedTable[byte >> 4]);\r\n byteArray.push(table.dataAxisRangedTable[byte & 0b00001111]);\r\n }\r\n\r\n header.dataAxisRanged = byteArray;\r\n header.dataPoints = getArray(ioBuffer, 8, 'readUint32');\r\n header.dataOffsetStart = getArray(ioBuffer, 8, 'readUint32');\r\n header.dataOffsetStop = getArray(ioBuffer, 8, 'readUint32');\r\n header.dataAxisStart = getArray(ioBuffer, 8, 'readFloat64');\r\n header.dataAxisStop = getArray(ioBuffer, 8, 'readFloat64');\r\n\r\n byteArray = new Uint8Array(4);\r\n for (let i = 0; i < 4; i++) {\r\n byteArray[i] = ioBuffer.readByte();\r\n }\r\n let year = 1990 + (byteArray[0] >> 1);\r\n let month = ((byteArray[0] << 3) & 0b00001000) + (byteArray[1] >> 5);\r\n let day = byteArray[2] & 0b00011111;\r\n header.creationTime = { year, month, day };\r\n\r\n for (let i = 0; i < 4; i++) {\r\n byteArray[i] = ioBuffer.readByte();\r\n }\r\n year = 1990 + (byteArray[0] >> 1);\r\n month = ((byteArray[0] << 3) & 0b00001000) + (byteArray[1] >> 5);\r\n day = byteArray[2] & 0b00011111;\r\n header.revisionTime = { year, month, day };\r\n\r\n header.nodeName = getString(ioBuffer, 16);\r\n header.site = getString(ioBuffer, 128);\r\n header.author = getString(ioBuffer, 128);\r\n header.comment = getString(ioBuffer, 128);\r\n\r\n let dataAxisTitles = [];\r\n for (let i = 0; i < 8; i++) {\r\n dataAxisTitles.push(getString(ioBuffer, 32));\r\n }\r\n header.dataAxisTitles = dataAxisTitles;\r\n\r\n header.baseFreq = getArray(ioBuffer, 8, 'readFloat64');\r\n header.zeroPoint = getArray(ioBuffer, 8, 'readFloat64');\r\n header.reversed = getArray(ioBuffer, 8, 'readBoolean');\r\n ioBuffer.skip(3);\r\n header.annotationOK = Boolean(ioBuffer.readByte() >> 7);\r\n header.historyUsed = ioBuffer.readUint32();\r\n header.historyLength = ioBuffer.readUint32();\r\n header.paramStart = ioBuffer.readUint32();\r\n header.paramLength = ioBuffer.readUint32();\r\n header.ListStart = getArray(ioBuffer, 8, 'readUint32');\r\n header.ListLength = getArray(ioBuffer, 8, 'readUint32');\r\n header.dataStart = ioBuffer.readUint32();\r\n header.dataLength = (ioBuffer.readUint32() << 32) | ioBuffer.readUint32();\r\n header.contextStart = (ioBuffer.readUint32() << 32) | ioBuffer.readUint32();\r\n header.contextLength = ioBuffer.readUint32();\r\n header.annoteStart = (ioBuffer.readUint32() << 32) | ioBuffer.readUint32();\r\n header.annoteLength = ioBuffer.readUint32();\r\n header.totalSize = (ioBuffer.readUint32() << 32) | ioBuffer.readUint32();\r\n header.unitLocation = getArray(ioBuffer, 8, 'readUint8');\r\n\r\n let compoundUnit = [];\r\n for (let i = 0; i < 2; i++) {\r\n let unit = [];\r\n let scaler = ioBuffer.readInt16();\r\n for (let j = 0; j < 5; j++) {\r\n byte = ioBuffer.readInt16();\r\n unit.push(byte);\r\n }\r\n compoundUnit.push({ scaler, unit });\r\n }\r\n header.compoundUnit = compoundUnit;\r\n\r\n // section parameters (param header and array)\r\n if (header.endian === 'littleEndian') {\r\n ioBuffer.setLittleEndian();\r\n }\r\n ioBuffer.seek(header.paramStart);\r\n\r\n let parameters = {\r\n parameterSize: ioBuffer.readUint32(),\r\n lowIndex: ioBuffer.readUint32(),\r\n highIndex: ioBuffer.readUint32(),\r\n totalSize: ioBuffer.readUint32(),\r\n };\r\n let paramArray = [];\r\n for (let p = 0; p < parameters.highIndex + 1; p++) {\r\n ioBuffer.skip(4);\r\n let scaler = ioBuffer.readInt16();\r\n let unit = getUnit(ioBuffer, 5);\r\n ioBuffer.skip(16);\r\n let valueType = table.valueTypeTable[ioBuffer.readInt32()];\r\n ioBuffer.seek(ioBuffer.offset - 20);\r\n let value;\r\n switch (valueType) {\r\n case 'String':\r\n value = getParamName(ioBuffer, 16);\r\n break;\r\n case 'Integer':\r\n value = ioBuffer.readInt32();\r\n ioBuffer.skip(12);\r\n break;\r\n case 'Float':\r\n value = ioBuffer.readFloat64();\r\n ioBuffer.skip(8);\r\n break;\r\n case 'Complex':\r\n value.Real = ioBuffer.readFloat64();\r\n value.Imag = ioBuffer.readFloat64();\r\n break;\r\n case 'Infinity':\r\n value = ioBuffer.readInt32();\r\n ioBuffer.skip(12);\r\n break;\r\n default:\r\n ioBuffer.skip(16);\r\n break;\r\n }\r\n ioBuffer.skip(4);\r\n let name = getParamName(ioBuffer, 28);\r\n paramArray.push({ name, scaler, unit, value, valueType });\r\n }\r\n parameters.paramArray = paramArray;\r\n\r\n // data section\r\n ioBuffer.seek(header.dataStart);\r\n if (header.endian === 'littleEndian') {\r\n ioBuffer.setLittleEndian();\r\n }\r\n\r\n let data = {};\r\n let dataSectionCount = 1;\r\n let realComplex = 0;\r\n for (let type of header.dataAxisType) {\r\n if (type === 'Real_Complex' && realComplex === 0) {\r\n dataSectionCount += 1;\r\n realComplex += 1;\r\n }\r\n if (type === 'Complex') {\r\n dataSectionCount *= 2;\r\n }\r\n }\r\n\r\n if (header.dataFormat !== 'One_D' && header.dataFormat !== 'Two_D') {\r\n throw new Error('Only One_D and two_D data formats are implemented yet');\r\n }\r\n\r\n if (header.dataFormat === 'One_D') {\r\n for (let s = 0; s < dataSectionCount; s++) {\r\n let section;\r\n if (header.dataType === '32Bit Float') {\r\n section = getArray(ioBuffer, header.dataPoints[0], 'readFloat32');\r\n } else if (header.dataType === '64Bit Float') {\r\n section = getArray(ioBuffer, header.dataPoints[0], 'readFloat64');\r\n }\r\n if (s === 0) data.re = section;\r\n if (s === 1) data.im = section;\r\n }\r\n }\r\n\r\n if (header.dataFormat === 'Two_D') {\r\n let me = 32;\r\n let dim1 = header.dataPoints[0];\r\n let dim2 = header.dataPoints[1];\r\n // console.log(\r\n // `dim1: ${dim1},\r\n // dim2: ${dim2},\r\n // total: ${dim1 * dim2},\r\n // total(byte): ${dim1 * dim2 * 8},\r\n // total(length): ${dim1 * dim2 * 8 * dataSectionCount}\r\n // m size: ${dim1 / me} / ${dim2 / me}`,\r\n // );\r\n let I = dim2 / me;\r\n let J = dim1 / me;\r\n\r\n for (let s = 0; s < dataSectionCount; s++) {\r\n let section;\r\n for (let i = 0; i < I; i++) {\r\n let row = [];\r\n for (let j = 0; j < J; j++) {\r\n for (let k = 0; k < me; k++) {\r\n if (j === 0) {\r\n if (header.dataType === '32Bit Float') {\r\n row[k] = getArray(ioBuffer, me, 'readFloat32');\r\n } else if (header.dataType === '64Bit Float') {\r\n row[k] = getArray(ioBuffer, me, 'readFloat64');\r\n }\r\n } else {\r\n if (header.dataType === '32Bit Float') {\r\n row[k] = row[k].concat(getArray(ioBuffer, me, 'readFloat32'));\r\n } else if (header.dataType === '64Bit Float') {\r\n row[k] = row[k].concat(getArray(ioBuffer, me, 'readFloat64'));\r\n }\r\n }\r\n }\r\n }\r\n if (i === 0) {\r\n section = row;\r\n } else {\r\n section = section.concat(row);\r\n }\r\n }\r\n if (dataSectionCount === 2) {\r\n if (s === 0) data.re = section;\r\n if (s === 1) data.im = section;\r\n }\r\n if (dataSectionCount === 4) {\r\n if (s === 0) {\r\n data.re = {};\r\n data.re.re = section;\r\n }\r\n if (s === 1) data.re.im = section;\r\n if (s === 2) {\r\n data.im = {};\r\n data.im.re = section;\r\n }\r\n if (s === 3) data.im.im = section;\r\n }\r\n }\r\n }\r\n\r\n // format output\r\n let nucleus = [];\r\n let acquisitionTime = [];\r\n let spectralWidth = [];\r\n let spectralWidthClipped = [];\r\n let resolution = [];\r\n let originFrequency = [];\r\n let frequencyOffset = [];\r\n let dataUnits = [];\r\n if (header.dataFormat === 'One_D' || header.dataFormat === 'Two_D') {\r\n nucleus.push(getPar(parameters, 'X_DOMAIN').value);\r\n acquisitionTime.push(getMagnitude(parameters, 'x_acq_time'));\r\n spectralWidth.push(getMagnitude(parameters, 'X_SWEEP'));\r\n spectralWidthClipped.push(getMagnitude(parameters, 'X_SWEEP_CLIPPED'));\r\n resolution.push(getMagnitude(parameters, 'X_RESOLUTION'));\r\n originFrequency.push(getMagnitude(parameters, 'X_FREQ'));\r\n frequencyOffset.push(getMagnitude(parameters, 'X_OFFSET'));\r\n dataUnits.push(header.dataUnits[0].base);\r\n }\r\n if (header.dataFormat === 'Two_D') {\r\n nucleus.push(getPar(parameters, 'Y_DOMAIN').value);\r\n acquisitionTime.push(getMagnitude(parameters, 'y_acq_time'));\r\n spectralWidth.push(getMagnitude(parameters, 'Y_SWEEP'));\r\n resolution.push(getMagnitude(parameters, 'Y_RESOLUTION'));\r\n originFrequency.push(getMagnitude(parameters, 'Y_FREQ'));\r\n frequencyOffset.push(getMagnitude(parameters, 'Y_OFFSET'));\r\n dataUnits.push(header.dataUnits[1].base);\r\n }\r\n\r\n let digest = {\r\n info: {\r\n sampleName: getPar(parameters, 'sample_id').value,\r\n creationTime: header.creationTime,\r\n revisionTime: header.revisionTime,\r\n author: header.author,\r\n comment: header.comment,\r\n solvent: getPar(parameters, 'solvent').value,\r\n temperature: getMagnitude(parameters, 'temp_get'),\r\n probeName: getPar(parameters, 'probe_id').value,\r\n fieldStrength: getMagnitude(parameters, 'field_strength'),\r\n experiment: getPar(parameters, 'experiment').value,\r\n dimension: header.dataDimensionNumber,\r\n nucleus: nucleus,\r\n pulseStrength90: getMagnitude(parameters, 'X90'),\r\n numberOfScans: getPar(parameters, 'SCANS').value,\r\n relaxationTime: getMagnitude(parameters, 'relaxation_delay'),\r\n dataPoints: header.dataPoints.slice(0, header.dataDimensionNumber),\r\n dataOffsetStart: header.dataOffsetStart,\r\n dataOffsetStop: header.dataOffsetStop,\r\n dataUnits: dataUnits,\r\n dataSections: Object.keys(data),\r\n originFrequency,\r\n frequencyOffset,\r\n acquisitionTime,\r\n spectralWidth,\r\n spectralWidthClipped,\r\n dataAxisStart: header.dataAxisStart,\r\n dataAxisStop: header.dataAxisStop,\r\n resolution: resolution,\r\n digitalFilter: getDigitalFilter(parameters), //getPar(parameters, 'FILTER_FACTOR').value,\r\n decimationRate: getPar(parameters, 'decimation_rate').value,\r\n paramList: JSON.stringify(parameters.paramArray.map((par) => par.name)),\r\n },\r\n\r\n headers: header,\r\n parameters: parameters,\r\n data: data,\r\n };\r\n return digest;\r\n}\r\n"],"names":["toString","Object","prototype","isAnyArray","object","call","endsWith","numericTypeTable","quantityTypeTable","formatDependentVariable","data","numericType","options","components","quantityType","encoding","name","unit","quantityName","componentLabels","sparseSampling","from","to","Error","keys","length","fromReIm","type","description","application","dataLength","reIm","re","im","setLengthComplex","component","Float64Array","i","idx","push","setLength","j","formatLinearDimension","label","count","increment","String","Number","coordinatesOffset","originOffset","reciprocal","period","complexFFT","decoder","TextDecoder","encoder","TextEncoder","IOBuffer","[object Object]","dataIsGiven","ArrayBuffer","lastWrittenByte","byteLength","offset","dvOffset","isView","buffer","byteOffset","littleEndian","_data","DataView","this","_mark","_marks","n","pop","undefined","seek","available","newLength","newArray","Uint8Array","set","readUint8","getInt8","getUint8","bytes","readByte","value","getInt16","getUint16","getInt32","getUint32","getFloat32","getFloat64","fromCharCode","readInt8","result","readChar","readBytes","decode","writeUint8","ensureAvailable","setInt8","_updateLastWrittenByte","setUint8","setInt16","setUint16","setInt32","setUint32","setFloat32","setFloat64","str","charCodeAt","writeBytes","encode","endianness","instrumentTable","dataTypeTable","dataFormatTable","dataAxisTypeTable","prefixTable","unitPrefixTable","Yotta","Exa","Zetta","Pecta","Tera","Giga","Mega","Kilo","None","Milli","Micro","Nano","Pico","Femto","Atto","Zepto","baseTable","dataAxisRangedTable","valueTypeTable","getPar","param","searchStr","paramArray","find","o","getDigitalFilter","orders","e","factors","sweep","acqTime","nbPoints","s","parseInt","slice","jump","arg","factorNumber","Int8Array","offsetO","offsetF","productorial","getMagnitude","par","magnitude","base","unitMult","table","prefix","getUnit","size","byte","power","getString","string","char","join","getParamName","getArray","format","double","readUint32","readFloat64","readFloat32","readBoolean","a","d","f","g","h","c","b","_ref","module","exports","window","median","input","isArray","TypeError","quickSelectMedian","gyromagneticRatio","toKeyValue","newObject","key","JSON","stringify","u","r","require","code","l","t","self","JSZip","p","getTypeOf","charAt","substr","replace","uint8array","Array","indexOf","compressedSize","uncompressedSize","crc32","compression","compressedContent","getContentWorker","Promise","resolve","pipe","uncompressWorker","on","streamInfo","data_length","getCompressedWorker","withStreamInfo","createWorkerFrom","compressWorker","STORE","magic","DEFLATE","base64","binary","dir","createFolders","date","compressionOptions","comment","unixPermissions","dosPermissions","lie","Uint16Array","Uint32Array","_pako","_pakoAction","_pakoOptions","meta","inherits","processChunk","_createPako","transformTo","flush","cleanUp","raw","level","onData","pako","I","file","B","utf8encode","O","m","_","v","w","y","k","x","S","z","E","C","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCFullYear","getUTCMonth","getUTCDate","T","A","fileRecord","R","LOCAL_FILE_HEADER","dirRecord","CENTRAL_FILE_HEADER","bytesWritten","zipComment","zipPlatform","encodeFileName","streamFiles","accumulate","contentBuffer","dirRecords","currentSourceOffset","entriesCount","currentFile","_sources","percent","openedSource","closedSource","DATA_DESCRIPTOR","shift","CENTRAL_DIRECTORY_END","prepareNextSource","previous","isPaused","pause","resume","registerPrevious","end","error","generatedError","lock","generateWorker","platform","forEach","_compressWorker","arguments","files","root","clone","loadAsync","support","defaults","version","external","decompressed","extend","checkCRC32","optimizedBinaryString","decodeFileName","utf8decode","isNode","isStream","reject","prepareContent","then","load","all","fileNameStr","fileCommentStr","_upstreamEnded","_bindStream","_stream","Readable","_helper","emit","_read","Buffer","newBufferFrom","allocBuffer","alloc","fill","isBuffer","Date","toUpperCase","substring","lastIndexOf","hasOwnProperty","filter","test","folder","remove","generate","generateInternalStream","mimeType","toLowerCase","checkSupport","generateAsync","generateNodeStream","toNodejsStream","stream","byteAt","zero","lastIndexOfSignature","readAndCheckSignature","readData","checkOffset","index","checkIndex","setIndex","skip","readInt","readString","readDate","UTC","subarray","ZIP64_CENTRAL_DIRECTORY_LOCATOR","ZIP64_CENTRAL_DIRECTORY_END","destType","propName","dataIsReady","max","_tickScheduled","_tickAndRepeat","delay","isFinished","_tick","Math","min","extraStreamInfo","isLocked","_listeners","mergeStreamInfo","nodestream","_internalType","_outputType","_mimeType","_worker","newBlob","concat","apply","objectMode","array","arraybuffer","nodebuffer","blob","Blob","BlobBuilder","WebKitBlobBuilder","MozBlobBuilder","MSBlobBuilder","append","getBlob","leftOver","applyFromCharCode","Utf8DecodeWorker","Utf8EncodeWorker","stringifyByChunk","stringifyByChar","applyCanBeUsed","floor","MAX_VALUE_16BITS","MAX_VALUE_32BITS","pretty","FileReader","onload","target","onerror","readAsArrayBuffer","loadOptions","checkSignature","reader","isSignature","readBlockEndOfCentral","diskNumber","diskWithCentralDirStart","centralDirRecordsOnThisDisk","centralDirRecords","centralDirSize","centralDirOffset","zipCommentLength","readBlockZip64EndOfCentral","zip64EndOfCentralSize","zip64ExtensibleData","id","readBlockZip64EndOfCentralLocator","diskWithZip64CentralDirStart","relativeOffsetEndOfZip64CentralDir","disksCount","readLocalFiles","localHeaderOffset","readLocalPart","handleUTF8","processAttributes","readCentralDir","zip64","readCentralPart","readEndOfCentral","abs","prepareReader","isEncrypted","bitFlag","useUTF8","fileNameLength","fileName","compressionMethod","versionMadeBy","extraFieldsLength","fileCommentLength","diskNumberStart","internalFileAttributes","externalFileAttributes","readExtraFields","parseZIP64ExtraField","fileComment","extraFields","findExtraFieldUnicodePath","findExtraFieldUnicodeComment","_dataBinary","internalStream","_decompressWorker","async","nodeStream","MutationObserver","WebKitMutationObserver","document","createTextNode","observe","characterData","setImmediate","MessageChannel","createElement","onreadystatechange","parentNode","removeChild","documentElement","appendChild","setTimeout","port1","onmessage","port2","postMessage","state","queue","outcome","promise","onFulfilled","callFulfilled","otherCallFulfilled","onRejected","callRejected","otherCallRejected","status","finally","constructor","catch","race","immediate","assign","method","chunkSize","windowBits","memLevel","strategy","gzip","err","msg","ended","chunks","strm","avail_out","deflateInit2","header","deflateSetHeader","dictionary","string2buf","deflateSetDictionary","_dict_set","next_in","avail_in","output","Buf8","next_out","deflate","onEnd","buf2binstring","shrinkBuf","deflateEnd","flattenChunks","Deflate","deflateRaw","inflateInit2","Z_OK","inflateGetHeader","Z_FINISH","Z_NO_FLUSH","binstring2buf","inflate","Z_NEED_DICT","inflateSetDictionary","Z_BUF_ERROR","Z_STREAM_END","Z_SYNC_FLUSH","utf8border","buf2string","arraySet","inflateEnd","Inflate","inflateRaw","ungzip","Int32Array","setTyped","Buf16","Buf32","Z_PARTIAL_FLUSH","Z_FULL_FLUSH","Z_BLOCK","Z_TREES","Z_ERRNO","Z_STREAM_ERROR","Z_DATA_ERROR","Z_NO_COMPRESSION","Z_BEST_SPEED","Z_BEST_COMPRESSION","Z_DEFAULT_COMPRESSION","Z_FILTERED","Z_HUFFMAN_ONLY","Z_RLE","Z_FIXED","Z_DEFAULT_STRATEGY","Z_BINARY","Z_TEXT","Z_UNKNOWN","Z_DEFLATED","pending","pending_buf","pending_out","total_out","_tr_flush_block","block_start","strstart","max_chain_length","prev_length","nice_match","w_size","w_mask","prev","good_match","lookahead","match_start","window_size","hash_size","head","wrap","adler","total_in","insert","ins_h","hash_shift","hash_mask","match_length","_tr_tally","max_lazy_match","last_lit","D","prev_match","match_available","F","good_length","max_lazy","nice_length","max_chain","func","N","pending_buf_size","gzhead","gzindex","last_flush","w_bits","hash_bits","dyn_ltree","dyn_dtree","bl_tree","l_desc","d_desc","bl_desc","bl_count","heap","heap_len","heap_max","depth","l_buf","lit_bufsize","d_buf","opt_len","static_len","matches","bi_buf","bi_valid","U","data_type","_tr_init","P","L","deflateInit","deflateReset","deflateResetKeep","text","hcrc","extra","time","os","_tr_align","_tr_stored_block","deflateInfo","xflags","extra_len","done","dmax","wsize","whave","wnext","hold","bits","lencode","distcode","lenbits","distbits","mode","sane","last","havedict","flags","check","total","wbits","ncode","nlen","ndist","have","next","lens","work","lendyn","distdyn","back","was","Z","inflateReset","inflateReset2","inflateResetKeep","inflateInit","inflateInfo","static_tree","extra_bits","extra_base","elems","max_length","has_stree","dyn_tree","max_code","stat_desc","splice","global","add2D","zData","spectra","noise","minZ","maxZ","ySize","xSize","firstX","lastX","firstY","pageValue","lastY","spectrum","reverse","minX","maxX","minY","maxY","convertTo3DZ","noContours","contourLines","pAx","pAy","pBx","pBy","lineZValue","contourLevels","povarHeight","Float32Array","isOver","nbSubSpectra","nbPovars","x0","dx","y0","dy","nbLevels","contourLevel","exp","lines","zValue","iSubSpectra","povar","segments","generateContourLines","minMax","GC_MS_FIELDS","complexChromatogram","chromatogram","times","series","ms","dimension","existingGCMSFields","convertMSFieldToLabel","parseFloat","isMSField","canonicDataLabel","convertToFloatArray","stringArray","floatArray","fastParseXYData","yFactor","deltaX","isXYdata","currentData","ascii","currentX","currentY","endLine","newLine","isDifference","isLastDifference","lastDifference","isDuplicate","inComment","currentValue","lastValue","isNegative","inValue","skipFirstValue","decimalPosition","pow","duplicate","ascii2","removeCommentRegExp","peakTableSplitRegExp","parsePeakTable","isPeaktable","variables","numberOfVariables","variable","split","values","trim","logs","parseXYZ","xFactor","parseXY","parseXYA","removeSymbolRegExp","isXYAdata","medians","row","getMedian","noContour","povarHeight0","povarHeight1","povarHeight2","povarHeight3","isOver0","isOver1","isOver2","isOver3","iter","nbContourLevels","side","factor","noiseMultiplier","subSpectra","subSpectraAfter","profiling","action","now","start","simpleChromatogram","intensity","postProcessing","entriesFlat","entry","observeFrequency","shiftOffsetVal","ntuples","symbol","xUnits","includes","nucleus","startsWith","tmp","$NUC2","f2index","$NUC1","yType","pageSymbolIndex","pageSymbol","units","ratio0","ratio1","ratio","postProcessingNMR","newNtuples","twoD","wantXY","keepSpectra","prepareNtuplesDatatable","currentEntry","kind","xIndex","yIndex","firstVariable","secondVariable","lowerCaseSymbol","first","vardim","varname","yUnits","prepareSpectrum","ntuplesSeparatorRegExp","numberRegExp","Spectrum","defaultOptions","keepRecordsRegExp","canonicDataLabels","canonicMetadataLabels","dynamicTyping","withoutXY","convert","jcamp","ensureString","entries","tmpResult","children","parentsStack","ldrs","ldr","position","dataLabel","dataValue","infos","datatable","parentEntry","info","title","dataType","match","dataClass","xType","shiftOffsetNum","vartype","varform","page","sampleDescription","flatten","parseData","convertJcamp","ensureIOBuffer","setFIDSpectrumData","td","TD","SW_H","SW_h","SF","SFO1","DATATYPE","DW","AQ","endian","BYTORDA","setLittleEndian","setBigEndian","toSave","dataTable","NUC1","xUnit","yUnit","TITLE","directFrequency","readInt32","isNaN","setXYSpectrumData","real","SI","swP","SW_p","sf","bf","OFFSET","brukerReference","BYTORDP","mergeMetadata","main","complement","convertFolder","brukerFiles","ser","temp","temp2","xOffset","yOffset","proc2s","procs","acqus","acqu2s","SW","xWindowSize","yWindowSize","xTransmitterFrequency","yTransmitterFrequency","O1","deltaY","nuc1","AXNUC","axnuc","convert2D","fid","RangeError","currKey","convert1D","DATE","GRPDLY","DSPFVS","DECIM","xy","newData","source","extractSingleSpectrumZip","pathSpectrum","zipFiles","filePaths","expnoCheck","procnoCheck","parts","procno","extractFilePaths","zipFolder","extension","map","brukerDspTable","checkForNucleus","beforeLength","getInfoFromJCAMP","metaData","subfix","isFid","isFt","isComplex","separator","JCAMPDX","jcampdx","ORIGIN","origin","creator","LONGDATE","nuc","experiment","getNucleusFromMetadata","maybeAdd","typeLowerCase","pulseSequence","spectyp","pulse","getSpectrumType","gyromagneticRatioConst","some","baseFrequency","originFrequency","fieldStrength","PI","frequencyOffset","numberOfPoints","LAST","acquisitionTime","spectralWidth","pulseStrength","relaxationTime","groupDelay","digitalFilterParameters","grpdly","dspfvs","decim","dspfvsList","getDigitalFilterParameters","nb","toISOString","solvent","SYMBOL","symbols","obj","removeUnless","expectedTypes","isSpectraData","inputDataType","inputDataClass","zipFile","keepOriginal","zip","folders","relativePath","promises","currFiles","filename","convertBruker","dataStructure","element","metadata","dimensions","dependentVariables","dependentVariable","digitalFilter","spectraWidth","timeStamp","valueOf","packageJson","parsedData","ioBuffer","byteArray","fileIdentifier","readChars","majorVersion","minorVersion","readUint16","dataDimensionNumber","dataDimensionExist","Boolean","dataFormat","dataInstrument","translate","dataAxisType","dataUnits","dataAxisRanged","dataPoints","dataOffsetStart","dataOffsetStop","dataAxisStart","dataAxisStop","year","month","day","creationTime","revisionTime","nodeName","site","author","dataAxisTitles","baseFreq","zeroPoint","reversed","annotationOK","historyUsed","historyLength","paramStart","paramLength","ListStart","ListLength","dataStart","contextStart","contextLength","annoteStart","annoteLength","totalSize","unitLocation","compoundUnit","scaler","readInt16","parameters","parameterSize","lowIndex","highIndex","valueType","Real","Imag","dataSectionCount","realComplex","section","me","dim1","J","spectralWidthClipped","resolution","sampleName","temperature","probeName","pulseStrength90","numberOfScans","dataSections","decimationRate","paramList","headers","parseJEOL","newInfo","gyromagneticRatioConstants","gmr","sw","firstPoint","tags"],"mappings":"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cACA,kBACA,UACA,cACA,WACA,iBACA,WACA,cACA,SACA,SACA,SACA,WACA,cACA,WAGOC,EAAgB,GACxB,gBACA,gBACA,aACA,YAGQC,EAAkB,GAC1B,UACA,UACA,YACA,WACA,WACA,UACA,YACA,YACA,8BACC,8BACA,8BACA,iBACA,mBACA,gBAGOC,EAAoB,GAC5B,SACA,SACA,SACA,YACA,iBAIA,YAOQC,EAAc,MACnB,aACA,WACA,aACA,aACA,YACA,YACA,YACA,SACH,SACA,UACA,UACA,SACA,SACA,UACA,SACA,SAGQC,EAAkB,CAC7BC,MAAO,GACPC,IAAK,GACLC,MAAO,GACPC,MAAO,GACPC,KAAM,GACNC,KAAM,EACNC,KAAM,EACNC,KAAM,EACNC,KAAM,EACNC,OAAQ,EACRC,OAAQ,EACRC,MAAO,EACPC,MAAO,GACPC,OAAQ,GACRC,MAAO,GACPC,OAAQ,IAGGC,EAAY,GACpB,SACA,cACA,WACA,YACA,YACA,YACA,WACA,iBACA,UACA,aACC,UACA,UACA,WACA,WACA,YACA,WACA,WACA,WACA,SACA,WACA,UACA,YACA,SACA,YACA,aACA,WACA,SACA,YACA,YACA,aACA,eACA,WACA,UACA,UACA,WACA,aACA,YACA,cACA,cACA,eACA,SACA,UACA,SAGOC,EAAsB,GAC9B,WAKA,WAGA,WAIA,UAKQC,EAAiB,GACzB,WACA,YACA,UACA,YACA,YCtLE,SAASC,EAAOC,EAAOC,UACrBD,EAAME,WAAWC,MAAMC,GAAMA,EAAEnI,OAASgI,KAAc,GAGxD,SAASI,EAAiBL,SACzBM,EAASN,EAAME,WAAWC,MAAMI,GAAiB,WAAXA,EAAEtI,OACxCuI,EAAUR,EAAME,WAAWC,MAAMI,GAAiB,YAAXA,EAAEtI,OACzCwI,EAAQT,EAAME,WAAWC,MAAMI,GAAiB,YAAXA,EAAEtI,OACvCyI,EAAUV,EAAME,WAAWC,MAAMI,GAAiB,eAAXA,EAAEtI,OACzC0I,EAAWX,EAAME,WAAWC,MAAMI,GAAiB,aAAXA,EAAEtI,OAC1C2I,EAAIC,SAASP,EAAO7D,MAAMqE,MAAM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"}