UNPKG

@synotech/utils

Version:

a collection of utilities for internal use

1 lines 89.8 kB
"use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e.default:e}Object.defineProperty(exports,"__esModule",{value:!0});var a=require("node:dns"),n=require("crypto"),i=e(require("jsonwebtoken")),o=require("node:console"),r=require("lodash"),t=e(r),s=require("libphonenumber-js"),l=e(require("currency.js")),c=e(require("bignumber.js")),m=require("date-fns");function u(e,a,n,i,o,r,t){try{var s=e[r](t),l=s.value}catch(e){return void n(e)}s.done?a(l):Promise.resolve(l).then(i,o)}function d(e){return function(){var a=this,n=arguments;return new Promise((function(i,o){var r=e.apply(a,n);function t(e){u(r,i,o,t,s,"next",e)}function s(e){u(r,i,o,t,s,"throw",e)}t(void 0)}))}}function p(){return(p=Object.assign?Object.assign.bind():function(e){for(var a=1;a<arguments.length;a++){var n=arguments[a];for(var i in n)({}).hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e}).apply(null,arguments)}function g(){g=function(){return a};var e,a={},n=Object.prototype,i=n.hasOwnProperty,o=Object.defineProperty||function(e,a,n){e[a]=n.value},r="function"==typeof Symbol?Symbol:{},t=r.iterator||"@@iterator",s=r.asyncIterator||"@@asyncIterator",l=r.toStringTag||"@@toStringTag";function c(e,a,n){return Object.defineProperty(e,a,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[a]}try{c({},"")}catch(e){c=function(e,a,n){return e[a]=n}}function m(e,a,n,i){var r=Object.create((a&&a.prototype instanceof y?a:y).prototype),t=new B(i||[]);return o(r,"_invoke",{value:S(e,n,t)}),r}function u(e,a,n){try{return{type:"normal",arg:e.call(a,n)}}catch(e){return{type:"throw",arg:e}}}a.wrap=m;var d="suspendedStart",p="executing",b="completed",h={};function y(){}function v(){}function _(){}var f={};c(f,t,(function(){return this}));var A=Object.getPrototypeOf,x=A&&A(A(T([])));x&&x!==n&&i.call(x,t)&&(f=x);var k=_.prototype=y.prototype=Object.create(f);function N(e){["next","throw","return"].forEach((function(a){c(e,a,(function(e){return this._invoke(a,e)}))}))}function w(e,a){function n(o,r,t,s){var l=u(e[o],e,r);if("throw"!==l.type){var c=l.arg,m=c.value;return m&&"object"==typeof m&&i.call(m,"__await")?a.resolve(m.__await).then((function(e){n("next",e,t,s)}),(function(e){n("throw",e,t,s)})):a.resolve(m).then((function(e){c.value=e,t(c)}),(function(e){return n("throw",e,t,s)}))}s(l.arg)}var r;o(this,"_invoke",{value:function(e,i){function o(){return new a((function(a,o){n(e,i,a,o)}))}return r=r?r.then(o,o):o()}})}function S(a,n,i){var o=d;return function(r,t){if(o===p)throw Error("Generator is already running");if(o===b){if("throw"===r)throw t;return{value:e,done:!0}}for(i.method=r,i.arg=t;;){var s=i.delegate;if(s){var l=P(s,i);if(l){if(l===h)continue;return l}}if("next"===i.method)i.sent=i._sent=i.arg;else if("throw"===i.method){if(o===d)throw o=b,i.arg;i.dispatchException(i.arg)}else"return"===i.method&&i.abrupt("return",i.arg);o=p;var c=u(a,n,i);if("normal"===c.type){if(o=i.done?b:"suspendedYield",c.arg===h)continue;return{value:c.arg,done:i.done}}"throw"===c.type&&(o=b,i.method="throw",i.arg=c.arg)}}}function P(a,n){var i=n.method,o=a.iterator[i];if(o===e)return n.delegate=null,"throw"===i&&a.iterator.return&&(n.method="return",n.arg=e,P(a,n),"throw"===n.method)||"return"!==i&&(n.method="throw",n.arg=new TypeError("The iterator does not provide a '"+i+"' method")),h;var r=u(o,a.iterator,n.arg);if("throw"===r.type)return n.method="throw",n.arg=r.arg,n.delegate=null,h;var t=r.arg;return t?t.done?(n[a.resultName]=t.value,n.next=a.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,h):t:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,h)}function E(e){var a={tryLoc:e[0]};1 in e&&(a.catchLoc=e[1]),2 in e&&(a.finallyLoc=e[2],a.afterLoc=e[3]),this.tryEntries.push(a)}function C(e){var a=e.completion||{};a.type="normal",delete a.arg,e.completion=a}function B(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(E,this),this.reset(!0)}function T(a){if(a||""===a){var n=a[t];if(n)return n.call(a);if("function"==typeof a.next)return a;if(!isNaN(a.length)){var o=-1,r=function n(){for(;++o<a.length;)if(i.call(a,o))return n.value=a[o],n.done=!1,n;return n.value=e,n.done=!0,n};return r.next=r}}throw new TypeError(typeof a+" is not iterable")}return v.prototype=_,o(k,"constructor",{value:_,configurable:!0}),o(_,"constructor",{value:v,configurable:!0}),v.displayName=c(_,l,"GeneratorFunction"),a.isGeneratorFunction=function(e){var a="function"==typeof e&&e.constructor;return!!a&&(a===v||"GeneratorFunction"===(a.displayName||a.name))},a.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,_):(e.__proto__=_,c(e,l,"GeneratorFunction")),e.prototype=Object.create(k),e},a.awrap=function(e){return{__await:e}},N(w.prototype),c(w.prototype,s,(function(){return this})),a.AsyncIterator=w,a.async=function(e,n,i,o,r){void 0===r&&(r=Promise);var t=new w(m(e,n,i,o),r);return a.isGeneratorFunction(n)?t:t.next().then((function(e){return e.done?e.value:t.next()}))},N(k),c(k,l,"Generator"),c(k,t,(function(){return this})),c(k,"toString",(function(){return"[object Generator]"})),a.keys=function(e){var a=Object(e),n=[];for(var i in a)n.push(i);return n.reverse(),function e(){for(;n.length;){var i=n.pop();if(i in a)return e.value=i,e.done=!1,e}return e.done=!0,e}},a.values=T,B.prototype={constructor:B,reset:function(a){if(this.prev=0,this.next=0,this.sent=this._sent=e,this.done=!1,this.delegate=null,this.method="next",this.arg=e,this.tryEntries.forEach(C),!a)for(var n in this)"t"===n.charAt(0)&&i.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=e)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(a){if(this.done)throw a;var n=this;function o(i,o){return s.type="throw",s.arg=a,n.next=i,o&&(n.method="next",n.arg=e),!!o}for(var r=this.tryEntries.length-1;r>=0;--r){var t=this.tryEntries[r],s=t.completion;if("root"===t.tryLoc)return o("end");if(t.tryLoc<=this.prev){var l=i.call(t,"catchLoc"),c=i.call(t,"finallyLoc");if(l&&c){if(this.prev<t.catchLoc)return o(t.catchLoc,!0);if(this.prev<t.finallyLoc)return o(t.finallyLoc)}else if(l){if(this.prev<t.catchLoc)return o(t.catchLoc,!0)}else{if(!c)throw Error("try statement without catch or finally");if(this.prev<t.finallyLoc)return o(t.finallyLoc)}}}},abrupt:function(e,a){for(var n=this.tryEntries.length-1;n>=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&i.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var r=o;break}}r&&("break"===e||"continue"===e)&&r.tryLoc<=a&&a<=r.finallyLoc&&(r=null);var t=r?r.completion:{};return t.type=e,t.arg=a,r?(this.method="next",this.next=r.finallyLoc,h):this.complete(t)},complete:function(e,a){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&a&&(this.next=a),h},finish:function(e){for(var a=this.tryEntries.length-1;a>=0;--a){var n=this.tryEntries[a];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),C(n),h}},catch:function(e){for(var a=this.tryEntries.length-1;a>=0;--a){var n=this.tryEntries[a];if(n.tryLoc===e){var i=n.completion;if("throw"===i.type){var o=i.arg;C(n)}return o}}throw Error("illegal catch attempt")},delegateYield:function(a,n,i){return this.delegate={iterator:T(a),resultName:n,nextLoc:i},"next"===this.method&&(this.arg=e),h}},a}var b=["# version 2023033100, last updated fri mar 31 07:07:01 2023 utc","aaa","aarp","abarth","abb","abbott","abbvie","abc","able","abogado","abudhabi","ac","academy","accenture","accountant","accountants","aco","actor","ad","ads","adult","ae","aeg","aero","aetna","af","afl","africa","ag","agakhan","agency","ai","aig","airbus","airforce","airtel","akdn","al","alfaromeo","alibaba","alipay","allfinanz","allstate","ally","alsace","alstom","am","amazon","americanexpress","americanfamily","amex","amfam","amica","amsterdam","analytics","android","anquan","anz","ao","aol","apartments","app","apple","aq","aquarelle","ar","arab","aramco","archi","army","arpa","art","arte","as","asda","asia","associates","at","athleta","attorney","au","auction","audi","audible","audio","auspost","author","auto","autos","avianca","aw","aws","ax","axa","az","azure","ba","baby","baidu","banamex","bananarepublic","band","bank","bar","barcelona","barclaycard","barclays","barefoot","bargains","baseball","basketball","bauhaus","bayern","bb","bbc","bbt","bbva","bcg","bcn","bd","be","beats","beauty","beer","bentley","berlin","best","bestbuy","bet","bf","bg","bh","bharti","bi","bible","bid","bike","bing","bingo","bio","biz","bj","black","blackfriday","blockbuster","blog","bloomberg","blue","bm","bms","bmw","bn","bnpparibas","bo","boats","boehringer","bofa","bom","bond","boo","book","booking","bosch","bostik","boston","bot","boutique","box","br","bradesco","bridgestone","broadway","broker","brother","brussels","bs","bt","build","builders","business","buy","buzz","bv","bw","by","bz","bzh","ca","cab","cafe","cal","call","calvinklein","cam","camera","camp","canon","capetown","capital","capitalone","car","caravan","cards","care","career","careers","cars","casa","case","cash","casino","cat","catering","catholic","cba","cbn","cbre","cbs","cc","cd","center","ceo","cern","cf","cfa","cfd","cg","ch","chanel","channel","charity","chase","chat","cheap","chintai","christmas","chrome","church","ci","cipriani","circle","cisco","citadel","citi","citic","city","cityeats","ck","cl","claims","cleaning","click","clinic","clinique","clothing","cloud","club","clubmed","cm","cn","co","coach","codes","coffee","college","cologne","com","comcast","commbank","community","company","compare","computer","comsec","condos","construction","consulting","contact","contractors","cooking","cookingchannel","cool","coop","corsica","country","coupon","coupons","courses","cpa","cr","credit","creditcard","creditunion","cricket","crown","crs","cruise","cruises","cu","cuisinella","cv","cw","cx","cy","cymru","cyou","cz","dabur","dad","dance","data","date","dating","datsun","day","dclk","dds","de","deal","dealer","deals","degree","delivery","dell","deloitte","delta","democrat","dental","dentist","desi","design","dev","dhl","diamonds","diet","digital","direct","directory","discount","discover","dish","diy","dj","dk","dm","dnp","do","docs","doctor","dog","domains","dot","download","drive","dtv","dubai","dunlop","dupont","durban","dvag","dvr","dz","earth","eat","ec","eco","edeka","edu","education","ee","eg","email","emerck","energy","engineer","engineering","enterprises","epson","equipment","er","ericsson","erni","es","esq","estate","et","etisalat","eu","eurovision","eus","events","exchange","expert","exposed","express","extraspace","fage","fail","fairwinds","faith","family","fan","fans","farm","farmers","fashion","fast","fedex","feedback","ferrari","ferrero","fi","fiat","fidelity","fido","film","final","finance","financial","fire","firestone","firmdale","fish","fishing","fit","fitness","fj","fk","flickr","flights","flir","florist","flowers","fly","fm","fo","foo","food","foodnetwork","football","ford","forex","forsale","forum","foundation","fox","fr","free","fresenius","frl","frogans","frontdoor","frontier","ftr","fujitsu","fun","fund","furniture","futbol","fyi","ga","gal","gallery","gallo","gallup","game","games","gap","garden","gay","gb","gbiz","gd","gdn","ge","gea","gent","genting","george","gf","gg","ggee","gh","gi","gift","gifts","gives","giving","gl","glass","gle","global","globo","gm","gmail","gmbh","gmo","gmx","gn","godaddy","gold","goldpoint","golf","goo","goodyear","goog","google","gop","got","gov","gp","gq","gr","grainger","graphics","gratis","green","gripe","grocery","group","gs","gt","gu","guardian","gucci","guge","guide","guitars","guru","gw","gy","hair","hamburg","hangout","haus","hbo","hdfc","hdfcbank","health","healthcare","help","helsinki","here","hermes","hgtv","hiphop","hisamitsu","hitachi","hiv","hk","hkt","hm","hn","hockey","holdings","holiday","homedepot","homegoods","homes","homesense","honda","horse","hospital","host","hosting","hot","hoteles","hotels","hotmail","house","how","hr","hsbc","ht","hu","hughes","hyatt","hyundai","ibm","icbc","ice","icu","id","ie","ieee","ifm","ikano","il","im","imamat","imdb","immo","immobilien","in","inc","industries","infiniti","info","ing","ink","institute","insurance","insure","int","international","intuit","investments","io","ipiranga","iq","ir","irish","is","ismaili","ist","istanbul","it","itau","itv","jaguar","java","jcb","je","jeep","jetzt","jewelry","jio","jll","jm","jmp","jnj","jo","jobs","joburg","jot","joy","jp","jpmorgan","jprs","juegos","juniper","kaufen","kddi","ke","kerryhotels","kerrylogistics","kerryproperties","kfh","kg","kh","ki","kia","kids","kim","kinder","kindle","kitchen","kiwi","km","kn","koeln","komatsu","kosher","kp","kpmg","kpn","kr","krd","kred","kuokgroup","kw","ky","kyoto","kz","la","lacaixa","lamborghini","lamer","lancaster","lancia","land","landrover","lanxess","lasalle","lat","latino","latrobe","law","lawyer","lb","lc","lds","lease","leclerc","lefrak","legal","lego","lexus","lgbt","li","lidl","life","lifeinsurance","lifestyle","lighting","like","lilly","limited","limo","lincoln","link","lipsy","live","living","lk","llc","llp","loan","loans","locker","locus","lol","london","lotte","lotto","love","lpl","lplfinancial","lr","ls","lt","ltd","ltda","lu","lundbeck","luxe","luxury","lv","ly","ma","madrid","maif","maison","makeup","man","management","mango","map","market","marketing","markets","marriott","marshalls","maserati","mattel","mba","mc","mckinsey","md","me","med","media","meet","melbourne","meme","memorial","men","menu","merckmsd","mg","mh","miami","microsoft","mil","mini","mint","mit","mitsubishi","mk","ml","mlb","mls","mm","mma","mn","mo","mobi","mobile","moda","moe","moi","mom","monash","money","monster","mormon","mortgage","moscow","moto","motorcycles","mov","movie","mp","mq","mr","ms","msd","mt","mtn","mtr","mu","museum","music","mutual","mv","mw","mx","my","mz","na","nab","nagoya","name","natura","navy","nba","nc","ne","nec","net","netbank","netflix","network","neustar","new","news","next","nextdirect","nexus","nf","nfl","ng","ngo","nhk","ni","nico","nike","nikon","ninja","nissan","nissay","nl","no","nokia","northwesternmutual","norton","now","nowruz","nowtv","np","nr","nra","nrw","ntt","nu","nyc","nz","obi","observer","office","okinawa","olayan","olayangroup","oldnavy","ollo","om","omega","one","ong","onl","online","ooo","open","oracle","orange","org","organic","origins","osaka","otsuka","ott","ovh","pa","page","panasonic","paris","pars","partners","parts","party","passagens","pay","pccw","pe","pet","pf","pfizer","pg","ph","pharmacy","phd","philips","phone","photo","photography","photos","physio","pics","pictet","pictures","pid","pin","ping","pink","pioneer","pizza","pk","pl","place","play","playstation","plumbing","plus","pm","pn","pnc","pohl","poker","politie","porn","post","pr","pramerica","praxi","press","prime","pro","prod","productions","prof","progressive","promo","properties","property","protection","pru","prudential","ps","pt","pub","pw","pwc","py","qa","qpon","quebec","quest","racing","radio","re","read","realestate","realtor","realty","recipes","red","redstone","redumbrella","rehab","reise","reisen","reit","reliance","ren","rent","rentals","repair","report","republican","rest","restaurant","review","reviews","rexroth","rich","richardli","ricoh","ril","rio","rip","ro","rocher","rocks","rodeo","rogers","room","rs","rsvp","ru","rugby","ruhr","run","rw","rwe","ryukyu","sa","saarland","safe","safety","sakura","sale","salon","samsclub","samsung","sandvik","sandvikcoromant","sanofi","sap","sarl","sas","save","saxo","sb","sbi","sbs","sc","sca","scb","schaeffler","schmidt","scholarships","school","schule","schwarz","science","scot","sd","se","search","seat","secure","security","seek","select","sener","services","seven","sew","sex","sexy","sfr","sg","sh","shangrila","sharp","shaw","shell","shia","shiksha","shoes","shop","shopping","shouji","show","showtime","si","silk","sina","singles","site","sj","sk","ski","skin","sky","skype","sl","sling","sm","smart","smile","sn","sncf","so","soccer","social","softbank","software","sohu","solar","solutions","song","sony","soy","spa","space","sport","spot","sr","srl","ss","st","stada","staples","star","statebank","statefarm","stc","stcgroup","stockholm","storage","store","stream","studio","study","style","su","sucks","supplies","supply","support","surf","surgery","suzuki","sv","swatch","swiss","sx","sy","sydney","systems","sz","tab","taipei","talk","taobao","target","tatamotors","tatar","tattoo","tax","taxi","tc","tci","td","tdk","team","tech","technology","tel","temasek","tennis","teva","tf","tg","th","thd","theater","theatre","tiaa","tickets","tienda","tiffany","tips","tires","tirol","tj","tjmaxx","tjx","tk","tkmaxx","tl","tm","tmall","tn","to","today","tokyo","tools","top","toray","toshiba","total","tours","town","toyota","toys","tr","trade","trading","training","travel","travelchannel","travelers","travelersinsurance","trust","trv","tt","tube","tui","tunes","tushu","tv","tvs","tw","tz","ua","ubank","ubs","ug","uk","unicom","university","uno","uol","ups","us","uy","uz","va","vacations","vana","vanguard","vc","ve","vegas","ventures","verisign","versicherung","vet","vg","vi","viajes","video","vig","viking","villas","vin","vip","virgin","visa","vision","viva","vivo","vlaanderen","vn","vodka","volkswagen","volvo","vote","voting","voto","voyage","vu","vuelos","wales","walmart","walter","wang","wanggou","watch","watches","weather","weatherchannel","webcam","weber","website","wed","wedding","weibo","weir","wf","whoswho","wien","wiki","williamhill","win","windows","wine","winners","wme","wolterskluwer","woodside","work","works","world","wow","ws","wtc","wtf","xbox","xerox","xfinity","xihuan","xin","xn--11b4c3d","xn--1ck2e1b","xn--1qqw23a","xn--2scrj9c","xn--30rr7y","xn--3bst00m","xn--3ds443g","xn--3e0b707e","xn--3hcrj9c","xn--3pxu8k","xn--42c2d9a","xn--45br5cyl","xn--45brj9c","xn--45q11c","xn--4dbrk0ce","xn--4gbrim","xn--54b7fta0cc","xn--55qw42g","xn--55qx5d","xn--5su34j936bgsg","xn--5tzm5g","xn--6frz82g","xn--6qq986b3xl","xn--80adxhks","xn--80ao21a","xn--80aqecdr1a","xn--80asehdb","xn--80aswg","xn--8y0a063a","xn--90a3ac","xn--90ae","xn--90ais","xn--9dbq2a","xn--9et52u","xn--9krt00a","xn--b4w605ferd","xn--bck1b9a5dre4c","xn--c1avg","xn--c2br7g","xn--cck2b3b","xn--cckwcxetd","xn--cg4bki","xn--clchc0ea0b2g2a9gcd","xn--czr694b","xn--czrs0t","xn--czru2d","xn--d1acj3b","xn--d1alf","xn--e1a4c","xn--eckvdtc9d","xn--efvy88h","xn--fct429k","xn--fhbei","xn--fiq228c5hs","xn--fiq64b","xn--fiqs8s","xn--fiqz9s","xn--fjq720a","xn--flw351e","xn--fpcrj9c3d","xn--fzc2c9e2c","xn--fzys8d69uvgm","xn--g2xx48c","xn--gckr3f0f","xn--gecrj9c","xn--gk3at1e","xn--h2breg3eve","xn--h2brj9c","xn--h2brj9c8c","xn--hxt814e","xn--i1b6b1a6a2e","xn--imr513n","xn--io0a7i","xn--j1aef","xn--j1amh","xn--j6w193g","xn--jlq480n2rg","xn--jvr189m","xn--kcrx77d1x4a","xn--kprw13d","xn--kpry57d","xn--kput3i","xn--l1acc","xn--lgbbat1ad8j","xn--mgb9awbf","xn--mgba3a3ejt","xn--mgba3a4f16a","xn--mgba7c0bbn0a","xn--mgbaakc7dvf","xn--mgbaam7a8h","xn--mgbab2bd","xn--mgbah1a3hjkrd","xn--mgbai9azgqp6j","xn--mgbayh7gpa","xn--mgbbh1a","xn--mgbbh1a71e","xn--mgbc0a9azcg","xn--mgbca7dzdo","xn--mgbcpq6gpa1a","xn--mgberp4a5d4ar","xn--mgbgu82a","xn--mgbi4ecexp","xn--mgbpl2fh","xn--mgbt3dhd","xn--mgbtx2b","xn--mgbx4cd0ab","xn--mix891f","xn--mk1bu44c","xn--mxtq1m","xn--ngbc5azd","xn--ngbe9e0a","xn--ngbrx","xn--node","xn--nqv7f","xn--nqv7fs00ema","xn--nyqy26a","xn--o3cw4h","xn--ogbpf8fl","xn--otu796d","xn--p1acf","xn--p1ai","xn--pgbs0dh","xn--pssy2u","xn--q7ce6a","xn--q9jyb4c","xn--qcka1pmc","xn--qxa6a","xn--qxam","xn--rhqv96g","xn--rovu88b","xn--rvc1e0am3e","xn--s9brj9c","xn--ses554g","xn--t60b56a","xn--tckwe","xn--tiq49xqyj","xn--unup4y","xn--vermgensberater-ctb","xn--vermgensberatung-pwb","xn--vhquv","xn--vuq861b","xn--w4r85el8fhu5dnra","xn--w4rs40l","xn--wgbh1c","xn--wgbl6a","xn--xhq521b","xn--xkc2al3hye2a","xn--xkc2dl3a5ee0h","xn--y9a3aq","xn--yfro4i67o","xn--ygbi2ammx","xn--zfr164b","xxx","xyz","yachts","yahoo","yamaxun","yandex","ye","yodobashi","yoga","yokohama","you","youtube","yt","yun","za","zappos","zara","zero","zip","zm","zone","zuerich","zw",""],h=new a.Resolver;h.setServers(["8.8.8.8"]);var y=function(e){return new Promise((function(a){h.resolveMx(e,(function(e,n){try{if(e||!n||0===n.length)console.trace(e),a(!1);else{n.sort((function(e,a){return e.priority-a.priority}));var i=n[0];i.exchange||a(!1),h.resolve(i.exchange,(function(e){e?(console.trace(e),a(!1)):a(!0)}))}}catch(e){console.trace(e),a(!1)}}))}))};function v(e){return _.apply(this,arguments)}function _(){return(_=d(g().mark((function e(a){var n,i,o,r,t,s,l,c;return g().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(o=a.email){e.next=3;break}return e.abrupt("return",!1);case 3:if(o=(o=o.toLowerCase()).replace(/\s/g,""),/^[-!#$%&'*+\/0-9=?A-Z^_a-z`{|}~](\.?[-!#$%&'*+\/0-9=?A-Z^_a-z`{|}~])*@[a-zA-Z0-9](-*\.?[a-zA-Z0-9])*\.[a-zA-Z](-?[a-zA-Z0-9])+$/.test(o)){e.next=8;break}return e.abrupt("return",!1);case 8:if(!(o&&(null!=(n=null==(i=o.match(/\./g))?void 0:i.length)?n:0)>3)){e.next=10;break}return e.abrupt("return",!1);case 10:if(b.includes(function(e){return e.split("@")[1].split(".").pop()}(o))){e.next=13;break}return e.abrupt("return",!1);case 13:if(r=o.indexOf("@"),-1!==(t=o.indexOf("+"))&&t<r&&(o=o.slice(0,t)+o.slice(r)),s=o.split("@"),c=s[1],!((l=s[0]).length<3)){e.next=19;break}return e.abrupt("return",!1);case 19:if(!/^\d+$/.test(l)){e.next=21;break}return e.abrupt("return",!1);case 21:return e.abrupt("return",y(c));case 22:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function f(){return(f=d(g().mark((function e(a){var n,i,o;return g().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:e.prev=0,i=[],o=[],e.t0=g().keys(a);case 4:if((e.t1=e.t0()).done){e.next=16;break}if(!a.hasOwnProperty(n=e.t1.value)){e.next=14;break}return e.next=9,v({email:a[n].email});case 9:if(!e.sent){e.next=13;break}i.push(a[n]),e.next=14;break;case 13:o.push(a[n]);case 14:e.next=4;break;case 16:return e.abrupt("return",{valid:i,invalid:o});case 19:return e.prev=19,e.t2=e.catch(0),e.abrupt("return",{data:[]});case 22:case"end":return e.stop()}}),e,null,[[0,19]])})))).apply(this,arguments)}var A=function(){function e(e){var a=this;this.lowerCase="abcdefghijklmnopqrstuvwxyz",this.upperCase="ABCDEFGHIJKLMNOPQRSTUVWXYZ",this.numbers="1234567890",this.special="`~!@#$%^&*()-=_+[]{}|;\\':\",./<>?",this.hex="123456789ABCDEF",this.getKeys=function(e){var n;e=null!=(n=e)?n:12;for(var i=[],o=0;o<e;o++){var r=Math.floor(Math.random()*a.keys.length);i.push(a.keys[r])}return i};var n=e.encryptKey,i=e.encryptKeySingle;this.keys=e.keys||["D5uBt7z18on1Z1I2","fqIlGkitP9Ik7xmp","tttiKz8PaaExA6gZ"],this.KEYS={encryptKey:null!=n?n:process.env.ENCRYPTION_TWO_WAY_KEY,encryptKeySingle:null!=i?i:process.env.ENCRYPTION_ONE_WAY_KEY},this.ALG={NODE_CIPHER:"aes-256-gcm",AUTH_TAG_BYTE_LEN:16,IV_BYTE_LEN:12,KEY_BYTE_LEN:32,SALT_BYTE_LEN:16}}var a=e.prototype;return a.randomizer=function(){return n.randomBytes(1).readUInt8(0)/255},a.random=function(e){var a=e.length,n=void 0===a?32:a,i=e.useLowerCase,o=e.useUpperCase,r=e.useNumbers,t=e.useSpecial,s=e.useHex,l="",c="";(void 0===i||i)&&(l+=this.lowerCase),(void 0===o||o)&&(l+=this.upperCase),(void 0===r||r)&&(l+=this.numbers),void 0!==t&&t&&(l+=this.special),void 0!==s&&s&&(l+=this.hex);for(var m=0;m<n;m++)c+=l[Math.floor(this.randomizer()*l.length)];return c},a.get=function(e){switch(e){case"decent_pw":return this.random({length:10,useLowerCase:!0,useUpperCase:!0,useNumbers:!0,useSpecial:!1,useHex:!1});case"strong_pw":return this.random({length:15,useLowerCase:!0,useUpperCase:!0,useNumbers:!0,useSpecial:!0,useHex:!1});case"ft_knox_pw":return this.random({length:30,useLowerCase:!0,useUpperCase:!0,useNumbers:!0,useSpecial:!0,useHex:!1});case"ci_key":return this.random({length:32,useLowerCase:!0,useUpperCase:!0,useNumbers:!0,useSpecial:!1,useHex:!1});case"160_wpa":return this.random({length:20,useLowerCase:!0,useUpperCase:!0,useNumbers:!0,useSpecial:!0,useHex:!1});case"504_wpa":return this.random({length:63,useLowerCase:!0,useUpperCase:!0,useNumbers:!0,useSpecial:!0,useHex:!1});case"64_wep":return this.random({length:5,useLowerCase:!1,useUpperCase:!1,useNumbers:!1,useSpecial:!1,useHex:!0});case"128_wep":return this.random({length:13,useLowerCase:!1,useUpperCase:!1,useNumbers:!1,useSpecial:!1,useHex:!0});case"152_wep":return this.random({length:16,useLowerCase:!1,useUpperCase:!1,useNumbers:!1,useSpecial:!1,useHex:!0});case"256_wep":return this.random({length:29,useLowerCase:!1,useUpperCase:!1,useNumbers:!1,useSpecial:!1,useHex:!0});default:throw new Error("No such strength")}},a.salt=function(){return n.randomBytes(this.ALG.SALT_BYTE_LEN).toString("hex")},a.iv=function(){return n.randomBytes(this.ALG.AUTH_TAG_BYTE_LEN)},a.signature=function(){return this.encrypt(this.getKeys(2).join(" "))},a.signatureVerify=function(e){var a=this;if(this.decrypt(e).split(" ").every((function(e){return a.keys.includes(e)})))return!0;throw"Unknown identifier"},a.address=function(){try{return"k"+this.random({length:this.ALG.KEY_BYTE_LEN-1})}catch(e){throw o.trace(e),e}},a.encryptSingle=function(e){try{var a=n.createHmac("sha256",this.KEYS.encryptKeySingle).update(e).digest("hex");return Buffer.from(a).toString("base64")}catch(e){return o.trace(e),Buffer.alloc(16)}},a.encrypt=function(e){try{var a=n.randomBytes(this.ALG.AUTH_TAG_BYTE_LEN),i=n.createCipheriv(this.ALG.NODE_CIPHER,this.KEYS.encryptKey,a),r=i.update(e,"utf8","hex");r+=i.final("hex");var t=i.getAuthTag();return a.toString("hex")+":"+r+":"+t.toString("hex")}catch(e){throw o.trace(e),e}},a.decrypt=function(e){try{var a=e.split(":"),i=a[1],r=a[2],t=Buffer.from(a[0],"hex"),s=Buffer.from(i,"hex"),l=Buffer.from(r,"hex"),c=n.createDecipheriv(this.ALG.NODE_CIPHER,this.KEYS.encryptKey,t);return c.setAuthTag(l),c.update(s,void 0,"utf8")+c.final("utf8")}catch(e){throw o.trace(e),e}},a.password=function(e,a){try{return n.pbkdf2Sync(e,a,1e4,256,"sha256").toString("hex")}catch(e){throw o.trace(e),e}},a.jwtIssue=function(e,a){void 0===e&&(e={});try{return i.sign(p({},e),this.KEYS.encryptKeySingle,{expiresIn:a})}catch(e){throw o.trace(e),e}},a.jwtVerify=function(e){try{return i.verify(e,this.KEYS.encryptKeySingle)}catch(e){throw o.trace(e),e}},a.privateKey=function(){try{return n.generateKeyPairSync("ec",{namedCurve:"secp521r1"}).privateKey.export({type:"pkcs8",format:"pem"})}catch(e){throw o.trace(e),e}},a.publicKey=function(e){return n.createPublicKey(e).export({type:"spki",format:"pem"})},a.publicKeyVerify=function(e){var a=e.privateKey,i=e.publicKey;try{var r=this.KEYS.encryptKey,t=n.createSign("RSA-SHA256");t.update(r);var s=t.sign(a,"base64"),l=n.createVerify("RSA-SHA256");if(l.update(r),l.verify(i,s,"base64"))return!0;throw"Failed to authenticate the public key"}catch(e){throw o.trace(e),e}},a.isBase64Encoded=function(e){try{return Buffer.from(e,"base64").toString("base64")===e}catch(e){return!1}},a.base64Encode=function(e){return Buffer.from(e).toString("base64")},a.base64Decode=function(e){return Buffer.from(e,"base64").toString("utf-8")},e}(),x=function(){var e=d(g().mark((function e(a){return g().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",new Promise((function(e){return setTimeout(e,a)})));case 1:case"end":return e.stop()}}),e)})));return function(a){return e.apply(this,arguments)}}();function k(){return(k=d(g().mark((function e(a,n,i){var o,r,s,l,c,m,u,p,b,h,y,v,_,f,A,k,N,w,S,P,E,C,B,T,L,M,D,j,K,R,z;return g().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:for(_ in n=n&&(null==(o=n)?void 0:o.length)>0?null==(r=n)?void 0:r.map((function(e){return{qty:(null==e?void 0:e.qty)||1,price:(null==e?void 0:e.price)||0,discount:(null==e?void 0:e.discount)||0,tax:(null==e?void 0:e.tax)||0}})):[],0===(i=i?i.map((function(e){return{name:(null==e?void 0:e.name)||"",value:(null==e?void 0:e.value)||0}})):[]).length&&(i=[{name:"None",value:0}]),u=null!=(s=null==a?void 0:a.discountType)?s:"exact",p=null!=(l=null==a?void 0:a.discountPercentage)?l:0,b=null!=(c=null==a?void 0:a.discountAmount)?c:0,h=(null==a?void 0:a.shipping)||0,y=(null==a?void 0:a.adjustment)||0,v=null!=(m=null==a?void 0:a.paid)?m:0,n)n.hasOwnProperty(_)&&(n[_].hasOwnProperty("qty")||(n[_].qty=1),n[_].hasOwnProperty("price")||(n[_].price=0),n[_].hasOwnProperty("discount")||(n[_].discount=0),n[_].tax=n[_].hasOwnProperty("tax")?null==(f=n[_])||null==(f=f.tax)?void 0:f.toString():"0");return k=[],N=[],w=[],S=0,P=0,E=[],C=[],B=new Promise(function(){var e=d(g().mark((function e(a){return g().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return A=t.groupBy(n,(function(e){return e.tax})),e.next=3,x(1);case 3:a({groupedProductsByTax:A});case 4:case"end":return e.stop()}}),e)})));return function(a){return e.apply(this,arguments)}}()),T=new Promise(function(){var e=d(g().mark((function e(a){var n;return g().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:for(n in A)A.hasOwnProperty(n)&&k.push(n);return e.next=3,x(1);case 3:a({taxArray:k});case 4:case"end":return e.stop()}}),e)})));return function(a){return e.apply(this,arguments)}}()),L=new Promise(function(){var e=d(g().mark((function e(a){return g().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return k.forEach((function(e){A[e].forEach((function(a){N.push({rate:e,total:(a.price-a.discount)*a.qty})}))})),e.next=3,x(1);case 3:a({rowSubtotal:N});case 4:case"end":return e.stop()}}),e)})));return function(a){return e.apply(this,arguments)}}()),M=new Promise(function(){var e=d(g().mark((function e(a){return g().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return N.reduce((function(e,a){return e[a.rate]||(e[a.rate]={total:0,rate:a.rate},w.push(e[a.rate])),e[a.rate].total+=a.total,e}),{}),e.next=3,x(1);case 3:a({taxGroupSubtotal:w});case 4:case"end":return e.stop()}}),e)})));return function(a){return e.apply(this,arguments)}}()),D=new Promise((function(e){for(var a in w)w.hasOwnProperty(a)&&(P+=w[a][Object.keys(w[a])[0]]);setTimeout(e,5,{subTotal:P})})),j=new Promise((function(e){if("exact"===u)b=parseFloat(b).toFixed(2);else if("percent"===u){var a=parseFloat(p)/100*P;b=parseFloat(a.toString()).toFixed(2)}else b=0;setTimeout(e,6,{discountAmount:b})})),K=new Promise(function(){var e=d(g().mark((function e(a){var n,i;return g().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:for(n in w)w.hasOwnProperty(n)&&(i=parseFloat(k[n])/100*w[n][Object.keys(w[n])[0]],E.push({rate:parseFloat(k[n]),total:i}));return e.next=3,x(1);case 3:a({taxTotalsObj:E});case 4:case"end":return e.stop()}}),e)})));return function(a){return e.apply(this,arguments)}}()),R=new Promise((function(e){for(var a in w)if(w.hasOwnProperty(a)){var n=t.filter(i,{value:parseFloat(w[a].rate)});w[a].name=n[0].name}e(w)})),z=new Promise(function(){var e=d(g().mark((function e(a){return g().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return E.forEach((function(e){C.push(e.total)})),e.next=3,x(1);case 3:a({unDiscountedTaxTotals:C});case 4:case"end":return e.stop()}}),e)})));return function(a){return e.apply(this,arguments)}}()),e.abrupt("return",Promise.all([B,T,L,M,D,j,K,R,z]).then((function(){S=parseFloat(String(P))-parseFloat(String(b));var e,n=function(e,a,n){for(var o=100-n/a*100,r=[],s=function(a){var n=parseFloat(e[a]),s=n-n*(o/100),l=t.find(i,(function(e){return e.value===parseFloat(k[a])}));r.push({rate:k[a],total:s,name:l&&l.name||""})},l=0;l<e.length;l++)s(l);return r}(C,P,S),o=t.sumBy(n,(function(e){return e.total}));function r(){return 100-(parseFloat(String(P))-parseFloat(String(b)))/parseFloat(String(P))*100}for(var s in w)w.hasOwnProperty(s)&&(w[s].total=(e=w[s].total)-e*(r()/100));var l=t.sum([parseFloat(String(S)),parseFloat(String(o)),parseFloat(h),parseFloat(y)]);return console.log("\n\t\t--------------------------------------\n\t\t--------------------------------------\n\t\tTOTALS - "+(null==a?void 0:a.number)+" - ~ : "+(null==a?void 0:a.objectId)+" ---------\n\t\t--------------------------------------\n\t\t--------------------------------------\n\t\tsubtotal : -------------------------\x3e "+P+"\n\t\tdiscount type : --------------------\x3e "+u+"\n\t\tdiscount discountPercentage : ------\x3e "+(r()?r():0)+"\n\t\tdiscount amount : ------------------\x3e "+b+"\n\t\ttaxable subtotal : -----------------\x3e "+S+"\n\t\tamount to effect discount : --------\x3e "+JSON.stringify(w)+"\n\t\tsales tax (no discount) : ----------\x3e "+t.sumBy(C)+"\n\t\tsales tax (after discount) : -------\x3e "+(o||0)+"\n\t\tsales tax (array grouped) :---------\x3e "+JSON.stringify(n)+"\n\t\tshipping : -------------------------\x3e "+h+"\n\t\tadjustment : -----------------------\x3e "+y+"\n\t\t-------------------------------------\n\t\t-------------------------------------\n\t\tTOTAL : ------------------\x3e>>>>>>>>>> "+(l||0)+"\n\t\t"),{discountType:u,discountAmount:parseFloat(b.toString()),discountPercentage:p,taxGroupSubtotal:w,taxGroupTotal:n,shipping:h,adjustment:y,taxableSubTotal:S,taxesTotal:o,subTotal:P,total:l||0,totalDue:l?Number(l)-Number(v):0}})));case 27:case"end":return e.stop()}}),e)})))).apply(this,arguments)}var N,w=function(){function e(){c.config({DECIMAL_PLACES:2,ROUNDING_MODE:c.ROUND_HALF_UP})}var a=e.prototype;return a.add=function(){for(var e=new c(0),a=arguments.length,n=new Array(a),i=0;i<a;i++)n[i]=arguments[i];return n.forEach((function(a){e=e.plus(new c(a))})),parseFloat(e.toString()).toFixed(2).toString()},a.subtract=function(){if(arguments.length<2)throw new Error("Subtraction requires at least two arguments");for(var e=new c(arguments.length<=0?void 0:arguments[0]),a=1;a<arguments.length;a++)e=e.minus(new c(a<0||arguments.length<=a?void 0:arguments[a]));return parseFloat(e.toString()).toFixed(2).toString()},a.multiply=function(){for(var e=new c(1),a=arguments.length,n=new Array(a),i=0;i<a;i++)n[i]=arguments[i];return n.forEach((function(a){e=e.times(new c(a))})),parseFloat(e.toString()).toFixed(2).toString()},a.divide=function(){if(arguments.length<2)throw new Error("Division requires at least two arguments");for(var e=new c(arguments.length<=0?void 0:arguments[0]),a=1;a<arguments.length;a++){if(0===(a<0||arguments.length<=a?void 0:arguments[a]))throw new Error("Division by zero");e=e.dividedBy(new c(a<0||arguments.length<=a?void 0:arguments[a]))}return parseFloat(e.toString()).toFixed(2).toString()},e}(),S=new w,P=function(){function e(){c.config({DECIMAL_PLACES:20,ROUNDING_MODE:c.ROUND_HALF_UP})}var a=e.prototype;return a.add=function(){for(var e=new c(0),a=arguments.length,n=new Array(a),i=0;i<a;i++)n[i]=arguments[i];return n.forEach((function(a){e=e.plus(new c(a))})),e.toString()},a.subtract=function(){if(arguments.length<2)throw new Error("Subtraction requires at least two arguments");for(var e=new c(arguments.length<=0?void 0:arguments[0]),a=1;a<arguments.length;a++)e=e.minus(new c(a<0||arguments.length<=a?void 0:arguments[a]));return e.toString()},a.multiply=function(){for(var e=new c(1),a=arguments.length,n=new Array(a),i=0;i<a;i++)n[i]=arguments[i];return n.forEach((function(a){e=e.times(new c(a))})),e.toString()},a.divide=function(){if(arguments.length<2)throw new Error("Division requires at least two arguments");for(var e=new c(arguments.length<=0?void 0:arguments[0]),a=1;a<arguments.length;a++){if("0"===(a<0||arguments.length<=a?void 0:arguments[a]))throw new Error("Division by zero");e=e.dividedBy(new c(a<0||arguments.length<=a?void 0:arguments[a]))}return e.toString()},a.isZero=function(e){return e.isZero()||e.isNegative()},a.greaterThan=function(e,a){var n=new c(e),i=new c(a);return n.gt(i)},a.greaterThanOrEqualTo=function(e,a){var n=new c(e),i=new c(a);return n.gte(i)},a.lessThanOrEqualTo=function(e,a){var n=new c(e),i=new c(a);return n.lte(i)},a.lessThan=function(e,a){var n=new c(e),i=new c(a);return n.lt(i)},e}(),E=new P,C=new(function(){function e(e){this.knex=require("knex")(e)}var a=e.prototype;return a.updateTable=function(){var e=d(g().mark((function e(a,n,i){return g().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,this.knex(n).where({objectId:a}).update(i);case 3:return console.log("Updated "+e.sent+" row(s)"),e.abrupt("return",!0);case 8:throw e.prev=8,e.t0=e.catch(0),e.t0;case 11:case"end":return e.stop()}}),e,this,[[0,8]])})));return function(a,n,i){return e.apply(this,arguments)}}(),a.runAnalyzeOnTable=function(){var e=d(g().mark((function e(){return g().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,this.knex.raw("ANALYZE");case 3:e.next=8;break;case 5:throw e.prev=5,e.t0=e.catch(0),e.t0;case 8:case"end":return e.stop()}}),e,this,[[0,5]])})));return function(){return e.apply(this,arguments)}}(),e}())({client:"pg",connection:{user:process.env.PG_DB_USER,host:process.env.PG_DB_HOST,database:process.env.PG_DB_NAME,password:process.env.PG_DB_PASSWORD,port:parseInt(null!=(N=process.env.PG_DB_PORT)?N:"5432",10),ssl:{rejectUnauthorized:!1}}}),B="production"===process.env.APP_ENVIRONMENT,T="sandbox"===process.env.APP_ENVIRONMENT,L="local"===process.env.APP_ENVIRONMENT;exports.Cryptography=A,exports.MathCryptography=P,exports.MathCurrency=w,exports.__DEV__=!1,exports.accountsAsset=[{objectNumber:54007,name:"Software"},{objectNumber:54003,name:"Inventory"},{objectNumber:54006,name:"Buildings"},{objectNumber:54009,name:"Motor Vehicles"},{objectNumber:54005,name:"Office Equipment"},{objectNumber:54008,name:"Office Supplies"},{objectNumber:54001,name:"Cash on Hand"},{objectNumber:54004,name:"Land"},{objectNumber:54002,name:"Fixed"}],exports.accountsEquity=[{objectNumber:54001,name:"Director's Investment"},{objectNumber:54003,name:"Paid-in Capital"},{objectNumber:54004,name:"Retained Profits"},{objectNumber:54002,name:"Startup investment"},{objectNumber:54005,name:"Stock and Bonds"}],exports.accountsLiability=[{objectNumber:53003,name:"Writeoff Account"},{objectNumber:53001,name:"Tax "},{objectNumber:53002,name:"Payroll Taxes"}],exports.accountsPayable=[{objectNumber:52001,name:"Cost of Goods Sold"},{objectNumber:52008,name:"Insurance Expense"},{objectNumber:52005,name:"Salaries"},{objectNumber:52016,name:"Education & Training"},{objectNumber:52013,name:"Telephone – Land Line"},{objectNumber:52007,name:"Bank Charges"},{objectNumber:52017,name:"Repairs & Maintenance"},{objectNumber:52012,name:"Professional Fees"},{objectNumber:52011,name:"Accounting Fees"},{objectNumber:52010,name:"Suppliers Accounts"},{objectNumber:52004,name:"Rental"},{objectNumber:52002,name:"Assert Depreciation"},{objectNumber:52003,name:"Dividends"},{objectNumber:52006,name:"Utilities"},{objectNumber:52015,name:"Employee Claims"},{objectNumber:52009,name:"Advertising Expense"},{objectNumber:52014,name:"Telephone – Wireless"}],exports.accountsReceivable=[{objectNumber:50002,name:"Sales Revenue"},{objectNumber:50001,name:"Customer Accounts"},{objectNumber:50003,name:"Bank Interest Revenue"}],exports.alphabet=["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"],exports.bankAccountType=["Cheque account","Transactional account","Savings account","Fixed / Deposit account","Business account","Resident and Non-Resident account","Other"],exports.bloodGroups=["A+","A-","B+","B-","AB+","AB-","O+","O-"],exports.cms=["insights","pages","users","categories","components","clients","downloads","elements","downloads","widgets","faqs","events","galleries","heros","jobs","media","prompts","statistics","subscribers","taxonomies","teams","settings"],exports.contactType=["employee","supplier","customer","user"],exports.creditNoteStatus=["successful","cancelled"],exports.currencies=[{symbol:"$",name:"US Dollar",symbol_native:"$",decimal_digits:2,rounding:0,iso_code:"USD",name_plural:"US dollars"},{symbol:"CA$",name:"Canadian Dollar",symbol_native:"$",decimal_digits:2,rounding:0,iso_code:"CAD",name_plural:"Canadian dollars"},{symbol:"€",name:"Euro",symbol_native:"€",decimal_digits:2,rounding:0,iso_code:"EUR",name_plural:"euros"},{symbol:"AED",name:"United Arab Emirates Dirham",symbol_native:"د.إ.",decimal_digits:2,rounding:0,iso_code:"AED",name_plural:"UAE dirhams"},{symbol:"Af",name:"Afghan Afghani",symbol_native:"؋",decimal_digits:0,rounding:0,iso_code:"AFN",name_plural:"Afghan Afghanis"},{symbol:"ALL",name:"Albanian Lek",symbol_native:"Lek",decimal_digits:0,rounding:0,iso_code:"ALL",name_plural:"Albanian lekë"},{symbol:"AMD",name:"Armenian Dram",symbol_native:"դր.",decimal_digits:0,rounding:0,iso_code:"AMD",name_plural:"Armenian drams"},{symbol:"ƒ",name:"Netherlands Antillean guilder",symbol_native:"ƒ",decimal_digits:0,rounding:0,iso_code:"ANG",name_plural:"Netherlands Antillean guilder"},{symbol:"Kz",name:"Angolan Kwanza",symbol_native:"Kz",decimal_digits:0,rounding:0,iso_code:"AOA",name_plural:"Angolan Kwanzas"},{symbol:"AR$",name:"Argentine Peso",symbol_native:"$",decimal_digits:2,rounding:0,iso_code:"ARS",name_plural:"Argentine pesos"},{symbol:"AU$",name:"Australian Dollar",symbol_native:"$",decimal_digits:2,rounding:0,iso_code:"AUD",name_plural:"Australian dollars"},{symbol:"man.",name:"Azerbaijani Manat",symbol_native:"ман.",decimal_digits:2,rounding:0,iso_code:"AZN",name_plural:"Azerbaijani manats"},{symbol:"KM",name:"Bosnia-Herzegovina Convertible Mark",symbol_native:"KM",decimal_digits:2,rounding:0,iso_code:"BAM",name_plural:"Bosnia-Herzegovina convertible marks"},{symbol:"Tk",name:"Bangladeshi Taka",symbol_native:"৳",decimal_digits:2,rounding:0,iso_code:"BDT",name_plural:"Bangladeshi takas"},{symbol:"BGN",name:"Bulgarian Lev",symbol_native:"лв.",decimal_digits:2,rounding:0,iso_code:"BGN",name_plural:"Bulgarian leva"},{symbol:"BD",name:"Bahraini Dinar",symbol_native:"د.ب.",decimal_digits:3,rounding:0,iso_code:"BHD",name_plural:"Bahraini dinars"},{symbol:"FBu",name:"Burundian Franc",symbol_native:"FBu",decimal_digits:0,rounding:0,iso_code:"BIF",name_plural:"Burundian francs"},{symbol:"BN$",name:"Brunei Dollar",symbol_native:"$",decimal_digits:2,rounding:0,iso_code:"BND",name_plural:"Brunei dollars"},{symbol:"$",name:"Bermudian Dollar",symbol_native:"$",decimal_digits:2,rounding:0,iso_code:"BMD",name_plural:"Bermudian Dollar"},{symbol:"Bs",name:"Bolivian Boliviano",symbol_native:"Bs",decimal_digits:2,rounding:0,iso_code:"BOB",name_plural:"Bolivian bolivianos"},{symbol:"R$",name:"Brazilian Real",symbol_native:"R$",decimal_digits:2,rounding:0,iso_code:"BRL",name_plural:"Brazilian reals"},{symbol:"Nu.",name:"Bhutanese Ngultrum",symbol_native:"Nu.",decimal_digits:2,rounding:0,iso_code:"BTN",name_plural:"Bhutanese Ngultrum"},{symbol:"BWP",name:"Botswanan Pula",symbol_native:"P",decimal_digits:2,rounding:0,iso_code:"BWP",name_plural:"Botswanan pulas"},{symbol:"BYR",name:"Belarusian Ruble",symbol_native:"BYR",decimal_digits:0,rounding:0,iso_code:"BYR",name_plural:"Belarusian rubles"},{symbol:"BZ$",name:"Belize Dollar",symbol_native:"$",decimal_digits:2,rounding:0,iso_code:"BZD",name_plural:"Belize dollars"},{symbol:"CDF",name:"Congolese Franc",symbol_native:"FrCD",decimal_digits:2,rounding:0,iso_code:"CDF",name_plural:"Congolese francs"},{symbol:"CHF",name:"Swiss Franc",symbol_native:"CHF",decimal_digits:2,rounding:.05,iso_code:"CHF",name_plural:"Swiss francs"},{symbol:"CL$",name:"Chilean Peso",symbol_native:"$",decimal_digits:0,rounding:0,iso_code:"CLP",name_plural:"Chilean pesos"},{symbol:"CN¥",name:"Chinese Yuan",symbol_native:"CN¥",decimal_digits:2,rounding:0,iso_code:"CNY",name_plural:"Chinese yuan"},{symbol:"CO$",name:"Colombian Peso",symbol_native:"$",decimal_digits:0,rounding:0,iso_code:"COP",name_plural:"Colombian pesos"},{symbol:"₡",name:"Costa Rican Colón",symbol_native:"₡",decimal_digits:0,rounding:0,iso_code:"CRC",name_plural:"Costa Rican colóns"},{symbol:"CV$",name:"Cape Verdean Escudo",symbol_native:"CV$",decimal_digits:2,rounding:0,iso_code:"CVE",name_plural:"Cape Verdean escudos"},{symbol:"Kč",name:"Czech Republic Koruna",symbol_native:"Kč",decimal_digits:2,rounding:0,iso_code:"CZK",name_plural:"Czech Republic korunas"},{symbol:"Fdj",name:"Djiboutian Franc",symbol_native:"Fdj",decimal_digits:0,rounding:0,iso_code:"DJF",name_plural:"Djiboutian francs"},{symbol:"Dkr",name:"Danish Krone",symbol_native:"kr",decimal_digits:2,rounding:0,iso_code:"DKK",name_plural:"Danish kroner"},{symbol:"RD$",name:"Dominican Peso",symbol_native:"RD$",decimal_digits:2,rounding:0,iso_code:"DOP",name_plural:"Dominican pesos"},{symbol:"DA",name:"Algerian Dinar",symbol_native:"د.ج.",decimal_digits:2,rounding:0,iso_code:"DZD",name_plural:"Algerian dinars"},{symbol:"Ekr",name:"Estonian Kroon",symbol_native:"kr",decimal_digits:2,rounding:0,iso_code:"EEK",name_plural:"Estonian kroons"},{symbol:"EGP",name:"Egyptian Pound",symbol_native:"ج.م.",decimal_digits:2,rounding:0,iso_code:"EGP",name_plural:"Egyptian pounds"},{symbol:"Nfk",name:"Eritrean Nakfa",symbol_native:"Nfk",decimal_digits:2,rounding:0,iso_code:"ERN",name_plural:"Eritrean nakfas"},{symbol:"Br",name:"Ethiopian Birr",symbol_native:"Br",decimal_digits:2,rounding:0,iso_code:"ETB",name_plural:"Ethiopian birrs"},{symbol:"£",name:"Falkland Island Pound",symbol_native:"£",decimal_digits:2,rounding:0,iso_code:"FKP",name_plural:"Falkland Island Pounds"},{symbol:"£",name:"British Pound Sterling",symbol_native:"£",decimal_digits:2,rounding:0,iso_code:"GBP",name_plural:"British pounds sterling"},{symbol:"GEL",name:"Georgian Lari",symbol_native:"GEL",decimal_digits:2,rounding:0,iso_code:"GEL",name_plural:"Georgian laris"},{symbol:"GH₵",name:"Ghanaian Cedi",symbol_native:"GH₵",decimal_digits:2,rounding:0,iso_code:"GHS",name_plural:"Ghanaian cedis"},{symbol:"£",name:"Gibraltar Pound",symbol_native:"£",decimal_digits:2,rounding:0,iso_code:"GHS1",name_plural:"Gibraltar pound"},{symbol:"FG",name:"Guinean Franc",symbol_native:"FG",decimal_digits:0,rounding:0,iso_code:"GNF",name_plural:"Guinean francs"},{symbol:"GTQ",name:"Guatemalan Quetzal",symbol_native:"Q",decimal_digits:2,rounding:0,iso_code:"GTQ",name_plural:"Guatemalan quetzals"},{symbol:"HK$",name:"Hong Kong Dollar",symbol_native:"$",decimal_digits:2,rounding:0,iso_code:"HKD",name_plural:"Hong Kong dollars"},{symbol:"HNL",name:"Honduran Lempira",symbol_native:"L",decimal_digits:2,rounding:0,iso_code:"HNL",name_plural:"Honduran lempiras"},{symbol:"kn",name:"Croatian Kuna",symbol_native:"kn",decimal_digits:2,rounding:0,iso_code:"HRK",name_plural:"Croatian kunas"},{symbol:"Ft",name:"Hungarian Forint",symbol_native:"Ft",decimal_digits:0,rounding:0,iso_code:"HUF",name_plural:"Hungarian forints"},{symbol:"Rp",name:"Indonesian Rupiah",symbol_native:"Rp",decimal_digits:0,rounding:0,iso_code:"IDR",name_plural:"Indonesian rupiahs"},{symbol:"₪",name:"Israeli New Sheqel",symbol_native:"₪",decimal_digits:2,rounding:0,iso_code:"ILS",name_plural:"Israeli new sheqels"},{symbol:"Rs",name:"Indian Rupee",symbol_native:"টকা",decimal_digits:2,rounding:0,iso_code:"INR",name_plural:"Indian rupees"},{symbol:"IQD",name:"Iraqi Dinar",symbol_native:"د.ع.",decimal_digits:0,rounding:0,iso_code:"IQD",name_plural:"Iraqi dinars"},{symbol:"IRR",name:"Iranian Rial",symbol_native:"﷼",decimal_digits:0,rounding:0,iso_code:"IRR",name_plural:"Iranian rials"},{symbol:"Ikr",name:"Icelandic Króna",symbol_native:"kr",decimal_digits:0,rounding:0,iso_code:"ISK",name_plural:"Icelandic krónur"},{symbol:"J$",name:"Jamaican Dollar",symbol_native:"$",decimal_digits:2,rounding:0,iso_code:"JMD",name_plural:"Jamaican dollars"},{symbol:"JD",name:"Jordanian Dinar",symbol_native:"د.أ.",decimal_digits:3,rounding:0,iso_code:"JOD",name_plural:"Jordanian dinars"},{symbol:"¥",name:"Japanese Yen",symbol_native:"¥",decimal_digits:0,rounding:0,iso_code:"JPY",name_plural:"Japanese yen"},{symbol:"с",name:"Kyrgyzstani som",symbol_native:"с",decimal_digits:2,rounding:0,iso_code:"KGS",name_plural:"Kyrgyzstani som"},{symbol:"Ksh",name:"Kenyan shillings",symbol_native:"Ksh",decimal_digits:2,rounding:0,iso_code:"KES",name_plural:"Kenyan shillings"},{symbol:"KHR",name:"Cambodian Riel",symbol_native:"៛",decimal_digits:2,rounding:0,iso_code:"KHR",name_plural:"Cambodian riels"},{symbol:"CF",name:"Comorian Franc",symbol_native:"FC",decimal_digits:0,rounding:0,iso_code:"KMF",name_plural:"Comorian francs"},{symbol:"₩",name:"South Korean Won",symbol_native:"₩",decimal_digits:0,rounding:0,iso_code:"KRW",name_plural:"South Korean won"},{symbol:"KD",name:"Kuwaiti Dinar",symbol_native:"د.ك.",decimal_digits:3,rounding:0,iso_code:"KWD",name_plural:"Kuwaiti dinars"},{symbol:"$",name:"Cayman Islands dollar",symbol_native:"$",decimal_digits:2,rounding:0,iso_code:"KYD",name_plural:"Cayman Islands dollarS"},{symbol:"KZT",name:"Kazakhstani Tenge",symbol_native:"тңг.",decimal_digits:2,rounding:0,iso_code:"KZT",name_plural:"Kazakhstani tenges"},{symbol:"₭",name:"Lao kip",symbol_native:"₭",decimal_digits:0,rounding:0,iso_code:"LAK",name_plural:"Lao kip"},{symbol:"LB£",name:"Lebanese Pound",symbol_native:"ل.ل.",decimal_digits:0,rounding:0,iso_code:"LBP",name_plural:"Lebanese pounds"},{symbol:"SLRs",name:"Sri Lankan Rupee",symbol_native:"SL Re",decimal_digits:2,rounding:0,iso_code:"LKR",name_plural:"Sri Lankan rupees"},{symbol:"$",name:"Liberian Dollar",symbol_native:"$",decimal_digits:2,rounding:0,iso_code:"LRD",name_plural:"Liberian Dollars"},{symbol:"Lt",name:"Lithuanian Litas",symbol_native:"Lt",decimal_digits:2,rounding:0,iso_code:"LTL",name_plural:"Lithuanian litai"},{symbol:"Ls",name:"Latvian Lats",symbol_native:"Ls",decimal_digits:2,rounding:0,iso_code:"LVL",name_plural:"Latvian lati"},{symbol:"LD",name:"Libyan Dinar",symbol_native:"د.ل.",decimal_digits:3,rounding:0,iso_code:"LYD",name_plural:"Libyan dinars"},{symbol:"MAD",name:"Moroccan Dirham",symbol_native:"د.م.",decimal_digits:2,rounding:0,iso_code:"MAD",name_plural:"Moroccan dirhams"},{symbol:"MDL",name:"Moldovan Leu",symbol_native:"MDL",decimal_digits:2,rounding:0,iso_code:"MDL",name_plural:"Moldovan lei"},{symbol:"MGA",name:"Malagasy Ariary",symbol_native:"MGA",decimal_digits:0,