b4bf2ae2627356a9c0ceedb5be7051dba6bad20b
[motion2.git] / server / components / import / cm / csv.js
1 // *************************************************************************
2 // *                                                                       *
3 // * xCALLY Motion -  The Omnichannel Contact Center                       *
4 // * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
5 // *                                                                       *
6 // *************************************************************************
7 // *                                                                       *
8 // * Email: info@xcally.com                                                *
9 // * Website: https://www.xcally.com                                       *
10 // *                                                                       *
11 // *************************************************************************
12 // *                                                                       *
13 // * The SOFTWARE PRODUCT is protected by copyright laws and international *
14 // * copyright treaties, as well as other intellectual property laws and   *
15 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                         *
16 // *                                                                       *
17 // *************************************************************************
18 var _0x77a4=['CmContact','createReadStream','duplicate','CSV\x20parse\x20error','Error\x20executing\x20contact\x20csv\x20import:','util','lodash','squel','papaparse','ioredis','../../../mysqldb','../../../config/environment','../../../config/logger','api','redis','defaults','localhost','socket.io-emitter','../../../api/cmContact/cmContact.socket','register','undefined','argv','Missing\x20filepath\x20parameter!','null','Missing\x20binding\x20parameters!','zipObject','split','Missing\x20ListId\x20parameter!','Missing\x20socket_timestamp\x20parameter!','error','index','test','errors','map','message','join','hasOwnProperty','data','firstName','firstName\x20not\x20specified!','phone\x20not\x20specified!','birthDate','isValid','birthDate\x20format\x20is\x20invalid,\x20YYYY-MM-DD\x20format\x20is\x20supported!','email','email\x20format\x20is\x20not\x20valid!','length','find','Duplicate\x20Contact','keys','then','push','pick','Error\x20while\x20creating\x20contact:\x20','stringify','cmContact','checkHopper','inspect','insert','into','cm_hopper','phone','scheduledAt','ContactId','ListId','updatedAt','select','field','NOW()','toString','createdAt','from','cm_contacts','where','deletedAt\x20IS\x20NULL','ListId\x20=\x20?','phone\x20IS\x20NOT\x20NULL','phone\x20NOT\x20IN\x20(?)','\x20=\x20?','fromQuery','id\x20IN\x20?','cm_hopper_final','VoiceQueue','findAll','outbound','CmList','Lists','always','sequelize','query','VoiceQueueId','catch','onlyIfOpen','all','BlackLists','Campaign','get','dialCheckDuplicateType','CampaignId','cmContact,\x20%s,\x20%s','Error\x20processing\x20rows\x20block:','emit','contact:csv_','resolve','unlinkSync','Unable\x20to\x20delete\x20temp\x20file:','exit','SIGINT','info'];(function(_0x2e4e19,_0x493b50){var _0x9ba20b=function(_0x2f6456){while(--_0x2f6456){_0x2e4e19['push'](_0x2e4e19['shift']());}};_0x9ba20b(++_0x493b50);}(_0x77a4,0xdf));var _0x477a=function(_0x3ce2c4,_0x4544c1){_0x3ce2c4=_0x3ce2c4-0x0;var _0x4047c1=_0x77a4[_0x3ce2c4];return _0x4047c1;};'use strict';var BPromise=require('bluebird');var util=require(_0x477a('0x0'));var _=require(_0x477a('0x1'));var fs=require('fs');var squel=require(_0x477a('0x2'));var Papa=require(_0x477a('0x3'));var Redis=require(_0x477a('0x4'));var db=require(_0x477a('0x5'))['db'];var config=require(_0x477a('0x6'));var logger=require(_0x477a('0x7'))(_0x477a('0x8'));config[_0x477a('0x9')]=_[_0x477a('0xa')](config[_0x477a('0x9')],{'host':_0x477a('0xb'),'port':0x18eb});var socket=require(_0x477a('0xc'))(new Redis(config[_0x477a('0x9')]));require(_0x477a('0xd'))[_0x477a('0xe')](socket);try{if(!process['argv'][0x2]||process['argv'][0x2]===_0x477a('0xf')||process[_0x477a('0x10')][0x2]==='null'){throw new Error(_0x477a('0x11'));}var FILEPATH=process[_0x477a('0x10')][0x2];if(!process[_0x477a('0x10')][0x3]||process['argv'][0x3]===_0x477a('0xf')||process[_0x477a('0x10')][0x3]===_0x477a('0x12')||!process[_0x477a('0x10')][0x4]||process[_0x477a('0x10')][0x4]===_0x477a('0xf')||process[_0x477a('0x10')][0x4]===_0x477a('0x12')){throw new Error(_0x477a('0x13'));}var FIELDS=_[_0x477a('0x14')](process[_0x477a('0x10')][0x3][_0x477a('0x15')](','),process[_0x477a('0x10')][0x4][_0x477a('0x15')](','));if(!process['argv'][0x5]||process[_0x477a('0x10')][0x5]==='undefined'||process[_0x477a('0x10')][0x5]===_0x477a('0x12')){throw new Error(_0x477a('0x16'));}var LISTID=process['argv'][0x5];var COMPANYID=process[_0x477a('0x10')][0x6]&&process[_0x477a('0x10')][0x6]!=='undefined'&&process['argv'][0x6]!==_0x477a('0x12')?process[_0x477a('0x10')][0x6]:null;var DUPLICATES=process[_0x477a('0x10')][0x7]&&process[_0x477a('0x10')][0x7]!==_0x477a('0xf')&&process['argv'][0x7]!==_0x477a('0x12')?process[_0x477a('0x10')][0x7]:null;if(!process['argv'][0x8]||process['argv'][0x8]==='undefined'||process[_0x477a('0x10')][0x8]===_0x477a('0x12')){throw new Error(_0x477a('0x17'));}var SOCKET_TIMESTAMP=process[_0x477a('0x10')][0x8];}catch(_0x31c21e){logger[_0x477a('0x18')](_0x31c21e);endCsv();}var total=0x0;var pTotal=0x0;var success=0x0;var errors=0x0;var duplicates=0x0;var rows=[];var hopperContacts='';var promises=[];var index=0x0;var alreadyInvalid=![];function handleCheckRowError(_0x5bc842,_0x3d6b3d,_0x42452f,_0x4a7bf0){var _0xd755ce={'message':_0x3d6b3d};_0xd755ce[_0x5bc842]=!![];if(_0x42452f){_0xd755ce['contact']=_0x42452f;}if(_0x4a7bf0){_0xd755ce[_0x477a('0x19')]=_0x4a7bf0;}return _0xd755ce;}function isEmail(_0x5cdfdb){return/^([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x22([^\x0d\x22\x5c\x80-\xff]|\x5c[\x00-\x7f])*\x22)(\x2e([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x22([^\x0d\x22\x5c\x80-\xff]|\x5c[\x00-\x7f])*\x22))*\x40([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x5b([^\x0d\x5b-\x5d\x80-\xff]|\x5c[\x00-\x7f])*\x5d)(\x2e([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x5b([^\x0d\x5b-\x5d\x80-\xff]|\x5c[\x00-\x7f])*\x5d))*$/[_0x477a('0x1a')](_0x5cdfdb);}function checkRow(_0x1e6723,_0x4721fb,_0x37dd20){return new BPromise(function(_0x5a8282,_0x5b34c2){if(_['isNil'](_0x1e6723)){return _0x5b34c2(handleCheckRowError(_0x477a('0x18'),'The\x20row\x20is\x20empty\x20or\x20the\x20number\x20of\x20parameters\x20does\x20not\x20match\x20the\x20columns!',null,_0x37dd20));}if(_0x1e6723[_0x477a('0x1b')]&&_0x1e6723['errors']['length']){var _0x54ce80=_[_0x477a('0x1c')](_0x1e6723[_0x477a('0x1b')],_0x477a('0x1d'))[_0x477a('0x1e')](';');return _0x5b34c2(handleCheckRowError('error',_0x54ce80,null,_0x37dd20));}var _0x112782={};for(var _0x521f75 in FIELDS){if(FIELDS[_0x477a('0x1f')](_0x521f75)&&FIELDS[_0x521f75]){_0x112782[_0x521f75]=_0x1e6723[_0x477a('0x20')][0x0][FIELDS[_0x521f75]]||_0x1e6723[_0x477a('0x20')][0x0]['\ufeff'+FIELDS[_0x521f75]];}}if(!_0x112782[_0x477a('0x21')]){return _0x5b34c2(handleCheckRowError(_0x477a('0x18'),_0x477a('0x22'),null,_0x37dd20));}if(!_0x112782['phone']){return _0x5b34c2(handleCheckRowError('error',_0x477a('0x23'),null,_0x37dd20));}if(_0x112782[_0x477a('0x24')]){var _0x46e0e=moment(_0x112782['birthDate'],'YYYY-MM-DD');if(!_0x46e0e[_0x477a('0x25')]()){return _0x5b34c2(handleCheckRowError(_0x477a('0x18'),_0x477a('0x26'),null,_0x37dd20));}}if(_0x112782[_0x477a('0x27')]){if(!isEmail(_0x112782[_0x477a('0x27')])){return _0x5b34c2(handleCheckRowError(_0x477a('0x18'),_0x477a('0x28'),null,_0x37dd20));}}_0x112782['ListId']=LISTID;_0x112782['CompanyId']=COMPANYID||undefined;if(DUPLICATES&&DUPLICATES[_0x477a('0x29')]&&_0x4721fb){var _0x3dd01f={};for(var _0x5ca8cf=0x0,_0x3810f0=DUPLICATES['length'];_0x5ca8cf<_0x3810f0;_0x5ca8cf+=0x1){_0x3dd01f[DUPLICATES[_0x5ca8cf]]=_0x112782[DUPLICATES[_0x5ca8cf]];}var _0x306bf5=_[_0x477a('0x2a')](_0x4721fb,_0x3dd01f);if(_0x306bf5){return _0x5b34c2(handleCheckRowError('duplicate',_0x477a('0x2b'),_0x306bf5,_0x37dd20));}}return db['CmContact']['create'](_0x112782,{'raw':!![],'hooks':![],'fields':_[_0x477a('0x2c')](_0x112782)})[_0x477a('0x2d')](function(_0x130349){if(DUPLICATES&&DUPLICATES[_0x477a('0x29')]&&_0x4721fb){_0x4721fb[_0x477a('0x2e')](_[_0x477a('0x2f')](_0x112782,DUPLICATES));}hopperContacts+=(hopperContacts?',':'')+_0x130349['id'];return _0x5a8282();})['catch'](function(_0x5e61ae){return _0x5b34c2(handleCheckRowError('error',_0x477a('0x30')+(_0x5e61ae['message']||JSON[_0x477a('0x31')](_0x5e61ae)),null,_0x37dd20));});});}function checkHopper(){function _0x518916(){return function(_0x5c4942){logger[_0x477a('0x18')](_0x477a('0x32'),_0x477a('0x33'),util[_0x477a('0x34')](_0x5c4942,{'showHidden':![],'depth':null}));};}var _0x17ed33=function(_0x30ed0c,_0x1c5468){var _0x498eb9=squel[_0x477a('0x35')]()[_0x477a('0x36')](_0x477a('0x37'))['fromQuery']([_0x477a('0x38'),_0x477a('0x39'),_0x477a('0x3a'),_0x477a('0x3b'),_0x1c5468,'createdAt',_0x477a('0x3c')],squel[_0x477a('0x3d')]()[_0x477a('0x3e')](_0x477a('0x38'),_0x477a('0x38'))[_0x477a('0x3e')](_0x477a('0x3f'),_0x477a('0x39'))[_0x477a('0x3e')]('id','ContactId')[_0x477a('0x3e')](LISTID[_0x477a('0x40')](),'ListId')['field'](_0x30ed0c['id'][_0x477a('0x40')](),_0x1c5468)[_0x477a('0x3e')](_0x477a('0x3f'),_0x477a('0x41'))['field'](_0x477a('0x3f'),'updatedAt')[_0x477a('0x42')](_0x477a('0x43'))[_0x477a('0x44')](_0x477a('0x45'))[_0x477a('0x44')](_0x477a('0x46'),LISTID[_0x477a('0x40')]())['where'](_0x477a('0x47'))['where'](_0x477a('0x48'),squel[_0x477a('0x3d')]()[_0x477a('0x3e')](_0x477a('0x38'))[_0x477a('0x42')](_0x477a('0x37'))[_0x477a('0x44')](_0x1c5468+_0x477a('0x49'),_0x30ed0c['id'][_0x477a('0x40')]())))[_0x477a('0x40')]();return _0x498eb9;};var _0x1476e3=function(_0x23f0e6,_0x775423){var _0x53b194=squel['insert']()['into'](_0x477a('0x37'))[_0x477a('0x4a')]([_0x477a('0x38'),'scheduledAt',_0x477a('0x3a'),_0x477a('0x3b'),_0x775423,_0x477a('0x41'),'updatedAt'],squel[_0x477a('0x3d')]()[_0x477a('0x3e')]('phone',_0x477a('0x38'))[_0x477a('0x3e')](_0x477a('0x3f'),_0x477a('0x39'))[_0x477a('0x3e')]('id',_0x477a('0x3a'))['field'](LISTID[_0x477a('0x40')](),_0x477a('0x3b'))[_0x477a('0x3e')](_0x23f0e6['id'][_0x477a('0x40')](),_0x775423)[_0x477a('0x3e')](_0x477a('0x3f'),'createdAt')['field'](_0x477a('0x3f'),'updatedAt')[_0x477a('0x42')]('cm_contacts')['where'](_0x477a('0x45'))[_0x477a('0x44')](_0x477a('0x46'),LISTID[_0x477a('0x40')]())[_0x477a('0x44')](_0x477a('0x4b'),squel['str'](hopperContacts))[_0x477a('0x44')]('phone\x20IS\x20NOT\x20NULL')[_0x477a('0x44')](_0x477a('0x48'),squel[_0x477a('0x3d')]()[_0x477a('0x3e')]('calleridnum')[_0x477a('0x42')](_0x477a('0x4c'))[_0x477a('0x44')](_0x775423+_0x477a('0x49'),_0x23f0e6['id'][_0x477a('0x40')]()))[_0x477a('0x44')](_0x477a('0x48'),squel['select']()[_0x477a('0x3e')](_0x477a('0x38'))[_0x477a('0x42')](_0x477a('0x37'))['where'](_0x775423+_0x477a('0x49'),_0x23f0e6['id'][_0x477a('0x40')]())))[_0x477a('0x40')]();return _0x53b194;};function _0xa9772(_0x9cb862,_0x53d38f){var _0xf54e14=squel[_0x477a('0x35')]()[_0x477a('0x36')](_0x477a('0x37'))['fromQuery'](['phone','scheduledAt',_0x477a('0x3a'),'ListId',_0x53d38f,_0x477a('0x41'),_0x477a('0x3c')],squel['select']()[_0x477a('0x3e')](_0x477a('0x38'),_0x477a('0x38'))[_0x477a('0x3e')](_0x477a('0x3f'),_0x477a('0x39'))['field']('id',_0x477a('0x3a'))[_0x477a('0x3e')](LISTID[_0x477a('0x40')](),_0x477a('0x3b'))[_0x477a('0x3e')](_0x9cb862['id']['toString'](),_0x53d38f)[_0x477a('0x3e')](_0x477a('0x3f'),_0x477a('0x41'))[_0x477a('0x3e')](_0x477a('0x3f'),_0x477a('0x3c'))[_0x477a('0x42')](_0x477a('0x43'))[_0x477a('0x44')](_0x477a('0x45'))[_0x477a('0x44')]('ListId\x20=\x20?',LISTID['toString']())['where'](_0x477a('0x4b'),squel['str'](hopperContacts))[_0x477a('0x44')](_0x477a('0x47')))[_0x477a('0x40')]();return _0xf54e14;}function _0x189ad3(_0x5992a0,_0x426fd3){var _0x3914d1=squel['insert']()[_0x477a('0x36')]('cm_hopper_black')[_0x477a('0x4a')]([_0x477a('0x38'),_0x477a('0x3a'),_0x477a('0x3b'),_0x426fd3,'createdAt','updatedAt'],squel['select']()[_0x477a('0x3e')](_0x477a('0x38'),'phone')['field']('id',_0x477a('0x3a'))[_0x477a('0x3e')](LISTID['toString'](),_0x477a('0x3b'))[_0x477a('0x3e')](_0x5992a0['id']['toString'](),_0x426fd3)[_0x477a('0x3e')](_0x477a('0x3f'),_0x477a('0x41'))[_0x477a('0x3e')](_0x477a('0x3f'),_0x477a('0x3c'))[_0x477a('0x42')]('cm_contacts')[_0x477a('0x44')](_0x477a('0x45'))[_0x477a('0x44')](_0x477a('0x46'),LISTID[_0x477a('0x40')]())['where'](_0x477a('0x4b'),squel['str'](hopperContacts))[_0x477a('0x44')](_0x477a('0x47')))[_0x477a('0x40')]();return _0x3914d1;}return db[_0x477a('0x4d')][_0x477a('0x4e')]({'where':{'type':_0x477a('0x4f')},'attributes':['id','dialCheckDuplicateType'],'include':[{'model':db[_0x477a('0x50')],'as':_0x477a('0x51'),'where':{'id':LISTID}}]})['then'](function(_0x2f965c){var _0x25755c=[];if(_0x2f965c){var _0x55f2db;for(var _0x51107c=0x0,_0x39a45b;_0x51107c<_0x2f965c[_0x477a('0x29')];_0x51107c+=0x1){_0x39a45b=_0x2f965c[_0x51107c]['get']({'plain':!![]});switch(_0x39a45b['dialCheckDuplicateType']){case _0x477a('0x52'):_0x25755c[_0x477a('0x2e')](db[_0x477a('0x53')][_0x477a('0x54')](_0x1476e3(_0x39a45b,_0x477a('0x55')))[_0x477a('0x2d')](function(){})[_0x477a('0x56')](_0x518916()));break;case _0x477a('0x57'):_0x25755c[_0x477a('0x2e')](db[_0x477a('0x53')][_0x477a('0x54')](_0x17ed33(_0x39a45b,_0x477a('0x55')))[_0x477a('0x2d')](function(){})[_0x477a('0x56')](_0x518916()));break;default:_0x25755c[_0x477a('0x2e')](db['sequelize'][_0x477a('0x54')](_0xa9772(_0x39a45b,_0x477a('0x55')))[_0x477a('0x2d')](function(){})['catch'](_0x518916()));}}}return _0x25755c;})[_0x477a('0x58')]()[_0x477a('0x2d')](function(){return db[_0x477a('0x4d')][_0x477a('0x4e')]({'where':{'type':_0x477a('0x4f')},'attributes':['id'],'include':[{'model':db[_0x477a('0x50')],'as':_0x477a('0x59'),'where':{'id':LISTID}}]})[_0x477a('0x2d')](function(_0x1a4a2c){var _0x4b77ec=[];if(_0x1a4a2c){var _0xf18e0d;for(var _0x3428e6=0x0,_0x574b0e;_0x3428e6<_0x1a4a2c['length'];_0x3428e6+=0x1){_0x574b0e=_0x1a4a2c[_0x3428e6]['get']({'plain':!![]});_0x4b77ec[_0x477a('0x2e')](db[_0x477a('0x53')][_0x477a('0x54')](_0x189ad3(_0x574b0e,'VoiceQueueId'))[_0x477a('0x2d')](function(){})['catch'](_0x518916()));}}return _0x4b77ec;})['all']();})[_0x477a('0x2d')](function(){return db[_0x477a('0x5a')][_0x477a('0x4e')]({'attributes':['id','dialCheckDuplicateType'],'include':[{'model':db['CmList'],'as':'Lists','where':{'id':LISTID}}]})[_0x477a('0x2d')](function(_0x26ffb9){var _0x1c9cd5=[];if(_0x26ffb9){for(var _0x4ddb9e=0x0,_0x1297f4;_0x4ddb9e<_0x26ffb9[_0x477a('0x29')];_0x4ddb9e+=0x1){_0x1297f4=_0x26ffb9[_0x4ddb9e][_0x477a('0x5b')]({'plain':!![]});switch(_0x1297f4[_0x477a('0x5c')]){case _0x477a('0x52'):_0x1c9cd5[_0x477a('0x2e')](db[_0x477a('0x53')]['query'](_0x1476e3(_0x1297f4,'CampaignId'))[_0x477a('0x2d')](function(){})[_0x477a('0x56')](_0x518916()));break;case _0x477a('0x57'):_0x1c9cd5[_0x477a('0x2e')](db[_0x477a('0x53')]['query'](_0x17ed33(_0x1297f4,_0x477a('0x5d')))[_0x477a('0x2d')](function(){})[_0x477a('0x56')](_0x518916()));break;default:_0x1c9cd5['push'](db[_0x477a('0x53')]['query'](_0xa9772(_0x1297f4,_0x477a('0x5d')))[_0x477a('0x2d')](function(){})['catch'](_0x518916()));}}}return _0x1c9cd5;})['all']();})[_0x477a('0x2d')](function(){return db[_0x477a('0x5a')][_0x477a('0x4e')]({'attributes':['id'],'include':[{'model':db['CmList'],'as':_0x477a('0x59'),'where':{'id':LISTID}}]})[_0x477a('0x2d')](function(_0x5411a4){var _0x3712e5=[];if(_0x5411a4){for(var _0x313611=0x0,_0x56dab7;_0x313611<_0x5411a4[_0x477a('0x29')];_0x313611+=0x1){_0x56dab7=_0x5411a4[_0x313611][_0x477a('0x5b')]({'plain':!![]});_0x3712e5['push'](db[_0x477a('0x53')]['query'](_0x189ad3(_0x56dab7,'CampaignId'))[_0x477a('0x2d')](function(){})['catch'](_0x518916()));}}return _0x3712e5;})['all']();})['catch'](function(_0x3e34d4){logger[_0x477a('0x18')](_0x477a('0x5e'),'generalCheckHopper',_0x3e34d4['message']);});}var processPromises=function(_0x594dae){return BPromise[_0x477a('0x58')](promises)['then'](function(_0x12bf09){})[_0x477a('0x56')](function(_0x4b5549){logger[_0x477a('0x18')](_0x477a('0x5f'),JSON[_0x477a('0x31')](_0x4b5549));})['finally'](function(){socket[_0x477a('0x60')](_0x477a('0x61')+SOCKET_TIMESTAMP,{'success':success,'errors':errors,'duplicates':duplicates,'rows':rows});promises=[];success=0x0;errors=0x0;duplicates=0x0;rows=[];if(_0x594dae){return _0x594dae['resume']();}});};var endCsv=function(){return BPromise[_0x477a('0x62')]()[_0x477a('0x2d')](function(){if(hopperContacts){return checkHopper();}})[_0x477a('0x2d')](function(){socket[_0x477a('0x60')](_0x477a('0x61')+SOCKET_TIMESTAMP,{'finished':!![],'success':success,'errors':errors,'duplicates':duplicates,'rows':rows});try{fs[_0x477a('0x63')](FILEPATH);}catch(_0x2ba9ba){logger['error'](_0x477a('0x64'),JSON[_0x477a('0x31')](_0x2ba9ba));}finally{process[_0x477a('0x65')](0x0);}});};process['on'](_0x477a('0x66'),function(){logger[_0x477a('0x67')]('CSV\x20import\x20process\x20stopped!');endCsv();});function main(){return BPromise['resolve']()['then'](function(){if(DUPLICATES){DUPLICATES=DUPLICATES[_0x477a('0x15')](',');return db[_0x477a('0x68')]['findAll']({'where':{'ListId':LISTID},'attributes':DUPLICATES,'raw':!![]});}})['then'](function(_0x1fcd32){var _0x51dca8=fs[_0x477a('0x69')](FILEPATH,{'highWaterMark':0xf*0x400*0x400});Papa['parse'](_0x51dca8,{'header':!![],'skipEmptyLines':!![],'step':function(_0x4c6e9b,_0x1fe9d2){total+=0x1;var _0x31e111=total;promises[_0x477a('0x2e')](checkRow(_0x4c6e9b,_0x1fcd32,_0x31e111)[_0x477a('0x2d')](function(){success+=0x1;})['catch'](function(_0x3e9866){if(_0x3e9866[_0x477a('0x18')]){errors+=0x1;delete _0x3e9866[_0x477a('0x18')];}else if(_0x3e9866[_0x477a('0x6a')]){duplicates+=0x1;delete _0x3e9866[_0x477a('0x6a')];}rows[_0x477a('0x2e')](_0x3e9866);}));if(total%0xc8===0x0){_0x1fe9d2['pause']();return processPromises(_0x1fe9d2);}},'complete':function(){return processPromises()[_0x477a('0x2d')](function(){logger[_0x477a('0x67')]('CSV\x20parsed\x20correctly!');endCsv();});},'error':function(_0x3b39bd,_0x1a89e2){logger[_0x477a('0x67')](_0x477a('0x6b'),JSON[_0x477a('0x31')](_0x3b39bd));endCsv();}});})['catch'](function(_0x504dd3){logger[_0x477a('0x18')](_0x477a('0x6c'),JSON[_0x477a('0x31')](_0x504dd3));});}main();