transaction-serde 2.1.2 → 2.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
@@ -2,6 +2,18 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
4
4
 
5
+ ## [2.2.0](https://github.com/andrewbridge/transaction-serde/compare/v2.1.2...v2.2.0) (2025-05-16)
6
+
7
+
8
+ ### Features
9
+
10
+ * log CSV errors but only throw an error if no data is parsed ([e3b1013](https://github.com/andrewbridge/transaction-serde/commit/e3b10138da66aea380ac950612f07d94859112a0))
11
+
12
+
13
+ ### Bug Fixes
14
+
15
+ * trim whitespace from CSV input to stop papaparse from complaining about empty rows ([5b84a40](https://github.com/andrewbridge/transaction-serde/commit/5b84a405a69bb105fac09a02c5517af6b87fd24d))
16
+
5
17
  ### [2.1.2](https://github.com/andrewbridge/transaction-serde/compare/v2.1.1...v2.1.2) (2025-02-17)
6
18
 
7
19
  ### [2.1.1](https://github.com/andrewbridge/transaction-serde/compare/v2.1.0...v2.1.1) (2025-02-17)
@@ -4,5 +4,5 @@ Papa Parse
4
4
  v5.5.2
5
5
  https://github.com/mholt/PapaParse
6
6
  License: MIT
7
- */var r=(e||(e=1,n.exports=function e(){var n="undefined"!=typeof self?self:"undefined"!=typeof window?window:void 0!==n?n:{};function r(){var t=n.URL||n.webkitURL||null,r=e.toString();return u.BLOB_URL||(u.BLOB_URL=t.createObjectURL(new Blob(["var global = (function() { if (typeof self !== 'undefined') { return self; } if (typeof window !== 'undefined') { return window; } if (typeof global !== 'undefined') { return global; } return {}; })(); global.IS_PAPA_WORKER=true; ","(",r,")();"],{type:"text/javascript"})))}var a=!n.document&&!!n.postMessage,i=n.IS_PAPA_WORKER||!1,s={},o=0,u={};if(u.parse=c,u.unparse=h,u.RECORD_SEP=String.fromCharCode(30),u.UNIT_SEP=String.fromCharCode(31),u.BYTE_ORDER_MARK="\ufeff",u.BAD_DELIMITERS=["\r","\n",'"',u.BYTE_ORDER_MARK],u.WORKERS_SUPPORTED=!a&&!!n.Worker,u.NODE_STREAM_INPUT=1,u.LocalChunkSize=10485760,u.RemoteChunkSize=5242880,u.DefaultDelimiter=",",u.Parser=v,u.ParserHandle=y,u.NetworkStreamer=f,u.FileStreamer=m,u.StringStreamer=p,u.ReadableStreamStreamer=g,"undefined"==typeof PAPA_BROWSER_CONTEXT&&(u.DuplexStreamStreamer=w),n.jQuery){var d=n.jQuery;d.fn.parse=function(t){var e=t.config||{},r=[];return this.each((function(t){if("INPUT"!==d(this).prop("tagName").toUpperCase()||"file"!==d(this).attr("type").toLowerCase()||!n.FileReader||!this.files||0===this.files.length)return!0;for(var a=0;a<this.files.length;a++)r.push({file:this.files[a],inputElem:this,instanceConfig:d.extend({},e)})})),a(),this;function a(){if(0!==r.length){var e=r[0];if(C(t.before)){var n=t.before(e.file,e.inputElem);if("object"==typeof n){if("abort"===n.action)return void i("AbortError",e.file,e.inputElem,n.reason);if("skip"===n.action)return void s();"object"==typeof n.config&&(e.instanceConfig=d.extend(e.instanceConfig,n.config))}else if("skip"===n)return void s()}var a=e.instanceConfig.complete;e.instanceConfig.complete=function(t){C(a)&&a(t,e.file,e.inputElem),s()},u.parse(e.file,e.instanceConfig)}else C(t.complete)&&t.complete()}function i(e,n,r,a){C(t.error)&&t.error({name:e},n,r,a)}function s(){r.splice(0,1),a()}}}function c(t,e){var r=(e=e||{}).dynamicTyping||!1;if(C(r)&&(e.dynamicTypingFunction=r,r={}),e.dynamicTyping=r,e.transform=!!C(e.transform)&&e.transform,e.worker&&u.WORKERS_SUPPORTED){var a=_();return a.userStep=e.step,a.userChunk=e.chunk,a.userComplete=e.complete,a.userError=e.error,e.step=C(e.step),e.chunk=C(e.chunk),e.complete=C(e.complete),e.error=C(e.error),delete e.worker,void a.postMessage({input:t,config:e,workerId:a.id})}var i=null;return t===u.NODE_STREAM_INPUT&&"undefined"==typeof PAPA_BROWSER_CONTEXT?(i=new w(e)).getStream():("string"==typeof t?(t=s(t),i=e.download?new f(e):new p(e)):!0===t.readable&&C(t.read)&&C(t.on)?i=new g(e):(n.File&&t instanceof File||t instanceof Object)&&(i=new m(e)),i.stream(t));function s(t){return 65279===t.charCodeAt(0)?t.slice(1):t}}function h(t,e){var n=!1,r=!0,a=",",i="\r\n",s='"',o=s+s,d=!1,c=null,h=!1;f();var l=new RegExp(b(s),"g");if("string"==typeof t&&(t=JSON.parse(t)),Array.isArray(t)){if(!t.length||Array.isArray(t[0]))return m(null,t,d);if("object"==typeof t[0])return m(c||Object.keys(t[0]),t,d)}else if("object"==typeof t)return"string"==typeof t.data&&(t.data=JSON.parse(t.data)),Array.isArray(t.data)&&(t.fields||(t.fields=t.meta&&t.meta.fields||c),t.fields||(t.fields=Array.isArray(t.data[0])?t.fields:"object"==typeof t.data[0]?Object.keys(t.data[0]):[]),Array.isArray(t.data[0])||"object"==typeof t.data[0]||(t.data=[t.data])),m(t.fields||[],t.data||[],d);throw new Error("Unable to serialize unrecognized input");function f(){if("object"==typeof e){if("string"!=typeof e.delimiter||u.BAD_DELIMITERS.filter((function(t){return-1!==e.delimiter.indexOf(t)})).length||(a=e.delimiter),("boolean"==typeof e.quotes||"function"==typeof e.quotes||Array.isArray(e.quotes))&&(n=e.quotes),"boolean"!=typeof e.skipEmptyLines&&"string"!=typeof e.skipEmptyLines||(d=e.skipEmptyLines),"string"==typeof e.newline&&(i=e.newline),"string"==typeof e.quoteChar&&(s=e.quoteChar),"boolean"==typeof e.header&&(r=e.header),Array.isArray(e.columns)){if(0===e.columns.length)throw new Error("Option columns is empty");c=e.columns}void 0!==e.escapeChar&&(o=e.escapeChar+s),e.escapeFormulae instanceof RegExp?h=e.escapeFormulae:"boolean"==typeof e.escapeFormulae&&e.escapeFormulae&&(h=/^[=+\-@\t\r].*$/)}}function m(t,e,n){var s="";"string"==typeof t&&(t=JSON.parse(t)),"string"==typeof e&&(e=JSON.parse(e));var o=Array.isArray(t)&&t.length>0,u=!Array.isArray(e[0]);if(o&&r){for(var d=0;d<t.length;d++)d>0&&(s+=a),s+=p(t[d],d);e.length>0&&(s+=i)}for(var c=0;c<e.length;c++){var h=o?t.length:e[c].length,l=!1,f=o?0===Object.keys(e[c]).length:0===e[c].length;if(n&&!o&&(l="greedy"===n?""===e[c].join("").trim():1===e[c].length&&0===e[c][0].length),"greedy"===n&&o){for(var m=[],g=0;g<h;g++){var w=u?t[g]:g;m.push(e[c][w])}l=""===m.join("").trim()}if(!l){for(var y=0;y<h;y++){y>0&&!f&&(s+=a);var b=o&&u?t[y]:y;s+=p(e[c][b],y)}c<e.length-1&&(!n||h>0&&!f)&&(s+=i)}}return s}function p(t,e){if(null==t)return"";if(t.constructor===Date)return JSON.stringify(t).slice(1,25);var r=!1;h&&"string"==typeof t&&h.test(t)&&(t="'"+t,r=!0);var i=t.toString().replace(l,o);return(r=r||!0===n||"function"==typeof n&&n(t,e)||Array.isArray(n)&&n[e]||g(i,u.BAD_DELIMITERS)||i.indexOf(a)>-1||" "===i.charAt(0)||" "===i.charAt(i.length-1))?s+i+s:i}function g(t,e){for(var n=0;n<e.length;n++)if(t.indexOf(e[n])>-1)return!0;return!1}}function l(t){function e(t){var e=S(t);e.chunkSize=parseInt(e.chunkSize),t.step||t.chunk||(e.chunkSize=null),this._handle=new y(e),this._handle.streamer=this,this._config=e}this._handle=null,this._finished=!1,this._completed=!1,this._halted=!1,this._input=null,this._baseIndex=0,this._partialLine="",this._rowCount=0,this._start=0,this._nextChunk=null,this.isFirstChunk=!0,this._completeResults={data:[],errors:[],meta:{}},e.call(this,t),this.parseChunk=function(t,e){const r=parseInt(this._config.skipFirstNLines)||0;if(this.isFirstChunk&&r>0){let e=this._config.newline;if(!e){const n=this._config.quoteChar||'"';e=this._handle.guessLineEndings(t,n)}const n=t.split(e);t=[...n.slice(r)].join(e)}if(this.isFirstChunk&&C(this._config.beforeFirstChunk)){var a=this._config.beforeFirstChunk(t);void 0!==a&&(t=a)}this.isFirstChunk=!1,this._halted=!1;var s=this._partialLine+t;this._partialLine="";var o=this._handle.parse(s,this._baseIndex,!this._finished);if(!this._handle.paused()&&!this._handle.aborted()){var d=o.meta.cursor;this._finished||(this._partialLine=s.substring(d-this._baseIndex),this._baseIndex=d),o&&o.data&&(this._rowCount+=o.data.length);var c=this._finished||this._config.preview&&this._rowCount>=this._config.preview;if(i)n.postMessage({results:o,workerId:u.WORKER_ID,finished:c});else if(C(this._config.chunk)&&!e){if(this._config.chunk(o,this._handle),this._handle.paused()||this._handle.aborted())return void(this._halted=!0);o=void 0,this._completeResults=void 0}return this._config.step||this._config.chunk||(this._completeResults.data=this._completeResults.data.concat(o.data),this._completeResults.errors=this._completeResults.errors.concat(o.errors),this._completeResults.meta=o.meta),this._completed||!c||!C(this._config.complete)||o&&o.meta.aborted||(this._config.complete(this._completeResults,this._input),this._completed=!0),c||o&&o.meta.paused||this._nextChunk(),o}this._halted=!0},this._sendError=function(t){C(this._config.error)?this._config.error(t):i&&this._config.error&&n.postMessage({workerId:u.WORKER_ID,error:t,finished:!1})}}function f(t){var e;function n(t){var e=t.getResponseHeader("Content-Range");return null===e?-1:parseInt(e.substring(e.lastIndexOf("/")+1))}(t=t||{}).chunkSize||(t.chunkSize=u.RemoteChunkSize),l.call(this,t),this._nextChunk=a?function(){this._readChunk(),this._chunkLoaded()}:function(){this._readChunk()},this.stream=function(t){this._input=t,this._nextChunk()},this._readChunk=function(){if(this._finished)this._chunkLoaded();else{if(e=new XMLHttpRequest,this._config.withCredentials&&(e.withCredentials=this._config.withCredentials),a||(e.onload=M(this._chunkLoaded,this),e.onerror=M(this._chunkError,this)),e.open(this._config.downloadRequestBody?"POST":"GET",this._input,!a),this._config.downloadRequestHeaders){var t=this._config.downloadRequestHeaders;for(var n in t)e.setRequestHeader(n,t[n])}if(this._config.chunkSize){var r=this._start+this._config.chunkSize-1;e.setRequestHeader("Range","bytes="+this._start+"-"+r)}try{e.send(this._config.downloadRequestBody)}catch(t){this._chunkError(t.message)}a&&0===e.status&&this._chunkError()}},this._chunkLoaded=function(){4===e.readyState&&(e.status<200||e.status>=400?this._chunkError():(this._start+=this._config.chunkSize?this._config.chunkSize:e.responseText.length,this._finished=!this._config.chunkSize||this._start>=n(e),this.parseChunk(e.responseText)))},this._chunkError=function(t){var n=e.statusText||t;this._sendError(new Error(n))}}function m(t){var e,n;(t=t||{}).chunkSize||(t.chunkSize=u.LocalChunkSize),l.call(this,t);var r="undefined"!=typeof FileReader;this.stream=function(t){this._input=t,n=t.slice||t.webkitSlice||t.mozSlice,r?((e=new FileReader).onload=M(this._chunkLoaded,this),e.onerror=M(this._chunkError,this)):e=new FileReaderSync,this._nextChunk()},this._nextChunk=function(){this._finished||this._config.preview&&!(this._rowCount<this._config.preview)||this._readChunk()},this._readChunk=function(){var t=this._input;if(this._config.chunkSize){var a=Math.min(this._start+this._config.chunkSize,this._input.size);t=n.call(t,this._start,a)}var i=e.readAsText(t,this._config.encoding);r||this._chunkLoaded({target:{result:i}})},this._chunkLoaded=function(t){this._start+=this._config.chunkSize,this._finished=!this._config.chunkSize||this._start>=this._input.size,this.parseChunk(t.target.result)},this._chunkError=function(){this._sendError(e.error)}}function p(t){var e;t=t||{},l.call(this,t),this.stream=function(t){return e=t,this._nextChunk()},this._nextChunk=function(){if(!this._finished){var t,n=this._config.chunkSize;return n?(t=e.substring(0,n),e=e.substring(n)):(t=e,e=""),this._finished=!e,this.parseChunk(t)}}}function g(t){t=t||{},l.call(this,t);var e=[],n=!0,r=!1;this.pause=function(){l.prototype.pause.apply(this,arguments),this._input.pause()},this.resume=function(){l.prototype.resume.apply(this,arguments),this._input.resume()},this.stream=function(t){this._input=t,this._input.on("data",this._streamData),this._input.on("end",this._streamEnd),this._input.on("error",this._streamError)},this._checkIsFinished=function(){r&&1===e.length&&(this._finished=!0)},this._nextChunk=function(){this._checkIsFinished(),e.length?this.parseChunk(e.shift()):n=!0},this._streamData=M((function(t){try{e.push("string"==typeof t?t:t.toString(this._config.encoding)),n&&(n=!1,this._checkIsFinished(),this.parseChunk(e.shift()))}catch(t){this._streamError(t)}}),this),this._streamError=M((function(t){this._streamCleanUp(),this._sendError(t)}),this),this._streamEnd=M((function(){this._streamCleanUp(),r=!0,this._streamData("")}),this),this._streamCleanUp=M((function(){this._input.removeListener("data",this._streamData),this._input.removeListener("end",this._streamEnd),this._input.removeListener("error",this._streamError)}),this)}function w(e){var n=t.Duplex,r=S(e),a=!0,i=!1,s=[],o=null;this._onCsvData=function(t){var e=t.data;o.push(e)||this._handle.paused()||this._handle.pause()},this._onCsvComplete=function(){o.push(null)},r.step=M(this._onCsvData,this),r.complete=M(this._onCsvComplete,this),l.call(this,r),this._nextChunk=function(){i&&1===s.length&&(this._finished=!0),s.length?s.shift()():a=!0},this._addToParseQueue=function(t,e){s.push(M((function(){if(this.parseChunk("string"==typeof t?t:t.toString(r.encoding)),C(e))return e()}),this)),a&&(a=!1,this._nextChunk())},this._onRead=function(){this._handle.paused()&&this._handle.resume()},this._onWrite=function(t,e,n){this._addToParseQueue(t,n)},this._onWriteComplete=function(){i=!0,this._addToParseQueue("")},this.getStream=function(){return o},(o=new n({readableObjectMode:!0,decodeStrings:!1,read:M(this._onRead,this),write:M(this._onWrite,this)})).once("finish",M(this._onWriteComplete,this))}function y(t){var e,n,r,a=Math.pow(2,53),i=-a,s=/^\s*-?(\d+\.?|\.\d+|\d+\.\d+)([eE][-+]?\d+)?\s*$/,o=/^((\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z)))$/,d=this,c=0,h=0,l=!1,f=!1,m=[],p={data:[],errors:[],meta:{}};if(C(t.step)){var g=t.step;t.step=function(e){if(p=e,k())_();else{if(_(),0===p.data.length)return;c+=e.data.length,t.preview&&c>t.preview?n.abort():(p.data=p.data[0],g(p,d))}}}function w(e){return"greedy"===t.skipEmptyLines?""===e.join("").trim():1===e.length&&0===e[0].length}function y(t){if(s.test(t)){var e=parseFloat(t);if(e>i&&e<a)return!0}return!1}function _(){return p&&r&&(O("Delimiter","UndetectableDelimiter","Unable to auto-detect delimiting character; defaulted to '"+u.DefaultDelimiter+"'"),r=!1),t.skipEmptyLines&&(p.data=p.data.filter((function(t){return!w(t)}))),k()&&x(),M()}function k(){return t.header&&0===m.length}function x(){if(p)if(Array.isArray(p.data[0])){for(var e=0;k()&&e<p.data.length;e++)p.data[e].forEach(n);p.data.splice(0,1)}else p.data.forEach(n);function n(e,n){C(t.transformHeader)&&(e=t.transformHeader(e,n)),m.push(e)}}function T(e){return t.dynamicTypingFunction&&void 0===t.dynamicTyping[e]&&(t.dynamicTyping[e]=t.dynamicTypingFunction(e)),!0===(t.dynamicTyping[e]||t.dynamicTyping)}function E(t,e){return T(t)?"true"===e||"TRUE"===e||"false"!==e&&"FALSE"!==e&&(y(e)?parseFloat(e):o.test(e)?new Date(e):""===e?null:e):e}function M(){if(!p||!t.header&&!t.dynamicTyping&&!t.transform)return p;function e(e,n){var r,a=t.header?{}:[];for(r=0;r<e.length;r++){var i=r,s=e[r];t.header&&(i=r>=m.length?"__parsed_extra":m[r]),t.transform&&(s=t.transform(s,i)),s=E(i,s),"__parsed_extra"===i?(a[i]=a[i]||[],a[i].push(s)):a[i]=s}return t.header&&(r>m.length?O("FieldMismatch","TooManyFields","Too many fields: expected "+m.length+" fields but parsed "+r,h+n):r<m.length&&O("FieldMismatch","TooFewFields","Too few fields: expected "+m.length+" fields but parsed "+r,h+n)),a}var n=1;return!p.data.length||Array.isArray(p.data[0])?(p.data=p.data.map(e),n=p.data.length):p.data=e(p.data,0),t.header&&p.meta&&(p.meta.fields=m),h+=n,p}function D(e,n,r,a,i){var s,o,d,c;i=i||[",","\t","|",";",u.RECORD_SEP,u.UNIT_SEP];for(var h=0;h<i.length;h++){var l=i[h],f=0,m=0,p=0;d=void 0;for(var g=new v({comments:a,delimiter:l,newline:n,preview:10}).parse(e),y=0;y<g.data.length;y++)if(r&&w(g.data[y]))p++;else{var b=g.data[y].length;m+=b,void 0!==d?b>0&&(f+=Math.abs(b-d),d=b):d=b}g.data.length>0&&(m/=g.data.length-p),(void 0===o||f<=o)&&(void 0===c||m>c)&&m>1.99&&(o=f,s=l,c=m)}return t.delimiter=s,{successful:!!s,bestDelimiter:s}}function O(t,e,n,r){var a={type:t,code:e,message:n};void 0!==r&&(a.row=r),p.errors.push(a)}this.parse=function(a,i,s){var o=t.quoteChar||'"';if(t.newline||(t.newline=this.guessLineEndings(a,o)),r=!1,t.delimiter)C(t.delimiter)&&(t.delimiter=t.delimiter(a),p.meta.delimiter=t.delimiter);else{var d=D(a,t.newline,t.skipEmptyLines,t.comments,t.delimitersToGuess);d.successful?t.delimiter=d.bestDelimiter:(r=!0,t.delimiter=u.DefaultDelimiter),p.meta.delimiter=t.delimiter}var c=S(t);return t.preview&&t.header&&c.preview++,e=a,n=new v(c),p=n.parse(e,i,s),_(),l?{meta:{paused:!0}}:p||{meta:{paused:!1}}},this.paused=function(){return l},this.pause=function(){l=!0,n.abort(),e=C(t.chunk)?"":e.substring(n.getCharIndex())},this.resume=function(){d.streamer._halted?(l=!1,d.streamer.parseChunk(e,!0)):setTimeout(d.resume,3)},this.aborted=function(){return f},this.abort=function(){f=!0,n.abort(),p.meta.aborted=!0,C(t.complete)&&t.complete(p),e=""},this.guessLineEndings=function(t,e){t=t.substring(0,1048576);var n=new RegExp(b(e)+"([^]*?)"+b(e),"gm"),r=(t=t.replace(n,"")).split("\r"),a=t.split("\n"),i=a.length>1&&a[0].length<r[0].length;if(1===r.length||i)return"\n";for(var s=0,o=0;o<r.length;o++)"\n"===r[o][0]&&s++;return s>=r.length/2?"\r\n":"\r"}}function b(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function v(t){var e,n=(t=t||{}).delimiter,r=t.newline,a=t.comments,i=t.step,s=t.preview,o=t.fastMode,d=null,c=!1,h=e=void 0===t.quoteChar||null===t.quoteChar?'"':t.quoteChar;if(void 0!==t.escapeChar&&(h=t.escapeChar),("string"!=typeof n||u.BAD_DELIMITERS.indexOf(n)>-1)&&(n=","),a===n)throw new Error("Comment character same as delimiter");!0===a?a="#":("string"!=typeof a||u.BAD_DELIMITERS.indexOf(a)>-1)&&(a=!1),"\n"!==r&&"\r"!==r&&"\r\n"!==r&&(r="\n");var l=0,f=!1;this.parse=function(u,m,p){if("string"!=typeof u)throw new Error("Input must be a string");var g=u.length,w=n.length,y=r.length,v=a.length,_=C(i);l=0;var k=[],x=[],T=[],E=0;if(!u)return W();if(o||!1!==o&&-1===u.indexOf(e)){for(var S=u.split(r),M=0;M<S.length;M++){if(T=S[M],l+=T.length,M!==S.length-1)l+=r.length;else if(p)return W();if(!a||T.substring(0,v)!==a){if(_){if(k=[],A(T.split(n)),H(),f)return W()}else A(T.split(n));if(s&&M>=s)return k=k.slice(0,s),W(!0)}}return W()}for(var D=u.indexOf(n,l),O=u.indexOf(r,l),R=new RegExp(b(h)+b(e),"g"),P=u.indexOf(e,l);;)if(u[l]!==e)if(a&&0===T.length&&u.substring(l,l+v)===a){if(-1===O)return W();l=O+y,O=u.indexOf(r,l),D=u.indexOf(n,l)}else if(-1!==D&&(D<O||-1===O))T.push(u.substring(l,D)),l=D+w,D=u.indexOf(n,l);else{if(-1===O)break;if(T.push(u.substring(l,O)),q(O+y),_&&(H(),f))return W();if(s&&k.length>=s)return W(!0)}else for(P=l,l++;;){if(-1===(P=u.indexOf(e,P+1)))return p||x.push({type:"Quotes",code:"MissingQuotes",message:"Quoted field unterminated",row:k.length,index:l}),F();if(P===g-1)return F(u.substring(l,P).replace(R,e));if(e!==h||u[P+1]!==h){if(e===h||0===P||u[P-1]!==h){-1!==D&&D<P+1&&(D=u.indexOf(n,P+1)),-1!==O&&O<P+1&&(O=u.indexOf(r,P+1));var N=L(-1===O?D:Math.min(D,O));if(u.substr(P+1+N,w)===n){T.push(u.substring(l,P).replace(R,e)),l=P+1+N+w,u[P+1+N+w]!==e&&(P=u.indexOf(e,l)),D=u.indexOf(n,l),O=u.indexOf(r,l);break}var I=L(O);if(u.substring(P+1+I,P+1+I+y)===r){if(T.push(u.substring(l,P).replace(R,e)),q(P+1+I+y),D=u.indexOf(n,l),P=u.indexOf(e,l),_&&(H(),f))return W();if(s&&k.length>=s)return W(!0);break}x.push({type:"Quotes",code:"InvalidQuotes",message:"Trailing quote on quoted field is malformed",row:k.length,index:l}),P++}}else P++}return F();function A(t){k.push(t),E=l}function L(t){var e=0;if(-1!==t){var n=u.substring(P+1,t);n&&""===n.trim()&&(e=n.length)}return e}function F(t){return p||(void 0===t&&(t=u.substring(l)),T.push(t),l=g,A(T),_&&H()),W()}function q(t){l=t,A(T),T=[],O=u.indexOf(r,l)}function W(e){if(t.header&&!m&&k.length&&!c){const e=k[0],n={},r=new Set(e);let a=!1;for(let i=0;i<e.length;i++){let s=e[i];if(C(t.transformHeader)&&(s=t.transformHeader(s,i)),n[s]){let t,o=n[s];do{t=`${s}_${o}`,o++}while(r.has(t));r.add(t),e[i]=t,n[s]++,a=!0,null===d&&(d={}),d[t]=s}else n[s]=1,e[i]=s;r.add(s)}a&&console.warn("Duplicate headers found and renamed."),c=!0}return{data:k,errors:x,meta:{delimiter:n,linebreak:r,aborted:f,truncated:!!e,cursor:E+(m||0),renamedHeaders:d}}}function H(){i(W()),k=[],x=[]}},this.abort=function(){f=!0},this.getCharIndex=function(){return l}}function _(){if(!u.WORKERS_SUPPORTED)return!1;var t=r(),e=new n.Worker(t);return e.onmessage=k,e.id=o++,s[e.id]=e,e}function k(t){var e=t.data,n=s[e.workerId],r=!1;if(e.error)n.userError(e.error,e.file);else if(e.results&&e.results.data){var a={abort:function(){r=!0,x(e.workerId,{data:[],errors:[],meta:{aborted:!0}})},pause:T,resume:T};if(C(n.userStep)){for(var i=0;i<e.results.data.length&&(n.userStep({data:e.results.data[i],errors:e.results.errors,meta:e.results.meta},a),!r);i++);delete e.results}else C(n.userChunk)&&(n.userChunk(e.results,a,e.file),delete e.results)}e.finished&&!r&&x(e.workerId,e.results)}function x(t,e){var n=s[t];C(n.userComplete)&&n.userComplete(e),n.terminate(),delete s[t]}function T(){throw new Error("Not implemented.")}function E(t){var e=t.data;if(void 0===u.WORKER_ID&&e&&(u.WORKER_ID=e.workerId),"string"==typeof e.input)n.postMessage({workerId:u.WORKER_ID,results:u.parse(e.input,e.config),finished:!0});else if(n.File&&e.input instanceof File||e.input instanceof Object){var r=u.parse(e.input,e.config);r&&n.postMessage({workerId:u.WORKER_ID,results:r,finished:!0})}}function S(t){if("object"!=typeof t||null===t)return t;var e=Array.isArray(t)?[]:{};for(var n in t)e[n]=S(t[n]);return e}function M(t,e){return function(){t.apply(e,arguments)}}function C(t){return"function"==typeof t}return i&&(n.onmessage=E),f.prototype=Object.create(l.prototype),f.prototype.constructor=f,m.prototype=Object.create(l.prototype),m.prototype.constructor=m,p.prototype=Object.create(p.prototype),p.prototype.constructor=p,g.prototype=Object.create(l.prototype),g.prototype.constructor=g,"undefined"==typeof PAPA_BROWSER_CONTEXT&&(w.prototype=Object.create(l.prototype),w.prototype.constructor=w),u}()),n.exports);const a=["date","amount","payee","description","category"];class i extends Date{constructor(){super(),this.setTime(0===arguments.length?Date.now():1===arguments.length?"string"==typeof arguments[0]?+new Date(arguments[0]):arguments[0]:Date.UTC(...arguments))}getTimezoneOffset(){return 0}}const s=/^(get|set)(?!UTC)/;function o(t,e){return t instanceof Date?new t.constructor(e):new Date(e)}Object.getOwnPropertyNames(Date.prototype).forEach((t=>{if(s.test(t)){const e=Date.prototype[t.replace(s,"$1UTC")];e&&(i.prototype[t]=e)}}));let u={};function d(){return u}const c={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXWeeks:{one:"about 1 week",other:"about {{count}} weeks"},xWeeks:{one:"1 week",other:"{{count}} weeks"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}};function h(t){return(e={})=>{const n=e.width?String(e.width):t.defaultWidth;return t.formats[n]||t.formats[t.defaultWidth]}}const l={date:h({formats:{full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},defaultWidth:"full"}),time:h({formats:{full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},defaultWidth:"full"}),dateTime:h({formats:{full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},defaultWidth:"full"})},f={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"};function m(t){return(e,n)=>{let r;if("formatting"===(n?.context?String(n.context):"standalone")&&t.formattingValues){const e=t.defaultFormattingWidth||t.defaultWidth,a=n?.width?String(n.width):e;r=t.formattingValues[a]||t.formattingValues[e]}else{const e=t.defaultWidth,a=n?.width?String(n.width):t.defaultWidth;r=t.values[a]||t.values[e]}return r[t.argumentCallback?t.argumentCallback(e):e]}}const p={ordinalNumber:(t,e)=>{const n=Number(t),r=n%100;if(r>20||r<10)switch(r%10){case 1:return n+"st";case 2:return n+"nd";case 3:return n+"rd"}return n+"th"},era:m({values:{narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},defaultWidth:"wide"}),quarter:m({values:{narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},defaultWidth:"wide",argumentCallback:t=>t-1}),month:m({values:{narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},defaultWidth:"wide"}),day:m({values:{narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},defaultWidth:"wide"}),dayPeriod:m({values:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},defaultWidth:"wide",formattingValues:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},defaultFormattingWidth:"wide"})};function g(t){return(e,n={})=>{const r=n.width,a=r&&t.matchPatterns[r]||t.matchPatterns[t.defaultMatchWidth],i=e.match(a);if(!i)return null;const s=i[0],o=r&&t.parsePatterns[r]||t.parsePatterns[t.defaultParseWidth],u=Array.isArray(o)?function(t,e){for(let n=0;n<t.length;n++)if(e(t[n]))return n;return}(o,(t=>t.test(s))):function(t,e){for(const n in t)if(Object.prototype.hasOwnProperty.call(t,n)&&e(t[n]))return n;return}(o,(t=>t.test(s)));let d;d=t.valueCallback?t.valueCallback(u):u,d=n.valueCallback?n.valueCallback(d):d;return{value:d,rest:e.slice(s.length)}}}const w={ordinalNumber:(y={matchPattern:/^(\d+)(th|st|nd|rd)?/i,parsePattern:/\d+/i,valueCallback:t=>parseInt(t,10)},(t,e={})=>{const n=t.match(y.matchPattern);if(!n)return null;const r=n[0],a=t.match(y.parsePattern);if(!a)return null;let i=y.valueCallback?y.valueCallback(a[0]):a[0];return i=e.valueCallback?e.valueCallback(i):i,{value:i,rest:t.slice(r.length)}}),era:g({matchPatterns:{narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},defaultMatchWidth:"wide",parsePatterns:{any:[/^b/i,/^(a|c)/i]},defaultParseWidth:"any"}),quarter:g({matchPatterns:{narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},defaultMatchWidth:"wide",parsePatterns:{any:[/1/i,/2/i,/3/i,/4/i]},defaultParseWidth:"any",valueCallback:t=>t+1}),month:g({matchPatterns:{narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},defaultParseWidth:"any"}),day:g({matchPatterns:{narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},defaultParseWidth:"any"}),dayPeriod:g({matchPatterns:{narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},defaultMatchWidth:"any",parsePatterns:{any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},defaultParseWidth:"any"})};var y;const b={code:"en-US",formatDistance:(t,e,n)=>{let r;const a=c[t];return r="string"==typeof a?a:1===e?a.one:a.other.replace("{{count}}",e.toString()),n?.addSuffix?n.comparison&&n.comparison>0?"in "+r:r+" ago":r},formatLong:l,formatRelative:(t,e,n,r)=>f[t],localize:p,match:w,options:{weekStartsOn:0,firstWeekContainsDate:1}};function v(t){const e=Object.prototype.toString.call(t);return t instanceof Date||"object"==typeof t&&"[object Date]"===e?new t.constructor(+t):"number"==typeof t||"[object Number]"===e||"string"==typeof t||"[object String]"===e?new Date(t):new Date(NaN)}const _=(t,e)=>{switch(t){case"P":return e.date({width:"short"});case"PP":return e.date({width:"medium"});case"PPP":return e.date({width:"long"});default:return e.date({width:"full"})}},k=(t,e)=>{switch(t){case"p":return e.time({width:"short"});case"pp":return e.time({width:"medium"});case"ppp":return e.time({width:"long"});default:return e.time({width:"full"})}},x={p:k,P:(t,e)=>{const n=t.match(/(P+)(p+)?/)||[],r=n[1],a=n[2];if(!a)return _(t,e);let i;switch(r){case"P":i=e.dateTime({width:"short"});break;case"PP":i=e.dateTime({width:"medium"});break;case"PPP":i=e.dateTime({width:"long"});break;default:i=e.dateTime({width:"full"})}return i.replace("{{date}}",_(r,e)).replace("{{time}}",k(a,e))}},T=/^D+$/,E=/^Y+$/,S=["D","DD","YY","YYYY"];function M(t){return T.test(t)}function C(t){return E.test(t)}function D(t,e,n){const r=function(t,e,n){const r="Y"===t[0]?"years":"days of the month";return`Use \`${t.toLowerCase()}\` instead of \`${t}\` (in \`${e}\`) for formatting ${r} to the input \`${n}\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`}(t,e,n);if(console.warn(r),S.includes(t))throw new RangeError(r)}class O{subPriority=0;validate(t,e){return!0}}class R extends O{constructor(t,e,n,r,a){super(),this.value=t,this.validateValue=e,this.setValue=n,this.priority=r,a&&(this.subPriority=a)}validate(t,e){return this.validateValue(t,this.value,e)}set(t,e,n){return this.setValue(t,e,this.value,n)}}class P extends O{priority=10;subPriority=-1;set(t,e){return e.timestampIsSet?t:o(t,function(t,e){const n=e instanceof Date?o(e,0):new e(0);return n.setFullYear(t.getFullYear(),t.getMonth(),t.getDate()),n.setHours(t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds()),n}(t,Date))}}class N{run(t,e,n,r){const a=this.parse(t,e,n,r);return a?{setter:new R(a.value,this.validate,this.set,this.priority,this.subPriority),rest:a.rest}:null}validate(t,e,n){return!0}}const I=6048e5,A=/^(1[0-2]|0?\d)/,L=/^(3[0-1]|[0-2]?\d)/,F=/^(36[0-6]|3[0-5]\d|[0-2]?\d?\d)/,q=/^(5[0-3]|[0-4]?\d)/,W=/^(2[0-3]|[0-1]?\d)/,H=/^(2[0-4]|[0-1]?\d)/,j=/^(1[0-1]|0?\d)/,Y=/^(1[0-2]|0?\d)/,Q=/^[0-5]?\d/,B=/^[0-5]?\d/,z=/^\d/,U=/^\d{1,2}/,X=/^\d{1,3}/,K=/^\d{1,4}/,$=/^-?\d+/,J=/^-?\d/,G=/^-?\d{1,2}/,Z=/^-?\d{1,3}/,V=/^-?\d{1,4}/,tt=/^([+-])(\d{2})(\d{2})?|Z/,et=/^([+-])(\d{2})(\d{2})|Z/,nt=/^([+-])(\d{2})(\d{2})((\d{2}))?|Z/,rt=/^([+-])(\d{2}):(\d{2})|Z/,at=/^([+-])(\d{2}):(\d{2})(:(\d{2}))?|Z/;function it(t,e){return t?{value:e(t.value),rest:t.rest}:t}function st(t,e){const n=e.match(t);return n?{value:parseInt(n[0],10),rest:e.slice(n[0].length)}:null}function ot(t,e){const n=e.match(t);if(!n)return null;if("Z"===n[0])return{value:0,rest:e.slice(1)};return{value:("+"===n[1]?1:-1)*(36e5*(n[2]?parseInt(n[2],10):0)+6e4*(n[3]?parseInt(n[3],10):0)+1e3*(n[5]?parseInt(n[5],10):0)),rest:e.slice(n[0].length)}}function ut(t){return st($,t)}function dt(t,e){switch(t){case 1:return st(z,e);case 2:return st(U,e);case 3:return st(X,e);case 4:return st(K,e);default:return st(new RegExp("^\\d{1,"+t+"}"),e)}}function ct(t,e){switch(t){case 1:return st(J,e);case 2:return st(G,e);case 3:return st(Z,e);case 4:return st(V,e);default:return st(new RegExp("^-?\\d{1,"+t+"}"),e)}}function ht(t){switch(t){case"morning":return 4;case"evening":return 17;case"pm":case"noon":case"afternoon":return 12;default:return 0}}function lt(t,e){const n=e>0,r=n?e:1-e;let a;if(r<=50)a=t||100;else{const e=r+50;a=t+100*Math.trunc(e/100)-(t>=e%100?100:0)}return n?a:1-a}function ft(t){return t%400==0||t%4==0&&t%100!=0}function mt(t,e){const n=d(),r=e?.weekStartsOn??e?.locale?.options?.weekStartsOn??n.weekStartsOn??n.locale?.options?.weekStartsOn??0,a=v(t),i=a.getDay(),s=(i<r?7:0)+i-r;return a.setDate(a.getDate()-s),a.setHours(0,0,0,0),a}function pt(t,e){const n=v(t),r=n.getFullYear(),a=d(),i=e?.firstWeekContainsDate??e?.locale?.options?.firstWeekContainsDate??a.firstWeekContainsDate??a.locale?.options?.firstWeekContainsDate??1,s=o(t,0);s.setFullYear(r+1,0,i),s.setHours(0,0,0,0);const u=mt(s,e),c=o(t,0);c.setFullYear(r,0,i),c.setHours(0,0,0,0);const h=mt(c,e);return n.getTime()>=u.getTime()?r+1:n.getTime()>=h.getTime()?r:r-1}function gt(t){return mt(t,{weekStartsOn:1})}function wt(t,e){const n=v(t),r=+mt(n,e)-+function(t,e){const n=d(),r=e?.firstWeekContainsDate??e?.locale?.options?.firstWeekContainsDate??n.firstWeekContainsDate??n.locale?.options?.firstWeekContainsDate??1,a=pt(t,e),i=o(t,0);return i.setFullYear(a,0,r),i.setHours(0,0,0,0),mt(i,e)}(n,e);return Math.round(r/I)+1}function yt(t){const e=function(t){const e=v(t),n=e.getFullYear(),r=o(t,0);r.setFullYear(n+1,0,4),r.setHours(0,0,0,0);const a=gt(r),i=o(t,0);i.setFullYear(n,0,4),i.setHours(0,0,0,0);const s=gt(i);return e.getTime()>=a.getTime()?n+1:e.getTime()>=s.getTime()?n:n-1}(t),n=o(t,0);return n.setFullYear(e,0,4),n.setHours(0,0,0,0),gt(n)}function bt(t,e){const n=v(t),r=function(t){const e=v(t),n=+gt(e)-+yt(e);return Math.round(n/I)+1}(n)-e;return n.setDate(n.getDate()-7*r),n}const vt=[31,28,31,30,31,30,31,31,30,31,30,31],_t=[31,29,31,30,31,30,31,31,30,31,30,31];function kt(t,e){const n=v(t);return isNaN(e)?o(t,NaN):e?(n.setDate(n.getDate()+e),n):n}function xt(t,e,n){const r=d(),a=n?.weekStartsOn??n?.locale?.options?.weekStartsOn??r.weekStartsOn??r.locale?.options?.weekStartsOn??0,i=v(t),s=i.getDay(),o=7-a;return kt(i,e<0||e>6?e-(s+o)%7:((e%7+7)%7+o)%7-(s+o)%7)}function Tt(t,e){const n=v(t),r=function(t){let e=v(t).getDay();return 0===e&&(e=7),e}(n);return kt(n,e-r)}function Et(t){const e=v(t),n=new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds()));return n.setUTCFullYear(e.getFullYear()),+t-+n}const St={G:new class extends N{priority=140;parse(t,e,n){switch(e){case"G":case"GG":case"GGG":return n.era(t,{width:"abbreviated"})||n.era(t,{width:"narrow"});case"GGGGG":return n.era(t,{width:"narrow"});default:return n.era(t,{width:"wide"})||n.era(t,{width:"abbreviated"})||n.era(t,{width:"narrow"})}}set(t,e,n){return e.era=n,t.setFullYear(n,0,1),t.setHours(0,0,0,0),t}incompatibleTokens=["R","u","t","T"]},y:new class extends N{priority=130;incompatibleTokens=["Y","R","u","w","I","i","e","c","t","T"];parse(t,e,n){const r=t=>({year:t,isTwoDigitYear:"yy"===e});switch(e){case"y":return it(dt(4,t),r);case"yo":return it(n.ordinalNumber(t,{unit:"year"}),r);default:return it(dt(e.length,t),r)}}validate(t,e){return e.isTwoDigitYear||e.year>0}set(t,e,n){const r=t.getFullYear();if(n.isTwoDigitYear){const e=lt(n.year,r);return t.setFullYear(e,0,1),t.setHours(0,0,0,0),t}const a="era"in e&&1!==e.era?1-n.year:n.year;return t.setFullYear(a,0,1),t.setHours(0,0,0,0),t}},Y:new class extends N{priority=130;parse(t,e,n){const r=t=>({year:t,isTwoDigitYear:"YY"===e});switch(e){case"Y":return it(dt(4,t),r);case"Yo":return it(n.ordinalNumber(t,{unit:"year"}),r);default:return it(dt(e.length,t),r)}}validate(t,e){return e.isTwoDigitYear||e.year>0}set(t,e,n,r){const a=pt(t,r);if(n.isTwoDigitYear){const e=lt(n.year,a);return t.setFullYear(e,0,r.firstWeekContainsDate),t.setHours(0,0,0,0),mt(t,r)}const i="era"in e&&1!==e.era?1-n.year:n.year;return t.setFullYear(i,0,r.firstWeekContainsDate),t.setHours(0,0,0,0),mt(t,r)}incompatibleTokens=["y","R","u","Q","q","M","L","I","d","D","i","t","T"]},R:new class extends N{priority=130;parse(t,e){return ct("R"===e?4:e.length,t)}set(t,e,n){const r=o(t,0);return r.setFullYear(n,0,4),r.setHours(0,0,0,0),gt(r)}incompatibleTokens=["G","y","Y","u","Q","q","M","L","w","d","D","e","c","t","T"]},u:new class extends N{priority=130;parse(t,e){return ct("u"===e?4:e.length,t)}set(t,e,n){return t.setFullYear(n,0,1),t.setHours(0,0,0,0),t}incompatibleTokens=["G","y","Y","R","w","I","i","e","c","t","T"]},Q:new class extends N{priority=120;parse(t,e,n){switch(e){case"Q":case"QQ":return dt(e.length,t);case"Qo":return n.ordinalNumber(t,{unit:"quarter"});case"QQQ":return n.quarter(t,{width:"abbreviated",context:"formatting"})||n.quarter(t,{width:"narrow",context:"formatting"});case"QQQQQ":return n.quarter(t,{width:"narrow",context:"formatting"});default:return n.quarter(t,{width:"wide",context:"formatting"})||n.quarter(t,{width:"abbreviated",context:"formatting"})||n.quarter(t,{width:"narrow",context:"formatting"})}}validate(t,e){return e>=1&&e<=4}set(t,e,n){return t.setMonth(3*(n-1),1),t.setHours(0,0,0,0),t}incompatibleTokens=["Y","R","q","M","L","w","I","d","D","i","e","c","t","T"]},q:new class extends N{priority=120;parse(t,e,n){switch(e){case"q":case"qq":return dt(e.length,t);case"qo":return n.ordinalNumber(t,{unit:"quarter"});case"qqq":return n.quarter(t,{width:"abbreviated",context:"standalone"})||n.quarter(t,{width:"narrow",context:"standalone"});case"qqqqq":return n.quarter(t,{width:"narrow",context:"standalone"});default:return n.quarter(t,{width:"wide",context:"standalone"})||n.quarter(t,{width:"abbreviated",context:"standalone"})||n.quarter(t,{width:"narrow",context:"standalone"})}}validate(t,e){return e>=1&&e<=4}set(t,e,n){return t.setMonth(3*(n-1),1),t.setHours(0,0,0,0),t}incompatibleTokens=["Y","R","Q","M","L","w","I","d","D","i","e","c","t","T"]},M:new class extends N{incompatibleTokens=["Y","R","q","Q","L","w","I","D","i","e","c","t","T"];priority=110;parse(t,e,n){const r=t=>t-1;switch(e){case"M":return it(st(A,t),r);case"MM":return it(dt(2,t),r);case"Mo":return it(n.ordinalNumber(t,{unit:"month"}),r);case"MMM":return n.month(t,{width:"abbreviated",context:"formatting"})||n.month(t,{width:"narrow",context:"formatting"});case"MMMMM":return n.month(t,{width:"narrow",context:"formatting"});default:return n.month(t,{width:"wide",context:"formatting"})||n.month(t,{width:"abbreviated",context:"formatting"})||n.month(t,{width:"narrow",context:"formatting"})}}validate(t,e){return e>=0&&e<=11}set(t,e,n){return t.setMonth(n,1),t.setHours(0,0,0,0),t}},L:new class extends N{priority=110;parse(t,e,n){const r=t=>t-1;switch(e){case"L":return it(st(A,t),r);case"LL":return it(dt(2,t),r);case"Lo":return it(n.ordinalNumber(t,{unit:"month"}),r);case"LLL":return n.month(t,{width:"abbreviated",context:"standalone"})||n.month(t,{width:"narrow",context:"standalone"});case"LLLLL":return n.month(t,{width:"narrow",context:"standalone"});default:return n.month(t,{width:"wide",context:"standalone"})||n.month(t,{width:"abbreviated",context:"standalone"})||n.month(t,{width:"narrow",context:"standalone"})}}validate(t,e){return e>=0&&e<=11}set(t,e,n){return t.setMonth(n,1),t.setHours(0,0,0,0),t}incompatibleTokens=["Y","R","q","Q","M","w","I","D","i","e","c","t","T"]},w:new class extends N{priority=100;parse(t,e,n){switch(e){case"w":return st(q,t);case"wo":return n.ordinalNumber(t,{unit:"week"});default:return dt(e.length,t)}}validate(t,e){return e>=1&&e<=53}set(t,e,n,r){return mt(function(t,e,n){const r=v(t),a=wt(r,n)-e;return r.setDate(r.getDate()-7*a),r}(t,n,r),r)}incompatibleTokens=["y","R","u","q","Q","M","L","I","d","D","i","t","T"]},I:new class extends N{priority=100;parse(t,e,n){switch(e){case"I":return st(q,t);case"Io":return n.ordinalNumber(t,{unit:"week"});default:return dt(e.length,t)}}validate(t,e){return e>=1&&e<=53}set(t,e,n){return gt(bt(t,n))}incompatibleTokens=["y","Y","u","q","Q","M","L","w","d","D","e","c","t","T"]},d:new class extends N{priority=90;subPriority=1;parse(t,e,n){switch(e){case"d":return st(L,t);case"do":return n.ordinalNumber(t,{unit:"date"});default:return dt(e.length,t)}}validate(t,e){const n=ft(t.getFullYear()),r=t.getMonth();return n?e>=1&&e<=_t[r]:e>=1&&e<=vt[r]}set(t,e,n){return t.setDate(n),t.setHours(0,0,0,0),t}incompatibleTokens=["Y","R","q","Q","w","I","D","i","e","c","t","T"]},D:new class extends N{priority=90;subpriority=1;parse(t,e,n){switch(e){case"D":case"DD":return st(F,t);case"Do":return n.ordinalNumber(t,{unit:"date"});default:return dt(e.length,t)}}validate(t,e){return ft(t.getFullYear())?e>=1&&e<=366:e>=1&&e<=365}set(t,e,n){return t.setMonth(0,n),t.setHours(0,0,0,0),t}incompatibleTokens=["Y","R","q","Q","M","L","w","I","d","E","i","e","c","t","T"]},E:new class extends N{priority=90;parse(t,e,n){switch(e){case"E":case"EE":case"EEE":return n.day(t,{width:"abbreviated",context:"formatting"})||n.day(t,{width:"short",context:"formatting"})||n.day(t,{width:"narrow",context:"formatting"});case"EEEEE":return n.day(t,{width:"narrow",context:"formatting"});case"EEEEEE":return n.day(t,{width:"short",context:"formatting"})||n.day(t,{width:"narrow",context:"formatting"});default:return n.day(t,{width:"wide",context:"formatting"})||n.day(t,{width:"abbreviated",context:"formatting"})||n.day(t,{width:"short",context:"formatting"})||n.day(t,{width:"narrow",context:"formatting"})}}validate(t,e){return e>=0&&e<=6}set(t,e,n,r){return(t=xt(t,n,r)).setHours(0,0,0,0),t}incompatibleTokens=["D","i","e","c","t","T"]},e:new class extends N{priority=90;parse(t,e,n,r){const a=t=>{const e=7*Math.floor((t-1)/7);return(t+r.weekStartsOn+6)%7+e};switch(e){case"e":case"ee":return it(dt(e.length,t),a);case"eo":return it(n.ordinalNumber(t,{unit:"day"}),a);case"eee":return n.day(t,{width:"abbreviated",context:"formatting"})||n.day(t,{width:"short",context:"formatting"})||n.day(t,{width:"narrow",context:"formatting"});case"eeeee":return n.day(t,{width:"narrow",context:"formatting"});case"eeeeee":return n.day(t,{width:"short",context:"formatting"})||n.day(t,{width:"narrow",context:"formatting"});default:return n.day(t,{width:"wide",context:"formatting"})||n.day(t,{width:"abbreviated",context:"formatting"})||n.day(t,{width:"short",context:"formatting"})||n.day(t,{width:"narrow",context:"formatting"})}}validate(t,e){return e>=0&&e<=6}set(t,e,n,r){return(t=xt(t,n,r)).setHours(0,0,0,0),t}incompatibleTokens=["y","R","u","q","Q","M","L","I","d","D","E","i","c","t","T"]},c:new class extends N{priority=90;parse(t,e,n,r){const a=t=>{const e=7*Math.floor((t-1)/7);return(t+r.weekStartsOn+6)%7+e};switch(e){case"c":case"cc":return it(dt(e.length,t),a);case"co":return it(n.ordinalNumber(t,{unit:"day"}),a);case"ccc":return n.day(t,{width:"abbreviated",context:"standalone"})||n.day(t,{width:"short",context:"standalone"})||n.day(t,{width:"narrow",context:"standalone"});case"ccccc":return n.day(t,{width:"narrow",context:"standalone"});case"cccccc":return n.day(t,{width:"short",context:"standalone"})||n.day(t,{width:"narrow",context:"standalone"});default:return n.day(t,{width:"wide",context:"standalone"})||n.day(t,{width:"abbreviated",context:"standalone"})||n.day(t,{width:"short",context:"standalone"})||n.day(t,{width:"narrow",context:"standalone"})}}validate(t,e){return e>=0&&e<=6}set(t,e,n,r){return(t=xt(t,n,r)).setHours(0,0,0,0),t}incompatibleTokens=["y","R","u","q","Q","M","L","I","d","D","E","i","e","t","T"]},i:new class extends N{priority=90;parse(t,e,n){const r=t=>0===t?7:t;switch(e){case"i":case"ii":return dt(e.length,t);case"io":return n.ordinalNumber(t,{unit:"day"});case"iii":return it(n.day(t,{width:"abbreviated",context:"formatting"})||n.day(t,{width:"short",context:"formatting"})||n.day(t,{width:"narrow",context:"formatting"}),r);case"iiiii":return it(n.day(t,{width:"narrow",context:"formatting"}),r);case"iiiiii":return it(n.day(t,{width:"short",context:"formatting"})||n.day(t,{width:"narrow",context:"formatting"}),r);default:return it(n.day(t,{width:"wide",context:"formatting"})||n.day(t,{width:"abbreviated",context:"formatting"})||n.day(t,{width:"short",context:"formatting"})||n.day(t,{width:"narrow",context:"formatting"}),r)}}validate(t,e){return e>=1&&e<=7}set(t,e,n){return(t=Tt(t,n)).setHours(0,0,0,0),t}incompatibleTokens=["y","Y","u","q","Q","M","L","w","d","D","E","e","c","t","T"]},a:new class extends N{priority=80;parse(t,e,n){switch(e){case"a":case"aa":case"aaa":return n.dayPeriod(t,{width:"abbreviated",context:"formatting"})||n.dayPeriod(t,{width:"narrow",context:"formatting"});case"aaaaa":return n.dayPeriod(t,{width:"narrow",context:"formatting"});default:return n.dayPeriod(t,{width:"wide",context:"formatting"})||n.dayPeriod(t,{width:"abbreviated",context:"formatting"})||n.dayPeriod(t,{width:"narrow",context:"formatting"})}}set(t,e,n){return t.setHours(ht(n),0,0,0),t}incompatibleTokens=["b","B","H","k","t","T"]},b:new class extends N{priority=80;parse(t,e,n){switch(e){case"b":case"bb":case"bbb":return n.dayPeriod(t,{width:"abbreviated",context:"formatting"})||n.dayPeriod(t,{width:"narrow",context:"formatting"});case"bbbbb":return n.dayPeriod(t,{width:"narrow",context:"formatting"});default:return n.dayPeriod(t,{width:"wide",context:"formatting"})||n.dayPeriod(t,{width:"abbreviated",context:"formatting"})||n.dayPeriod(t,{width:"narrow",context:"formatting"})}}set(t,e,n){return t.setHours(ht(n),0,0,0),t}incompatibleTokens=["a","B","H","k","t","T"]},B:new class extends N{priority=80;parse(t,e,n){switch(e){case"B":case"BB":case"BBB":return n.dayPeriod(t,{width:"abbreviated",context:"formatting"})||n.dayPeriod(t,{width:"narrow",context:"formatting"});case"BBBBB":return n.dayPeriod(t,{width:"narrow",context:"formatting"});default:return n.dayPeriod(t,{width:"wide",context:"formatting"})||n.dayPeriod(t,{width:"abbreviated",context:"formatting"})||n.dayPeriod(t,{width:"narrow",context:"formatting"})}}set(t,e,n){return t.setHours(ht(n),0,0,0),t}incompatibleTokens=["a","b","t","T"]},h:new class extends N{priority=70;parse(t,e,n){switch(e){case"h":return st(Y,t);case"ho":return n.ordinalNumber(t,{unit:"hour"});default:return dt(e.length,t)}}validate(t,e){return e>=1&&e<=12}set(t,e,n){const r=t.getHours()>=12;return r&&n<12?t.setHours(n+12,0,0,0):r||12!==n?t.setHours(n,0,0,0):t.setHours(0,0,0,0),t}incompatibleTokens=["H","K","k","t","T"]},H:new class extends N{priority=70;parse(t,e,n){switch(e){case"H":return st(W,t);case"Ho":return n.ordinalNumber(t,{unit:"hour"});default:return dt(e.length,t)}}validate(t,e){return e>=0&&e<=23}set(t,e,n){return t.setHours(n,0,0,0),t}incompatibleTokens=["a","b","h","K","k","t","T"]},K:new class extends N{priority=70;parse(t,e,n){switch(e){case"K":return st(j,t);case"Ko":return n.ordinalNumber(t,{unit:"hour"});default:return dt(e.length,t)}}validate(t,e){return e>=0&&e<=11}set(t,e,n){return t.getHours()>=12&&n<12?t.setHours(n+12,0,0,0):t.setHours(n,0,0,0),t}incompatibleTokens=["h","H","k","t","T"]},k:new class extends N{priority=70;parse(t,e,n){switch(e){case"k":return st(H,t);case"ko":return n.ordinalNumber(t,{unit:"hour"});default:return dt(e.length,t)}}validate(t,e){return e>=1&&e<=24}set(t,e,n){const r=n<=24?n%24:n;return t.setHours(r,0,0,0),t}incompatibleTokens=["a","b","h","H","K","t","T"]},m:new class extends N{priority=60;parse(t,e,n){switch(e){case"m":return st(Q,t);case"mo":return n.ordinalNumber(t,{unit:"minute"});default:return dt(e.length,t)}}validate(t,e){return e>=0&&e<=59}set(t,e,n){return t.setMinutes(n,0,0),t}incompatibleTokens=["t","T"]},s:new class extends N{priority=50;parse(t,e,n){switch(e){case"s":return st(B,t);case"so":return n.ordinalNumber(t,{unit:"second"});default:return dt(e.length,t)}}validate(t,e){return e>=0&&e<=59}set(t,e,n){return t.setSeconds(n,0),t}incompatibleTokens=["t","T"]},S:new class extends N{priority=30;parse(t,e){return it(dt(e.length,t),(t=>Math.trunc(t*Math.pow(10,3-e.length))))}set(t,e,n){return t.setMilliseconds(n),t}incompatibleTokens=["t","T"]},X:new class extends N{priority=10;parse(t,e){switch(e){case"X":return ot(tt,t);case"XX":return ot(et,t);case"XXXX":return ot(nt,t);case"XXXXX":return ot(at,t);default:return ot(rt,t)}}set(t,e,n){return e.timestampIsSet?t:o(t,t.getTime()-Et(t)-n)}incompatibleTokens=["t","T","x"]},x:new class extends N{priority=10;parse(t,e){switch(e){case"x":return ot(tt,t);case"xx":return ot(et,t);case"xxxx":return ot(nt,t);case"xxxxx":return ot(at,t);default:return ot(rt,t)}}set(t,e,n){return e.timestampIsSet?t:o(t,t.getTime()-Et(t)-n)}incompatibleTokens=["t","T","X"]},t:new class extends N{priority=40;parse(t){return ut(t)}set(t,e,n){return[o(t,1e3*n),{timestampIsSet:!0}]}incompatibleTokens="*"},T:new class extends N{priority=20;parse(t){return ut(t)}set(t,e,n){return[o(t,n),{timestampIsSet:!0}]}incompatibleTokens="*"}},Mt=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,Ct=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,Dt=/^'([^]*?)'?$/,Ot=/''/g,Rt=/\S/,Pt=/[a-zA-Z]/;function Nt(t,e,n,r){const a=Object.assign({},d()),i=a.locale??b,s=a.firstWeekContainsDate??a.locale?.options?.firstWeekContainsDate??1,u=a.weekStartsOn??a.locale?.options?.weekStartsOn??0;if(""===e)return""===t?v(n):o(n,NaN);const c={firstWeekContainsDate:s,weekStartsOn:u,locale:i},h=[new P],l=e.match(Ct).map((t=>{const e=t[0];if(e in x){return(0,x[e])(t,i.formatLong)}return t})).join("").match(Mt),f=[];for(let r of l){C(r)&&D(r,e,t),M(r)&&D(r,e,t);const a=r[0],s=St[a];if(s){const{incompatibleTokens:e}=s;if(Array.isArray(e)){const t=f.find((t=>e.includes(t.token)||t.token===a));if(t)throw new RangeError(`The format string mustn't contain \`${t.fullToken}\` and \`${r}\` at the same time`)}else if("*"===s.incompatibleTokens&&f.length>0)throw new RangeError(`The format string mustn't contain \`${r}\` and any other token at the same time`);f.push({token:a,fullToken:r});const u=s.run(t,r,i.match,c);if(!u)return o(n,NaN);h.push(u.setter),t=u.rest}else{if(a.match(Pt))throw new RangeError("Format string contains an unescaped latin alphabet character `"+a+"`");if("''"===r?r="'":"'"===a&&(r=r.match(Dt)[1].replace(Ot,"'")),0!==t.indexOf(r))return o(n,NaN);t=t.slice(r.length)}}if(t.length>0&&Rt.test(t))return o(n,NaN);const m=h.map((t=>t.priority)).sort(((t,e)=>e-t)).filter(((t,e,n)=>n.indexOf(t)===e)).map((t=>h.filter((e=>e.priority===t)).sort(((t,e)=>e.subPriority-t.subPriority)))).map((t=>t[0]));let p=v(n);if(isNaN(p.getTime()))return o(n,NaN);const g={};for(const t of m){if(!t.validate(p,c))return o(n,NaN);const e=t.set(p,g,c);Array.isArray(e)?(p=e[0],Object.assign(g,e[1])):p=e}return o(n,p)}const It=["yyyy/MM/dd","yyyy/M/d","dd/MM/yyyy","d/M/yyyy","MM/dd/yyyy","M/d/yyyy","d MMMM yyyy","dd MMM yyyy","MMMM d yyyy","MMM dd yyyy"].flatMap((t=>[t,t.replaceAll("/","-"),t.replaceAll("/","")])),At=(t,e=It)=>{for(const n of e){const e=[];for(const r of t){const t=Nt(r,n,new Date);if(Number.isNaN(t.getTime()))break;e.push(new i(t.getFullYear(),t.getMonth(),t.getDate()))}if(e.length===t.length)return e}throw new Error("Could not parse dates")},Lt=(t,...e)=>Object.assign({},t,...e),Ft={headers:!0,map:t=>{const e={};return"object"!=typeof t||null===t?null:(a.forEach((n=>{const r=t[n];"string"==typeof r&&(e[n]=r)})),e)}},qt={BANK:"!Type:Bank",CASH:"!Type:Cash",CREDIT_CARD:"!Type:CCard",ASSETS:"!Type:Oth A",LIABILITIES:"!Type:Oth L"},Wt=Object.values(qt);const Ht={D:"date",T:"amount",P:"payee",M:"description",L:"category"};var jt=Object.freeze({__proto__:null,csv:(t,e)=>{const{headers:n,map:a}=Lt(Ft,e),i=r.parse(t,{header:n});if(i.errors.length>0)throw new Error("Invalid CSV data");const s=[],o=[];i.data.forEach((t=>{const e=a(t);if(null===e)return;if("string"!=typeof e.date||0===e.date.length||"string"!=typeof e.amount||0===e.amount.length)return;const n={},r=e.date;Object.keys(e).forEach((t=>{switch(t){case"date":o.push({date:r,transaction:n});break;case"amount":if("string"==typeof e.amount&&(n.amount=parseFloat(e.amount),!Number.isFinite(n.amount)))throw new TypeError("Could not parse amount");break;case"payee":case"description":case"category":"string"==typeof e[t]&&(n[t]=e[t])}})),s.push(n)}));return At(o.map((t=>t.date))).forEach(((t,e)=>o[e].transaction.date=t)),s},json:t=>{let e=[];try{e=JSON.parse(t)}catch{throw Error("Input is not valid JSON")}if(!Array.isArray(e))throw Error("Input is not an array");const n=[],r=[];for(;e.length>0;){const t=e.shift();if(!t)continue;if("string"!=typeof t.date||0===t.date.length||!["number","string"].includes(typeof t.amount)||0===String(t.amount).length)continue;const a={},i=t.date;Object.keys(t).forEach((e=>{switch(e){case"date":r.push({date:i,transaction:a});break;case"amount":if("number"==typeof t.amount)a.amount=t.amount;else if("string"==typeof t.amount&&(a.amount=parseFloat(t.amount),!Number.isFinite(a.amount)))throw new TypeError("Could not parse amount");break;case"payee":case"description":case"category":"string"==typeof t[e]&&(a[e]=t[e])}})),n.push(a)}return At(r.map((t=>t.date))).forEach(((t,e)=>r[e].transaction.date=t)),n},qif:t=>{const e=t.trim().split("\n"),n=e.shift();if(!function(t){return Wt.includes(t)}(n))throw Error("Unknown header: "+n);const r=[{}],a=[];for(;e.length>0;){const t=e.shift();if(!t)continue;const n=t.charAt(0);if("^"===n&&e.length>0){r.push({});continue}if("^"===n)break;const i=r.at(-1);if(!(n in Ht))continue;const s=Ht[n],o=t.substring(1);switch(s){case"date":a.push({date:o,transaction:i});break;case"amount":i.amount=parseFloat(o);break;default:i[s]=o}}return At(a.map((t=>t.date))).forEach(((t,e)=>a[e].transaction.date=t)),r}});const Yt={date:"D",amount:"T",payee:"P",description:"M",category:"L"},Qt={locale:"en-US",header:qt.BANK};var Bt=Object.freeze({__proto__:null,csv:t=>{const e=[];for(const n of t){const{date:t,...r}=n;t instanceof Date&&!Number.isNaN(t.getTime())&&e.push({date:t.toISOString().substring(0,10),...r})}const n=a.map((t=>"amount"!==t));return r.unparse(e,{header:!0,quotes:n,newline:"\n"})},json:t=>{const e=[];for(const n of t){const{date:t,...r}=n;t instanceof Date&&!Number.isNaN(t.getTime())&&e.push({date:t.toISOString().substring(0,10),...r})}return JSON.stringify(e)},qif:(t,e)=>{const{locale:n,header:r}=Lt(Qt,e),a=[r];for(const e of t){const{date:t,amount:r}=e;t instanceof Date&&!Number.isNaN(t.getTime())&&"number"==typeof r&&(Object.keys(e).forEach((i=>{const s=i;switch(s){case"date":a.push(Yt.date+t.toISOString().substring(0,10));break;case"amount":a.push(Yt.amount+r.toLocaleString(n));break;default:if("string"==typeof e[s]){const t=e[s];a.push(Yt[s]+t)}}})),a.push("^"))}return a.join("\n")}});export{jt as deserialisers,Bt as serialisers};
7
+ */var r=(e||(e=1,n.exports=function e(){var n="undefined"!=typeof self?self:"undefined"!=typeof window?window:void 0!==n?n:{};function r(){var t=n.URL||n.webkitURL||null,r=e.toString();return u.BLOB_URL||(u.BLOB_URL=t.createObjectURL(new Blob(["var global = (function() { if (typeof self !== 'undefined') { return self; } if (typeof window !== 'undefined') { return window; } if (typeof global !== 'undefined') { return global; } return {}; })(); global.IS_PAPA_WORKER=true; ","(",r,")();"],{type:"text/javascript"})))}var a=!n.document&&!!n.postMessage,i=n.IS_PAPA_WORKER||!1,s={},o=0,u={};if(u.parse=c,u.unparse=h,u.RECORD_SEP=String.fromCharCode(30),u.UNIT_SEP=String.fromCharCode(31),u.BYTE_ORDER_MARK="\ufeff",u.BAD_DELIMITERS=["\r","\n",'"',u.BYTE_ORDER_MARK],u.WORKERS_SUPPORTED=!a&&!!n.Worker,u.NODE_STREAM_INPUT=1,u.LocalChunkSize=10485760,u.RemoteChunkSize=5242880,u.DefaultDelimiter=",",u.Parser=v,u.ParserHandle=y,u.NetworkStreamer=f,u.FileStreamer=m,u.StringStreamer=p,u.ReadableStreamStreamer=g,"undefined"==typeof PAPA_BROWSER_CONTEXT&&(u.DuplexStreamStreamer=w),n.jQuery){var d=n.jQuery;d.fn.parse=function(t){var e=t.config||{},r=[];return this.each((function(t){if("INPUT"!==d(this).prop("tagName").toUpperCase()||"file"!==d(this).attr("type").toLowerCase()||!n.FileReader||!this.files||0===this.files.length)return!0;for(var a=0;a<this.files.length;a++)r.push({file:this.files[a],inputElem:this,instanceConfig:d.extend({},e)})})),a(),this;function a(){if(0!==r.length){var e=r[0];if(C(t.before)){var n=t.before(e.file,e.inputElem);if("object"==typeof n){if("abort"===n.action)return void i("AbortError",e.file,e.inputElem,n.reason);if("skip"===n.action)return void s();"object"==typeof n.config&&(e.instanceConfig=d.extend(e.instanceConfig,n.config))}else if("skip"===n)return void s()}var a=e.instanceConfig.complete;e.instanceConfig.complete=function(t){C(a)&&a(t,e.file,e.inputElem),s()},u.parse(e.file,e.instanceConfig)}else C(t.complete)&&t.complete()}function i(e,n,r,a){C(t.error)&&t.error({name:e},n,r,a)}function s(){r.splice(0,1),a()}}}function c(t,e){var r=(e=e||{}).dynamicTyping||!1;if(C(r)&&(e.dynamicTypingFunction=r,r={}),e.dynamicTyping=r,e.transform=!!C(e.transform)&&e.transform,e.worker&&u.WORKERS_SUPPORTED){var a=_();return a.userStep=e.step,a.userChunk=e.chunk,a.userComplete=e.complete,a.userError=e.error,e.step=C(e.step),e.chunk=C(e.chunk),e.complete=C(e.complete),e.error=C(e.error),delete e.worker,void a.postMessage({input:t,config:e,workerId:a.id})}var i=null;return t===u.NODE_STREAM_INPUT&&"undefined"==typeof PAPA_BROWSER_CONTEXT?(i=new w(e)).getStream():("string"==typeof t?(t=s(t),i=e.download?new f(e):new p(e)):!0===t.readable&&C(t.read)&&C(t.on)?i=new g(e):(n.File&&t instanceof File||t instanceof Object)&&(i=new m(e)),i.stream(t));function s(t){return 65279===t.charCodeAt(0)?t.slice(1):t}}function h(t,e){var n=!1,r=!0,a=",",i="\r\n",s='"',o=s+s,d=!1,c=null,h=!1;f();var l=new RegExp(b(s),"g");if("string"==typeof t&&(t=JSON.parse(t)),Array.isArray(t)){if(!t.length||Array.isArray(t[0]))return m(null,t,d);if("object"==typeof t[0])return m(c||Object.keys(t[0]),t,d)}else if("object"==typeof t)return"string"==typeof t.data&&(t.data=JSON.parse(t.data)),Array.isArray(t.data)&&(t.fields||(t.fields=t.meta&&t.meta.fields||c),t.fields||(t.fields=Array.isArray(t.data[0])?t.fields:"object"==typeof t.data[0]?Object.keys(t.data[0]):[]),Array.isArray(t.data[0])||"object"==typeof t.data[0]||(t.data=[t.data])),m(t.fields||[],t.data||[],d);throw new Error("Unable to serialize unrecognized input");function f(){if("object"==typeof e){if("string"!=typeof e.delimiter||u.BAD_DELIMITERS.filter((function(t){return-1!==e.delimiter.indexOf(t)})).length||(a=e.delimiter),("boolean"==typeof e.quotes||"function"==typeof e.quotes||Array.isArray(e.quotes))&&(n=e.quotes),"boolean"!=typeof e.skipEmptyLines&&"string"!=typeof e.skipEmptyLines||(d=e.skipEmptyLines),"string"==typeof e.newline&&(i=e.newline),"string"==typeof e.quoteChar&&(s=e.quoteChar),"boolean"==typeof e.header&&(r=e.header),Array.isArray(e.columns)){if(0===e.columns.length)throw new Error("Option columns is empty");c=e.columns}void 0!==e.escapeChar&&(o=e.escapeChar+s),e.escapeFormulae instanceof RegExp?h=e.escapeFormulae:"boolean"==typeof e.escapeFormulae&&e.escapeFormulae&&(h=/^[=+\-@\t\r].*$/)}}function m(t,e,n){var s="";"string"==typeof t&&(t=JSON.parse(t)),"string"==typeof e&&(e=JSON.parse(e));var o=Array.isArray(t)&&t.length>0,u=!Array.isArray(e[0]);if(o&&r){for(var d=0;d<t.length;d++)d>0&&(s+=a),s+=p(t[d],d);e.length>0&&(s+=i)}for(var c=0;c<e.length;c++){var h=o?t.length:e[c].length,l=!1,f=o?0===Object.keys(e[c]).length:0===e[c].length;if(n&&!o&&(l="greedy"===n?""===e[c].join("").trim():1===e[c].length&&0===e[c][0].length),"greedy"===n&&o){for(var m=[],g=0;g<h;g++){var w=u?t[g]:g;m.push(e[c][w])}l=""===m.join("").trim()}if(!l){for(var y=0;y<h;y++){y>0&&!f&&(s+=a);var b=o&&u?t[y]:y;s+=p(e[c][b],y)}c<e.length-1&&(!n||h>0&&!f)&&(s+=i)}}return s}function p(t,e){if(null==t)return"";if(t.constructor===Date)return JSON.stringify(t).slice(1,25);var r=!1;h&&"string"==typeof t&&h.test(t)&&(t="'"+t,r=!0);var i=t.toString().replace(l,o);return(r=r||!0===n||"function"==typeof n&&n(t,e)||Array.isArray(n)&&n[e]||g(i,u.BAD_DELIMITERS)||i.indexOf(a)>-1||" "===i.charAt(0)||" "===i.charAt(i.length-1))?s+i+s:i}function g(t,e){for(var n=0;n<e.length;n++)if(t.indexOf(e[n])>-1)return!0;return!1}}function l(t){function e(t){var e=S(t);e.chunkSize=parseInt(e.chunkSize),t.step||t.chunk||(e.chunkSize=null),this._handle=new y(e),this._handle.streamer=this,this._config=e}this._handle=null,this._finished=!1,this._completed=!1,this._halted=!1,this._input=null,this._baseIndex=0,this._partialLine="",this._rowCount=0,this._start=0,this._nextChunk=null,this.isFirstChunk=!0,this._completeResults={data:[],errors:[],meta:{}},e.call(this,t),this.parseChunk=function(t,e){const r=parseInt(this._config.skipFirstNLines)||0;if(this.isFirstChunk&&r>0){let e=this._config.newline;if(!e){const n=this._config.quoteChar||'"';e=this._handle.guessLineEndings(t,n)}const n=t.split(e);t=[...n.slice(r)].join(e)}if(this.isFirstChunk&&C(this._config.beforeFirstChunk)){var a=this._config.beforeFirstChunk(t);void 0!==a&&(t=a)}this.isFirstChunk=!1,this._halted=!1;var s=this._partialLine+t;this._partialLine="";var o=this._handle.parse(s,this._baseIndex,!this._finished);if(!this._handle.paused()&&!this._handle.aborted()){var d=o.meta.cursor;this._finished||(this._partialLine=s.substring(d-this._baseIndex),this._baseIndex=d),o&&o.data&&(this._rowCount+=o.data.length);var c=this._finished||this._config.preview&&this._rowCount>=this._config.preview;if(i)n.postMessage({results:o,workerId:u.WORKER_ID,finished:c});else if(C(this._config.chunk)&&!e){if(this._config.chunk(o,this._handle),this._handle.paused()||this._handle.aborted())return void(this._halted=!0);o=void 0,this._completeResults=void 0}return this._config.step||this._config.chunk||(this._completeResults.data=this._completeResults.data.concat(o.data),this._completeResults.errors=this._completeResults.errors.concat(o.errors),this._completeResults.meta=o.meta),this._completed||!c||!C(this._config.complete)||o&&o.meta.aborted||(this._config.complete(this._completeResults,this._input),this._completed=!0),c||o&&o.meta.paused||this._nextChunk(),o}this._halted=!0},this._sendError=function(t){C(this._config.error)?this._config.error(t):i&&this._config.error&&n.postMessage({workerId:u.WORKER_ID,error:t,finished:!1})}}function f(t){var e;function n(t){var e=t.getResponseHeader("Content-Range");return null===e?-1:parseInt(e.substring(e.lastIndexOf("/")+1))}(t=t||{}).chunkSize||(t.chunkSize=u.RemoteChunkSize),l.call(this,t),this._nextChunk=a?function(){this._readChunk(),this._chunkLoaded()}:function(){this._readChunk()},this.stream=function(t){this._input=t,this._nextChunk()},this._readChunk=function(){if(this._finished)this._chunkLoaded();else{if(e=new XMLHttpRequest,this._config.withCredentials&&(e.withCredentials=this._config.withCredentials),a||(e.onload=M(this._chunkLoaded,this),e.onerror=M(this._chunkError,this)),e.open(this._config.downloadRequestBody?"POST":"GET",this._input,!a),this._config.downloadRequestHeaders){var t=this._config.downloadRequestHeaders;for(var n in t)e.setRequestHeader(n,t[n])}if(this._config.chunkSize){var r=this._start+this._config.chunkSize-1;e.setRequestHeader("Range","bytes="+this._start+"-"+r)}try{e.send(this._config.downloadRequestBody)}catch(t){this._chunkError(t.message)}a&&0===e.status&&this._chunkError()}},this._chunkLoaded=function(){4===e.readyState&&(e.status<200||e.status>=400?this._chunkError():(this._start+=this._config.chunkSize?this._config.chunkSize:e.responseText.length,this._finished=!this._config.chunkSize||this._start>=n(e),this.parseChunk(e.responseText)))},this._chunkError=function(t){var n=e.statusText||t;this._sendError(new Error(n))}}function m(t){var e,n;(t=t||{}).chunkSize||(t.chunkSize=u.LocalChunkSize),l.call(this,t);var r="undefined"!=typeof FileReader;this.stream=function(t){this._input=t,n=t.slice||t.webkitSlice||t.mozSlice,r?((e=new FileReader).onload=M(this._chunkLoaded,this),e.onerror=M(this._chunkError,this)):e=new FileReaderSync,this._nextChunk()},this._nextChunk=function(){this._finished||this._config.preview&&!(this._rowCount<this._config.preview)||this._readChunk()},this._readChunk=function(){var t=this._input;if(this._config.chunkSize){var a=Math.min(this._start+this._config.chunkSize,this._input.size);t=n.call(t,this._start,a)}var i=e.readAsText(t,this._config.encoding);r||this._chunkLoaded({target:{result:i}})},this._chunkLoaded=function(t){this._start+=this._config.chunkSize,this._finished=!this._config.chunkSize||this._start>=this._input.size,this.parseChunk(t.target.result)},this._chunkError=function(){this._sendError(e.error)}}function p(t){var e;t=t||{},l.call(this,t),this.stream=function(t){return e=t,this._nextChunk()},this._nextChunk=function(){if(!this._finished){var t,n=this._config.chunkSize;return n?(t=e.substring(0,n),e=e.substring(n)):(t=e,e=""),this._finished=!e,this.parseChunk(t)}}}function g(t){t=t||{},l.call(this,t);var e=[],n=!0,r=!1;this.pause=function(){l.prototype.pause.apply(this,arguments),this._input.pause()},this.resume=function(){l.prototype.resume.apply(this,arguments),this._input.resume()},this.stream=function(t){this._input=t,this._input.on("data",this._streamData),this._input.on("end",this._streamEnd),this._input.on("error",this._streamError)},this._checkIsFinished=function(){r&&1===e.length&&(this._finished=!0)},this._nextChunk=function(){this._checkIsFinished(),e.length?this.parseChunk(e.shift()):n=!0},this._streamData=M((function(t){try{e.push("string"==typeof t?t:t.toString(this._config.encoding)),n&&(n=!1,this._checkIsFinished(),this.parseChunk(e.shift()))}catch(t){this._streamError(t)}}),this),this._streamError=M((function(t){this._streamCleanUp(),this._sendError(t)}),this),this._streamEnd=M((function(){this._streamCleanUp(),r=!0,this._streamData("")}),this),this._streamCleanUp=M((function(){this._input.removeListener("data",this._streamData),this._input.removeListener("end",this._streamEnd),this._input.removeListener("error",this._streamError)}),this)}function w(e){var n=t.Duplex,r=S(e),a=!0,i=!1,s=[],o=null;this._onCsvData=function(t){var e=t.data;o.push(e)||this._handle.paused()||this._handle.pause()},this._onCsvComplete=function(){o.push(null)},r.step=M(this._onCsvData,this),r.complete=M(this._onCsvComplete,this),l.call(this,r),this._nextChunk=function(){i&&1===s.length&&(this._finished=!0),s.length?s.shift()():a=!0},this._addToParseQueue=function(t,e){s.push(M((function(){if(this.parseChunk("string"==typeof t?t:t.toString(r.encoding)),C(e))return e()}),this)),a&&(a=!1,this._nextChunk())},this._onRead=function(){this._handle.paused()&&this._handle.resume()},this._onWrite=function(t,e,n){this._addToParseQueue(t,n)},this._onWriteComplete=function(){i=!0,this._addToParseQueue("")},this.getStream=function(){return o},(o=new n({readableObjectMode:!0,decodeStrings:!1,read:M(this._onRead,this),write:M(this._onWrite,this)})).once("finish",M(this._onWriteComplete,this))}function y(t){var e,n,r,a=Math.pow(2,53),i=-a,s=/^\s*-?(\d+\.?|\.\d+|\d+\.\d+)([eE][-+]?\d+)?\s*$/,o=/^((\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z)))$/,d=this,c=0,h=0,l=!1,f=!1,m=[],p={data:[],errors:[],meta:{}};if(C(t.step)){var g=t.step;t.step=function(e){if(p=e,k())_();else{if(_(),0===p.data.length)return;c+=e.data.length,t.preview&&c>t.preview?n.abort():(p.data=p.data[0],g(p,d))}}}function w(e){return"greedy"===t.skipEmptyLines?""===e.join("").trim():1===e.length&&0===e[0].length}function y(t){if(s.test(t)){var e=parseFloat(t);if(e>i&&e<a)return!0}return!1}function _(){return p&&r&&(O("Delimiter","UndetectableDelimiter","Unable to auto-detect delimiting character; defaulted to '"+u.DefaultDelimiter+"'"),r=!1),t.skipEmptyLines&&(p.data=p.data.filter((function(t){return!w(t)}))),k()&&x(),M()}function k(){return t.header&&0===m.length}function x(){if(p)if(Array.isArray(p.data[0])){for(var e=0;k()&&e<p.data.length;e++)p.data[e].forEach(n);p.data.splice(0,1)}else p.data.forEach(n);function n(e,n){C(t.transformHeader)&&(e=t.transformHeader(e,n)),m.push(e)}}function T(e){return t.dynamicTypingFunction&&void 0===t.dynamicTyping[e]&&(t.dynamicTyping[e]=t.dynamicTypingFunction(e)),!0===(t.dynamicTyping[e]||t.dynamicTyping)}function E(t,e){return T(t)?"true"===e||"TRUE"===e||"false"!==e&&"FALSE"!==e&&(y(e)?parseFloat(e):o.test(e)?new Date(e):""===e?null:e):e}function M(){if(!p||!t.header&&!t.dynamicTyping&&!t.transform)return p;function e(e,n){var r,a=t.header?{}:[];for(r=0;r<e.length;r++){var i=r,s=e[r];t.header&&(i=r>=m.length?"__parsed_extra":m[r]),t.transform&&(s=t.transform(s,i)),s=E(i,s),"__parsed_extra"===i?(a[i]=a[i]||[],a[i].push(s)):a[i]=s}return t.header&&(r>m.length?O("FieldMismatch","TooManyFields","Too many fields: expected "+m.length+" fields but parsed "+r,h+n):r<m.length&&O("FieldMismatch","TooFewFields","Too few fields: expected "+m.length+" fields but parsed "+r,h+n)),a}var n=1;return!p.data.length||Array.isArray(p.data[0])?(p.data=p.data.map(e),n=p.data.length):p.data=e(p.data,0),t.header&&p.meta&&(p.meta.fields=m),h+=n,p}function D(e,n,r,a,i){var s,o,d,c;i=i||[",","\t","|",";",u.RECORD_SEP,u.UNIT_SEP];for(var h=0;h<i.length;h++){var l=i[h],f=0,m=0,p=0;d=void 0;for(var g=new v({comments:a,delimiter:l,newline:n,preview:10}).parse(e),y=0;y<g.data.length;y++)if(r&&w(g.data[y]))p++;else{var b=g.data[y].length;m+=b,void 0!==d?b>0&&(f+=Math.abs(b-d),d=b):d=b}g.data.length>0&&(m/=g.data.length-p),(void 0===o||f<=o)&&(void 0===c||m>c)&&m>1.99&&(o=f,s=l,c=m)}return t.delimiter=s,{successful:!!s,bestDelimiter:s}}function O(t,e,n,r){var a={type:t,code:e,message:n};void 0!==r&&(a.row=r),p.errors.push(a)}this.parse=function(a,i,s){var o=t.quoteChar||'"';if(t.newline||(t.newline=this.guessLineEndings(a,o)),r=!1,t.delimiter)C(t.delimiter)&&(t.delimiter=t.delimiter(a),p.meta.delimiter=t.delimiter);else{var d=D(a,t.newline,t.skipEmptyLines,t.comments,t.delimitersToGuess);d.successful?t.delimiter=d.bestDelimiter:(r=!0,t.delimiter=u.DefaultDelimiter),p.meta.delimiter=t.delimiter}var c=S(t);return t.preview&&t.header&&c.preview++,e=a,n=new v(c),p=n.parse(e,i,s),_(),l?{meta:{paused:!0}}:p||{meta:{paused:!1}}},this.paused=function(){return l},this.pause=function(){l=!0,n.abort(),e=C(t.chunk)?"":e.substring(n.getCharIndex())},this.resume=function(){d.streamer._halted?(l=!1,d.streamer.parseChunk(e,!0)):setTimeout(d.resume,3)},this.aborted=function(){return f},this.abort=function(){f=!0,n.abort(),p.meta.aborted=!0,C(t.complete)&&t.complete(p),e=""},this.guessLineEndings=function(t,e){t=t.substring(0,1048576);var n=new RegExp(b(e)+"([^]*?)"+b(e),"gm"),r=(t=t.replace(n,"")).split("\r"),a=t.split("\n"),i=a.length>1&&a[0].length<r[0].length;if(1===r.length||i)return"\n";for(var s=0,o=0;o<r.length;o++)"\n"===r[o][0]&&s++;return s>=r.length/2?"\r\n":"\r"}}function b(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function v(t){var e,n=(t=t||{}).delimiter,r=t.newline,a=t.comments,i=t.step,s=t.preview,o=t.fastMode,d=null,c=!1,h=e=void 0===t.quoteChar||null===t.quoteChar?'"':t.quoteChar;if(void 0!==t.escapeChar&&(h=t.escapeChar),("string"!=typeof n||u.BAD_DELIMITERS.indexOf(n)>-1)&&(n=","),a===n)throw new Error("Comment character same as delimiter");!0===a?a="#":("string"!=typeof a||u.BAD_DELIMITERS.indexOf(a)>-1)&&(a=!1),"\n"!==r&&"\r"!==r&&"\r\n"!==r&&(r="\n");var l=0,f=!1;this.parse=function(u,m,p){if("string"!=typeof u)throw new Error("Input must be a string");var g=u.length,w=n.length,y=r.length,v=a.length,_=C(i);l=0;var k=[],x=[],T=[],E=0;if(!u)return W();if(o||!1!==o&&-1===u.indexOf(e)){for(var S=u.split(r),M=0;M<S.length;M++){if(T=S[M],l+=T.length,M!==S.length-1)l+=r.length;else if(p)return W();if(!a||T.substring(0,v)!==a){if(_){if(k=[],A(T.split(n)),H(),f)return W()}else A(T.split(n));if(s&&M>=s)return k=k.slice(0,s),W(!0)}}return W()}for(var D=u.indexOf(n,l),O=u.indexOf(r,l),R=new RegExp(b(h)+b(e),"g"),P=u.indexOf(e,l);;)if(u[l]!==e)if(a&&0===T.length&&u.substring(l,l+v)===a){if(-1===O)return W();l=O+y,O=u.indexOf(r,l),D=u.indexOf(n,l)}else if(-1!==D&&(D<O||-1===O))T.push(u.substring(l,D)),l=D+w,D=u.indexOf(n,l);else{if(-1===O)break;if(T.push(u.substring(l,O)),q(O+y),_&&(H(),f))return W();if(s&&k.length>=s)return W(!0)}else for(P=l,l++;;){if(-1===(P=u.indexOf(e,P+1)))return p||x.push({type:"Quotes",code:"MissingQuotes",message:"Quoted field unterminated",row:k.length,index:l}),F();if(P===g-1)return F(u.substring(l,P).replace(R,e));if(e!==h||u[P+1]!==h){if(e===h||0===P||u[P-1]!==h){-1!==D&&D<P+1&&(D=u.indexOf(n,P+1)),-1!==O&&O<P+1&&(O=u.indexOf(r,P+1));var N=L(-1===O?D:Math.min(D,O));if(u.substr(P+1+N,w)===n){T.push(u.substring(l,P).replace(R,e)),l=P+1+N+w,u[P+1+N+w]!==e&&(P=u.indexOf(e,l)),D=u.indexOf(n,l),O=u.indexOf(r,l);break}var I=L(O);if(u.substring(P+1+I,P+1+I+y)===r){if(T.push(u.substring(l,P).replace(R,e)),q(P+1+I+y),D=u.indexOf(n,l),P=u.indexOf(e,l),_&&(H(),f))return W();if(s&&k.length>=s)return W(!0);break}x.push({type:"Quotes",code:"InvalidQuotes",message:"Trailing quote on quoted field is malformed",row:k.length,index:l}),P++}}else P++}return F();function A(t){k.push(t),E=l}function L(t){var e=0;if(-1!==t){var n=u.substring(P+1,t);n&&""===n.trim()&&(e=n.length)}return e}function F(t){return p||(void 0===t&&(t=u.substring(l)),T.push(t),l=g,A(T),_&&H()),W()}function q(t){l=t,A(T),T=[],O=u.indexOf(r,l)}function W(e){if(t.header&&!m&&k.length&&!c){const e=k[0],n={},r=new Set(e);let a=!1;for(let i=0;i<e.length;i++){let s=e[i];if(C(t.transformHeader)&&(s=t.transformHeader(s,i)),n[s]){let t,o=n[s];do{t=`${s}_${o}`,o++}while(r.has(t));r.add(t),e[i]=t,n[s]++,a=!0,null===d&&(d={}),d[t]=s}else n[s]=1,e[i]=s;r.add(s)}a&&console.warn("Duplicate headers found and renamed."),c=!0}return{data:k,errors:x,meta:{delimiter:n,linebreak:r,aborted:f,truncated:!!e,cursor:E+(m||0),renamedHeaders:d}}}function H(){i(W()),k=[],x=[]}},this.abort=function(){f=!0},this.getCharIndex=function(){return l}}function _(){if(!u.WORKERS_SUPPORTED)return!1;var t=r(),e=new n.Worker(t);return e.onmessage=k,e.id=o++,s[e.id]=e,e}function k(t){var e=t.data,n=s[e.workerId],r=!1;if(e.error)n.userError(e.error,e.file);else if(e.results&&e.results.data){var a={abort:function(){r=!0,x(e.workerId,{data:[],errors:[],meta:{aborted:!0}})},pause:T,resume:T};if(C(n.userStep)){for(var i=0;i<e.results.data.length&&(n.userStep({data:e.results.data[i],errors:e.results.errors,meta:e.results.meta},a),!r);i++);delete e.results}else C(n.userChunk)&&(n.userChunk(e.results,a,e.file),delete e.results)}e.finished&&!r&&x(e.workerId,e.results)}function x(t,e){var n=s[t];C(n.userComplete)&&n.userComplete(e),n.terminate(),delete s[t]}function T(){throw new Error("Not implemented.")}function E(t){var e=t.data;if(void 0===u.WORKER_ID&&e&&(u.WORKER_ID=e.workerId),"string"==typeof e.input)n.postMessage({workerId:u.WORKER_ID,results:u.parse(e.input,e.config),finished:!0});else if(n.File&&e.input instanceof File||e.input instanceof Object){var r=u.parse(e.input,e.config);r&&n.postMessage({workerId:u.WORKER_ID,results:r,finished:!0})}}function S(t){if("object"!=typeof t||null===t)return t;var e=Array.isArray(t)?[]:{};for(var n in t)e[n]=S(t[n]);return e}function M(t,e){return function(){t.apply(e,arguments)}}function C(t){return"function"==typeof t}return i&&(n.onmessage=E),f.prototype=Object.create(l.prototype),f.prototype.constructor=f,m.prototype=Object.create(l.prototype),m.prototype.constructor=m,p.prototype=Object.create(p.prototype),p.prototype.constructor=p,g.prototype=Object.create(l.prototype),g.prototype.constructor=g,"undefined"==typeof PAPA_BROWSER_CONTEXT&&(w.prototype=Object.create(l.prototype),w.prototype.constructor=w),u}()),n.exports);const a=["date","amount","payee","description","category"];class i extends Date{constructor(){super(),this.setTime(0===arguments.length?Date.now():1===arguments.length?"string"==typeof arguments[0]?+new Date(arguments[0]):arguments[0]:Date.UTC(...arguments))}getTimezoneOffset(){return 0}}const s=/^(get|set)(?!UTC)/;function o(t,e){return t instanceof Date?new t.constructor(e):new Date(e)}Object.getOwnPropertyNames(Date.prototype).forEach((t=>{if(s.test(t)){const e=Date.prototype[t.replace(s,"$1UTC")];e&&(i.prototype[t]=e)}}));let u={};function d(){return u}const c={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXWeeks:{one:"about 1 week",other:"about {{count}} weeks"},xWeeks:{one:"1 week",other:"{{count}} weeks"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}};function h(t){return(e={})=>{const n=e.width?String(e.width):t.defaultWidth;return t.formats[n]||t.formats[t.defaultWidth]}}const l={date:h({formats:{full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},defaultWidth:"full"}),time:h({formats:{full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},defaultWidth:"full"}),dateTime:h({formats:{full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},defaultWidth:"full"})},f={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"};function m(t){return(e,n)=>{let r;if("formatting"===(n?.context?String(n.context):"standalone")&&t.formattingValues){const e=t.defaultFormattingWidth||t.defaultWidth,a=n?.width?String(n.width):e;r=t.formattingValues[a]||t.formattingValues[e]}else{const e=t.defaultWidth,a=n?.width?String(n.width):t.defaultWidth;r=t.values[a]||t.values[e]}return r[t.argumentCallback?t.argumentCallback(e):e]}}const p={ordinalNumber:(t,e)=>{const n=Number(t),r=n%100;if(r>20||r<10)switch(r%10){case 1:return n+"st";case 2:return n+"nd";case 3:return n+"rd"}return n+"th"},era:m({values:{narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},defaultWidth:"wide"}),quarter:m({values:{narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},defaultWidth:"wide",argumentCallback:t=>t-1}),month:m({values:{narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},defaultWidth:"wide"}),day:m({values:{narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},defaultWidth:"wide"}),dayPeriod:m({values:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},defaultWidth:"wide",formattingValues:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},defaultFormattingWidth:"wide"})};function g(t){return(e,n={})=>{const r=n.width,a=r&&t.matchPatterns[r]||t.matchPatterns[t.defaultMatchWidth],i=e.match(a);if(!i)return null;const s=i[0],o=r&&t.parsePatterns[r]||t.parsePatterns[t.defaultParseWidth],u=Array.isArray(o)?function(t,e){for(let n=0;n<t.length;n++)if(e(t[n]))return n;return}(o,(t=>t.test(s))):function(t,e){for(const n in t)if(Object.prototype.hasOwnProperty.call(t,n)&&e(t[n]))return n;return}(o,(t=>t.test(s)));let d;d=t.valueCallback?t.valueCallback(u):u,d=n.valueCallback?n.valueCallback(d):d;return{value:d,rest:e.slice(s.length)}}}const w={ordinalNumber:(y={matchPattern:/^(\d+)(th|st|nd|rd)?/i,parsePattern:/\d+/i,valueCallback:t=>parseInt(t,10)},(t,e={})=>{const n=t.match(y.matchPattern);if(!n)return null;const r=n[0],a=t.match(y.parsePattern);if(!a)return null;let i=y.valueCallback?y.valueCallback(a[0]):a[0];return i=e.valueCallback?e.valueCallback(i):i,{value:i,rest:t.slice(r.length)}}),era:g({matchPatterns:{narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},defaultMatchWidth:"wide",parsePatterns:{any:[/^b/i,/^(a|c)/i]},defaultParseWidth:"any"}),quarter:g({matchPatterns:{narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},defaultMatchWidth:"wide",parsePatterns:{any:[/1/i,/2/i,/3/i,/4/i]},defaultParseWidth:"any",valueCallback:t=>t+1}),month:g({matchPatterns:{narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},defaultParseWidth:"any"}),day:g({matchPatterns:{narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},defaultParseWidth:"any"}),dayPeriod:g({matchPatterns:{narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},defaultMatchWidth:"any",parsePatterns:{any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},defaultParseWidth:"any"})};var y;const b={code:"en-US",formatDistance:(t,e,n)=>{let r;const a=c[t];return r="string"==typeof a?a:1===e?a.one:a.other.replace("{{count}}",e.toString()),n?.addSuffix?n.comparison&&n.comparison>0?"in "+r:r+" ago":r},formatLong:l,formatRelative:(t,e,n,r)=>f[t],localize:p,match:w,options:{weekStartsOn:0,firstWeekContainsDate:1}};function v(t){const e=Object.prototype.toString.call(t);return t instanceof Date||"object"==typeof t&&"[object Date]"===e?new t.constructor(+t):"number"==typeof t||"[object Number]"===e||"string"==typeof t||"[object String]"===e?new Date(t):new Date(NaN)}const _=(t,e)=>{switch(t){case"P":return e.date({width:"short"});case"PP":return e.date({width:"medium"});case"PPP":return e.date({width:"long"});default:return e.date({width:"full"})}},k=(t,e)=>{switch(t){case"p":return e.time({width:"short"});case"pp":return e.time({width:"medium"});case"ppp":return e.time({width:"long"});default:return e.time({width:"full"})}},x={p:k,P:(t,e)=>{const n=t.match(/(P+)(p+)?/)||[],r=n[1],a=n[2];if(!a)return _(t,e);let i;switch(r){case"P":i=e.dateTime({width:"short"});break;case"PP":i=e.dateTime({width:"medium"});break;case"PPP":i=e.dateTime({width:"long"});break;default:i=e.dateTime({width:"full"})}return i.replace("{{date}}",_(r,e)).replace("{{time}}",k(a,e))}},T=/^D+$/,E=/^Y+$/,S=["D","DD","YY","YYYY"];function M(t){return T.test(t)}function C(t){return E.test(t)}function D(t,e,n){const r=function(t,e,n){const r="Y"===t[0]?"years":"days of the month";return`Use \`${t.toLowerCase()}\` instead of \`${t}\` (in \`${e}\`) for formatting ${r} to the input \`${n}\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`}(t,e,n);if(console.warn(r),S.includes(t))throw new RangeError(r)}class O{subPriority=0;validate(t,e){return!0}}class R extends O{constructor(t,e,n,r,a){super(),this.value=t,this.validateValue=e,this.setValue=n,this.priority=r,a&&(this.subPriority=a)}validate(t,e){return this.validateValue(t,this.value,e)}set(t,e,n){return this.setValue(t,e,this.value,n)}}class P extends O{priority=10;subPriority=-1;set(t,e){return e.timestampIsSet?t:o(t,function(t,e){const n=e instanceof Date?o(e,0):new e(0);return n.setFullYear(t.getFullYear(),t.getMonth(),t.getDate()),n.setHours(t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds()),n}(t,Date))}}class N{run(t,e,n,r){const a=this.parse(t,e,n,r);return a?{setter:new R(a.value,this.validate,this.set,this.priority,this.subPriority),rest:a.rest}:null}validate(t,e,n){return!0}}const I=6048e5,A=/^(1[0-2]|0?\d)/,L=/^(3[0-1]|[0-2]?\d)/,F=/^(36[0-6]|3[0-5]\d|[0-2]?\d?\d)/,q=/^(5[0-3]|[0-4]?\d)/,W=/^(2[0-3]|[0-1]?\d)/,H=/^(2[0-4]|[0-1]?\d)/,j=/^(1[0-1]|0?\d)/,Y=/^(1[0-2]|0?\d)/,Q=/^[0-5]?\d/,B=/^[0-5]?\d/,z=/^\d/,U=/^\d{1,2}/,X=/^\d{1,3}/,K=/^\d{1,4}/,$=/^-?\d+/,J=/^-?\d/,G=/^-?\d{1,2}/,Z=/^-?\d{1,3}/,V=/^-?\d{1,4}/,tt=/^([+-])(\d{2})(\d{2})?|Z/,et=/^([+-])(\d{2})(\d{2})|Z/,nt=/^([+-])(\d{2})(\d{2})((\d{2}))?|Z/,rt=/^([+-])(\d{2}):(\d{2})|Z/,at=/^([+-])(\d{2}):(\d{2})(:(\d{2}))?|Z/;function it(t,e){return t?{value:e(t.value),rest:t.rest}:t}function st(t,e){const n=e.match(t);return n?{value:parseInt(n[0],10),rest:e.slice(n[0].length)}:null}function ot(t,e){const n=e.match(t);if(!n)return null;if("Z"===n[0])return{value:0,rest:e.slice(1)};return{value:("+"===n[1]?1:-1)*(36e5*(n[2]?parseInt(n[2],10):0)+6e4*(n[3]?parseInt(n[3],10):0)+1e3*(n[5]?parseInt(n[5],10):0)),rest:e.slice(n[0].length)}}function ut(t){return st($,t)}function dt(t,e){switch(t){case 1:return st(z,e);case 2:return st(U,e);case 3:return st(X,e);case 4:return st(K,e);default:return st(new RegExp("^\\d{1,"+t+"}"),e)}}function ct(t,e){switch(t){case 1:return st(J,e);case 2:return st(G,e);case 3:return st(Z,e);case 4:return st(V,e);default:return st(new RegExp("^-?\\d{1,"+t+"}"),e)}}function ht(t){switch(t){case"morning":return 4;case"evening":return 17;case"pm":case"noon":case"afternoon":return 12;default:return 0}}function lt(t,e){const n=e>0,r=n?e:1-e;let a;if(r<=50)a=t||100;else{const e=r+50;a=t+100*Math.trunc(e/100)-(t>=e%100?100:0)}return n?a:1-a}function ft(t){return t%400==0||t%4==0&&t%100!=0}function mt(t,e){const n=d(),r=e?.weekStartsOn??e?.locale?.options?.weekStartsOn??n.weekStartsOn??n.locale?.options?.weekStartsOn??0,a=v(t),i=a.getDay(),s=(i<r?7:0)+i-r;return a.setDate(a.getDate()-s),a.setHours(0,0,0,0),a}function pt(t,e){const n=v(t),r=n.getFullYear(),a=d(),i=e?.firstWeekContainsDate??e?.locale?.options?.firstWeekContainsDate??a.firstWeekContainsDate??a.locale?.options?.firstWeekContainsDate??1,s=o(t,0);s.setFullYear(r+1,0,i),s.setHours(0,0,0,0);const u=mt(s,e),c=o(t,0);c.setFullYear(r,0,i),c.setHours(0,0,0,0);const h=mt(c,e);return n.getTime()>=u.getTime()?r+1:n.getTime()>=h.getTime()?r:r-1}function gt(t){return mt(t,{weekStartsOn:1})}function wt(t,e){const n=v(t),r=+mt(n,e)-+function(t,e){const n=d(),r=e?.firstWeekContainsDate??e?.locale?.options?.firstWeekContainsDate??n.firstWeekContainsDate??n.locale?.options?.firstWeekContainsDate??1,a=pt(t,e),i=o(t,0);return i.setFullYear(a,0,r),i.setHours(0,0,0,0),mt(i,e)}(n,e);return Math.round(r/I)+1}function yt(t){const e=function(t){const e=v(t),n=e.getFullYear(),r=o(t,0);r.setFullYear(n+1,0,4),r.setHours(0,0,0,0);const a=gt(r),i=o(t,0);i.setFullYear(n,0,4),i.setHours(0,0,0,0);const s=gt(i);return e.getTime()>=a.getTime()?n+1:e.getTime()>=s.getTime()?n:n-1}(t),n=o(t,0);return n.setFullYear(e,0,4),n.setHours(0,0,0,0),gt(n)}function bt(t,e){const n=v(t),r=function(t){const e=v(t),n=+gt(e)-+yt(e);return Math.round(n/I)+1}(n)-e;return n.setDate(n.getDate()-7*r),n}const vt=[31,28,31,30,31,30,31,31,30,31,30,31],_t=[31,29,31,30,31,30,31,31,30,31,30,31];function kt(t,e){const n=v(t);return isNaN(e)?o(t,NaN):e?(n.setDate(n.getDate()+e),n):n}function xt(t,e,n){const r=d(),a=n?.weekStartsOn??n?.locale?.options?.weekStartsOn??r.weekStartsOn??r.locale?.options?.weekStartsOn??0,i=v(t),s=i.getDay(),o=7-a;return kt(i,e<0||e>6?e-(s+o)%7:((e%7+7)%7+o)%7-(s+o)%7)}function Tt(t,e){const n=v(t),r=function(t){let e=v(t).getDay();return 0===e&&(e=7),e}(n);return kt(n,e-r)}function Et(t){const e=v(t),n=new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds()));return n.setUTCFullYear(e.getFullYear()),+t-+n}const St={G:new class extends N{priority=140;parse(t,e,n){switch(e){case"G":case"GG":case"GGG":return n.era(t,{width:"abbreviated"})||n.era(t,{width:"narrow"});case"GGGGG":return n.era(t,{width:"narrow"});default:return n.era(t,{width:"wide"})||n.era(t,{width:"abbreviated"})||n.era(t,{width:"narrow"})}}set(t,e,n){return e.era=n,t.setFullYear(n,0,1),t.setHours(0,0,0,0),t}incompatibleTokens=["R","u","t","T"]},y:new class extends N{priority=130;incompatibleTokens=["Y","R","u","w","I","i","e","c","t","T"];parse(t,e,n){const r=t=>({year:t,isTwoDigitYear:"yy"===e});switch(e){case"y":return it(dt(4,t),r);case"yo":return it(n.ordinalNumber(t,{unit:"year"}),r);default:return it(dt(e.length,t),r)}}validate(t,e){return e.isTwoDigitYear||e.year>0}set(t,e,n){const r=t.getFullYear();if(n.isTwoDigitYear){const e=lt(n.year,r);return t.setFullYear(e,0,1),t.setHours(0,0,0,0),t}const a="era"in e&&1!==e.era?1-n.year:n.year;return t.setFullYear(a,0,1),t.setHours(0,0,0,0),t}},Y:new class extends N{priority=130;parse(t,e,n){const r=t=>({year:t,isTwoDigitYear:"YY"===e});switch(e){case"Y":return it(dt(4,t),r);case"Yo":return it(n.ordinalNumber(t,{unit:"year"}),r);default:return it(dt(e.length,t),r)}}validate(t,e){return e.isTwoDigitYear||e.year>0}set(t,e,n,r){const a=pt(t,r);if(n.isTwoDigitYear){const e=lt(n.year,a);return t.setFullYear(e,0,r.firstWeekContainsDate),t.setHours(0,0,0,0),mt(t,r)}const i="era"in e&&1!==e.era?1-n.year:n.year;return t.setFullYear(i,0,r.firstWeekContainsDate),t.setHours(0,0,0,0),mt(t,r)}incompatibleTokens=["y","R","u","Q","q","M","L","I","d","D","i","t","T"]},R:new class extends N{priority=130;parse(t,e){return ct("R"===e?4:e.length,t)}set(t,e,n){const r=o(t,0);return r.setFullYear(n,0,4),r.setHours(0,0,0,0),gt(r)}incompatibleTokens=["G","y","Y","u","Q","q","M","L","w","d","D","e","c","t","T"]},u:new class extends N{priority=130;parse(t,e){return ct("u"===e?4:e.length,t)}set(t,e,n){return t.setFullYear(n,0,1),t.setHours(0,0,0,0),t}incompatibleTokens=["G","y","Y","R","w","I","i","e","c","t","T"]},Q:new class extends N{priority=120;parse(t,e,n){switch(e){case"Q":case"QQ":return dt(e.length,t);case"Qo":return n.ordinalNumber(t,{unit:"quarter"});case"QQQ":return n.quarter(t,{width:"abbreviated",context:"formatting"})||n.quarter(t,{width:"narrow",context:"formatting"});case"QQQQQ":return n.quarter(t,{width:"narrow",context:"formatting"});default:return n.quarter(t,{width:"wide",context:"formatting"})||n.quarter(t,{width:"abbreviated",context:"formatting"})||n.quarter(t,{width:"narrow",context:"formatting"})}}validate(t,e){return e>=1&&e<=4}set(t,e,n){return t.setMonth(3*(n-1),1),t.setHours(0,0,0,0),t}incompatibleTokens=["Y","R","q","M","L","w","I","d","D","i","e","c","t","T"]},q:new class extends N{priority=120;parse(t,e,n){switch(e){case"q":case"qq":return dt(e.length,t);case"qo":return n.ordinalNumber(t,{unit:"quarter"});case"qqq":return n.quarter(t,{width:"abbreviated",context:"standalone"})||n.quarter(t,{width:"narrow",context:"standalone"});case"qqqqq":return n.quarter(t,{width:"narrow",context:"standalone"});default:return n.quarter(t,{width:"wide",context:"standalone"})||n.quarter(t,{width:"abbreviated",context:"standalone"})||n.quarter(t,{width:"narrow",context:"standalone"})}}validate(t,e){return e>=1&&e<=4}set(t,e,n){return t.setMonth(3*(n-1),1),t.setHours(0,0,0,0),t}incompatibleTokens=["Y","R","Q","M","L","w","I","d","D","i","e","c","t","T"]},M:new class extends N{incompatibleTokens=["Y","R","q","Q","L","w","I","D","i","e","c","t","T"];priority=110;parse(t,e,n){const r=t=>t-1;switch(e){case"M":return it(st(A,t),r);case"MM":return it(dt(2,t),r);case"Mo":return it(n.ordinalNumber(t,{unit:"month"}),r);case"MMM":return n.month(t,{width:"abbreviated",context:"formatting"})||n.month(t,{width:"narrow",context:"formatting"});case"MMMMM":return n.month(t,{width:"narrow",context:"formatting"});default:return n.month(t,{width:"wide",context:"formatting"})||n.month(t,{width:"abbreviated",context:"formatting"})||n.month(t,{width:"narrow",context:"formatting"})}}validate(t,e){return e>=0&&e<=11}set(t,e,n){return t.setMonth(n,1),t.setHours(0,0,0,0),t}},L:new class extends N{priority=110;parse(t,e,n){const r=t=>t-1;switch(e){case"L":return it(st(A,t),r);case"LL":return it(dt(2,t),r);case"Lo":return it(n.ordinalNumber(t,{unit:"month"}),r);case"LLL":return n.month(t,{width:"abbreviated",context:"standalone"})||n.month(t,{width:"narrow",context:"standalone"});case"LLLLL":return n.month(t,{width:"narrow",context:"standalone"});default:return n.month(t,{width:"wide",context:"standalone"})||n.month(t,{width:"abbreviated",context:"standalone"})||n.month(t,{width:"narrow",context:"standalone"})}}validate(t,e){return e>=0&&e<=11}set(t,e,n){return t.setMonth(n,1),t.setHours(0,0,0,0),t}incompatibleTokens=["Y","R","q","Q","M","w","I","D","i","e","c","t","T"]},w:new class extends N{priority=100;parse(t,e,n){switch(e){case"w":return st(q,t);case"wo":return n.ordinalNumber(t,{unit:"week"});default:return dt(e.length,t)}}validate(t,e){return e>=1&&e<=53}set(t,e,n,r){return mt(function(t,e,n){const r=v(t),a=wt(r,n)-e;return r.setDate(r.getDate()-7*a),r}(t,n,r),r)}incompatibleTokens=["y","R","u","q","Q","M","L","I","d","D","i","t","T"]},I:new class extends N{priority=100;parse(t,e,n){switch(e){case"I":return st(q,t);case"Io":return n.ordinalNumber(t,{unit:"week"});default:return dt(e.length,t)}}validate(t,e){return e>=1&&e<=53}set(t,e,n){return gt(bt(t,n))}incompatibleTokens=["y","Y","u","q","Q","M","L","w","d","D","e","c","t","T"]},d:new class extends N{priority=90;subPriority=1;parse(t,e,n){switch(e){case"d":return st(L,t);case"do":return n.ordinalNumber(t,{unit:"date"});default:return dt(e.length,t)}}validate(t,e){const n=ft(t.getFullYear()),r=t.getMonth();return n?e>=1&&e<=_t[r]:e>=1&&e<=vt[r]}set(t,e,n){return t.setDate(n),t.setHours(0,0,0,0),t}incompatibleTokens=["Y","R","q","Q","w","I","D","i","e","c","t","T"]},D:new class extends N{priority=90;subpriority=1;parse(t,e,n){switch(e){case"D":case"DD":return st(F,t);case"Do":return n.ordinalNumber(t,{unit:"date"});default:return dt(e.length,t)}}validate(t,e){return ft(t.getFullYear())?e>=1&&e<=366:e>=1&&e<=365}set(t,e,n){return t.setMonth(0,n),t.setHours(0,0,0,0),t}incompatibleTokens=["Y","R","q","Q","M","L","w","I","d","E","i","e","c","t","T"]},E:new class extends N{priority=90;parse(t,e,n){switch(e){case"E":case"EE":case"EEE":return n.day(t,{width:"abbreviated",context:"formatting"})||n.day(t,{width:"short",context:"formatting"})||n.day(t,{width:"narrow",context:"formatting"});case"EEEEE":return n.day(t,{width:"narrow",context:"formatting"});case"EEEEEE":return n.day(t,{width:"short",context:"formatting"})||n.day(t,{width:"narrow",context:"formatting"});default:return n.day(t,{width:"wide",context:"formatting"})||n.day(t,{width:"abbreviated",context:"formatting"})||n.day(t,{width:"short",context:"formatting"})||n.day(t,{width:"narrow",context:"formatting"})}}validate(t,e){return e>=0&&e<=6}set(t,e,n,r){return(t=xt(t,n,r)).setHours(0,0,0,0),t}incompatibleTokens=["D","i","e","c","t","T"]},e:new class extends N{priority=90;parse(t,e,n,r){const a=t=>{const e=7*Math.floor((t-1)/7);return(t+r.weekStartsOn+6)%7+e};switch(e){case"e":case"ee":return it(dt(e.length,t),a);case"eo":return it(n.ordinalNumber(t,{unit:"day"}),a);case"eee":return n.day(t,{width:"abbreviated",context:"formatting"})||n.day(t,{width:"short",context:"formatting"})||n.day(t,{width:"narrow",context:"formatting"});case"eeeee":return n.day(t,{width:"narrow",context:"formatting"});case"eeeeee":return n.day(t,{width:"short",context:"formatting"})||n.day(t,{width:"narrow",context:"formatting"});default:return n.day(t,{width:"wide",context:"formatting"})||n.day(t,{width:"abbreviated",context:"formatting"})||n.day(t,{width:"short",context:"formatting"})||n.day(t,{width:"narrow",context:"formatting"})}}validate(t,e){return e>=0&&e<=6}set(t,e,n,r){return(t=xt(t,n,r)).setHours(0,0,0,0),t}incompatibleTokens=["y","R","u","q","Q","M","L","I","d","D","E","i","c","t","T"]},c:new class extends N{priority=90;parse(t,e,n,r){const a=t=>{const e=7*Math.floor((t-1)/7);return(t+r.weekStartsOn+6)%7+e};switch(e){case"c":case"cc":return it(dt(e.length,t),a);case"co":return it(n.ordinalNumber(t,{unit:"day"}),a);case"ccc":return n.day(t,{width:"abbreviated",context:"standalone"})||n.day(t,{width:"short",context:"standalone"})||n.day(t,{width:"narrow",context:"standalone"});case"ccccc":return n.day(t,{width:"narrow",context:"standalone"});case"cccccc":return n.day(t,{width:"short",context:"standalone"})||n.day(t,{width:"narrow",context:"standalone"});default:return n.day(t,{width:"wide",context:"standalone"})||n.day(t,{width:"abbreviated",context:"standalone"})||n.day(t,{width:"short",context:"standalone"})||n.day(t,{width:"narrow",context:"standalone"})}}validate(t,e){return e>=0&&e<=6}set(t,e,n,r){return(t=xt(t,n,r)).setHours(0,0,0,0),t}incompatibleTokens=["y","R","u","q","Q","M","L","I","d","D","E","i","e","t","T"]},i:new class extends N{priority=90;parse(t,e,n){const r=t=>0===t?7:t;switch(e){case"i":case"ii":return dt(e.length,t);case"io":return n.ordinalNumber(t,{unit:"day"});case"iii":return it(n.day(t,{width:"abbreviated",context:"formatting"})||n.day(t,{width:"short",context:"formatting"})||n.day(t,{width:"narrow",context:"formatting"}),r);case"iiiii":return it(n.day(t,{width:"narrow",context:"formatting"}),r);case"iiiiii":return it(n.day(t,{width:"short",context:"formatting"})||n.day(t,{width:"narrow",context:"formatting"}),r);default:return it(n.day(t,{width:"wide",context:"formatting"})||n.day(t,{width:"abbreviated",context:"formatting"})||n.day(t,{width:"short",context:"formatting"})||n.day(t,{width:"narrow",context:"formatting"}),r)}}validate(t,e){return e>=1&&e<=7}set(t,e,n){return(t=Tt(t,n)).setHours(0,0,0,0),t}incompatibleTokens=["y","Y","u","q","Q","M","L","w","d","D","E","e","c","t","T"]},a:new class extends N{priority=80;parse(t,e,n){switch(e){case"a":case"aa":case"aaa":return n.dayPeriod(t,{width:"abbreviated",context:"formatting"})||n.dayPeriod(t,{width:"narrow",context:"formatting"});case"aaaaa":return n.dayPeriod(t,{width:"narrow",context:"formatting"});default:return n.dayPeriod(t,{width:"wide",context:"formatting"})||n.dayPeriod(t,{width:"abbreviated",context:"formatting"})||n.dayPeriod(t,{width:"narrow",context:"formatting"})}}set(t,e,n){return t.setHours(ht(n),0,0,0),t}incompatibleTokens=["b","B","H","k","t","T"]},b:new class extends N{priority=80;parse(t,e,n){switch(e){case"b":case"bb":case"bbb":return n.dayPeriod(t,{width:"abbreviated",context:"formatting"})||n.dayPeriod(t,{width:"narrow",context:"formatting"});case"bbbbb":return n.dayPeriod(t,{width:"narrow",context:"formatting"});default:return n.dayPeriod(t,{width:"wide",context:"formatting"})||n.dayPeriod(t,{width:"abbreviated",context:"formatting"})||n.dayPeriod(t,{width:"narrow",context:"formatting"})}}set(t,e,n){return t.setHours(ht(n),0,0,0),t}incompatibleTokens=["a","B","H","k","t","T"]},B:new class extends N{priority=80;parse(t,e,n){switch(e){case"B":case"BB":case"BBB":return n.dayPeriod(t,{width:"abbreviated",context:"formatting"})||n.dayPeriod(t,{width:"narrow",context:"formatting"});case"BBBBB":return n.dayPeriod(t,{width:"narrow",context:"formatting"});default:return n.dayPeriod(t,{width:"wide",context:"formatting"})||n.dayPeriod(t,{width:"abbreviated",context:"formatting"})||n.dayPeriod(t,{width:"narrow",context:"formatting"})}}set(t,e,n){return t.setHours(ht(n),0,0,0),t}incompatibleTokens=["a","b","t","T"]},h:new class extends N{priority=70;parse(t,e,n){switch(e){case"h":return st(Y,t);case"ho":return n.ordinalNumber(t,{unit:"hour"});default:return dt(e.length,t)}}validate(t,e){return e>=1&&e<=12}set(t,e,n){const r=t.getHours()>=12;return r&&n<12?t.setHours(n+12,0,0,0):r||12!==n?t.setHours(n,0,0,0):t.setHours(0,0,0,0),t}incompatibleTokens=["H","K","k","t","T"]},H:new class extends N{priority=70;parse(t,e,n){switch(e){case"H":return st(W,t);case"Ho":return n.ordinalNumber(t,{unit:"hour"});default:return dt(e.length,t)}}validate(t,e){return e>=0&&e<=23}set(t,e,n){return t.setHours(n,0,0,0),t}incompatibleTokens=["a","b","h","K","k","t","T"]},K:new class extends N{priority=70;parse(t,e,n){switch(e){case"K":return st(j,t);case"Ko":return n.ordinalNumber(t,{unit:"hour"});default:return dt(e.length,t)}}validate(t,e){return e>=0&&e<=11}set(t,e,n){return t.getHours()>=12&&n<12?t.setHours(n+12,0,0,0):t.setHours(n,0,0,0),t}incompatibleTokens=["h","H","k","t","T"]},k:new class extends N{priority=70;parse(t,e,n){switch(e){case"k":return st(H,t);case"ko":return n.ordinalNumber(t,{unit:"hour"});default:return dt(e.length,t)}}validate(t,e){return e>=1&&e<=24}set(t,e,n){const r=n<=24?n%24:n;return t.setHours(r,0,0,0),t}incompatibleTokens=["a","b","h","H","K","t","T"]},m:new class extends N{priority=60;parse(t,e,n){switch(e){case"m":return st(Q,t);case"mo":return n.ordinalNumber(t,{unit:"minute"});default:return dt(e.length,t)}}validate(t,e){return e>=0&&e<=59}set(t,e,n){return t.setMinutes(n,0,0),t}incompatibleTokens=["t","T"]},s:new class extends N{priority=50;parse(t,e,n){switch(e){case"s":return st(B,t);case"so":return n.ordinalNumber(t,{unit:"second"});default:return dt(e.length,t)}}validate(t,e){return e>=0&&e<=59}set(t,e,n){return t.setSeconds(n,0),t}incompatibleTokens=["t","T"]},S:new class extends N{priority=30;parse(t,e){return it(dt(e.length,t),(t=>Math.trunc(t*Math.pow(10,3-e.length))))}set(t,e,n){return t.setMilliseconds(n),t}incompatibleTokens=["t","T"]},X:new class extends N{priority=10;parse(t,e){switch(e){case"X":return ot(tt,t);case"XX":return ot(et,t);case"XXXX":return ot(nt,t);case"XXXXX":return ot(at,t);default:return ot(rt,t)}}set(t,e,n){return e.timestampIsSet?t:o(t,t.getTime()-Et(t)-n)}incompatibleTokens=["t","T","x"]},x:new class extends N{priority=10;parse(t,e){switch(e){case"x":return ot(tt,t);case"xx":return ot(et,t);case"xxxx":return ot(nt,t);case"xxxxx":return ot(at,t);default:return ot(rt,t)}}set(t,e,n){return e.timestampIsSet?t:o(t,t.getTime()-Et(t)-n)}incompatibleTokens=["t","T","X"]},t:new class extends N{priority=40;parse(t){return ut(t)}set(t,e,n){return[o(t,1e3*n),{timestampIsSet:!0}]}incompatibleTokens="*"},T:new class extends N{priority=20;parse(t){return ut(t)}set(t,e,n){return[o(t,n),{timestampIsSet:!0}]}incompatibleTokens="*"}},Mt=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,Ct=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,Dt=/^'([^]*?)'?$/,Ot=/''/g,Rt=/\S/,Pt=/[a-zA-Z]/;function Nt(t,e,n,r){const a=Object.assign({},d()),i=a.locale??b,s=a.firstWeekContainsDate??a.locale?.options?.firstWeekContainsDate??1,u=a.weekStartsOn??a.locale?.options?.weekStartsOn??0;if(""===e)return""===t?v(n):o(n,NaN);const c={firstWeekContainsDate:s,weekStartsOn:u,locale:i},h=[new P],l=e.match(Ct).map((t=>{const e=t[0];if(e in x){return(0,x[e])(t,i.formatLong)}return t})).join("").match(Mt),f=[];for(let r of l){C(r)&&D(r,e,t),M(r)&&D(r,e,t);const a=r[0],s=St[a];if(s){const{incompatibleTokens:e}=s;if(Array.isArray(e)){const t=f.find((t=>e.includes(t.token)||t.token===a));if(t)throw new RangeError(`The format string mustn't contain \`${t.fullToken}\` and \`${r}\` at the same time`)}else if("*"===s.incompatibleTokens&&f.length>0)throw new RangeError(`The format string mustn't contain \`${r}\` and any other token at the same time`);f.push({token:a,fullToken:r});const u=s.run(t,r,i.match,c);if(!u)return o(n,NaN);h.push(u.setter),t=u.rest}else{if(a.match(Pt))throw new RangeError("Format string contains an unescaped latin alphabet character `"+a+"`");if("''"===r?r="'":"'"===a&&(r=r.match(Dt)[1].replace(Ot,"'")),0!==t.indexOf(r))return o(n,NaN);t=t.slice(r.length)}}if(t.length>0&&Rt.test(t))return o(n,NaN);const m=h.map((t=>t.priority)).sort(((t,e)=>e-t)).filter(((t,e,n)=>n.indexOf(t)===e)).map((t=>h.filter((e=>e.priority===t)).sort(((t,e)=>e.subPriority-t.subPriority)))).map((t=>t[0]));let p=v(n);if(isNaN(p.getTime()))return o(n,NaN);const g={};for(const t of m){if(!t.validate(p,c))return o(n,NaN);const e=t.set(p,g,c);Array.isArray(e)?(p=e[0],Object.assign(g,e[1])):p=e}return o(n,p)}const It=["yyyy/MM/dd","yyyy/M/d","dd/MM/yyyy","d/M/yyyy","MM/dd/yyyy","M/d/yyyy","d MMMM yyyy","dd MMM yyyy","MMMM d yyyy","MMM dd yyyy"].flatMap((t=>[t,t.replaceAll("/","-"),t.replaceAll("/","")])),At=(t,e=It)=>{for(const n of e){const e=[];for(const r of t){const t=Nt(r,n,new Date);if(Number.isNaN(t.getTime()))break;e.push(new i(t.getFullYear(),t.getMonth(),t.getDate()))}if(e.length===t.length)return e}throw new Error("Could not parse dates")},Lt=(t,...e)=>Object.assign({},t,...e),Ft={headers:!0,map:t=>{const e={};return"object"!=typeof t||null===t?null:(a.forEach((n=>{const r=t[n];"string"==typeof r&&(e[n]=r)})),e)}},qt={BANK:"!Type:Bank",CASH:"!Type:Cash",CREDIT_CARD:"!Type:CCard",ASSETS:"!Type:Oth A",LIABILITIES:"!Type:Oth L"},Wt=Object.values(qt);const Ht={D:"date",T:"amount",P:"payee",M:"description",L:"category"};var jt=Object.freeze({__proto__:null,csv:(t,e)=>{const{headers:n,map:a}=Lt(Ft,e),i=r.parse(t.trim(),{header:n});if(i.errors.length>0&&console.debug(i.errors),i.errors.length>0&&0===i.data.length)throw new Error("Invalid CSV data");const s=[],o=[];i.data.forEach((t=>{const e=a(t);if(null===e)return;if("string"!=typeof e.date||0===e.date.length||"string"!=typeof e.amount||0===e.amount.length)return;const n={},r=e.date;Object.keys(e).forEach((t=>{switch(t){case"date":o.push({date:r,transaction:n});break;case"amount":if("string"==typeof e.amount&&(n.amount=parseFloat(e.amount),!Number.isFinite(n.amount)))throw new TypeError("Could not parse amount");break;case"payee":case"description":case"category":"string"==typeof e[t]&&(n[t]=e[t])}})),s.push(n)}));return At(o.map((t=>t.date))).forEach(((t,e)=>o[e].transaction.date=t)),s},json:t=>{let e=[];try{e=JSON.parse(t)}catch{throw Error("Input is not valid JSON")}if(!Array.isArray(e))throw Error("Input is not an array");const n=[],r=[];for(;e.length>0;){const t=e.shift();if(!t)continue;if("string"!=typeof t.date||0===t.date.length||!["number","string"].includes(typeof t.amount)||0===String(t.amount).length)continue;const a={},i=t.date;Object.keys(t).forEach((e=>{switch(e){case"date":r.push({date:i,transaction:a});break;case"amount":if("number"==typeof t.amount)a.amount=t.amount;else if("string"==typeof t.amount&&(a.amount=parseFloat(t.amount),!Number.isFinite(a.amount)))throw new TypeError("Could not parse amount");break;case"payee":case"description":case"category":"string"==typeof t[e]&&(a[e]=t[e])}})),n.push(a)}return At(r.map((t=>t.date))).forEach(((t,e)=>r[e].transaction.date=t)),n},qif:t=>{const e=t.trim().split("\n"),n=e.shift();if(!function(t){return Wt.includes(t)}(n))throw Error("Unknown header: "+n);const r=[{}],a=[];for(;e.length>0;){const t=e.shift();if(!t)continue;const n=t.charAt(0);if("^"===n&&e.length>0){r.push({});continue}if("^"===n)break;const i=r.at(-1);if(!(n in Ht))continue;const s=Ht[n],o=t.substring(1);switch(s){case"date":a.push({date:o,transaction:i});break;case"amount":i.amount=parseFloat(o);break;default:i[s]=o}}return At(a.map((t=>t.date))).forEach(((t,e)=>a[e].transaction.date=t)),r}});const Yt={date:"D",amount:"T",payee:"P",description:"M",category:"L"},Qt={locale:"en-US",header:qt.BANK};var Bt=Object.freeze({__proto__:null,csv:t=>{const e=[];for(const n of t){const{date:t,...r}=n;t instanceof Date&&!Number.isNaN(t.getTime())&&e.push({date:t.toISOString().substring(0,10),...r})}const n=a.map((t=>"amount"!==t));return r.unparse(e,{header:!0,quotes:n,newline:"\n"})},json:t=>{const e=[];for(const n of t){const{date:t,...r}=n;t instanceof Date&&!Number.isNaN(t.getTime())&&e.push({date:t.toISOString().substring(0,10),...r})}return JSON.stringify(e)},qif:(t,e)=>{const{locale:n,header:r}=Lt(Qt,e),a=[r];for(const e of t){const{date:t,amount:r}=e;t instanceof Date&&!Number.isNaN(t.getTime())&&"number"==typeof r&&(Object.keys(e).forEach((i=>{const s=i;switch(s){case"date":a.push(Yt.date+t.toISOString().substring(0,10));break;case"amount":a.push(Yt.amount+r.toLocaleString(n));break;default:if("string"==typeof e[s]){const t=e[s];a.push(Yt[s]+t)}}})),a.push("^"))}return a.join("\n")}});export{jt as deserialisers,Bt as serialisers};
8
8
  //# sourceMappingURL=index.esm.js.map