csv-sort 7.0.13 → 7.0.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2010-2023 Roy Revelt and other contributors
3
+ Copyright (c) 2010-2024 Roy Revelt and other contributors
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining
6
6
  a copy of this software and associated documentation files (the
package/README.md CHANGED
@@ -75,7 +75,7 @@ To report bugs or request features or assistance, [raise an issue](https://githu
75
75
 
76
76
  MIT License.
77
77
 
78
- Copyright © 2010-2023 Roy Revelt and other contributors.
78
+ Copyright © 2010-2024 Roy Revelt and other contributors.
79
79
 
80
80
  List of [currency signs](https://github.com/bengourley/currency-symbol-map) - Copyright © 2017 Ben Gourley - see its [BSD-2-Clause disclaimer](https://opensource.org/licenses/BSD-2-Clause)
81
81
 
@@ -1,11 +1,11 @@
1
1
  /**
2
2
  * @name csv-sort
3
3
  * @fileoverview Sort double-entry bookkeeping CSV from internet banking
4
- * @version 7.0.13
4
+ * @version 7.0.15
5
5
  * @author Roy Revelt, Codsen Ltd
6
6
  * @license MIT
7
7
  * {@link https://codsen.com/os/csv-sort/}
8
8
  */
9
9
 
10
- import{pull as B}from"lodash-es";import{splitEasy as O}from"csv-split-easy";import R from"currency.js";function E(i){return typeof i=="number"&&!isNaN(i)?!0:(i=(i||"").toString().trim(),i?!isNaN(+i):!1)}var N=["\u062F.\u0625","\u060B","L","\u058F","\u0192","Kz","$","\u0192","\u20BC","KM","\u09F3","\u043B\u0432",".\u062F.\u0628","FBu","$b","R$","\u0E3F","Nu.","P","p.","BZ$","FC","CHF","\xA5","\u20A1","\u20B1","K\u010D","Fdj","kr","RD$","\u062F\u062C","kr","Nfk","Br","\u039E","\u20AC","\u20BE","\u20B5","GH\u20B5","D","FG","Q","L","kn","G","Ft","Rp","\u20AA","\u20B9","\u0639.\u062F","\uFDFC","kr","J$","JD","\xA5","KSh","\u043B\u0432","\u17DB","CF","\u20A9","\u20A9","KD","\u043B\u0432","\u20AD","\u20A8","M","\u0141","Lt","Ls","LD","MAD","lei","Ar","\u0434\u0435\u043D","K","\u20AE","MOP$","UM","\u20A8","Rf","MK","RM","MT","\u20A6","C$","kr","\u20A8","\uFDFC","B/.","S/.","K","\u20B1","\u20A8","z\u0142","Gs","\uFDFC","\uFFE5","lei","\u0414\u0438\u043D.","\u20BD","R\u20A3","\uFDFC","\u20A8","\u062C.\u0633.","kr","\xA3","Le","S","Db","E","\u0E3F","SM","T","\u062F.\u062A","T$","\u20A4","\u20BA","TT$","NT$","TSh","\u20B4","USh","$U","\u043B\u0432","Bs","\u20AB","VT","WS$","FCFA","\u0243","CFA","\u20A3","\uFDFC","R","Z$"];function f(i){return E(i)||N.some(b=>E(i.replace(b,"").replace(/[,.]/g,"")))?"numeric":i.trim()?"text":"empty"}var T="7.0.13";var K=T;function _(i){let b=null,C=null;if(typeof i!="string")throw new TypeError(`csv-sort/csvSort(): [THROW_ID_01] The input is of a wrong type! We accept either string of array of arrays. We got instead: ${typeof i}, equal to:
10
+ import{pull as B}from"lodash-es";import{splitEasy as O}from"csv-split-easy";import R from"currency.js";function E(i){return typeof i=="number"&&!isNaN(i)?!0:(i=(i||"").toString().trim(),i?!isNaN(+i):!1)}var N=["\u062F.\u0625","\u060B","L","\u058F","\u0192","Kz","$","\u0192","\u20BC","KM","\u09F3","\u043B\u0432",".\u062F.\u0628","FBu","$b","R$","\u0E3F","Nu.","P","p.","BZ$","FC","CHF","\xA5","\u20A1","\u20B1","K\u010D","Fdj","kr","RD$","\u062F\u062C","kr","Nfk","Br","\u039E","\u20AC","\u20BE","\u20B5","GH\u20B5","D","FG","Q","L","kn","G","Ft","Rp","\u20AA","\u20B9","\u0639.\u062F","\uFDFC","kr","J$","JD","\xA5","KSh","\u043B\u0432","\u17DB","CF","\u20A9","\u20A9","KD","\u043B\u0432","\u20AD","\u20A8","M","\u0141","Lt","Ls","LD","MAD","lei","Ar","\u0434\u0435\u043D","K","\u20AE","MOP$","UM","\u20A8","Rf","MK","RM","MT","\u20A6","C$","kr","\u20A8","\uFDFC","B/.","S/.","K","\u20B1","\u20A8","z\u0142","Gs","\uFDFC","\uFFE5","lei","\u0414\u0438\u043D.","\u20BD","R\u20A3","\uFDFC","\u20A8","\u062C.\u0633.","kr","\xA3","Le","S","Db","E","\u0E3F","SM","T","\u062F.\u062A","T$","\u20A4","\u20BA","TT$","NT$","TSh","\u20B4","USh","$U","\u043B\u0432","Bs","\u20AB","VT","WS$","FCFA","\u0243","CFA","\u20A3","\uFDFC","R","Z$"];function f(i){return E(i)||N.some(b=>E(i.replace(b,"").replace(/[,.]/g,"")))?"numeric":i.trim()?"text":"empty"}var T="7.0.15";var K=T;function _(i){let b=null,C=null;if(typeof i!="string")throw new TypeError(`csv-sort/csvSort(): [THROW_ID_01] The input is of a wrong type! We accept either string of array of arrays. We got instead: ${typeof i}, equal to:
11
11
  ${JSON.stringify(i,null,4)}`);if(!i.trim())return{res:[[""]],msgContent:b,msgType:C};let n=O(i),s=[],d=!1,S=!0,v=[],o=null;for(let t=n.length-1;t>=0;t--)if(s.length){t===0&&(d=n[t].every(l=>f(l)==="text"||f(l)==="empty")),!d&&s.length!==n[t].length&&(S=!1);let e=null;for(let l=0,p=n[t].length;l<p;l++)if(e===null&&f(n[t][l].trim())==="empty"&&(e=l),e!==null&&f(n[t][l].trim())!=="empty"&&(e=null),f(n[t][l].trim())!==s[l]&&!d){let a=f(n[t][l].trim());if(Array.isArray(s[l]))s[l].includes(a)||s[l].push(f(n[t][l].trim()));else if(s[l]!==a){let u=s[l];s[l]=[],s[l].push(u),s[l].push(a)}}o!==null&&e!==null&&e>o&&(!d||d&&t!==0)&&(o=e)}else if(n[t].length!==1||n[t][0]!=="")for(let e=0,l=n[t].length;e<l;e++)s.push(f(n[t][e].trim())),o===null&&f(n[t][e].trim())==="empty"&&(o=e),o!==null&&f(n[t][e].trim())!=="empty"&&(o=null);o||(o=s.length);let w=0;for(let t=0,e=s.length;t<e&&s[t]==="empty";t++)w=t;w!==0&&(n=n.map(t=>t.slice(w+1,o)),s=s.slice(w+1,o));let V=[],m;s.forEach((t,e)=>{t==="numeric"&&V.push(e)});let k=d?1:0;if(V.length===1)m=V[0];else{if(V.length===0)throw new Error('csv-sort/csvSort(): [THROW_ID_03] Your CSV file does not contain numeric-only columns and computer was not able to detect the "Balance" column!');{let t=Array.from(V),e=[];for(let l=0,p=t.length;l<p;l++){let a=t[l],u,g=!0,$,h=!0;for(let c=k,I=n.length;c<I&&(g&&(u==null?u=n[c][a]:u===n[c][a]?(e.push(a),g=!1):u=n[c][a]),h&&($==null?$=n[c][a]:n[c][a]!==$&&(h=!1)),!!g);c++);h&&v.push(a)}if(t=B(t,...e),t.length===1)m=t[0];else if(t.length===0)throw new Error(`csv-sort/csvSort(): [THROW_ID_04] The computer can't find the "Balance" column! It saw some numeric-only columns, but they all seem to have certain rows with the same values as rows right below/above them!`)}}if(!m)throw new Error("csv-sort/csvSort(): [THROW_ID_05] Sadly computer couldn't find its way in this CSV and had to stop working on it.");let D=B(Array.from(s.reduce((t,e,l)=>((typeof e=="string"&&e==="numeric"||Array.isArray(e)&&e.includes("numeric"))&&t.push(l),t),[])),m,...v),r=[];r.push(n[n.length-1].slice(0,o));let y=[],x=d?1:0;for(let t=n.length-2;t>=x;t--)for(let e=n.length-2;e>=x;e--)if(!y.includes(e)){let l=!1;for(let p=0,a=D.length;p<a;p++){let u=null;n[e][D[p]]!==""&&(u=R(n[e][D[p]]));let g=null;n[e][m]!==""&&(g=R(n[e][m]));let $=null;r[0][m]!==""&&($=R(r[0][m]).format());let h=null;r[r.length-1][D[p]]!==""&&(h=R(r[r.length-1][D[p]]).format());let c=null;if(r[r.length-1][m]!==""&&(c=R(r[r.length-1][m])),u&&g.add(u).format()===$){r.unshift(n[e].slice(0,o)),y.push(e),l=!0;break}else if(u&&g.subtract(u).format()===$){r.unshift(n[e].slice(0,o)),y.push(e),l=!0;break}else if(h&&c.add(h).format()===g.format()){r.push(n[e].slice(0,o)),y.push(e),l=!0;break}else if(h&&c.subtract(h).format()===g.format()){r.push(n[e].slice(0,o)),y.push(e),l=!0;break}}if(l){l=!1;break}}return d&&(S&&n[0].length>s.length&&(n[0].length=s.length),r.unshift(n[0].slice(0,o))),n.length-(d?2:1)!==y.length&&(b="Not all rows were recognised!",C="alert"),{res:r,msgContent:b,msgType:C}}export{f as findType,E as isNumeric,_ as sort,K as version};
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @name csv-sort
3
3
  * @fileoverview Sort double-entry bookkeeping CSV from internet banking
4
- * @version 7.0.13
4
+ * @version 7.0.15
5
5
  * @author Roy Revelt, Codsen Ltd
6
6
  * @license MIT
7
7
  * {@link https://codsen.com/os/csv-sort/}
@@ -17,12 +17,12 @@ ${JSON.stringify(s,null,4)}`);if(D(this.ranges)&&Array.isArray(this.last())&&o==
17
17
  ${JSON.stringify(e,null,4)}`);if(r&&typeof r!="object")throw new TypeError(`string-remove-thousand-separators/remSep(): [THROW_ID_02] Options object must be a plain object! Currently it's: ${typeof r}, equal to:
18
18
  ${JSON.stringify(r,null,4)}`);let t=x(x({},$o),r),n=te(e.trim(),'"');if(n==="")return n;if(+e>0&&+e<1)return e;let l=new hr;for(let i=0,a=n.length;i<a;i++){if(t.removeThousandSeparatorsFromNumbers&&n[i].trim()===""&&l.add(i,i+1),t.removeThousandSeparatorsFromNumbers&&n[i]==="'"&&(l.add(i,i+1),n[i+1]==="'")){s=!1;break}if(o.includes(n[i])){if(n[i+1]!==void 0&&/^\d$/.test(n[i+1]))if(n[i+2]!==void 0)if(/^\d$/.test(n[i+2]))if(n[i+3]!==void 0)if(/^\d$/.test(n[i+3])){if(n[i+4]!==void 0&&/^\d$/.test(n[i+4])){s=!1;break}else if(t.removeThousandSeparatorsFromNumbers&&l.add(i,i+1),!f)f=n[i];else if(n[i]!==f){s=!1;break}}else{s=!1;break}else t.removeThousandSeparatorsFromNumbers&&t.forceUKStyle&&n[i]===","&&l.add(i,i+1,".");else{s=!1;break}else t.forceUKStyle&&n[i]===","&&l.add(i,i+1,"."),t.padSingleDecimalPlaceNumbers&&l.add(i+2,i+2,"0")}else if(!/^\d$/.test(n[i])){s=!1;break}}return s&&l.current()?pr(n,l.current()):n}var Ao={removeThousandSeparatorsFromNumbers:!0,padSingleDecimalPlaceNumbers:!0,forceUKStyle:!1};function yr(e,r){let s=0,o=0,f=[],t=[],n=!1,l=!0;if(r&&typeof r!="object")throw new Error(`csv-split-easy/split(): [THROW_ID_02] Options object must be a plain object! Currently it's of a type ${typeof r} equal to:
19
19
  ${JSON.stringify(r,null,4)}`);let i=x(x({},Ao),r);if(typeof e!="string")throw new TypeError(`csv-split-easy/split(): [THROW_ID_04] input must be string! Currently it's: ${typeof e}, equal to: ${JSON.stringify(e,null,4)}`);if(e==="")return[[""]];e=e.trim();for(let a=0,u=e.length;a<u;a++){if(l&&e[a]!=='"'&&e[a]!==","&&e[a].trim()!==""&&(l=!1),e[a]==='"')if(n&&e[a+1]==='"')a+=1;else if(n){n=!1;let p=e.slice(s,a);p.trim()!==""&&(l=!1);let c=/""/.test(p)?p.replace(/""/g,'"'):_(p,{removeThousandSeparatorsFromNumbers:i.removeThousandSeparatorsFromNumbers,padSingleDecimalPlaceNumbers:i.padSingleDecimalPlaceNumbers,forceUKStyle:i.forceUKStyle});f.push(c)}else n=!0,s=a+1;else if(!n&&e[a]===","){if(e[a-1]!=='"'&&!n){let p=e.slice(s,a);p.trim()!==""&&(l=!1),f.push(_(p,{removeThousandSeparatorsFromNumbers:i.removeThousandSeparatorsFromNumbers,padSingleDecimalPlaceNumbers:i.padSingleDecimalPlaceNumbers,forceUKStyle:i.forceUKStyle}))}s=a+1,o&&(o=0)}else if(e[a]===`
20
- `||e[a]==="\r"){if(!o){if(o=a,!n&&e[a-1]!=='"'){let p=e.slice(s,a);p.trim()!==""&&(l=!1),f.push(_(p,{removeThousandSeparatorsFromNumbers:i.removeThousandSeparatorsFromNumbers,padSingleDecimalPlaceNumbers:i.padSingleDecimalPlaceNumbers,forceUKStyle:i.forceUKStyle}))}l?f.length=0:t.push(f),l=!0,f=[]}s=a+1}else o&&(o=0,s=a);if(a+1===u){if(e[a]!=='"'){let p=e.slice(s,a+1);p.trim()&&(l=!1),f.push(_(p,{removeThousandSeparatorsFromNumbers:i.removeThousandSeparatorsFromNumbers,padSingleDecimalPlaceNumbers:i.padSingleDecimalPlaceNumbers,forceUKStyle:i.forceUKStyle}))}l?f=[]:t.push(f),l=!0}}return t.length===0?[[""]]:t}var V=ue(xr(),1);function G(e){return typeof e=="number"&&!isNaN(e)?!0:(e=(e||"").toString().trim(),e?!isNaN(+e):!1)}var Oo=["\u062F.\u0625","\u060B","L","\u058F","\u0192","Kz","$","\u0192","\u20BC","KM","\u09F3","\u043B\u0432",".\u062F.\u0628","FBu","$b","R$","\u0E3F","Nu.","P","p.","BZ$","FC","CHF","\xA5","\u20A1","\u20B1","K\u010D","Fdj","kr","RD$","\u062F\u062C","kr","Nfk","Br","\u039E","\u20AC","\u20BE","\u20B5","GH\u20B5","D","FG","Q","L","kn","G","Ft","Rp","\u20AA","\u20B9","\u0639.\u062F","\uFDFC","kr","J$","JD","\xA5","KSh","\u043B\u0432","\u17DB","CF","\u20A9","\u20A9","KD","\u043B\u0432","\u20AD","\u20A8","M","\u0141","Lt","Ls","LD","MAD","lei","Ar","\u0434\u0435\u043D","K","\u20AE","MOP$","UM","\u20A8","Rf","MK","RM","MT","\u20A6","C$","kr","\u20A8","\uFDFC","B/.","S/.","K","\u20B1","\u20A8","z\u0142","Gs","\uFDFC","\uFFE5","lei","\u0414\u0438\u043D.","\u20BD","R\u20A3","\uFDFC","\u20A8","\u062C.\u0633.","kr","\xA3","Le","S","Db","E","\u0E3F","SM","T","\u062F.\u062A","T$","\u20A4","\u20BA","TT$","NT$","TSh","\u20B4","USh","$U","\u043B\u0432","Bs","\u20AB","VT","WS$","FCFA","\u0243","CFA","\u20A3","\uFDFC","R","Z$"];function w(e){return G(e)||Oo.some(r=>G(e.replace(r,"").replace(/[,.]/g,"")))?"numeric":e.trim()?"text":"empty"}var br="7.0.13";var Do=br;function Io(e){let r=null,s=null;if(typeof e!="string")throw new TypeError(`csv-sort/csvSort(): [THROW_ID_01] The input is of a wrong type! We accept either string of array of arrays. We got instead: ${typeof e}, equal to:
20
+ `||e[a]==="\r"){if(!o){if(o=a,!n&&e[a-1]!=='"'){let p=e.slice(s,a);p.trim()!==""&&(l=!1),f.push(_(p,{removeThousandSeparatorsFromNumbers:i.removeThousandSeparatorsFromNumbers,padSingleDecimalPlaceNumbers:i.padSingleDecimalPlaceNumbers,forceUKStyle:i.forceUKStyle}))}l?f.length=0:t.push(f),l=!0,f=[]}s=a+1}else o&&(o=0,s=a);if(a+1===u){if(e[a]!=='"'){let p=e.slice(s,a+1);p.trim()&&(l=!1),f.push(_(p,{removeThousandSeparatorsFromNumbers:i.removeThousandSeparatorsFromNumbers,padSingleDecimalPlaceNumbers:i.padSingleDecimalPlaceNumbers,forceUKStyle:i.forceUKStyle}))}l?f=[]:t.push(f),l=!0}}return t.length===0?[[""]]:t}var V=ue(xr(),1);function G(e){return typeof e=="number"&&!isNaN(e)?!0:(e=(e||"").toString().trim(),e?!isNaN(+e):!1)}var Oo=["\u062F.\u0625","\u060B","L","\u058F","\u0192","Kz","$","\u0192","\u20BC","KM","\u09F3","\u043B\u0432",".\u062F.\u0628","FBu","$b","R$","\u0E3F","Nu.","P","p.","BZ$","FC","CHF","\xA5","\u20A1","\u20B1","K\u010D","Fdj","kr","RD$","\u062F\u062C","kr","Nfk","Br","\u039E","\u20AC","\u20BE","\u20B5","GH\u20B5","D","FG","Q","L","kn","G","Ft","Rp","\u20AA","\u20B9","\u0639.\u062F","\uFDFC","kr","J$","JD","\xA5","KSh","\u043B\u0432","\u17DB","CF","\u20A9","\u20A9","KD","\u043B\u0432","\u20AD","\u20A8","M","\u0141","Lt","Ls","LD","MAD","lei","Ar","\u0434\u0435\u043D","K","\u20AE","MOP$","UM","\u20A8","Rf","MK","RM","MT","\u20A6","C$","kr","\u20A8","\uFDFC","B/.","S/.","K","\u20B1","\u20A8","z\u0142","Gs","\uFDFC","\uFFE5","lei","\u0414\u0438\u043D.","\u20BD","R\u20A3","\uFDFC","\u20A8","\u062C.\u0633.","kr","\xA3","Le","S","Db","E","\u0E3F","SM","T","\u062F.\u062A","T$","\u20A4","\u20BA","TT$","NT$","TSh","\u20B4","USh","$U","\u043B\u0432","Bs","\u20AB","VT","WS$","FCFA","\u0243","CFA","\u20A3","\uFDFC","R","Z$"];function w(e){return G(e)||Oo.some(r=>G(e.replace(r,"").replace(/[,.]/g,"")))?"numeric":e.trim()?"text":"empty"}var br="7.0.15";var Do=br;function Io(e){let r=null,s=null;if(typeof e!="string")throw new TypeError(`csv-sort/csvSort(): [THROW_ID_01] The input is of a wrong type! We accept either string of array of arrays. We got instead: ${typeof e}, equal to:
21
21
  ${JSON.stringify(e,null,4)}`);if(!e.trim())return{res:[[""]],msgContent:r,msgType:s};let o=yr(e),f=[],t=!1,n=!0,l=[],i=null;for(let d=o.length-1;d>=0;d--)if(f.length){d===0&&(t=o[d].every(h=>w(h)==="text"||w(h)==="empty")),!t&&f.length!==o[d].length&&(n=!1);let m=null;for(let h=0,T=o[d].length;h<T;h++)if(m===null&&w(o[d][h].trim())==="empty"&&(m=h),m!==null&&w(o[d][h].trim())!=="empty"&&(m=null),w(o[d][h].trim())!==f[h]&&!t){let b=w(o[d][h].trim());if(Array.isArray(f[h]))f[h].includes(b)||f[h].push(w(o[d][h].trim()));else if(f[h]!==b){let v=f[h];f[h]=[],f[h].push(v),f[h].push(b)}}i!==null&&m!==null&&m>i&&(!t||t&&d!==0)&&(i=m)}else if(o[d].length!==1||o[d][0]!=="")for(let m=0,h=o[d].length;m<h;m++)f.push(w(o[d][m].trim())),i===null&&w(o[d][m].trim())==="empty"&&(i=m),i!==null&&w(o[d][m].trim())!=="empty"&&(i=null);i||(i=f.length);let a=0;for(let d=0,m=f.length;d<m&&f[d]==="empty";d++)a=d;a!==0&&(o=o.map(d=>d.slice(a+1,i)),f=f.slice(a+1,i));let u=[],p;f.forEach((d,m)=>{d==="numeric"&&u.push(m)});let c=t?1:0;if(u.length===1)p=u[0];else{if(u.length===0)throw new Error('csv-sort/csvSort(): [THROW_ID_03] Your CSV file does not contain numeric-only columns and computer was not able to detect the "Balance" column!');{let d=Array.from(u),m=[];for(let h=0,T=d.length;h<T;h++){let b=d[h],v,$=!0,E,A=!0;for(let S=c,vr=o.length;S<vr&&($&&(v==null?v=o[S][b]:v===o[S][b]?(m.push(b),$=!1):v=o[S][b]),A&&(E==null?E=o[S][b]:o[S][b]!==E&&(A=!1)),!!$);S++);A&&l.push(b)}if(d=K(d,...m),d.length===1)p=d[0];else if(d.length===0)throw new Error(`csv-sort/csvSort(): [THROW_ID_04] The computer can't find the "Balance" column! It saw some numeric-only columns, but they all seem to have certain rows with the same values as rows right below/above them!`)}}if(!p)throw new Error("csv-sort/csvSort(): [THROW_ID_05] Sadly computer couldn't find its way in this CSV and had to stop working on it.");let g=K(Array.from(f.reduce((d,m,h)=>((typeof m=="string"&&m==="numeric"||Array.isArray(m)&&m.includes("numeric"))&&d.push(h),d),[])),p,...l),y=[];y.push(o[o.length-1].slice(0,i));let I=[],M=t?1:0;for(let d=o.length-2;d>=M;d--)for(let m=o.length-2;m>=M;m--)if(!I.includes(m)){let h=!1;for(let T=0,b=g.length;T<b;T++){let v=null;o[m][g[T]]!==""&&(v=(0,V.default)(o[m][g[T]]));let $=null;o[m][p]!==""&&($=(0,V.default)(o[m][p]));let E=null;y[0][p]!==""&&(E=(0,V.default)(y[0][p]).format());let A=null;y[y.length-1][g[T]]!==""&&(A=(0,V.default)(y[y.length-1][g[T]]).format());let S=null;if(y[y.length-1][p]!==""&&(S=(0,V.default)(y[y.length-1][p])),v&&$.add(v).format()===E){y.unshift(o[m].slice(0,i)),I.push(m),h=!0;break}else if(v&&$.subtract(v).format()===E){y.unshift(o[m].slice(0,i)),I.push(m),h=!0;break}else if(A&&S.add(A).format()===$.format()){y.push(o[m].slice(0,i)),I.push(m),h=!0;break}else if(A&&S.subtract(A).format()===$.format()){y.push(o[m].slice(0,i)),I.push(m),h=!0;break}}if(h){h=!1;break}}return t&&(n&&o[0].length>f.length&&(o[0].length=f.length),y.unshift(o[0].slice(0,i))),o.length-(t?2:1)!==I.length&&(r="Not all rows were recognised!",s="alert"),{res:y,msgContent:r,msgType:s}}return Rr(Eo);})();
22
22
  /**
23
23
  * @name ranges-sort
24
24
  * @fileoverview Sort string index ranges
25
- * @version 6.0.10
25
+ * @version 6.0.11
26
26
  * @author Roy Revelt, Codsen Ltd
27
27
  * @license MIT
28
28
  * {@link https://codsen.com/os/ranges-sort/}
@@ -30,7 +30,7 @@ ${JSON.stringify(e,null,4)}`);if(!e.trim())return{res:[[""]],msgContent:r,msgTyp
30
30
  /**
31
31
  * @name ranges-merge
32
32
  * @fileoverview Merge and sort string index ranges
33
- * @version 9.0.13
33
+ * @version 9.0.15
34
34
  * @author Roy Revelt, Codsen Ltd
35
35
  * @license MIT
36
36
  * {@link https://codsen.com/os/ranges-merge/}
@@ -38,7 +38,7 @@ ${JSON.stringify(e,null,4)}`);if(!e.trim())return{res:[[""]],msgContent:r,msgTyp
38
38
  /**
39
39
  * @name ranges-apply
40
40
  * @fileoverview Take an array of string index ranges, delete/replace the string according to them
41
- * @version 7.0.13
41
+ * @version 7.0.15
42
42
  * @author Roy Revelt, Codsen Ltd
43
43
  * @license MIT
44
44
  * {@link https://codsen.com/os/ranges-apply/}
@@ -46,7 +46,7 @@ ${JSON.stringify(e,null,4)}`);if(!e.trim())return{res:[[""]],msgContent:r,msgTyp
46
46
  /**
47
47
  * @name string-collapse-leading-whitespace
48
48
  * @fileoverview Collapse the leading and trailing whitespace of a string
49
- * @version 7.0.6
49
+ * @version 7.0.7
50
50
  * @author Roy Revelt, Codsen Ltd
51
51
  * @license MIT
52
52
  * {@link https://codsen.com/os/string-collapse-leading-whitespace/}
@@ -54,7 +54,7 @@ ${JSON.stringify(e,null,4)}`);if(!e.trim())return{res:[[""]],msgContent:r,msgTyp
54
54
  /**
55
55
  * @name codsen-utils
56
56
  * @fileoverview Various utility functions
57
- * @version 1.6.2
57
+ * @version 1.6.4
58
58
  * @author Roy Revelt, Codsen Ltd
59
59
  * @license MIT
60
60
  * {@link https://codsen.com/os/codsen-utils/}
@@ -62,7 +62,7 @@ ${JSON.stringify(e,null,4)}`);if(!e.trim())return{res:[[""]],msgContent:r,msgTyp
62
62
  /**
63
63
  * @name ranges-push
64
64
  * @fileoverview Gather string index ranges
65
- * @version 7.0.13
65
+ * @version 7.0.15
66
66
  * @author Roy Revelt, Codsen Ltd
67
67
  * @license MIT
68
68
  * {@link https://codsen.com/os/ranges-push/}
@@ -70,7 +70,7 @@ ${JSON.stringify(e,null,4)}`);if(!e.trim())return{res:[[""]],msgContent:r,msgTyp
70
70
  /**
71
71
  * @name string-remove-thousand-separators
72
72
  * @fileoverview Detects and removes thousand separators (dot/comma/quote/space) from string-type digits
73
- * @version 7.0.13
73
+ * @version 7.0.15
74
74
  * @author Roy Revelt, Codsen Ltd
75
75
  * @license MIT
76
76
  * {@link https://codsen.com/os/string-remove-thousand-separators/}
@@ -78,7 +78,7 @@ ${JSON.stringify(e,null,4)}`);if(!e.trim())return{res:[[""]],msgContent:r,msgTyp
78
78
  /**
79
79
  * @name csv-split-easy
80
80
  * @fileoverview Splits the CSV string into array of arrays, each representing a row of columns
81
- * @version 7.0.13
81
+ * @version 7.0.15
82
82
  * @author Roy Revelt, Codsen Ltd
83
83
  * @license MIT
84
84
  * {@link https://codsen.com/os/csv-split-easy/}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "csv-sort",
3
- "version": "7.0.13",
3
+ "version": "7.0.15",
4
4
  "description": "Sort double-entry bookkeeping CSV from internet banking",
5
5
  "keywords": [
6
6
  "accountancy",
@@ -77,7 +77,7 @@
77
77
  },
78
78
  "dependencies": {
79
79
  "@types/lodash-es": "^4.17.12",
80
- "csv-split-easy": "^7.0.13",
80
+ "csv-split-easy": "^7.0.15",
81
81
  "currency.js": "^2.0.4",
82
82
  "lodash-es": "^4.17.21"
83
83
  }