csv-sort 7.1.0 → 7.2.0

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/CHANGELOG.md CHANGED
@@ -3,11 +3,25 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
- ## 7.1.0 (2025-10-15)
6
+ ## 7.2.0 (2026-08-19)
7
+
8
+ ### Bug Fixes
9
+
10
+ - make validation diagnostics safe ([7b01074](https://github.com/codsen/codsen/commit/7b0107476f12734aeb8e82852ba980b187280110))
11
+ - resolve review findings REV-004 through REV-007 ([b60e9ee](https://github.com/codsen/codsen/commit/b60e9eeb499af94685cfb87b4970fe025be1fc10))
12
+ - retire direct publish aliases ([f98e31e](https://github.com/codsen/codsen/commit/f98e31eb89bc185471225664e610b55f34fbf648))
13
+ - trim production type dependencies ([426e081](https://github.com/codsen/codsen/commit/426e081f78e72bf3caecc138b339722309630dd8))
14
+ - use strict numeric detection ([19e9489](https://github.com/codsen/codsen/commit/19e9489bacde65b986498113ab4107bf3caf9f3f))
7
15
 
8
16
  ### Features
9
17
 
10
- - if value to be added is a number, keep it as is, don't stringify ([ce3e1a5](https://github.com/codsen/codsen/commit/ce3e1a525998ca3c0abf0142affef95b14cd1990))
18
+ - add codsen-glob and migrate glob consumers ([5595a2b](https://github.com/codsen/codsen/commit/5595a2b267eaa6cb60072d037aef00b7a28edd42))
19
+ - refresh the tooling and generate with the latest dependencies ([781f802](https://github.com/codsen/codsen/commit/781f802911066a82a4533b0e5a3fcbd742d0dd83))
20
+
21
+ ### Reverts
22
+
23
+ - Revert "Merge pull request #128 from codsen/release/npm-32198404552-1" ([5baeeaa](https://github.com/codsen/codsen/commit/5baeeaaa677b86f1eaa6396cadf3aea32b06416e)), closes [#128](https://github.com/codsen/codsen/issues/128)
24
+ - Revert "Merge pull request #127 from codsen/release/npm-32194020886-1" ([5f1e94d](https://github.com/codsen/codsen/commit/5f1e94deef910ce735266b16aeee08a76de7a862)), closes [#127](https://github.com/codsen/codsen/issues/127)
11
25
 
12
26
  ## 7.0.0 (2022-12-01)
13
27
 
package/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright © 2010-2025 Roy Revelt and other contributors
3
+ Copyright © 2010-2026 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
@@ -32,7 +32,7 @@ npm i csv-sort
32
32
  ## Quick Take
33
33
 
34
34
  ```js
35
- import { strict as assert } from "assert";
35
+ import { strict as assert } from "node:assert";
36
36
 
37
37
  import { sort } from "csv-sort";
38
38
 
@@ -63,9 +63,10 @@ assert.deepEqual(
63
63
  // you'll have to join elements and lines from the array yourself
64
64
  ```
65
65
 
66
+
66
67
  ## Documentation
67
68
 
68
- Please [visit codsen.com](https://codsen.com/os/csv-sort/) for a full description of the API.
69
+ Please [visit codsen.com](https://codsen.com/os/csv-sort/) for a full description of the API. If you’re looking for the **Changelog**, it’s [here](https://github.com/codsen/codsen/blob/main/packages/csv-sort/CHANGELOG.md).
69
70
 
70
71
  ## Contributing
71
72
 
@@ -75,7 +76,7 @@ To report bugs or request features or assistance, [raise an issue](https://githu
75
76
 
76
77
  MIT License
77
78
 
78
- Copyright © 2010-2025 Roy Revelt and other contributors
79
+ Copyright © 2010-2026 Roy Revelt and other contributors
79
80
 
80
81
  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
82
 
@@ -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.1.0
4
+ * @version 7.2.0
5
5
  * @author Roy Revelt
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.1.0";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
- ${JSON.stringify(i,null,4)}`);if(!i.trim())return{res:[[""]],msgContent:b,msgType:C};let n=O(i),s=[],g=!1,S=!0,v=[],o=null;for(let t=n.length-1;t>=0;t--)if(s.length){t===0&&(g=n[t].every(l=>f(l)==="text"||f(l)==="empty")),!g&&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]&&!g){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&&(!g||g&&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=g?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,d=!0,$,h=!0;for(let c=k,I=n.length;c<I&&(d&&(u==null?u=n[c][a]:u===n[c][a]?(e.push(a),d=!1):u=n[c][a]),h&&($==null?$=n[c][a]:n[c][a]!==$&&(h=!1)),!!d);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=g?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 d=null;n[e][m]!==""&&(d=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&&d.add(u).format()===$){r.unshift(n[e].slice(0,o)),y.push(e),l=!0;break}else if(u&&d.subtract(u).format()===$){r.unshift(n[e].slice(0,o)),y.push(e),l=!0;break}else if(h&&c.add(h).format()===d.format()){r.push(n[e].slice(0,o)),y.push(e),l=!0;break}else if(h&&c.subtract(h).format()===d.format()){r.push(n[e].slice(0,o)),y.push(e),l=!0;break}}if(l){l=!1;break}}return g&&(S&&n[0].length>s.length&&(n[0].length=s.length),r.unshift(n[0].slice(0,o))),n.length-(g?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};
10
+ import{formatDiagnosticValue as O}from"codsen-utils";import{splitEasy as j}from"csv-split-easy";import w from"currency.js";import{pull as x}from"lodash-es";var k="7.2.0";function E(a){return typeof a=="number"&&!Number.isNaN(a)?!0:(a=(a||"").toString().trim(),a?!Number.isNaN(+a):!1)}var A=["\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 R(a){return E(a)||A.some($=>E(a.replace($,"").replace(/[,.]/g,"")))?"numeric":a.trim()?"text":"empty"}var G=k;function U(a){let $=null,C=null;if(typeof a!="string")throw new TypeError(`csv-sort/sort(): [THROW_ID_01] The input is of a wrong type! We accept either string of array of arrays. We got instead: ${typeof a}, equal to:
11
+ ${O(a,4)}`);if(!a.trim())return{res:[[""]],msgContent:$,msgType:C};let n=j(a),l=[],g=!1,S=!0,v=[],o=null;for(let t=n.length-1;t>=0;t--)if(l.length){t===0&&(g=n[t].every(s=>{let i=R(s);return i==="text"||i==="empty"})),!g&&l.length!==n[t].length&&(S=!1);let e=null;for(let s=0,i=n[t].length;s<i;s++){let u=R(n[t][s].trim());if(e===null&&u==="empty"&&(e=s),e!==null&&u!=="empty"&&(e=null),u!==l[s]&&!g){let c=u;if(Array.isArray(l[s]))l[s].includes(c)||l[s].push(c);else if(l[s]!==c){let f=l[s];l[s]=[],l[s].push(f),l[s].push(c)}}}o!==null&&e!==null&&e>o&&(!g||g&&t!==0)&&(o=e)}else if(n[t].length!==1||n[t][0]!=="")for(let e=0,s=n[t].length;e<s;e++){let i=R(n[t][e].trim());l.push(i),o===null&&i==="empty"&&(o=e),o!==null&&i!=="empty"&&(o=null)}o||(o=l.length);let D=0;for(let t=0,e=l.length;t<e&&l[t]==="empty";t++)D=t;D!==0&&(n=n.map(t=>t.slice(D+1,o)),l=l.slice(D+1,o));let b=[],p;l.forEach((t,e)=>{t==="numeric"&&b.push(e)});let B=g?1:0;if(b.length===1)p=b[0];else{if(b.length===0)throw new Error('csv-sort/sort(): [THROW_ID_02] Your CSV file does not contain numeric-only columns and computer was not able to detect the "Balance" column!');{let t=Array.from(b),e=[];for(let s=0,i=t.length;s<i;s++){let u=t[s],c,f=!0,h,d=!0;for(let m=B,N=n.length;m<N&&(f&&(c==null?c=n[m][u]:c===n[m][u]?(e.push(u),f=!1):c=n[m][u]),d&&(h==null?h=n[m][u]:n[m][u]!==h&&(d=!1)),!!f);m++);d&&v.push(u)}if(t=x(t,...e),t.length===1)p=t[0];else if(t.length===0)throw new Error(`csv-sort/sort(): [THROW_ID_03] 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/sort(): [THROW_ID_04] Sadly computer couldn't find its way in this CSV and had to stop working on it.");let V=x(Array.from(l.reduce((t,e,s)=>((typeof e=="string"&&e==="numeric"||Array.isArray(e)&&e.includes("numeric"))&&t.push(s),t),[])),p,...v),r=[];r.push(n[n.length-1].slice(0,o));let y=[],T=g?1:0;for(let t=n.length-2;t>=T;t--)for(let e=n.length-2;e>=T;e--)if(!y.includes(e)){let s=!1;for(let i=0,u=V.length;i<u;i++){let c=null;n[e][V[i]]!==""&&(c=w(n[e][V[i]]));let f=null;n[e][p]!==""&&(f=w(n[e][p]));let h=null;r[0][p]!==""&&(h=w(r[0][p]).format());let d=null;r[r.length-1][V[i]]!==""&&(d=w(r[r.length-1][V[i]]).format());let m=null;if(r[r.length-1][p]!==""&&(m=w(r[r.length-1][p])),c&&f.add(c).format()===h){r.unshift(n[e].slice(0,o)),y.push(e),s=!0;break}else if(c&&f.subtract(c).format()===h){r.unshift(n[e].slice(0,o)),y.push(e),s=!0;break}else if(d&&m.add(d).format()===f.format()){r.push(n[e].slice(0,o)),y.push(e),s=!0;break}else if(d&&m.subtract(d).format()===f.format()){r.push(n[e].slice(0,o)),y.push(e),s=!0;break}}if(s){s=!1;break}}return g&&(S&&n[0].length>l.length&&(n[0].length=l.length),r.unshift(n[0].slice(0,o))),n.length-(g?2:1)!==y.length&&($="Not all rows were recognised!",C="alert"),{res:r,msgContent:$,msgType:C}}export{R as findType,E as isNumeric,U as sort,G as version};
@@ -1,17 +1,25 @@
1
1
  /**
2
2
  * @name csv-sort
3
3
  * @fileoverview Sort double-entry bookkeeping CSV from internet banking
4
- * @version 7.1.0
4
+ * @version 7.2.0
5
5
  * @author Roy Revelt
6
6
  * @license MIT
7
7
  * {@link https://codsen.com/os/csv-sort/}
8
8
  */
9
9
 
10
- "use strict";var csvSort=(()=>{var Tr=Object.create;var V=Object.defineProperty;var Sr=Object.getOwnPropertyDescriptor;var $r=Object.getOwnPropertyNames,ne=Object.getOwnPropertySymbols,Or=Object.getPrototypeOf,le=Object.prototype.hasOwnProperty,Ar=Object.prototype.propertyIsEnumerable;var Q=(e,r,a)=>r in e?V(e,r,{enumerable:!0,configurable:!0,writable:!0,value:a}):e[r]=a,x=(e,r)=>{for(var a in r||(r={}))le.call(r,a)&&Q(e,a,r[a]);if(ne)for(var a of ne(r))Ar.call(r,a)&&Q(e,a,r[a]);return e};var fe=(e,r)=>()=>(r||e((r={exports:{}}).exports,r),r.exports),Rr=(e,r)=>{for(var a in r)V(e,a,{get:r[a],enumerable:!0})},ie=(e,r,a,o)=>{if(r&&typeof r=="object"||typeof r=="function")for(let f of $r(r))!le.call(e,f)&&f!==a&&V(e,f,{get:()=>r[f],enumerable:!(o=Sr(r,f))||o.enumerable});return e};var ue=(e,r,a)=>(a=e!=null?Tr(Or(e)):{},ie(r||!e||!e.__esModule?V(a,"default",{value:e,enumerable:!0}):a,e)),Ir=e=>ie(V({},"__esModule",{value:!0}),e);var Z=(e,r,a)=>Q(e,typeof r!="symbol"?r+"":r,a);var dr=fe((Us,mr)=>{"use strict";mr.exports=vo;function C(e){return e instanceof Buffer?Buffer.from(e):new e.constructor(e.buffer.slice(),e.byteOffset,e.length)}function vo(e){if(e=e||{},e.circles)return To(e);let r=new Map;if(r.set(Date,n=>new Date(n)),r.set(Map,(n,u)=>new Map(o(Array.from(n),u))),r.set(Set,(n,u)=>new Set(o(Array.from(n),u))),e.constructorHandlers)for(let n of e.constructorHandlers)r.set(n[0],n[1]);let a=null;return e.proto?t:f;function o(n,u){let s=Object.keys(n),l=new Array(s.length);for(let i=0;i<s.length;i++){let p=s[i],m=n[p];typeof m!="object"||m===null?l[p]=m:m.constructor!==Object&&(a=r.get(m.constructor))?l[p]=a(m,u):ArrayBuffer.isView(m)?l[p]=C(m):l[p]=u(m)}return l}function f(n){if(typeof n!="object"||n===null)return n;if(Array.isArray(n))return o(n,f);if(n.constructor!==Object&&(a=r.get(n.constructor)))return a(n,f);let u={};for(let s in n){if(Object.hasOwnProperty.call(n,s)===!1)continue;let l=n[s];typeof l!="object"||l===null?u[s]=l:l.constructor!==Object&&(a=r.get(l.constructor))?u[s]=a(l,f):ArrayBuffer.isView(l)?u[s]=C(l):u[s]=f(l)}return u}function t(n){if(typeof n!="object"||n===null)return n;if(Array.isArray(n))return o(n,t);if(n.constructor!==Object&&(a=r.get(n.constructor)))return a(n,t);let u={};for(let s in n){let l=n[s];typeof l!="object"||l===null?u[s]=l:l.constructor!==Object&&(a=r.get(l.constructor))?u[s]=a(l,t):ArrayBuffer.isView(l)?u[s]=C(l):u[s]=t(l)}return u}}function To(e){let r=[],a=[],o=new Map;if(o.set(Date,s=>new Date(s)),o.set(Map,(s,l)=>new Map(t(Array.from(s),l))),o.set(Set,(s,l)=>new Set(t(Array.from(s),l))),e.constructorHandlers)for(let s of e.constructorHandlers)o.set(s[0],s[1]);let f=null;return e.proto?u:n;function t(s,l){let i=Object.keys(s),p=new Array(i.length);for(let m=0;m<i.length;m++){let g=i[m],y=s[g];if(typeof y!="object"||y===null)p[g]=y;else if(y.constructor!==Object&&(f=o.get(y.constructor)))p[g]=f(y,l);else if(ArrayBuffer.isView(y))p[g]=C(y);else{let T=r.indexOf(y);T!==-1?p[g]=a[T]:p[g]=l(y)}}return p}function n(s){if(typeof s!="object"||s===null)return s;if(Array.isArray(s))return t(s,n);if(s.constructor!==Object&&(f=o.get(s.constructor)))return f(s,n);let l={};r.push(s),a.push(l);for(let i in s){if(Object.hasOwnProperty.call(s,i)===!1)continue;let p=s[i];if(typeof p!="object"||p===null)l[i]=p;else if(p.constructor!==Object&&(f=o.get(p.constructor)))l[i]=f(p,n);else if(ArrayBuffer.isView(p))l[i]=C(p);else{let m=r.indexOf(p);m!==-1?l[i]=a[m]:l[i]=n(p)}}return r.pop(),a.pop(),l}function u(s){if(typeof s!="object"||s===null)return s;if(Array.isArray(s))return t(s,u);if(s.constructor!==Object&&(f=o.get(s.constructor)))return f(s,u);let l={};r.push(s),a.push(l);for(let i in s){let p=s[i];if(typeof p!="object"||p===null)l[i]=p;else if(p.constructor!==Object&&(f=o.get(p.constructor)))l[i]=f(p,u);else if(ArrayBuffer.isView(p))l[i]=C(p);else{let m=r.indexOf(p);m!==-1?l[i]=a[m]:l[i]=u(p)}}return r.pop(),a.pop(),l}}});var br=fe((ae,se)=>{(function(e,r){typeof ae=="object"&&typeof se<"u"?se.exports=r():typeof define=="function"&&define.amd?define(r):(e=e||self,e.currency=r())})(ae,function(){function e(t,n){if(!(this instanceof e))return new e(t,n);n=Object.assign({},a,n);var u=Math.pow(10,n.precision);this.intValue=t=r(t,n),this.value=t/u,n.increment=n.increment||1/u,n.groups=n.useVedic?f:o,this.s=n,this.p=u}function r(t,n){var u=2<arguments.length&&arguments[2]!==void 0?arguments[2]:!0,s=n.decimal,l=n.errorOnInvalid,i=n.fromCents,p=Math.pow(10,n.precision),m=t instanceof e;if(m&&i)return t.intValue;if(typeof t=="number"||m)s=m?t.value:t;else if(typeof t=="string")l=new RegExp("[^-\\d"+s+"]","g"),s=new RegExp("\\"+s,"g"),s=(s=t.replace(/\((.*)\)/,"-$1").replace(l,"").replace(s,"."))||0;else{if(l)throw Error("Invalid Input");s=0}return i||(s=(s*p).toFixed(4)),u?Math.round(s):s}var a={symbol:"$",separator:",",decimal:".",errorOnInvalid:!1,precision:2,pattern:"!#",negativePattern:"-!#",format:function(t,n){var u=n.pattern,s=n.negativePattern,l=n.symbol,i=n.separator,p=n.decimal;n=n.groups;var m=(""+t).replace(/^-/,"").split("."),g=m[0];return m=m[1],(0<=t.value?u:s).replace("!",l).replace("#",g.replace(n,"$1"+i)+(m?p+m:""))},fromCents:!1},o=/(\d)(?=(\d{3})+\b)/g,f=/(\d)(?=(\d\d)+\d\b)/g;return e.prototype={add:function(t){var n=this.s,u=this.p;return e((this.intValue+r(t,n))/(n.fromCents?1:u),n)},subtract:function(t){var n=this.s,u=this.p;return e((this.intValue-r(t,n))/(n.fromCents?1:u),n)},multiply:function(t){var n=this.s;return e(this.intValue*t/(n.fromCents?1:Math.pow(10,n.precision)),n)},divide:function(t){var n=this.s;return e(this.intValue/r(t,n,!1),n)},distribute:function(t){var n=this.intValue,u=this.p,s=this.s,l=[],i=Math[0<=n?"floor":"ceil"](n/t),p=Math.abs(n-i*t);for(u=s.fromCents?1:u;t!==0;t--){var m=e(i/u,s);0<p--&&(m=m[0<=n?"add":"subtract"](1/u)),l.push(m)}return l},dollars:function(){return~~this.value},cents:function(){return~~(this.intValue%this.p)},format:function(t){var n=this.s;return typeof t=="function"?t(this,n):n.format(this,Object.assign({},n,t))},toString:function(){var t=this.s,n=t.increment;return(Math.round(this.intValue/this.p/n)*n).toFixed(t.precision)},toJSON:function(){return this.value}},e})});var Do={};Rr(Do,{findType:()=>v,isNumeric:()=>G,sort:()=>No,version:()=>Eo});var Er=typeof global=="object"&&global&&global.Object===Object&&global,pe=Er;var Nr=typeof self=="object"&&self&&self.Object===Object&&self,Dr=pe||Nr||Function("return this")(),M=Dr;var jr=M.Symbol,R=jr;var me=Object.prototype,Cr=me.hasOwnProperty,kr=me.toString,W=R?R.toStringTag:void 0;function Fr(e){var r=Cr.call(e,W),a=e[W];try{e[W]=void 0;var o=!0}catch(t){}var f=kr.call(e);return o&&(r?e[W]=a:delete e[W]),f}var de=Fr;var Vr=Object.prototype,Wr=Vr.toString;function Br(e){return Wr.call(e)}var ce=Br;var _r="[object Null]",Mr="[object Undefined]",ge=R?R.toStringTag:void 0;function Pr(e){return e==null?e===void 0?Mr:_r:ge&&ge in Object(e)?de(e):ce(e)}var P=Pr;function Hr(e){return e!=null&&typeof e=="object"}var he=Hr;var Jr="[object Symbol]";function Lr(e){return typeof e=="symbol"||he(e)&&P(e)==Jr}var ye=Lr;function qr(e,r){for(var a=-1,o=e==null?0:e.length,f=Array(o);++a<o;)f[a]=r(e[a],a,e);return f}var H=qr;var Ur=Array.isArray,xe=Ur;var Kr=1/0,be=R?R.prototype:void 0,we=be?be.toString:void 0;function ve(e){if(typeof e=="string")return e;if(xe(e))return H(e,ve)+"";if(ye(e))return we?we.call(e):"";var r=e+"";return r=="0"&&1/e==-Kr?"-0":r}var J=ve;var zr=/\s/;function Gr(e){for(var r=e.length;r--&&zr.test(e.charAt(r)););return r}var Te=Gr;var Qr=/^\s+/;function Zr(e){return e&&e.slice(0,Te(e)+1).replace(Qr,"")}var Se=Zr;function Yr(e){var r=typeof e;return e!=null&&(r=="object"||r=="function")}var L=Yr;function Xr(e){return e}var q=Xr;var et="[object AsyncFunction]",rt="[object Function]",tt="[object GeneratorFunction]",ot="[object Proxy]";function at(e){if(!L(e))return!1;var r=P(e);return r==rt||r==tt||r==et||r==ot}var $e=at;var st=M["__core-js_shared__"],U=st;var Oe=(function(){var e=/[^.]+$/.exec(U&&U.keys&&U.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""})();function nt(e){return!!Oe&&Oe in e}var Ae=nt;var lt=Function.prototype,ft=lt.toString;function it(e){if(e!=null){try{return ft.call(e)}catch(r){}try{return e+""}catch(r){}}return""}var Re=it;var ut=/[\\^$.*+?()[\]{}|]/g,pt=/^\[object .+?Constructor\]$/,mt=Function.prototype,dt=Object.prototype,ct=mt.toString,gt=dt.hasOwnProperty,ht=RegExp("^"+ct.call(gt).replace(ut,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function yt(e){if(!L(e)||Ae(e))return!1;var r=$e(e)?ht:pt;return r.test(Re(e))}var Ie=yt;function xt(e,r){return e==null?void 0:e[r]}var Ee=xt;function bt(e,r){var a=Ee(e,r);return Ie(a)?a:void 0}var Ne=bt;function wt(e,r,a){switch(a.length){case 0:return e.call(r);case 1:return e.call(r,a[0]);case 2:return e.call(r,a[0],a[1]);case 3:return e.call(r,a[0],a[1],a[2])}return e.apply(r,a)}var De=wt;function vt(e,r){var a=-1,o=e.length;for(r||(r=Array(o));++a<o;)r[a]=e[a];return r}var je=vt;var Tt=800,St=16,$t=Date.now;function Ot(e){var r=0,a=0;return function(){var o=$t(),f=St-(o-a);if(a=o,f>0){if(++r>=Tt)return arguments[0]}else r=0;return e.apply(void 0,arguments)}}var Ce=Ot;function At(e){return function(){return e}}var ke=At;var Rt=(function(){try{var e=Ne(Object,"defineProperty");return e({},"",{}),e}catch(r){}})(),Y=Rt;var It=Y?function(e,r){return Y(e,"toString",{configurable:!0,enumerable:!1,value:ke(r),writable:!0})}:q,Fe=It;var Et=Ce(Fe),Ve=Et;function Nt(e,r,a,o){for(var f=e.length,t=a+(o?1:-1);o?t--:++t<f;)if(r(e[t],t,e))return t;return-1}var We=Nt;function Dt(e){return e!==e}var Be=Dt;function jt(e,r,a){for(var o=a-1,f=e.length;++o<f;)if(e[o]===r)return o;return-1}var _e=jt;function Ct(e,r,a){return r===r?_e(e,r,a):We(e,Be,a)}var D=Ct;var Me=Math.max;function kt(e,r,a){return r=Me(r===void 0?e.length-1:r,0),function(){for(var o=arguments,f=-1,t=Me(o.length-r,0),n=Array(t);++f<t;)n[f]=o[r+f];f=-1;for(var u=Array(r+1);++f<r;)u[f]=o[f];return u[r]=a(n),De(e,this,u)}}var Pe=kt;function Ft(e,r){return Ve(Pe(e,r,q),e+"")}var He=Ft;function Vt(e){return function(r){return e(r)}}var Je=Vt;function Wt(e){return e==null?"":J(e)}var Le=Wt;function Bt(e,r,a){var o=-1,f=e.length;r<0&&(r=-r>f?0:f+r),a=a>f?f:a,a<0&&(a+=f),f=r>a?0:a-r>>>0,r>>>=0;for(var t=Array(f);++o<f;)t[o]=e[o+r];return t}var qe=Bt;function _t(e,r,a){var o=e.length;return a=a===void 0?o:a,!r&&a>=o?e:qe(e,r,a)}var Ue=_t;var Mt="\\ud800-\\udfff",Pt="\\u0300-\\u036f",Ht="\\ufe20-\\ufe2f",Jt="\\u20d0-\\u20ff",Lt=Pt+Ht+Jt,qt="\\ufe0e\\ufe0f",Ut="\\u200d",Kt=RegExp("["+Ut+Mt+Lt+qt+"]");function zt(e){return Kt.test(e)}var Ke=zt;function Gt(e){return e.split("")}var ze=Gt;var Ge="\\ud800-\\udfff",Qt="\\u0300-\\u036f",Zt="\\ufe20-\\ufe2f",Yt="\\u20d0-\\u20ff",Xt=Qt+Zt+Yt,eo="\\ufe0e\\ufe0f",ro="["+Ge+"]",X="["+Xt+"]",ee="\\ud83c[\\udffb-\\udfff]",to="(?:"+X+"|"+ee+")",Qe="[^"+Ge+"]",Ze="(?:\\ud83c[\\udde6-\\uddff]){2}",Ye="[\\ud800-\\udbff][\\udc00-\\udfff]",oo="\\u200d",Xe=to+"?",er="["+eo+"]?",ao="(?:"+oo+"(?:"+[Qe,Ze,Ye].join("|")+")"+er+Xe+")*",so=er+Xe+ao,no="(?:"+[Qe+X+"?",X,Ze,Ye,ro].join("|")+")",lo=RegExp(ee+"(?="+ee+")|"+no+so,"g");function fo(e){return e.match(lo)||[]}var rr=fo;function io(e){return Ke(e)?rr(e):ze(e)}var re=io;function uo(e,r,a,o){for(var f=a-1,t=e.length;++f<t;)if(o(e[f],r))return f;return-1}var tr=uo;var po=Array.prototype,or=po.splice;function mo(e,r,a,o){var f=o?tr:D,t=-1,n=r.length,u=e;for(e===r&&(r=je(r)),a&&(u=H(e,Je(a)));++t<n;)for(var s=0,l=r[t],i=a?a(l):l;(s=f(u,i,s,o))>-1;)u!==e&&or.call(u,s,1),or.call(e,s,1);return e}var ar=mo;function co(e,r){return e&&e.length&&r&&r.length?ar(e,r):e}var sr=co;var go=He(sr),K=go;function ho(e,r){for(var a=e.length;a--&&D(r,e[a],0)>-1;);return a}var nr=ho;function yo(e,r){for(var a=-1,o=e.length;++a<o&&D(r,e[a],0)>-1;);return a}var lr=yo;function xo(e,r,a){if(e=Le(e),e&&(a||r===void 0))return Se(e);if(!e||!(r=J(r)))return e;var o=re(e),f=re(r),t=lr(o,f),n=nr(o,f)+1;return Ue(o,t,n).join("")}var te=xo;var bo={strictlyTwoElementsInRangeArrays:!1,progressFn:null};function j(e,r){if(!Array.isArray(e)||!e.length)return e;let a=x(x({},bo),r),o,f;if(a.strictlyTwoElementsInRangeArrays&&!e.every((u,s)=>!Array.isArray(u)||u.length!==2?(o=s,f=u.length,!1):!0))throw new TypeError("ranges-sort: [THROW_ID_03] The first argument should be an array and must consist of arrays which are natural number indexes representing TWO string index ranges. However, ".concat(o,"th range (").concat(JSON.stringify(e[o],null,4),") has not two but ").concat(f," elements!"));if(!e.every((u,s)=>!Array.isArray(u)||!Number.isInteger(u[0])||u[0]<0||!Number.isInteger(u[1])||u[1]<0?(o=s,!1):!0))throw new TypeError("ranges-sort: [THROW_ID_04] The first argument should be an array and must consist of arrays which are natural number indexes representing string index ranges. However, ".concat(o,"th range (").concat(JSON.stringify(e[o],null,4),") does not consist of only natural numbers!"));let t=e.length**2,n=0;return Array.from(e).sort((u,s)=>(a.progressFn&&(n+=1,a.progressFn(Math.floor(n*100/t))),u[0]===s[0]?u[1]<s[1]?-1:u[1]>s[1]?1:0:u[0]<s[0]?-1:1))}var fr={mergeType:1,progressFn:null,joinRangesThatTouchEdges:!0};function ir(e,r){function a(l){return!!l&&typeof l=="object"&&!Array.isArray(l)}if(!Array.isArray(e)||!e.length)return null;let o;if(r)if(a(r)){if(o=x(x({},fr),r),o.progressFn&&a(o.progressFn)&&!Object.keys(o.progressFn).length)o.progressFn=null;else if(o.progressFn&&typeof o.progressFn!="function")throw new Error('ranges-merge: [THROW_ID_01] opts.progressFn must be a function! It was given of a type: "'.concat(typeof o.progressFn,'", equal to ').concat(JSON.stringify(o.progressFn,null,4)));if(![1,2,"1","2"].includes(o.mergeType))throw new Error('ranges-merge: [THROW_ID_02] opts.mergeType was customised to a wrong thing! It was given of a type: "'.concat(typeof o.mergeType,'", equal to ').concat(JSON.stringify(o.mergeType,null,4)));if(typeof o.joinRangesThatTouchEdges!="boolean")throw new Error('ranges-merge: [THROW_ID_04] opts.joinRangesThatTouchEdges was customised to a wrong thing! It was given of a type: "'.concat(typeof o.joinRangesThatTouchEdges,'", equal to ').concat(JSON.stringify(o.joinRangesThatTouchEdges,null,4)))}else throw new Error("emlint: [THROW_ID_03] the second input argument must be a plain object. It was given as:\n".concat(JSON.stringify(r,null,4)," (type ").concat(typeof r,")"));else o=x({},fr);let f=e.filter(l=>Array.isArray(l)).map(l=>[...l]).filter(l=>l[2]!==void 0||l[0]!==l[1]),t,n,u;o.progressFn?t=j(f,{progressFn:l=>{u=Math.floor(l/5),u!==n&&(n=u,o.progressFn(u))}}):t=j(f);let s=t.length-1;for(let l=s;l>0;l--)o.progressFn&&(u=Math.floor((1-l/s)*78)+21,u!==n&&u>n&&(n=u,o.progressFn(u))),(t[l][0]<=t[l-1][0]||!o.joinRangesThatTouchEdges&&t[l][0]<t[l-1][1]||o.joinRangesThatTouchEdges&&t[l][0]<=t[l-1][1])&&(t[l-1][0]=Math.min(t[l][0],t[l-1][0]),t[l-1][1]=Math.max(t[l][1],t[l-1][1]),t[l][2]!==void 0&&(t[l-1][0]>=t[l][0]||t[l-1][1]<=t[l][1])&&t[l-1][2]!==null&&(t[l][2]===null&&t[l-1][2]!==null?t[l-1][2]=null:t[l-1][2]!=null?+o.mergeType==2&&t[l-1][0]===t[l][0]?t[l-1][2]=t[l][2]:t[l-1][2]+=t[l][2]:t[l-1][2]=t[l][2]),t.splice(l,1),l=t.length);return t.length?t:null}var wo=!0,oe="Invariant failed";function ur(e,r){if(!e){if(wo)throw new Error(oe);var a=typeof r=="function"?r():r,o=a?"".concat(oe,": ").concat(a):oe;throw new Error(o)}}function pr(e,r,a){let o=0,f=0;if(arguments.length===0)throw new Error("ranges-apply: [THROW_ID_01] inputs missing!");if(typeof e!="string")throw new TypeError("ranges-apply: [THROW_ID_02] first input argument must be a string! Currently it's: ".concat(typeof e,", equal to: ").concat(JSON.stringify(e,null,4)));if(r&&!Array.isArray(r))throw new TypeError("ranges-apply: [THROW_ID_03] second input argument must be an array (or null)! Currently it's: ".concat(typeof r,", equal to: ").concat(JSON.stringify(r,null,4)));if(a&&typeof a!="function")throw new TypeError("ranges-apply: [THROW_ID_04] the third input argument must be a function (or falsey)! Currently it's: ".concat(typeof a,", equal to: ").concat(JSON.stringify(a,null,4)));if(!(r!=null&&r.filter(i=>i).length))return e;let t;Array.isArray(r)&&Number.isInteger(r[0])&&Number.isInteger(r[1])?t=[Array.from(r)]:t=Array.from(r);let n=t.length,u=0;t.filter(i=>i).forEach((i,p)=>{if(a&&(o=Math.floor(u/n*10),o!==f&&(f=o,a(o))),!Array.isArray(i))throw new TypeError("ranges-apply: [THROW_ID_05] ranges array, second input arg., has ".concat(p,"th element not an array: ").concat(JSON.stringify(i,null,4),", which is ").concat(typeof i));if(!Number.isInteger(i[0])){if(!Number.isInteger(+i[0])||+i[0]<0)throw new TypeError("ranges-apply: [THROW_ID_06] ranges array, second input arg. has ".concat(p,"th element, array ").concat(JSON.stringify(i,null,0),". Its first element is not an integer, string index, but ").concat(typeof i[0],", equal to: ").concat(JSON.stringify(i[0],null,4),"."));t[p][0]=+t[p][0]}if(!Number.isInteger(i[1])){if(!Number.isInteger(+i[1])||+i[1]<0)throw new TypeError("ranges-apply: [THROW_ID_07] ranges array, second input arg. has ".concat(p,"th element, array ").concat(JSON.stringify(i,null,0),". Its second element is not an integer, string index, but ").concat(typeof i[1],", equal to: ").concat(JSON.stringify(i[1],null,4),"."));t[p][1]=+t[p][1]}u+=1});let s=ir(t,{progressFn:i=>{a&&(o=10+Math.floor(i/10),o!==f&&(f=o,a(o)))}});ur(s);let l=s.length;if(l>0){let i=e.slice(s[l-1][1]);e=s.reduce((p,m,g,y)=>{a&&(o=20+Math.floor(g/l*80),o!==f&&(f=o,a(o)));let T=g===0?0:y[g-1][1],_=y[g][0];return"".concat(p).concat(e.slice(T,_)).concat(y[g][2]||"")},""),e+=i}return e}function z(e,r=1){let a="\xA0";function o(t){return Array.from(t).reverse().join("")}function f(t,n,u){let s=u?"\n":"\r",l=u?"\r":"\n";if(!t)return t;let i=0,p=0,m="";for(let g=0,y=t.length;g<y;g++)(t[g]===s||t[g]===l&&t[g-1]!==s)&&p++,"\r\n".includes(t[g])||t[g]===a?(i=0,t[g]===a?m+=t[g]:t[g]===s?p<=n&&(m+=t[g],t[g+1]===l&&(m+=t[g+1],g++)):t[g]===l&&(t==null?void 0:t[g-1])!==s&&p<=n&&(m+=t[g])):(i++,!t[g+1]&&!p&&(m+=" "));return m}if(typeof e=="string"&&e.length){let t=1;typeof+r=="number"&&Number.isInteger(+r)&&+r>=0&&(t=+r);let n="",u="";if(!e.trim())n=e;else if(!e[0].trim()){for(let s=0,l=e.length;s<l;s++)if(e[s].trim()){n=e.slice(0,s);break}}if(e.trim()&&(e.slice(-1).trim()===""||e.slice(-1)===a)){for(let s=e.length;s--;)if(e[s].trim()){u=e.slice(s+1);break}}return"".concat(f(n,t,!1)).concat(e.trim()).concat(o(f(o(u),t,!0)))}return e}var cr=ue(dr(),1);var Ks=(0,cr.default)();function k(e){return typeof e=="string"}function gr(e){return Number.isFinite(e)}function N(e){return Number.isSafeInteger(e)&&e>=0}function I(e){return e!=null}var hr={mergeType:1,progressFn:null,joinRangesThatTouchEdges:!0};function So(e,r){var l;function a(i){return!!i&&typeof i=="object"&&!Array.isArray(i)}if(!Array.isArray(e)||!e.length)return null;let o;if(r)if(a(r)){if(o=x(x({},hr),r),o.progressFn&&a(o.progressFn)&&!Object.keys(o.progressFn).length)o.progressFn=null;else if(o.progressFn&&typeof o.progressFn!="function")throw new Error('ranges-merge: [THROW_ID_01] resolvedOpts.progressFn must be a function! It was given of a type: "'.concat(typeof o.progressFn,'", equal to ').concat(JSON.stringify(o.progressFn,null,4)));if(![1,2,"1","2"].includes(o.mergeType))throw new Error('ranges-merge: [THROW_ID_02] resolvedOpts.mergeType was customised to a wrong thing! It was given of a type: "'.concat(typeof o.mergeType,'", equal to ').concat(JSON.stringify(o.mergeType,null,4)));if(typeof o.joinRangesThatTouchEdges!="boolean")throw new Error('ranges-merge: [THROW_ID_04] resolvedOpts.joinRangesThatTouchEdges was customised to a wrong thing! It was given of a type: "'.concat(typeof o.joinRangesThatTouchEdges,'", equal to ').concat(JSON.stringify(o.joinRangesThatTouchEdges,null,4)))}else throw new Error("ranges-merge: [THROW_ID_03] the second input argument must be a plain object. It was given as:\n".concat(JSON.stringify(r,null,4)," (type ").concat(typeof r,")"));else o=x({},hr);let f=e.filter(i=>Array.isArray(i)).map(i=>[...i]).filter(i=>i[2]!==void 0||i[0]!==i[1]),t,n,u;o.progressFn?t=j(f,{progressFn:i=>{u=Math.floor(i/5),u!==n&&(n=u,o.progressFn!=null&&o.progressFn(u))}}):t=j(f);let s=t.length-1;for(let i=s;i>0;i--)o.progressFn&&(u=Math.floor((1-i/s)*78)+21,u!==n&&u>n&&(n=u,o.progressFn(u))),(t[i][0]<=t[i-1][0]||!o.joinRangesThatTouchEdges&&t[i][0]<t[i-1][1]||o.joinRangesThatTouchEdges&&t[i][0]<=t[i-1][1])&&(t[i-1][0]=Math.min(t[i][0],t[i-1][0]),t[i-1][1]=Math.max(t[i][1],t[i-1][1]),t[i][2]!==void 0&&(t[i-1][0]>=t[i][0]||t[i-1][1]<=t[i][1])&&t[i-1][2]!==null&&(t[i][2]===null&&t[i-1][2]!==null?t[i-1][2]=null:t[i-1][2]!=null?+((l=o||{})==null?void 0:l.mergeType)==2&&t[i-1][0]===t[i][0]?t[i-1][2]=t[i][2]:t[i-1][2]+=t[i][2]:t[i-1][2]=t[i][2]),t.splice(i,1),i=t.length);return t.length?t:null}var $o={limitToBeAddedWhitespace:!1,limitLinebreaksCount:1,mergeType:1},yr=class{constructor(e){Z(this,"ranges");Z(this,"opts");let r=x(x({},$o),e);if(r.mergeType&&r.mergeType!==1&&r.mergeType!==2)if(k(r.mergeType)&&r.mergeType.trim()==="1")r.mergeType=1;else if(k(r.mergeType)&&r.mergeType.trim()==="2")r.mergeType=2;else throw new Error('ranges-push: [THROW_ID_02] opts.mergeType was customised to a wrong thing! It was given of a type: "'.concat(typeof r.mergeType,'", equal to ').concat(JSON.stringify(r.mergeType,null,4)));this.opts=r,this.ranges=[]}add(e,r,a){var t;if(e==null&&r==null)return;if(I(e)&&!I(r)){if(Array.isArray(e)){if(e.length){if(e.some(n=>Array.isArray(n))){e.forEach(n=>{Array.isArray(n)&&this.add(...n)});return}e.length&&N(+e[0])&&N(+e[1])&&this.add(...e)}return}throw new TypeError('ranges-push/Ranges/add(): [THROW_ID_12] the first input argument, "from" is set ('.concat(JSON.stringify(e,null,0),') but second-one, "to" is not (').concat(JSON.stringify(r,null,0),")"))}else if(!I(e)&&I(r))throw new TypeError('ranges-push/Ranges/add(): [THROW_ID_13] the second input argument, "to" is set ('.concat(JSON.stringify(r,null,0),') but first-one, "from" is not (').concat(JSON.stringify(e,null,0),")"));let o=+e,f=+r;if(N(o)&&N(f)){if(I(a)&&!k(a)&&!gr(a))throw new TypeError("ranges-push/Ranges/add(): [THROW_ID_08] The third argument, the value to add, was given not as string but ".concat(typeof a,", equal to:\n").concat(JSON.stringify(a,null,4)));if(I(this.ranges)&&Array.isArray(this.last())&&o===this.last()[1]){if(this.last()[1]=f,this.last()[2],this.last()[2]!==null&&I(a)){let n=this.last()[2]&&this.last()[2].length&&(!((t=this.opts)!=null&&t.mergeType)||this.opts.mergeType===1)?"".concat(this.last()[2]).concat(a):a;this.opts.limitToBeAddedWhitespace&&(n=z(n,this.opts.limitLinebreaksCount)),k(n)&&!n.length||(this.last()[2]=n)}}else{this.ranges||(this.ranges=[]);let n=a!==void 0&&!(k(a)&&!a.length)?[o,f,a&&this.opts.limitToBeAddedWhitespace?z(a,this.opts.limitLinebreaksCount):a]:[o,f];this.ranges.push(n)}}else throw N(o)&&o>=0?new TypeError('ranges-push/Ranges/add(): [THROW_ID_10] "to" value, the second input argument, must be a natural number or zero! Currently it\'s of a type "'.concat(typeof f,'" equal to: ').concat(JSON.stringify(f,null,4))):new TypeError('ranges-push/Ranges/add(): [THROW_ID_09] "from" value, the first input argument, must be a natural number or zero! Currently it\'s of a type "'.concat(typeof o,'" equal to: ').concat(JSON.stringify(o,null,4)))}push(e,r,a){this.add(e,r,a)}current(){return Array.isArray(this.ranges)&&this.ranges.length?(this.ranges=So(this.ranges,{mergeType:this.opts.mergeType}),this.ranges&&this.opts.limitToBeAddedWhitespace?this.ranges.map(e=>I(e[2])?[e[0],e[1],z(e[2],this.opts.limitLinebreaksCount)]:e):this.ranges):null}wipe(){this.ranges=[]}replace(e){if(Array.isArray(e)&&e.length)if(Array.isArray(e[0])&&N(e[0][0]))this.ranges=Array.from(e);else throw new Error("ranges-push/Ranges/replace(): [THROW_ID_11] Single range was given but we expected array of arrays! The first element, ".concat(JSON.stringify(e[0],null,4)," should be an array and its first element should be an integer, a string index."));else this.ranges=[]}last(){return Array.isArray(this.ranges)&&this.ranges.length?this.ranges[this.ranges.length-1]:null}};var Oo={removeThousandSeparatorsFromNumbers:!0,padSingleDecimalPlaceNumbers:!0,forceUKStyle:!1};function B(e,r){let a=!0,o=[".",",","'"," "],f;if(typeof e!="string")throw new TypeError("string-remove-thousand-separators/remSep(): [THROW_ID_01] Input must be string! Currently it's: ".concat(typeof e,", equal to:\n").concat(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: ".concat(typeof r,", equal to:\n").concat(JSON.stringify(r,null,4)));let t=x(x({},Oo),r),n=te(e.trim(),'"');if(n==="")return n;if(+e>0&&+e<1)return e;let u=new yr;for(let s=0,l=n.length;s<l;s++){if(t.removeThousandSeparatorsFromNumbers&&n[s].trim()===""&&u.add(s,s+1),t.removeThousandSeparatorsFromNumbers&&n[s]==="'"&&(u.add(s,s+1),n[s+1]==="'")){a=!1;break}if(o.includes(n[s])){if(n[s+1]!==void 0&&/^\d$/.test(n[s+1]))if(n[s+2]!==void 0)if(/^\d$/.test(n[s+2]))if(n[s+3]!==void 0)if(/^\d$/.test(n[s+3])){if(n[s+4]!==void 0&&/^\d$/.test(n[s+4])){a=!1;break}else if(t.removeThousandSeparatorsFromNumbers&&u.add(s,s+1),!f)f=n[s];else if(n[s]!==f){a=!1;break}}else{a=!1;break}else t.removeThousandSeparatorsFromNumbers&&t.forceUKStyle&&n[s]===","&&u.add(s,s+1,".");else{a=!1;break}else t.forceUKStyle&&n[s]===","&&u.add(s,s+1,"."),t.padSingleDecimalPlaceNumbers&&u.add(s+2,s+2,"0")}else if(!/^\d$/.test(n[s])){a=!1;break}}return a&&u.current()?pr(n,u.current()):n}var Ao={removeThousandSeparatorsFromNumbers:!0,padSingleDecimalPlaceNumbers:!0,forceUKStyle:!1};function xr(e,r){let a=0,o=0,f=[],t=[],n=!1,u=!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 ".concat(typeof r," equal to:\n").concat(JSON.stringify(r,null,4)));let s=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: ".concat(typeof e,", equal to: ").concat(JSON.stringify(e,null,4)));if(e==="")return[[""]];e=e.trim();for(let l=0,i=e.length;l<i;l++){if(u&&e[l]!=='"'&&e[l]!==","&&e[l].trim()!==""&&(u=!1),e[l]==='"')if(n&&e[l+1]==='"')l+=1;else if(n){n=!1;let p=e.slice(a,l);p.trim()!==""&&(u=!1);let m=/""/.test(p)?p.replace(/""/g,'"'):B(p,{removeThousandSeparatorsFromNumbers:s.removeThousandSeparatorsFromNumbers,padSingleDecimalPlaceNumbers:s.padSingleDecimalPlaceNumbers,forceUKStyle:s.forceUKStyle});f.push(m)}else n=!0,a=l+1;else if(!n&&e[l]===","){if(e[l-1]!=='"'&&!n){let p=e.slice(a,l);p.trim()!==""&&(u=!1),f.push(B(p,{removeThousandSeparatorsFromNumbers:s.removeThousandSeparatorsFromNumbers,padSingleDecimalPlaceNumbers:s.padSingleDecimalPlaceNumbers,forceUKStyle:s.forceUKStyle}))}a=l+1,o&&(o=0)}else if(e[l]==="\n"||e[l]==="\r"){if(!o){if(o=l,!n&&e[l-1]!=='"'){let p=e.slice(a,l);p.trim()!==""&&(u=!1),f.push(B(p,{removeThousandSeparatorsFromNumbers:s.removeThousandSeparatorsFromNumbers,padSingleDecimalPlaceNumbers:s.padSingleDecimalPlaceNumbers,forceUKStyle:s.forceUKStyle}))}u?f.length=0:t.push(f),u=!0,f=[]}a=l+1}else o&&(o=0,a=l);if(l+1===i){if(e[l]!=='"'){let p=e.slice(a,l+1);p.trim()&&(u=!1),f.push(B(p,{removeThousandSeparatorsFromNumbers:s.removeThousandSeparatorsFromNumbers,padSingleDecimalPlaceNumbers:s.padSingleDecimalPlaceNumbers,forceUKStyle:s.forceUKStyle}))}u?f=[]:t.push(f),u=!0}}return t.length===0?[[""]]:t}var F=ue(br(),1);function G(e){return typeof e=="number"&&!isNaN(e)?!0:(e=(e||"").toString().trim(),e?!isNaN(+e):!1)}var Ro=["\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 v(e){return G(e)||Ro.some(r=>G(e.replace(r,"").replace(/[,.]/g,"")))?"numeric":e.trim()?"text":"empty"}var wr="7.1.0";var Eo=wr;function No(e){let r=null,a=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: ".concat(typeof e,", equal to:\n").concat(JSON.stringify(e,null,4)));if(!e.trim())return{res:[[""]],msgContent:r,msgType:a};let o=xr(e),f=[],t=!1,n=!0,u=[],s=null;for(let c=o.length-1;c>=0;c--)if(f.length){c===0&&(t=o[c].every(h=>v(h)==="text"||v(h)==="empty")),!t&&f.length!==o[c].length&&(n=!1);let d=null;for(let h=0,$=o[c].length;h<$;h++)if(d===null&&v(o[c][h].trim())==="empty"&&(d=h),d!==null&&v(o[c][h].trim())!=="empty"&&(d=null),v(o[c][h].trim())!==f[h]&&!t){let b=v(o[c][h].trim());if(Array.isArray(f[h]))f[h].includes(b)||f[h].push(v(o[c][h].trim()));else if(f[h]!==b){let w=f[h];f[h]=[],f[h].push(w),f[h].push(b)}}s!==null&&d!==null&&d>s&&(!t||t&&c!==0)&&(s=d)}else if(o[c].length!==1||o[c][0]!=="")for(let d=0,h=o[c].length;d<h;d++)f.push(v(o[c][d].trim())),s===null&&v(o[c][d].trim())==="empty"&&(s=d),s!==null&&v(o[c][d].trim())!=="empty"&&(s=null);s||(s=f.length);let l=0;for(let c=0,d=f.length;c<d&&f[c]==="empty";c++)l=c;l!==0&&(o=o.map(c=>c.slice(l+1,s)),f=f.slice(l+1,s));let i=[],p;f.forEach((c,d)=>{c==="numeric"&&i.push(d)});let m=t?1:0;if(i.length===1)p=i[0];else{if(i.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 c=Array.from(i),d=[];for(let h=0,$=c.length;h<$;h++){let b=c[h],w,O=!0,E,A=!0;for(let S=m,vr=o.length;S<vr&&(O&&(w==null?w=o[S][b]:w===o[S][b]?(d.push(b),O=!1):w=o[S][b]),A&&(E==null?E=o[S][b]:o[S][b]!==E&&(A=!1)),!!O);S++);A&&u.push(b)}if(c=K(c,...d),c.length===1)p=c[0];else if(c.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((c,d,h)=>((typeof d=="string"&&d==="numeric"||Array.isArray(d)&&d.includes("numeric"))&&c.push(h),c),[])),p,...u),y=[];y.push(o[o.length-1].slice(0,s));let T=[],_=t?1:0;for(let c=o.length-2;c>=_;c--)for(let d=o.length-2;d>=_;d--)if(!T.includes(d)){let h=!1;for(let $=0,b=g.length;$<b;$++){let w=null;o[d][g[$]]!==""&&(w=(0,F.default)(o[d][g[$]]));let O=null;o[d][p]!==""&&(O=(0,F.default)(o[d][p]));let E=null;y[0][p]!==""&&(E=(0,F.default)(y[0][p]).format());let A=null;y[y.length-1][g[$]]!==""&&(A=(0,F.default)(y[y.length-1][g[$]]).format());let S=null;if(y[y.length-1][p]!==""&&(S=(0,F.default)(y[y.length-1][p])),w&&O.add(w).format()===E){y.unshift(o[d].slice(0,s)),T.push(d),h=!0;break}else if(w&&O.subtract(w).format()===E){y.unshift(o[d].slice(0,s)),T.push(d),h=!0;break}else if(A&&S.add(A).format()===O.format()){y.push(o[d].slice(0,s)),T.push(d),h=!0;break}else if(A&&S.subtract(A).format()===O.format()){y.push(o[d].slice(0,s)),T.push(d),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,s))),o.length-(t?2:1)!==T.length&&(r="Not all rows were recognised!",a="alert"),{res:y,msgContent:r,msgType:a}}return Ir(Do);})();
10
+ "use strict";var csvSort=(()=>{var bt=Object.create;var F=Object.defineProperty;var vt=Object.getOwnPropertyDescriptor;var wt=Object.getOwnPropertyNames,ie=Object.getOwnPropertySymbols,Tt=Object.getPrototypeOf,fe=Object.prototype.hasOwnProperty,$t=Object.prototype.propertyIsEnumerable;var X=(e,t,r)=>t in e?F(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,T=(e,t)=>{for(var r in t||(t={}))fe.call(t,r)&&X(e,r,t[r]);if(ie)for(var r of ie(t))$t.call(t,r)&&X(e,r,t[r]);return e};var At=(e,t)=>()=>{try{return t||e((t={exports:{}}).exports,t),t.exports}catch(r){throw t=0,r}},St=(e,t)=>{for(var r in t)F(e,r,{get:t[r],enumerable:!0})},ue=(e,t,r,a)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of wt(t))!fe.call(e,i)&&i!==r&&F(e,i,{get:()=>t[i],enumerable:!(a=vt(t,i))||a.enumerable});return e};var Rt=(e,t,r)=>(r=e!=null?bt(Tt(e)):{},ue(t||!e||!e.__esModule?F(r,"default",{value:e,enumerable:!0}):r,e)),Ot=e=>ue(F({},"__esModule",{value:!0}),e);var V=(e,t,r)=>X(e,typeof t!="symbol"?t+"":t,r);var ht=At((se,le)=>{(function(e,t){typeof se=="object"&&typeof le<"u"?le.exports=t():typeof define=="function"&&define.amd?define(t):(e=e||self,e.currency=t())})(se,function(){function e(o,l){if(!(this instanceof e))return new e(o,l);l=Object.assign({},r,l);var f=Math.pow(10,l.precision);this.intValue=o=t(o,l),this.value=o/f,l.increment=l.increment||1/f,l.groups=l.useVedic?i:a,this.s=l,this.p=f}function t(o,l){var f=2<arguments.length&&arguments[2]!==void 0?arguments[2]:!0,s=l.decimal,n=l.errorOnInvalid,c=l.fromCents,m=Math.pow(10,l.precision),b=o instanceof e;if(b&&c)return o.intValue;if(typeof o=="number"||b)s=b?o.value:o;else if(typeof o=="string")n=new RegExp("[^-\\d"+s+"]","g"),s=new RegExp("\\"+s,"g"),s=(s=o.replace(/\((.*)\)/,"-$1").replace(n,"").replace(s,"."))||0;else{if(n)throw Error("Invalid Input");s=0}return c||(s=(s*m).toFixed(4)),f?Math.round(s):s}var r={symbol:"$",separator:",",decimal:".",errorOnInvalid:!1,precision:2,pattern:"!#",negativePattern:"-!#",format:function(o,l){var f=l.pattern,s=l.negativePattern,n=l.symbol,c=l.separator,m=l.decimal;l=l.groups;var b=(""+o).replace(/^-/,"").split("."),y=b[0];return b=b[1],(0<=o.value?f:s).replace("!",n).replace("#",y.replace(l,"$1"+c)+(b?m+b:""))},fromCents:!1},a=/(\d)(?=(\d{3})+\b)/g,i=/(\d)(?=(\d\d)+\d\b)/g;return e.prototype={add:function(o){var l=this.s,f=this.p;return e((this.intValue+t(o,l))/(l.fromCents?1:f),l)},subtract:function(o){var l=this.s,f=this.p;return e((this.intValue-t(o,l))/(l.fromCents?1:f),l)},multiply:function(o){var l=this.s;return e(this.intValue*o/(l.fromCents?1:Math.pow(10,l.precision)),l)},divide:function(o){var l=this.s;return e(this.intValue/t(o,l,!1),l)},distribute:function(o){var l=this.intValue,f=this.p,s=this.s,n=[],c=Math[0<=l?"floor":"ceil"](l/o),m=Math.abs(l-c*o);for(f=s.fromCents?1:f;o!==0;o--){var b=e(c/f,s);0<m--&&(b=b[0<=l?"add":"subtract"](1/f)),n.push(b)}return n},dollars:function(){return~~this.value},cents:function(){return~~(this.intValue%this.p)},format:function(o){var l=this.s;return typeof o=="function"?o(this,l):l.format(this,Object.assign({},l,o))},toString:function(){var o=this.s,l=o.increment;return(Math.round(this.intValue/this.p/l)*l).toFixed(o.precision)},toJSON:function(){return this.value}},e})});var No={};St(No,{findType:()=>B,isNumeric:()=>Y,sort:()=>Wo,version:()=>jo});function It(){let e=[],t=0,r=!1;return{append(a){return r?!1:t+a.length>1999?(e.push("\u2026"),t+=1,r=!0,!1):(e.push(a),t+=a.length,!0)},result(){return e.join("")},stopped(){return r}}}function Ct(e){return"\\u".concat(e.toString(16).padStart(4,"0"))}function P(e,t){if(e.append('"')){for(let r=0;r<t.length&&!e.stopped();r+=1){let a=t.charCodeAt(r);a===34?e.append('\\"'):a===92?e.append("\\\\"):a===8?e.append("\\b"):a===9?e.append("\\t"):a===10?e.append("\\n"):a===12?e.append("\\f"):a===13?e.append("\\r"):a<32||a===8232||a===8233||a>=55296&&a<=57343?e.append(Ct(a)):e.append(t[r])}e.append('"')}}function Dt(e){return e.get&&e.set?"[Getter/Setter]":e.get?"[Getter]":e.set?"[Setter]":"[Accessor]"}function me(e,t){e.append("Symbol(");let r=String(t);r.length>8&&P(e,r.slice(7,-1)),e.append(")")}function pe(e,t){typeof t=="symbol"?me(e,t):P(e,String(t))}function g(e,t=0){let r=It(),a=t===4?4:0,i=new WeakSet,o=0;function l(u){a&&r.append(" ".repeat(u*a))}function f(u,x){u&&r.append(","),a&&(r.append("\n"),l(x+1))}function s(u,x,w){a&&x&&(r.append("\n"),l(w)),r.append(u)}function n(u,x){Object.prototype.hasOwnProperty.call(u,"value")?y(u.value,x):r.append(Dt(u))}function c(u,x){let w;try{w=Reflect.getOwnPropertyDescriptor(u,"length")}catch(h){r.append("[Uninspectable]");return}let d=w==null?void 0:w.value;if(!Number.isSafeInteger(d)||d<0){r.append("[Uninspectable]");return}r.append("[");let p=!1;for(let h=0;h<d&&!r.stopped();h+=1){if(f(p,x),p=!0,o>=50){r.append("[MaxEntries]");break}o+=1;let v;try{v=Reflect.getOwnPropertyDescriptor(u,String(h))}catch($){r.append("[Uninspectable]");continue}v!=null&&v.enumerable?n(v,x+1):r.append("[Empty]")}s("]",p,x)}function m(u,x){let w;try{w=Reflect.ownKeys(u)}catch(p){r.append("[Uninspectable]");return}r.append("{");let d=!1;for(let p of w){if(r.stopped())break;if(o>=50){f(d,x),d=!0,P(r,"\u2026"),r.append(a?": ":":"),r.append("[MaxEntries]");break}o+=1;let h;try{h=Reflect.getOwnPropertyDescriptor(u,p)}catch(v){f(d,x),d=!0,pe(r,p),r.append(a?": ":":"),r.append("[Uninspectable]");continue}h!=null&&h.enumerable&&(f(d,x),d=!0,pe(r,p),r.append(a?": ":":"),n(h,x+1))}s("}",d,x)}function b(u,x){if(i.has(u)){r.append("[Circular]");return}if(x>=5){r.append("[MaxDepth]");return}let w;try{w=Array.isArray(u)}catch(d){r.append("[Uninspectable]");return}i.add(u);try{w?c(u,x):m(u,x)}finally{i.delete(u)}}function y(u,x){u===null?r.append("null"):typeof u=="string"?P(r,u):typeof u=="number"?r.append(Object.is(u,-0)?"-0":String(u)):typeof u=="boolean"?r.append(u?"true":"false"):typeof u>"u"?r.append("undefined"):typeof u=="bigint"?r.append("".concat(u,"n")):typeof u=="symbol"?me(r,u):typeof u=="function"?r.append("[Function]"):b(u,x)}try{return y(e,0),r.result()}catch(u){return"[Uninspectable]"}}var Vo=new Set([..."\u060B$\u20BC\u17DB\xA5\u20A1\u20B1\xA3\u20AC\xA2\u20B9\uFDFC\u20AA\u20A9\u20AD\u20A8\u20AE\u20A6\u20BD\u20AB\u0E3F\u20A9\u20BA\u20B4","$U","$b","B/.","BZ$","Br","Bs","C$","CHF","Ft","Gs","J$","KM","K\u010D","L","MT","NT$","P","Q","R","R$","RD$","RM","Rp","S","S/.","TT$","Z$","kn","kr","lei","z\u0142","\u0192","\u0414\u0438\u043D.","\u0434\u0435\u043D","\u043B\u0432","\u062F.\u0625","Lek"]);function de(e){if(e==null||typeof e!="object")return!1;let t=Object.getPrototypeOf(e);return t!==null&&t!==Object.prototype&&Object.getPrototypeOf(t)!==null?!1:!(Symbol.iterator in e)&&!(Symbol.toStringTag in e)}function k(e){return typeof e=="string"}function ce(e){return Number.isFinite(e)}function D(e){return Number.isSafeInteger(e)&&e>=0}function I(e){return e!=null}var Et=typeof global=="object"&&global&&global.Object===Object&&global,ge=Et;var kt=typeof self=="object"&&self&&self.Object===Object&&self,jt=ge||kt||Function("return this")(),H=jt;var Wt=H.Symbol,C=Wt;var he=Object.prototype,Nt=he.hasOwnProperty,Ft=he.toString,M=C?C.toStringTag:void 0;function Vt(e){var t=Nt.call(e,M),r=e[M];try{e[M]=void 0;var a=!0}catch(o){}var i=Ft.call(e);return a&&(t?e[M]=r:delete e[M]),i}var ye=Vt;var Mt=Object.prototype,_t=Mt.toString;function Bt(e){return _t.call(e)}var xe=Bt;var Pt="[object Null]",Ht="[object Undefined]",be=C?C.toStringTag:void 0;function Lt(e){return e==null?e===void 0?Ht:Pt:be&&be in Object(e)?ye(e):xe(e)}var L=Lt;function Ut(e){return e!=null&&typeof e=="object"}var ve=Ut;var qt="[object Symbol]";function Kt(e){return typeof e=="symbol"||ve(e)&&L(e)==qt}var we=Kt;function zt(e,t){for(var r=-1,a=e==null?0:e.length,i=Array(a);++r<a;)i[r]=t(e[r],r,e);return i}var U=zt;var Jt=Array.isArray,Te=Jt;var Gt=1/0,$e=C?C.prototype:void 0,Ae=$e?$e.toString:void 0;function Se(e){if(typeof e=="string")return e;if(Te(e))return U(e,Se)+"";if(we(e))return Ae?Ae.call(e):"";var t=e+"";return t=="0"&&1/e==-Gt?"-0":t}var q=Se;var Qt=/\s/;function Zt(e){for(var t=e.length;t--&&Qt.test(e.charAt(t)););return t}var Re=Zt;var Yt=/^\s+/;function Xt(e){return e&&e.slice(0,Re(e)+1).replace(Yt,"")}var Oe=Xt;function er(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var K=er;function tr(e){return e}var z=tr;var rr="[object AsyncFunction]",or="[object Function]",ar="[object GeneratorFunction]",nr="[object Proxy]";function sr(e){if(!K(e))return!1;var t=L(e);return t==or||t==ar||t==rr||t==nr}var Ie=sr;var lr=H["__core-js_shared__"],J=lr;var Ce=(function(){var e=/[^.]+$/.exec(J&&J.keys&&J.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""})();function ir(e){return!!Ce&&Ce in e}var De=ir;var fr=Function.prototype,ur=fr.toString;function pr(e){if(e!=null){try{return ur.call(e)}catch(t){}try{return e+""}catch(t){}}return""}var Ee=pr;var mr=/[\\^$.*+?()[\]{}|]/g,dr=/^\[object .+?Constructor\]$/,cr=Function.prototype,gr=Object.prototype,hr=cr.toString,yr=gr.hasOwnProperty,xr=RegExp("^"+hr.call(yr).replace(mr,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function br(e){if(!K(e)||De(e))return!1;var t=Ie(e)?xr:dr;return t.test(Ee(e))}var ke=br;function vr(e,t){return e==null?void 0:e[t]}var je=vr;function wr(e,t){var r=je(e,t);return ke(r)?r:void 0}var We=wr;function Tr(e,t,r){switch(r.length){case 0:return e.call(t);case 1:return e.call(t,r[0]);case 2:return e.call(t,r[0],r[1]);case 3:return e.call(t,r[0],r[1],r[2])}return e.apply(t,r)}var Ne=Tr;function $r(e,t){var r=-1,a=e.length;for(t||(t=Array(a));++r<a;)t[r]=e[r];return t}var Fe=$r;var Ar=800,Sr=16,Rr=Date.now;function Or(e){var t=0,r=0;return function(){var a=Rr(),i=Sr-(a-r);if(r=a,i>0){if(++t>=Ar)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}var Ve=Or;function Ir(e){return function(){return e}}var Me=Ir;var Cr=(function(){try{var e=We(Object,"defineProperty");return e({},"",{}),e}catch(t){}})(),ee=Cr;var Dr=ee?function(e,t){return ee(e,"toString",{configurable:!0,enumerable:!1,value:Me(t),writable:!0})}:z,_e=Dr;var Er=Ve(_e),Be=Er;function kr(e,t,r,a){for(var i=e.length,o=r+(a?1:-1);a?o--:++o<i;)if(t(e[o],o,e))return o;return-1}var Pe=kr;function jr(e){return e!==e}var He=jr;function Wr(e,t,r){for(var a=r-1,i=e.length;++a<i;)if(e[a]===t)return a;return-1}var Le=Wr;function Nr(e,t,r){return t===t?Le(e,t,r):Pe(e,He,r)}var j=Nr;var Ue=Math.max;function Fr(e,t,r){return t=Ue(t===void 0?e.length-1:t,0),function(){for(var a=arguments,i=-1,o=Ue(a.length-t,0),l=Array(o);++i<o;)l[i]=a[t+i];i=-1;for(var f=Array(t+1);++i<t;)f[i]=a[i];return f[t]=r(l),Ne(e,this,f)}}var qe=Fr;function Vr(e,t){return Be(qe(e,t,z),e+"")}var Ke=Vr;function Mr(e){return function(t){return e(t)}}var ze=Mr;function _r(e){return e==null?"":q(e)}var Je=_r;function Br(e,t,r){var a=-1,i=e.length;t<0&&(t=-t>i?0:i+t),r=r>i?i:r,r<0&&(r+=i),i=t>r?0:r-t>>>0,t>>>=0;for(var o=Array(i);++a<i;)o[a]=e[a+t];return o}var Ge=Br;function Pr(e,t,r){var a=e.length;return r=r===void 0?a:r,!t&&r>=a?e:Ge(e,t,r)}var Qe=Pr;var Hr="\\ud800-\\udfff",Lr="\\u0300-\\u036f",Ur="\\ufe20-\\ufe2f",qr="\\u20d0-\\u20ff",Kr=Lr+Ur+qr,zr="\\ufe0e\\ufe0f",Jr="\\u200d",Gr=RegExp("["+Jr+Hr+Kr+zr+"]");function Qr(e){return Gr.test(e)}var Ze=Qr;function Zr(e){return e.split("")}var Ye=Zr;var Xe="\\ud800-\\udfff",Yr="\\u0300-\\u036f",Xr="\\ufe20-\\ufe2f",eo="\\u20d0-\\u20ff",to=Yr+Xr+eo,ro="\\ufe0e\\ufe0f",oo="["+Xe+"]",te="["+to+"]",re="\\ud83c[\\udffb-\\udfff]",ao="(?:"+te+"|"+re+")",et="[^"+Xe+"]",tt="(?:\\ud83c[\\udde6-\\uddff]){2}",rt="[\\ud800-\\udbff][\\udc00-\\udfff]",no="\\u200d",ot=ao+"?",at="["+ro+"]?",so="(?:"+no+"(?:"+[et,tt,rt].join("|")+")"+at+ot+")*",lo=at+ot+so,io="(?:"+[et+te+"?",te,tt,rt,oo].join("|")+")",fo=RegExp(re+"(?="+re+")|"+io+lo,"g");function uo(e){return e.match(fo)||[]}var nt=uo;function po(e){return Ze(e)?nt(e):Ye(e)}var oe=po;function mo(e,t,r,a){for(var i=r-1,o=e.length;++i<o;)if(a(e[i],t))return i;return-1}var st=mo;var co=Array.prototype,lt=co.splice;function go(e,t,r,a){var i=a?st:j,o=-1,l=t.length,f=e;for(e===t&&(t=Fe(t)),r&&(f=U(e,ze(r)));++o<l;)for(var s=0,n=t[o],c=r?r(n):n;(s=i(f,c,s,a))>-1;)f!==e&&lt.call(f,s,1),lt.call(e,s,1);return e}var it=go;function ho(e,t){return e&&e.length&&t&&t.length?it(e,t):e}var ft=ho;var yo=Ke(ft),G=yo;function xo(e,t){for(var r=e.length;r--&&j(t,e[r],0)>-1;);return r}var ut=xo;function bo(e,t){for(var r=-1,a=e.length;++r<a&&j(t,e[r],0)>-1;);return r}var pt=bo;function vo(e,t,r){if(e=Je(e),e&&(r||t===void 0))return Oe(e);if(!e||!(t=q(t)))return e;var a=oe(e),i=oe(t),o=pt(a,i),l=ut(a,i)+1;return Qe(a,o,l).join("")}var ae=vo;var wo={strictlyTwoElementsInRangeArrays:!1,progressFn:null};function W(e,t){if(!Array.isArray(e)||!e.length)return e;let r=T(T({},wo),t),a,i;if(r.strictlyTwoElementsInRangeArrays&&!e.every((f,s)=>!Array.isArray(f)||f.length!==2?(a=s,i=f.length,!1):!0))throw new TypeError("ranges-sort/rSort(): [THROW_ID_01] The first argument should be an array and must consist of arrays which are natural number indexes representing TWO string index ranges. However, ".concat(a,"th range (").concat(g(e[a],4),") has not two but ").concat(i," elements!"));if(!e.every((f,s)=>!Array.isArray(f)||!Number.isInteger(f[0])||f[0]<0||!Number.isInteger(f[1])||f[1]<0?(a=s,!1):!0))throw new TypeError("ranges-sort/rSort(): [THROW_ID_02] The first argument should be an array and must consist of arrays which are natural number indexes representing string index ranges. However, ".concat(a,"th range (").concat(g(e[a],4),") does not consist of only natural numbers!"));let o=e.length**2,l=0;return Array.from(e).sort((f,s)=>(r.progressFn&&(l+=1,r.progressFn(Math.floor(l*100/o))),f[0]===s[0]?f[1]<s[1]?-1:f[1]>s[1]?1:0:f[0]<s[0]?-1:1))}var To={mergeType:1,progressFn:null,joinRangesThatTouchEdges:!0};function ne(e,t){function r(n){return!!n&&typeof n=="object"&&!Array.isArray(n)}if(!Array.isArray(e)||!e.length)return null;if(t&&!r(t))throw new TypeError("ranges-merge/rMerge(): [THROW_ID_01] the second input argument must be a plain object. It was given as:\n".concat(g(t,4)," (type ").concat(typeof t,")"));let a=T(T({},To),t);if(a.progressFn&&r(a.progressFn)&&!Object.keys(a.progressFn).length)a.progressFn=null;else if(a.progressFn&&typeof a.progressFn!="function")throw new TypeError('ranges-merge/rMerge(): [THROW_ID_02] opts.progressFn must be a function! It was given of a type: "'.concat(typeof a.progressFn,'", equal to ').concat(g(a.progressFn,4)));if(![1,2,"1","2"].includes(a.mergeType))throw new TypeError('ranges-merge/rMerge(): [THROW_ID_03] opts.mergeType was customised to a wrong thing! It was given of a type: "'.concat(typeof a.mergeType,'", equal to ').concat(g(a.mergeType,4)));if(typeof a.joinRangesThatTouchEdges!="boolean")throw new TypeError('ranges-merge/rMerge(): [THROW_ID_04] opts.joinRangesThatTouchEdges was customised to a wrong thing! It was given of a type: "'.concat(typeof a.joinRangesThatTouchEdges,'", equal to ').concat(g(a.joinRangesThatTouchEdges,4)));let i=e.filter(n=>Array.isArray(n)).map(n=>[...n]).filter(n=>n[2]!==void 0||n[0]!==n[1]),o,l,f;a.progressFn?o=W(i,{progressFn:n=>{f=Math.floor(n/5),f!==l&&(l=f,a.progressFn(f))}}):o=W(i);let s=o.length-1;for(let n=s;n>0;n--)a.progressFn&&(f=Math.floor((1-n/s)*78)+21,f!==l&&f>l&&(l=f,a.progressFn(f))),(o[n][0]<=o[n-1][0]||!a.joinRangesThatTouchEdges&&o[n][0]<o[n-1][1]||a.joinRangesThatTouchEdges&&o[n][0]<=o[n-1][1])&&(o[n-1][0]=Math.min(o[n][0],o[n-1][0]),o[n-1][1]=Math.max(o[n][1],o[n-1][1]),o[n][2]!==void 0&&(o[n-1][0]>=o[n][0]||o[n-1][1]<=o[n][1])&&o[n-1][2]!==null&&(o[n][2]===null&&o[n-1][2]!==null?o[n-1][2]=null:o[n-1][2]!=null?+a.mergeType==2&&o[n-1][0]===o[n][0]?o[n-1][2]=o[n][2]:o[n-1][2]+=o[n][2]:o[n-1][2]=o[n][2]),o.splice(n,1),n=o.length);return o.length?o:null}function Q(e){if(typeof e=="number")return Number.isInteger(e)&&e>=0;if(typeof e!="string"||!e.trim())return!1;let t=Number(e);return Number.isInteger(t)&&t>=0}function mt(e,t,r){let a=0,i=0;if(e===void 0&&t===void 0&&r===void 0)throw new Error("ranges-apply/rApply(): [THROW_ID_01] inputs missing!");if(typeof e!="string")throw new TypeError("ranges-apply/rApply(): [THROW_ID_02] first input argument must be a string! Currently it's: ".concat(typeof e,", equal to: ").concat(g(e,4)));if(t!=null&&!Array.isArray(t))throw new TypeError("ranges-apply/rApply(): [THROW_ID_03] second input argument must be an array (or null)! Currently it's: ".concat(typeof t,", equal to: ").concat(g(t,4)));if(r&&typeof r!="function")throw new TypeError("ranges-apply/rApply(): [THROW_ID_04] the third input argument must be a function (or falsy)! Currently it's: ".concat(typeof r,", equal to: ").concat(g(r,4)));if(!(t!=null&&t.some(Boolean)))return e;let o;Array.isArray(t)&&!Array.isArray(t[0])&&Q(t[0])&&Q(t[1])?o=[Array.from(t)]:o=Array.from(t);let l=o.length,f=0;o.forEach((c,m)=>{if(c){if(r&&(a=Math.floor(f/l*10),a!==i&&(i=a,r(a))),!Array.isArray(c))throw new TypeError("ranges-apply/rApply(): [THROW_ID_05] ranges array, second input arg., has ".concat(m,"th element not an array: ").concat(g(c,4),", which is ").concat(typeof c));if(!Q(c[0]))throw new TypeError("ranges-apply/rApply(): [THROW_ID_06] ranges array, second input arg. has ".concat(m,"th element, array ").concat(g(c),". Its first element is not a non-negative integer or string index, but ").concat(typeof c[0],", equal to: ").concat(g(c[0],4),"."));if(typeof c[0]=="string"&&(o[m]=[...c],o[m][0]=Number(c[0])),!Q(c[1]))throw new TypeError("ranges-apply/rApply(): [THROW_ID_07] ranges array, second input arg. has ".concat(m,"th element, array ").concat(g(c),". Its second element is not a non-negative integer or string index, but ").concat(typeof c[1],", equal to: ").concat(g(c[1],4),"."));typeof c[1]=="string"&&(o[m]===c&&(o[m]=[...c]),o[m][1]=Number(c[1])),f+=1}});let s=r?ne(o,{progressFn:c=>{a=10+Math.floor(c/10),a!==i&&(i=a,r(a))}}):ne(o),n=(s==null?void 0:s.length)||0;if(s&&n>0){let c=e.slice(s[n-1][1]);e=s.reduce((m,b,y,u)=>{r&&(a=20+Math.floor(y/n*80),a!==i&&(i=a,r(a)));let x=y===0?0:u[y-1][1],w=u[y][0];return"".concat(m).concat(e.slice(x,w)).concat(u[y][2]||"")},""),e+=c}return e}function Z(e,t=1){let r="\xA0";function a(o){return Array.from(o).reverse().join("")}function i(o,l,f){let s=f?"\n":"\r",n=f?"\r":"\n";if(!o)return o;let c=0,m=0,b="";for(let y=0,u=o.length;y<u;y++)(o[y]===s||o[y]===n&&o[y-1]!==s)&&m++,"\r\n".includes(o[y])||o[y]===r?(c=0,o[y]===r?b+=o[y]:o[y]===s?m<=l&&(b+=o[y],o[y+1]===n&&(b+=o[y+1],y++)):o[y]===n&&(o==null?void 0:o[y-1])!==s&&m<=l&&(b+=o[y])):(c++,!o[y+1]&&!m&&(b+=" "));return b}if(typeof e=="string"&&e.length){let o=1;typeof+t=="number"&&Number.isInteger(+t)&&+t>=0&&(o=+t);let l="",f="";if(!e.trim())l=e;else if(!e[0].trim()){for(let s=0,n=e.length;s<n;s++)if(e[s].trim()){l=e.slice(0,s);break}}if(e.trim()&&(e.slice(-1).trim()===""||e.slice(-1)===r)){for(let s=e.length;s--;)if(e[s].trim()){f=e.slice(s+1);break}}return"".concat(i(l,o,!1)).concat(e.trim()).concat(a(i(a(f),o,!0)))}return e}var $o={mergeType:1,progressFn:null,joinRangesThatTouchEdges:!0};function Ao(e,t){function r(n){return!!n&&typeof n=="object"&&!Array.isArray(n)}if(!Array.isArray(e)||!e.length)return null;if(t&&!r(t))throw new TypeError("ranges-push/rMerge(): [THROW_ID_10] the second input argument must be a plain object. It was given as:\n".concat(g(t,4)," (type ").concat(typeof t,")"));let a=T(T({},$o),t);if(a.progressFn&&r(a.progressFn)&&!Object.keys(a.progressFn).length)a.progressFn=null;else if(a.progressFn&&typeof a.progressFn!="function")throw new TypeError('ranges-push/rMerge(): [THROW_ID_11] resolvedOpts.progressFn must be a function! It was given of a type: "'.concat(typeof a.progressFn,'", equal to ').concat(g(a.progressFn,4)));if(![1,2,"1","2"].includes(a.mergeType))throw new TypeError('ranges-push/rMerge(): [THROW_ID_12] resolvedOpts.mergeType was customised to a wrong thing! It was given of a type: "'.concat(typeof a.mergeType,'", equal to ').concat(g(a.mergeType,4)));if(typeof a.joinRangesThatTouchEdges!="boolean")throw new TypeError('ranges-push/rMerge(): [THROW_ID_13] resolvedOpts.joinRangesThatTouchEdges was customised to a wrong thing! It was given of a type: "'.concat(typeof a.joinRangesThatTouchEdges,'", equal to ').concat(g(a.joinRangesThatTouchEdges,4)));let i=e.filter(n=>Array.isArray(n)).map(n=>[...n]).filter(n=>n[2]!==void 0||n[0]!==n[1]),o,l,f;a.progressFn?o=W(i,{progressFn:n=>{f=Math.floor(n/5),f!==l&&(l=f,a.progressFn!=null&&a.progressFn(f))}}):o=W(i);let s=o.length-1;for(let n=s;n>0;n--)a.progressFn&&(f=Math.floor((1-n/s)*78)+21,f!==l&&f>l&&(l=f,a.progressFn(f))),(o[n][0]<=o[n-1][0]||!a.joinRangesThatTouchEdges&&o[n][0]<o[n-1][1]||a.joinRangesThatTouchEdges&&o[n][0]<=o[n-1][1])&&(o[n-1][0]=Math.min(o[n][0],o[n-1][0]),o[n-1][1]=Math.max(o[n][1],o[n-1][1]),o[n][2]!==void 0&&(o[n-1][0]>=o[n][0]||o[n-1][1]<=o[n][1])&&o[n-1][2]!==null&&(o[n][2]===null&&o[n-1][2]!==null?o[n-1][2]=null:o[n-1][2]!=null?+a.mergeType==2&&o[n-1][0]===o[n][0]?o[n-1][2]=o[n][2]:o[n-1][2]+=o[n][2]:o[n-1][2]=o[n][2]),o.splice(n,1),n=o.length);return o.length?o:null}var So={limitToBeAddedWhitespace:!1,limitLinebreaksCount:1,mergeType:1};function dt(e){return e[2]===void 0&&e[0]===e[1]}function Ro(e){let t=-1;for(let r=0,a=e.length;r<a;r++){let i=e[r];if(Array.isArray(i)){if(i[0]<t)return!1;t=i[0]}}return!0}var ct=class{constructor(e){V(this,"ranges");V(this,"opts");V(this,"sorted");if(e!=null&&!de(e))throw new TypeError("ranges-push/Ranges/constructor(): [THROW_ID_01] The options argument must be a plain object. It was given as ".concat(g(e,4)," (type ").concat(typeof e,")."));let t=T(T({},So),e);if(t.mergeType&&t.mergeType!==1&&t.mergeType!==2)if(k(t.mergeType)&&t.mergeType.trim()==="1")t.mergeType=1;else if(k(t.mergeType)&&t.mergeType.trim()==="2")t.mergeType=2;else throw new Error('ranges-push/Ranges/constructor(): [THROW_ID_02] opts.mergeType was customised to a wrong thing! It was given of a type: "'.concat(typeof t.mergeType,'", equal to ').concat(g(t.mergeType,4)));this.opts=t,this.ranges=[],this.sorted=!0}add(e,t,r){var o;if(e==null&&t==null)return;if(I(e)&&!I(t)){if(Array.isArray(e)){if(e.length){if(e.some(l=>Array.isArray(l))){e.forEach(l=>{Array.isArray(l)&&this.add(...l)});return}e.length&&D(+e[0])&&D(+e[1])&&this.add(...e)}return}throw new TypeError('ranges-push/Ranges/add(): [THROW_ID_03] the first input argument, "from" is set ('.concat(g(e),') but second-one, "to" is not (').concat(g(t),")"))}else if(!I(e)&&I(t))throw new TypeError('ranges-push/Ranges/add(): [THROW_ID_04] the second input argument, "to" is set ('.concat(g(t),') but first-one, "from" is not (').concat(g(e),")"));let a=+e,i=+t;if(D(a)&&D(i)){if(I(r)&&!k(r)&&!ce(r))throw new TypeError("ranges-push/Ranges/add(): [THROW_ID_05] The third argument, the value to add, was given not as string but ".concat(typeof r,", equal to:\n").concat(g(r,4)));if(I(this.ranges)&&Array.isArray(this.last())&&a===this.last()[1]){if(this.last()[1]=i,this.last()[2],this.last()[2]!==null&&I(r)){let l=this.last()[2]&&this.last()[2].length&&(!((o=this.opts)!=null&&o.mergeType)||this.opts.mergeType===1)?"".concat(this.last()[2]).concat(r):r;this.opts.limitToBeAddedWhitespace&&(l=Z(l,this.opts.limitLinebreaksCount)),k(l)&&!l.length||(this.last()[2]=l)}}else{this.ranges||(this.ranges=[]);let l=this.last();l&&a<l[0]&&(this.sorted=!1);let f=r!==void 0&&!(k(r)&&!r.length)?[a,i,r&&this.opts.limitToBeAddedWhitespace?Z(r,this.opts.limitLinebreaksCount):r]:[a,i];this.ranges.push(f)}}else throw D(a)?new TypeError('ranges-push/Ranges/add(): [THROW_ID_07] "to" value, the second input argument, must be a natural number or zero! Currently it\'s of a type "'.concat(typeof t,'" equal to: ').concat(g(t,4))):new TypeError('ranges-push/Ranges/add(): [THROW_ID_06] "from" value, the first input argument, must be a natural number or zero! Currently it\'s of a type "'.concat(typeof e,'" equal to: ').concat(g(e,4)))}push(e,t,r){this.add(e,t,r)}current(){return Array.isArray(this.ranges)&&this.ranges.length?(this.ranges=Ao(this.ranges,{mergeType:this.opts.mergeType}),this.sorted=!0,this.ranges&&this.opts.limitToBeAddedWhitespace?this.ranges.map(e=>I(e[2])?[e[0],e[1],Z(e[2],this.opts.limitLinebreaksCount)]:e):this.ranges):null}firstCovers(e){if(!D(e))throw new TypeError("ranges-push/Ranges/firstCovers(): [THROW_ID_08] the input argument must be a natural number or zero! It was given as ".concat(g(e,4)," (type ").concat(typeof e,")"));if(!Array.isArray(this.ranges)||!this.ranges.length)return!1;let t=null;if(this.sorted){for(let a=0,i=this.ranges.length;a<i;a++){let o=this.ranges[a];if(!(!Array.isArray(o)||dt(o))){if(t===null){if(o[0]!==0)return!1;t=o[1]}else{if(o[0]>t)break;o[1]>t&&(t=o[1])}if(t>=e)return!0}}return t!==null&&t>=e}let r=!0;for(;r;){r=!1;for(let a=0,i=this.ranges.length;a<i;a++){let o=this.ranges[a];if(!(!Array.isArray(o)||dt(o))){if(o[0]<0)return!1;(t===null?o[0]===0:o[0]<=t&&o[1]>t)&&(t=o[1],r=!0)}}}return t!==null&&t>=e}wipe(){this.ranges=[],this.sorted=!0}replace(e){if(Array.isArray(e)&&e.length)if(Array.isArray(e[0])&&D(e[0][0]))this.ranges=Array.from(e),this.sorted=Ro(this.ranges);else throw new Error("ranges-push/Ranges/replace(): [THROW_ID_09] Single range was given but we expected array of arrays! The first element, ".concat(g(e[0],4)," should be an array and its first element should be an integer, a string index."));else this.ranges=[],this.sorted=!0}last(){return Array.isArray(this.ranges)&&this.ranges.length?this.ranges[this.ranges.length-1]:null}};var Oo={removeThousandSeparatorsFromNumbers:!0,padSingleDecimalPlaceNumbers:!0,forceUKStyle:!1};function _(e,t){let r=!0,a=[".",",","'"," "],i;if(typeof e!="string")throw new TypeError("string-remove-thousand-separators/remSep(): [THROW_ID_01] Input must be string! Currently it's: ".concat(typeof e,", equal to:\n").concat(g(e,4)));if(t&&typeof t!="object")throw new TypeError("string-remove-thousand-separators/remSep(): [THROW_ID_02] Options object must be a plain object! Currently it's: ".concat(typeof t,", equal to:\n").concat(g(t,4)));let o=T(T({},Oo),t),l=ae(e.trim(),'"');if(l==="")return l;if(+e>0&&+e<1)return e;let f=new ct;for(let s=0,n=l.length;s<n;s++){if(o.removeThousandSeparatorsFromNumbers&&l[s].trim()===""&&f.add(s,s+1),o.removeThousandSeparatorsFromNumbers&&l[s]==="'"&&(f.add(s,s+1),l[s+1]==="'")){r=!1;break}if(a.includes(l[s])){if(l[s+1]!==void 0&&/^\d$/.test(l[s+1]))if(l[s+2]!==void 0)if(/^\d$/.test(l[s+2]))if(l[s+3]!==void 0)if(/^\d$/.test(l[s+3])){if(l[s+4]!==void 0&&/^\d$/.test(l[s+4])){r=!1;break}else if(o.removeThousandSeparatorsFromNumbers&&f.add(s,s+1),!i)i=l[s];else if(l[s]!==i){r=!1;break}}else{r=!1;break}else o.removeThousandSeparatorsFromNumbers&&o.forceUKStyle&&l[s]===","&&f.add(s,s+1,".");else{r=!1;break}else o.forceUKStyle&&l[s]===","&&f.add(s,s+1,"."),o.padSingleDecimalPlaceNumbers&&f.add(s+2,s+2,"0")}else if(!/^\d$/.test(l[s])){r=!1;break}}return r&&f.current()?mt(l,f.current()):l}var Io={delimiter:",",removeThousandSeparatorsFromNumbers:!0,padSingleDecimalPlaceNumbers:!0,forceUKStyle:!1};function Co(e){if(e===null||typeof e!="object")return!1;let t=Object.getPrototypeOf(e);return t===null||t===Object.prototype}function Do(e,t){let r=0,a=e.length;for(;r<a&&e[r]!==t&&e[r].trim()==="";)r+=1;for(;a>r&&e[a-1]!==t&&e[a-1].trim()==="";)a-=1;return e.slice(r,a)}function gt(e,t){let r=0,a=0,i=[],o=[],l=!1,f=!0;if(t&&!Co(t))throw new Error("csv-split-easy/splitEasy(): [THROW_ID_01] Options object must be a plain object! Currently it's of a type ".concat(typeof t," equal to:\n").concat(g(t,4)));let s=T(T({},Io),t);if(typeof e!="string")throw new TypeError("csv-split-easy/splitEasy(): [THROW_ID_02] input must be string! Currently it's: ".concat(typeof e,", equal to: ").concat(g(e,4)));if(typeof s.delimiter!="string"||s.delimiter.length!==1||s.delimiter==='"'||s.delimiter==="\n"||s.delimiter==="\r")throw new TypeError('csv-split-easy/splitEasy(): [THROW_ID_03] The "delimiter" option must be a single character other than a double quote or a line break! Currently it\'s: '.concat(typeof s.delimiter,", equal to: ").concat(g(s.delimiter)));if(e==="")return[[""]];e=Do(e,s.delimiter);for(let n=0,c=e.length;n<c;n++){if(f&&e[n]!=='"'&&e[n]!==s.delimiter&&e[n].trim()!==""&&(f=!1),e[n]==='"')if(l&&e[n+1]==='"')n+=1;else if(l){l=!1;let m=e.slice(r,n);m.trim()!==""&&(f=!1);let b=/""/.test(m)?m.replace(/""/g,'"'):_(m,{removeThousandSeparatorsFromNumbers:s.removeThousandSeparatorsFromNumbers,padSingleDecimalPlaceNumbers:s.padSingleDecimalPlaceNumbers,forceUKStyle:s.forceUKStyle});i.push(b)}else l=!0,r=n+1;else if(!l&&e[n]===s.delimiter){if(e[n-1]!=='"'&&!l){let m=e.slice(r,n);m.trim()!==""&&(f=!1),i.push(_(m,{removeThousandSeparatorsFromNumbers:s.removeThousandSeparatorsFromNumbers,padSingleDecimalPlaceNumbers:s.padSingleDecimalPlaceNumbers,forceUKStyle:s.forceUKStyle}))}r=n+1,a&&(a=0)}else if(e[n]==="\n"||e[n]==="\r"){if(!a){if(a=n,!l&&e[n-1]!=='"'){let m=e.slice(r,n);m.trim()!==""&&(f=!1),i.push(_(m,{removeThousandSeparatorsFromNumbers:s.removeThousandSeparatorsFromNumbers,padSingleDecimalPlaceNumbers:s.padSingleDecimalPlaceNumbers,forceUKStyle:s.forceUKStyle}))}f?i.length=0:o.push(i),f=!0,i=[]}r=n+1}else a&&(a=0,r=n);if(n+1===c){if(e[n]!=='"'){let m=e.slice(r,n+1);m.trim()&&(f=!1),i.push(_(m,{removeThousandSeparatorsFromNumbers:s.removeThousandSeparatorsFromNumbers,padSingleDecimalPlaceNumbers:s.padSingleDecimalPlaceNumbers,forceUKStyle:s.forceUKStyle}))}f?i=[]:o.push(i),f=!0}}return o.length===0?[[""]]:o}var N=Rt(ht(),1);var yt="7.2.0";function Y(e){return typeof e=="number"&&!Number.isNaN(e)?!0:(e=(e||"").toString().trim(),e?!Number.isNaN(+e):!1)}var ko=["\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 B(e){return Y(e)||ko.some(t=>Y(e.replace(t,"").replace(/[,.]/g,"")))?"numeric":e.trim()?"text":"empty"}var jo=yt;function Wo(e){let t=null,r=null;if(typeof e!="string")throw new TypeError("csv-sort/sort(): [THROW_ID_01] The input is of a wrong type! We accept either string of array of arrays. We got instead: ".concat(typeof e,", equal to:\n").concat(g(e,4)));if(!e.trim())return{res:[[""]],msgContent:t,msgType:r};let a=gt(e),i=[],o=!1,l=!0,f=[],s=null;for(let d=a.length-1;d>=0;d--)if(i.length){d===0&&(o=a[d].every(h=>{let v=B(h);return v==="text"||v==="empty"})),!o&&i.length!==a[d].length&&(l=!1);let p=null;for(let h=0,v=a[d].length;h<v;h++){let $=B(a[d][h].trim());if(p===null&&$==="empty"&&(p=h),p!==null&&$!=="empty"&&(p=null),$!==i[h]&&!o){let A=$;if(Array.isArray(i[h]))i[h].includes(A)||i[h].push(A);else if(i[h]!==A){let S=i[h];i[h]=[],i[h].push(S),i[h].push(A)}}}s!==null&&p!==null&&p>s&&(!o||o&&d!==0)&&(s=p)}else if(a[d].length!==1||a[d][0]!=="")for(let p=0,h=a[d].length;p<h;p++){let v=B(a[d][p].trim());i.push(v),s===null&&v==="empty"&&(s=p),s!==null&&v!=="empty"&&(s=null)}s||(s=i.length);let n=0;for(let d=0,p=i.length;d<p&&i[d]==="empty";d++)n=d;n!==0&&(a=a.map(d=>d.slice(n+1,s)),i=i.slice(n+1,s));let c=[],m;i.forEach((d,p)=>{d==="numeric"&&c.push(p)});let b=o?1:0;if(c.length===1)m=c[0];else{if(c.length===0)throw new Error('csv-sort/sort(): [THROW_ID_02] Your CSV file does not contain numeric-only columns and computer was not able to detect the "Balance" column!');{let d=Array.from(c),p=[];for(let h=0,v=d.length;h<v;h++){let $=d[h],A,S=!0,E,O=!0;for(let R=b,xt=a.length;R<xt&&(S&&(A==null?A=a[R][$]:A===a[R][$]?(p.push($),S=!1):A=a[R][$]),O&&(E==null?E=a[R][$]:a[R][$]!==E&&(O=!1)),!!S);R++);O&&f.push($)}if(d=G(d,...p),d.length===1)m=d[0];else if(d.length===0)throw new Error('csv-sort/sort(): [THROW_ID_03] 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/sort(): [THROW_ID_04] Sadly computer couldn't find its way in this CSV and had to stop working on it.");let y=G(Array.from(i.reduce((d,p,h)=>((typeof p=="string"&&p==="numeric"||Array.isArray(p)&&p.includes("numeric"))&&d.push(h),d),[])),m,...f),u=[];u.push(a[a.length-1].slice(0,s));let x=[],w=o?1:0;for(let d=a.length-2;d>=w;d--)for(let p=a.length-2;p>=w;p--)if(!x.includes(p)){let h=!1;for(let v=0,$=y.length;v<$;v++){let A=null;a[p][y[v]]!==""&&(A=(0,N.default)(a[p][y[v]]));let S=null;a[p][m]!==""&&(S=(0,N.default)(a[p][m]));let E=null;u[0][m]!==""&&(E=(0,N.default)(u[0][m]).format());let O=null;u[u.length-1][y[v]]!==""&&(O=(0,N.default)(u[u.length-1][y[v]]).format());let R=null;if(u[u.length-1][m]!==""&&(R=(0,N.default)(u[u.length-1][m])),A&&S.add(A).format()===E){u.unshift(a[p].slice(0,s)),x.push(p),h=!0;break}else if(A&&S.subtract(A).format()===E){u.unshift(a[p].slice(0,s)),x.push(p),h=!0;break}else if(O&&R.add(O).format()===S.format()){u.push(a[p].slice(0,s)),x.push(p),h=!0;break}else if(O&&R.subtract(O).format()===S.format()){u.push(a[p].slice(0,s)),x.push(p),h=!0;break}}if(h){h=!1;break}}return o&&(l&&a[0].length>i.length&&(a[0].length=i.length),u.unshift(a[0].slice(0,s))),a.length-(o?2:1)!==x.length&&(t="Not all rows were recognised!",r="alert"),{res:u,msgContent:t,msgType:r}}return Ot(No);})();
11
+ /**
12
+ * @name codsen-utils
13
+ * @fileoverview Various utility functions
14
+ * @version 1.8.0
15
+ * @author Roy Revelt
16
+ * @license MIT
17
+ * {@link https://codsen.com/os/codsen-utils/}
18
+ */
11
19
  /**
12
20
  * @name ranges-sort
13
21
  * @fileoverview Sort string index ranges
14
- * @version 6.1.0
22
+ * @version 6.2.0
15
23
  * @author Roy Revelt
16
24
  * @license MIT
17
25
  * {@link https://codsen.com/os/ranges-sort/}
@@ -19,7 +27,7 @@
19
27
  /**
20
28
  * @name ranges-merge
21
29
  * @fileoverview Merge and sort string index ranges
22
- * @version 9.1.0
30
+ * @version 9.2.0
23
31
  * @author Roy Revelt
24
32
  * @license MIT
25
33
  * {@link https://codsen.com/os/ranges-merge/}
@@ -27,7 +35,7 @@
27
35
  /**
28
36
  * @name ranges-apply
29
37
  * @fileoverview Take an array of string index ranges, delete/replace the string according to them
30
- * @version 7.1.0
38
+ * @version 7.2.0
31
39
  * @author Roy Revelt
32
40
  * @license MIT
33
41
  * {@link https://codsen.com/os/ranges-apply/}
@@ -35,23 +43,15 @@
35
43
  /**
36
44
  * @name string-collapse-leading-whitespace
37
45
  * @fileoverview Collapse the leading and trailing whitespace of a string
38
- * @version 7.1.0
46
+ * @version 7.2.0
39
47
  * @author Roy Revelt
40
48
  * @license MIT
41
49
  * {@link https://codsen.com/os/string-collapse-leading-whitespace/}
42
50
  */
43
- /**
44
- * @name codsen-utils
45
- * @fileoverview Various utility functions
46
- * @version 1.7.0
47
- * @author Roy Revelt
48
- * @license MIT
49
- * {@link https://codsen.com/os/codsen-utils/}
50
- */
51
51
  /**
52
52
  * @name ranges-push
53
53
  * @fileoverview Gather string index ranges
54
- * @version 7.1.0
54
+ * @version 7.2.0
55
55
  * @author Roy Revelt
56
56
  * @license MIT
57
57
  * {@link https://codsen.com/os/ranges-push/}
@@ -59,7 +59,7 @@
59
59
  /**
60
60
  * @name string-remove-thousand-separators
61
61
  * @fileoverview Detects and removes thousand separators (dot/comma/quote/space) from string-type digits
62
- * @version 7.1.0
62
+ * @version 7.2.0
63
63
  * @author Roy Revelt
64
64
  * @license MIT
65
65
  * {@link https://codsen.com/os/string-remove-thousand-separators/}
@@ -67,7 +67,7 @@
67
67
  /**
68
68
  * @name csv-split-easy
69
69
  * @fileoverview Splits the CSV string into array of arrays, each representing a row of columns
70
- * @version 7.1.0
70
+ * @version 7.2.0
71
71
  * @author Roy Revelt
72
72
  * @license MIT
73
73
  * {@link https://codsen.com/os/csv-split-easy/}
@@ -78,7 +78,7 @@ lodash-es/lodash.js:
78
78
  (**
79
79
  * @license
80
80
  * Lodash (Custom Build) <https://lodash.com/>
81
- * Build: `lodash modularize exports="es" -o ./`
81
+ * Build: `lodash modularize exports="es" --repo lodash/lodash#4.18.1 -o ./`
82
82
  * Copyright OpenJS Foundation and other contributors <https://openjsf.org/>
83
83
  * Released under MIT license <https://lodash.com/license>
84
84
  * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "csv-sort",
3
- "version": "7.1.0",
3
+ "version": "7.2.0",
4
4
  "description": "Sort double-entry bookkeeping CSV from internet banking",
5
5
  "keywords": [
6
6
  "accountancy",
@@ -39,32 +39,30 @@
39
39
  },
40
40
  "types": "types/index.d.ts",
41
41
  "scripts": {
42
- "build": "node '../../ops/scripts/esbuild.js' && npm run dts",
43
- "cjs-off": "exit 0",
44
- "cjs-on": "exit 0",
45
- "dev": "DEV=true node '../../ops/scripts/esbuild.js' && npm run dts",
42
+ "build": "node ../../ops/scripts/esbuild.js && npm run dts",
43
+ "coverage": "c8 uvu test",
44
+ "dev": "node ../../ops/scripts/esbuild.js --dev && npm run dts",
46
45
  "devtest": "c8 npm run unit && npm run examples && npm run lint",
47
- "dts": "rollup -c && npm run prettier -- 'types/index.d.ts' --write --log-level 'silent'",
46
+ "dts": "rollup -c && biome format --write --config-path=../../biome.json --vcs-enabled=false --use-editorconfig=false types/index.d.ts",
48
47
  "examples": "node '../../ops/scripts/run-examples.js'",
49
- "lect": "node '../../ops/lect/lect.js' && npm run prettier -- 'README.md' '.all-contributorsrc' 'rollup.config.js' --write",
50
- "letspublish": "npm publish --provenance || :",
51
- "lint": "eslint . --fix --concurrency=auto --cache",
48
+ "lect": "node '../../ops/lect/lect.js'",
49
+ "lect:check": "node '../../ops/lect/lect.js' --check",
50
+ "lint": "biome lint --error-on-warnings . && npm run typecheck",
51
+ "lint:fix": "biome lint --write --error-on-warnings . && npm run typecheck",
52
52
  "perf": "node perf/check.js",
53
53
  "prep": "echo 'ready'",
54
- "prettier": "prettier",
55
- "prettier:format": "npm run prettier -- --write '**/*.{ts,tsx,md}' --no-error-on-unmatched-pattern --log-level 'silent'",
56
- "pretest": "npm run lect && npm run build",
54
+ "prettier": "biome format",
55
+ "prettier:format": "biome format --write .",
56
+ "pretest": "npm run lect:check && npm run build",
57
57
  "test": "npm run devtest",
58
+ "typecheck": "tsc --noEmit --pretty false --project tsconfig.json",
58
59
  "unit": "uvu test"
59
60
  },
60
- "engines": {
61
- "node": ">=14.18.0"
62
- },
63
61
  "c8": {
62
+ "all": true,
64
63
  "check-coverage": true,
65
- "exclude": [
66
- "**/test/**/*.*"
67
- ],
64
+ "exclude": ["**/test/**/*.*"],
65
+ "include": ["dist/*.esm.js"],
68
66
  "lines": 100
69
67
  },
70
68
  "lect": {
@@ -76,10 +74,16 @@
76
74
  }
77
75
  },
78
76
  "dependencies": {
79
- "@types/lodash-es": "^4.17.12",
80
- "csv-split-easy": "^7.1.0",
77
+ "codsen-utils": "^1.8.0",
78
+ "csv-split-easy": "^7.2.0",
81
79
  "currency.js": "^2.0.4",
82
- "lodash-es": "^4.17.21"
80
+ "lodash-es": "^4.18.1"
81
+ },
82
+ "devDependencies": {
83
+ "@types/lodash-es": "^4.17.12"
84
+ },
85
+ "engines": {
86
+ "node": ">=18.20.8"
83
87
  },
84
88
  "publishConfig": {
85
89
  "registry": "https://registry.npmjs.org/"
package/.eslintcache DELETED
@@ -1 +0,0 @@
1
- [{"/home/runner/work/codsen/codsen/packages/csv-sort/examples/_quickTake.js":"1","/home/runner/work/codsen/codsen/packages/csv-sort/perf/check.js":"2","/home/runner/work/codsen/codsen/packages/csv-sort/rollup.config.js":"3","/home/runner/work/codsen/codsen/packages/csv-sort/src/main.ts":"4","/home/runner/work/codsen/codsen/packages/csv-sort/src/util/findType.ts":"5","/home/runner/work/codsen/codsen/packages/csv-sort/test/2d-trim.js":"6","/home/runner/work/codsen/codsen/packages/csv-sort/test/blank-row.js":"7","/home/runner/work/codsen/codsen/packages/csv-sort/test/simple.js":"8","/home/runner/work/codsen/codsen/packages/csv-sort/test/throws.js":"9","/home/runner/work/codsen/codsen/packages/csv-sort/test/util/find-type.js":"10","/home/runner/work/codsen/codsen/packages/csv-sort/test/util/is-numeric.js":"11","/home/runner/work/codsen/codsen/packages/csv-sort/test/util.js":"12"},{"size":963,"mtime":1760566739080,"results":"13","hashOfConfig":"14"},{"size":480,"mtime":1760566739080,"results":"15","hashOfConfig":"16"},{"size":373,"mtime":1760566739080,"results":"17","hashOfConfig":"14"},{"size":22848,"mtime":1760566739081,"results":"18","hashOfConfig":"16"},{"size":1945,"mtime":1760566739081,"results":"19","hashOfConfig":"16"},{"size":504,"mtime":1760566739081,"results":"20","hashOfConfig":"21"},{"size":1392,"mtime":1760566739081,"results":"22","hashOfConfig":"21"},{"size":674,"mtime":1760566739082,"results":"23","hashOfConfig":"21"},{"size":1350,"mtime":1760566739082,"results":"24","hashOfConfig":"21"},{"size":2316,"mtime":1760566739082,"results":"25","hashOfConfig":"21"},{"size":637,"mtime":1760566739082,"results":"26","hashOfConfig":"21"},{"size":2906,"mtime":1760566739082,"results":"27","hashOfConfig":"21"},{"filePath":"28","messages":"29","suppressedMessages":"30","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"1nlhngw",{"filePath":"31","messages":"32","suppressedMessages":"33","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"1xjytlu",{"filePath":"34","messages":"35","suppressedMessages":"36","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"37","messages":"38","suppressedMessages":"39","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"40","messages":"41","suppressedMessages":"42","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"43","messages":"44","suppressedMessages":"45","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"nrihsz",{"filePath":"46","messages":"47","suppressedMessages":"48","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"49","messages":"50","suppressedMessages":"51","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"52","messages":"53","suppressedMessages":"54","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"55","messages":"56","suppressedMessages":"57","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"58","messages":"59","suppressedMessages":"60","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"61","messages":"62","suppressedMessages":"63","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"/home/runner/work/codsen/codsen/packages/csv-sort/examples/_quickTake.js",[],[],"/home/runner/work/codsen/codsen/packages/csv-sort/perf/check.js",[],[],"/home/runner/work/codsen/codsen/packages/csv-sort/rollup.config.js",[],[],"/home/runner/work/codsen/codsen/packages/csv-sort/src/main.ts",[],[],"/home/runner/work/codsen/codsen/packages/csv-sort/src/util/findType.ts",[],[],"/home/runner/work/codsen/codsen/packages/csv-sort/test/2d-trim.js",[],["64","65","66","67","68","69"],"/home/runner/work/codsen/codsen/packages/csv-sort/test/blank-row.js",[],["70","71","72","73","74","75"],"/home/runner/work/codsen/codsen/packages/csv-sort/test/simple.js",[],["76","77","78","79","80","81"],"/home/runner/work/codsen/codsen/packages/csv-sort/test/throws.js",[],["82","83","84","85","86"],"/home/runner/work/codsen/codsen/packages/csv-sort/test/util/find-type.js",[],["87","88","89","90","91","92"],"/home/runner/work/codsen/codsen/packages/csv-sort/test/util/is-numeric.js",[],["93","94","95","96","97"],"/home/runner/work/codsen/codsen/packages/csv-sort/test/util.js",[],[],{"ruleId":"98","severity":2,"message":"99","line":3,"column":17,"nodeType":null,"messageId":"100","endLine":3,"endColumn":19,"suppressions":"101"},{"ruleId":"98","severity":2,"message":"102","line":3,"column":21,"nodeType":null,"messageId":"100","endLine":3,"endColumn":23,"suppressions":"103"},{"ruleId":"98","severity":2,"message":"104","line":3,"column":25,"nodeType":null,"messageId":"100","endLine":3,"endColumn":31,"suppressions":"105"},{"ruleId":"98","severity":2,"message":"106","line":3,"column":33,"nodeType":null,"messageId":"100","endLine":3,"endColumn":37,"suppressions":"107"},{"ruleId":"98","severity":2,"message":"108","line":3,"column":39,"nodeType":null,"messageId":"100","endLine":3,"endColumn":42,"suppressions":"109"},{"ruleId":"98","severity":2,"message":"110","line":3,"column":44,"nodeType":null,"messageId":"100","endLine":3,"endColumn":49,"suppressions":"111"},{"ruleId":"98","severity":2,"message":"99","line":3,"column":17,"nodeType":null,"messageId":"100","endLine":3,"endColumn":19,"suppressions":"112"},{"ruleId":"98","severity":2,"message":"102","line":3,"column":21,"nodeType":null,"messageId":"100","endLine":3,"endColumn":23,"suppressions":"113"},{"ruleId":"98","severity":2,"message":"104","line":3,"column":25,"nodeType":null,"messageId":"100","endLine":3,"endColumn":31,"suppressions":"114"},{"ruleId":"98","severity":2,"message":"106","line":3,"column":33,"nodeType":null,"messageId":"100","endLine":3,"endColumn":37,"suppressions":"115"},{"ruleId":"98","severity":2,"message":"108","line":3,"column":39,"nodeType":null,"messageId":"100","endLine":3,"endColumn":42,"suppressions":"116"},{"ruleId":"98","severity":2,"message":"110","line":3,"column":44,"nodeType":null,"messageId":"100","endLine":3,"endColumn":49,"suppressions":"117"},{"ruleId":"98","severity":2,"message":"99","line":3,"column":17,"nodeType":null,"messageId":"100","endLine":3,"endColumn":19,"suppressions":"118"},{"ruleId":"98","severity":2,"message":"102","line":3,"column":21,"nodeType":null,"messageId":"100","endLine":3,"endColumn":23,"suppressions":"119"},{"ruleId":"98","severity":2,"message":"104","line":3,"column":25,"nodeType":null,"messageId":"100","endLine":3,"endColumn":31,"suppressions":"120"},{"ruleId":"98","severity":2,"message":"106","line":3,"column":33,"nodeType":null,"messageId":"100","endLine":3,"endColumn":37,"suppressions":"121"},{"ruleId":"98","severity":2,"message":"108","line":3,"column":39,"nodeType":null,"messageId":"100","endLine":3,"endColumn":42,"suppressions":"122"},{"ruleId":"98","severity":2,"message":"110","line":3,"column":44,"nodeType":null,"messageId":"100","endLine":3,"endColumn":49,"suppressions":"123"},{"ruleId":"98","severity":2,"message":"99","line":3,"column":17,"nodeType":null,"messageId":"100","endLine":3,"endColumn":19,"suppressions":"124"},{"ruleId":"98","severity":2,"message":"102","line":3,"column":21,"nodeType":null,"messageId":"100","endLine":3,"endColumn":23,"suppressions":"125"},{"ruleId":"98","severity":2,"message":"106","line":3,"column":33,"nodeType":null,"messageId":"100","endLine":3,"endColumn":37,"suppressions":"126"},{"ruleId":"98","severity":2,"message":"108","line":3,"column":39,"nodeType":null,"messageId":"100","endLine":3,"endColumn":42,"suppressions":"127"},{"ruleId":"98","severity":2,"message":"110","line":3,"column":44,"nodeType":null,"messageId":"100","endLine":3,"endColumn":49,"suppressions":"128"},{"ruleId":"98","severity":2,"message":"99","line":3,"column":17,"nodeType":null,"messageId":"100","endLine":3,"endColumn":19,"suppressions":"129"},{"ruleId":"98","severity":2,"message":"102","line":3,"column":21,"nodeType":null,"messageId":"100","endLine":3,"endColumn":23,"suppressions":"130"},{"ruleId":"98","severity":2,"message":"104","line":3,"column":25,"nodeType":null,"messageId":"100","endLine":3,"endColumn":31,"suppressions":"131"},{"ruleId":"98","severity":2,"message":"106","line":3,"column":33,"nodeType":null,"messageId":"100","endLine":3,"endColumn":37,"suppressions":"132"},{"ruleId":"98","severity":2,"message":"108","line":3,"column":39,"nodeType":null,"messageId":"100","endLine":3,"endColumn":42,"suppressions":"133"},{"ruleId":"98","severity":2,"message":"110","line":3,"column":44,"nodeType":null,"messageId":"100","endLine":3,"endColumn":49,"suppressions":"134"},{"ruleId":"98","severity":2,"message":"135","line":3,"column":10,"nodeType":null,"messageId":"100","endLine":3,"endColumn":15,"suppressions":"136"},{"ruleId":"98","severity":2,"message":"99","line":3,"column":17,"nodeType":null,"messageId":"100","endLine":3,"endColumn":19,"suppressions":"137"},{"ruleId":"98","severity":2,"message":"104","line":3,"column":25,"nodeType":null,"messageId":"100","endLine":3,"endColumn":31,"suppressions":"138"},{"ruleId":"98","severity":2,"message":"106","line":3,"column":33,"nodeType":null,"messageId":"100","endLine":3,"endColumn":37,"suppressions":"139"},{"ruleId":"98","severity":2,"message":"110","line":3,"column":44,"nodeType":null,"messageId":"100","endLine":3,"endColumn":49,"suppressions":"140"},"@typescript-eslint/no-unused-vars","'is' is defined but never used.","unusedVar",["141"],"'ok' is defined but never used.",["142"],"'throws' is defined but never used.",["143"],"'type' is defined but never used.",["144"],"'not' is defined but never used.",["145"],"'match' is defined but never used.",["146"],["147"],["148"],["149"],["150"],["151"],["152"],["153"],["154"],["155"],["156"],["157"],["158"],["159"],["160"],["161"],["162"],["163"],["164"],["165"],["166"],["167"],["168"],["169"],"'equal' is defined but never used.",["170"],["171"],["172"],["173"],["174"],{"kind":"175","justification":"176"},{"kind":"175","justification":"176"},{"kind":"175","justification":"176"},{"kind":"175","justification":"176"},{"kind":"175","justification":"176"},{"kind":"175","justification":"176"},{"kind":"175","justification":"176"},{"kind":"175","justification":"176"},{"kind":"175","justification":"176"},{"kind":"175","justification":"176"},{"kind":"175","justification":"176"},{"kind":"175","justification":"176"},{"kind":"175","justification":"176"},{"kind":"175","justification":"176"},{"kind":"175","justification":"176"},{"kind":"175","justification":"176"},{"kind":"175","justification":"176"},{"kind":"175","justification":"176"},{"kind":"175","justification":"176"},{"kind":"175","justification":"176"},{"kind":"175","justification":"176"},{"kind":"175","justification":"176"},{"kind":"175","justification":"176"},{"kind":"175","justification":"176"},{"kind":"175","justification":"176"},{"kind":"175","justification":"176"},{"kind":"175","justification":"176"},{"kind":"175","justification":"176"},{"kind":"175","justification":"176"},{"kind":"175","justification":"176"},{"kind":"175","justification":"176"},{"kind":"175","justification":"176"},{"kind":"175","justification":"176"},{"kind":"175","justification":"176"},"directive",""]