Built motion from commit 10af8726.|2.6.34
[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 _0x29e7=['bluebird','util','lodash','squel','papaparse','ioredis','../../../mysqldb','../../../config/environment','redis','defaults','localhost','socket.io-emitter','../../../api/cmContact/cmContact.socket','register','argv','undefined','null','Missing\x20filepath\x20parameter!','zipObject','split','contact','isNil','error','The\x20row\x20is\x20empty\x20or\x20the\x20number\x20of\x20parameters\x20does\x20not\x20match\x20the\x20columns!','errors','length','map','message','join','data','firstName','firstName\x20not\x20specified!','phone\x20not\x20specified!','birthDate','YYYY-MM-DD','isValid','birthDate\x20format\x20is\x20invalid,\x20YYYY-MM-DD\x20format\x20is\x20supported!','email','ListId','CompanyId','find','Duplicate\x20Contact','create','keys','then','push','pick','catch','Error\x20while\x20creating\x20contact:\x20','checkHopper','inspect','insert','fromQuery','scheduledAt','createdAt','updatedAt','select','field','phone','NOW()','ContactId','toString','where','deletedAt\x20IS\x20NULL','ListId\x20=\x20?','phone\x20IS\x20NOT\x20NULL','from','\x20=\x20?','into','cm_hopper','cm_contacts','phone\x20NOT\x20IN\x20(?)','calleridnum','cm_hopper_final','id\x20IN\x20?','str','VoiceQueue','findAll','dialCheckDuplicateType','CmList','Lists','get','always','query','VoiceQueueId','onlyIfOpen','sequelize','all','outbound','Campaign','CampaignId','BlackLists','cmContact,\x20%s,\x20%s','generalCheckHopper','finally','emit','resume','resolve','contact:csv_','unlinkSync','Unable\x20to\x20delete\x20temp\x20file:','exit','SIGINT','info','CSV\x20import\x20process\x20stopped!','createReadStream','parse','duplicate','pause','stringify','Error\x20executing\x20contact\x20csv\x20import:'];(function(_0x41a2a3,_0x42fee4){var _0x1f989a=function(_0x13147f){while(--_0x13147f){_0x41a2a3['push'](_0x41a2a3['shift']());}};_0x1f989a(++_0x42fee4);}(_0x29e7,0x14d));var _0x729e=function(_0x408762,_0x1e2f39){_0x408762=_0x408762-0x0;var _0x5e9e3e=_0x29e7[_0x408762];return _0x5e9e3e;};'use strict';var BPromise=require(_0x729e('0x0'));var util=require(_0x729e('0x1'));var _=require(_0x729e('0x2'));var fs=require('fs');var squel=require(_0x729e('0x3'));var Papa=require(_0x729e('0x4'));var Redis=require(_0x729e('0x5'));var db=require(_0x729e('0x6'))['db'];var config=require(_0x729e('0x7'));var logger=require('../../../config/logger')('api');config[_0x729e('0x8')]=_[_0x729e('0x9')](config[_0x729e('0x8')],{'host':_0x729e('0xa'),'port':0x18eb});var socket=require(_0x729e('0xb'))(new Redis(config[_0x729e('0x8')]));require(_0x729e('0xc'))[_0x729e('0xd')](socket);try{if(!process[_0x729e('0xe')][0x2]||process[_0x729e('0xe')][0x2]===_0x729e('0xf')||process[_0x729e('0xe')][0x2]===_0x729e('0x10')){throw new Error(_0x729e('0x11'));}var FILEPATH=process['argv'][0x2];if(!process['argv'][0x3]||process[_0x729e('0xe')][0x3]==='undefined'||process[_0x729e('0xe')][0x3]==='null'||!process[_0x729e('0xe')][0x4]||process[_0x729e('0xe')][0x4]===_0x729e('0xf')||process[_0x729e('0xe')][0x4]===_0x729e('0x10')){throw new Error('Missing\x20binding\x20parameters!');}var FIELDS=_[_0x729e('0x12')](process['argv'][0x3][_0x729e('0x13')](','),process[_0x729e('0xe')][0x4][_0x729e('0x13')](','));if(!process[_0x729e('0xe')][0x5]||process[_0x729e('0xe')][0x5]===_0x729e('0xf')||process[_0x729e('0xe')][0x5]===_0x729e('0x10')){throw new Error('Missing\x20ListId\x20parameter!');}var LISTID=process['argv'][0x5];var COMPANYID=process[_0x729e('0xe')][0x6]&&process[_0x729e('0xe')][0x6]!==_0x729e('0xf')&&process[_0x729e('0xe')][0x6]!==_0x729e('0x10')?process['argv'][0x6]:null;var DUPLICATES=process['argv'][0x7]&&process[_0x729e('0xe')][0x7]!==_0x729e('0xf')&&process[_0x729e('0xe')][0x7]!==_0x729e('0x10')?process[_0x729e('0xe')][0x7]:null;if(!process[_0x729e('0xe')][0x8]||process[_0x729e('0xe')][0x8]===_0x729e('0xf')||process['argv'][0x8]==='null'){throw new Error('Missing\x20socket_timestamp\x20parameter!');}var SOCKET_TIMESTAMP=process[_0x729e('0xe')][0x8];}catch(_0x5c2dd9){logger['error'](_0x5c2dd9);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(_0x543a6d,_0x378870,_0x4c3ec3,_0x27f21c){var _0x3aabff={'message':_0x378870};_0x3aabff[_0x543a6d]=!![];if(_0x4c3ec3){_0x3aabff[_0x729e('0x14')]=_0x4c3ec3;}if(_0x27f21c){_0x3aabff['index']=_0x27f21c;}return _0x3aabff;}function isEmail(_0xc98dfd){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))*$/['test'](_0xc98dfd);}function checkRow(_0x126176,_0x31fe2a,_0x23cbc4){return new BPromise(function(_0x13bfcf,_0x11513f){if(_[_0x729e('0x15')](_0x126176)){return _0x11513f(handleCheckRowError(_0x729e('0x16'),_0x729e('0x17'),null,_0x23cbc4));}if(_0x126176['errors']&&_0x126176[_0x729e('0x18')][_0x729e('0x19')]){var _0x5fb9bc=_[_0x729e('0x1a')](_0x126176[_0x729e('0x18')],_0x729e('0x1b'))[_0x729e('0x1c')](';');return _0x11513f(handleCheckRowError('error',_0x5fb9bc,null,_0x23cbc4));}var _0x41ba30={};for(var _0x5cac62 in FIELDS){if(FIELDS['hasOwnProperty'](_0x5cac62)&&FIELDS[_0x5cac62]){_0x41ba30[_0x5cac62]=_0x126176['data'][0x0][FIELDS[_0x5cac62]]||_0x126176[_0x729e('0x1d')][0x0]['\ufeff'+FIELDS[_0x5cac62]];}}if(!_0x41ba30[_0x729e('0x1e')]){return _0x11513f(handleCheckRowError(_0x729e('0x16'),_0x729e('0x1f'),null,_0x23cbc4));}if(!_0x41ba30['phone']){return _0x11513f(handleCheckRowError('error',_0x729e('0x20'),null,_0x23cbc4));}if(_0x41ba30[_0x729e('0x21')]){var _0x118829=moment(_0x41ba30[_0x729e('0x21')],_0x729e('0x22'));if(!_0x118829[_0x729e('0x23')]()){return _0x11513f(handleCheckRowError(_0x729e('0x16'),_0x729e('0x24'),null,_0x23cbc4));}}if(_0x41ba30[_0x729e('0x25')]){if(!isEmail(_0x41ba30[_0x729e('0x25')])){return _0x11513f(handleCheckRowError(_0x729e('0x16'),'email\x20format\x20is\x20not\x20valid!',null,_0x23cbc4));}}_0x41ba30[_0x729e('0x26')]=LISTID;_0x41ba30[_0x729e('0x27')]=COMPANYID||undefined;if(DUPLICATES&&DUPLICATES[_0x729e('0x19')]&&_0x31fe2a){var _0xe5a798={};for(var _0x10e595=0x0,_0x4f0067=DUPLICATES[_0x729e('0x19')];_0x10e595<_0x4f0067;_0x10e595+=0x1){_0xe5a798[DUPLICATES[_0x10e595]]=_0x41ba30[DUPLICATES[_0x10e595]];}var _0x22b019=_[_0x729e('0x28')](_0x31fe2a,_0xe5a798);if(_0x22b019){return _0x11513f(handleCheckRowError('duplicate',_0x729e('0x29'),_0x22b019,_0x23cbc4));}}return db['CmContact'][_0x729e('0x2a')](_0x41ba30,{'raw':!![],'hooks':![],'fields':_[_0x729e('0x2b')](_0x41ba30)})[_0x729e('0x2c')](function(_0x3182cf){if(DUPLICATES&&DUPLICATES['length']&&_0x31fe2a){_0x31fe2a[_0x729e('0x2d')](_[_0x729e('0x2e')](_0x41ba30,DUPLICATES));}hopperContacts+=(hopperContacts?',':'')+_0x3182cf['id'];return _0x13bfcf();})[_0x729e('0x2f')](function(_0x52eb0a){return _0x11513f(handleCheckRowError('error',_0x729e('0x30')+(_0x52eb0a['message']||JSON['stringify'](_0x52eb0a)),null,_0x23cbc4));});});}function checkHopper(){function _0x1897e8(){return function(_0x8250a9){logger[_0x729e('0x16')]('cmContact',_0x729e('0x31'),util[_0x729e('0x32')](_0x8250a9,{'showHidden':![],'depth':null}));};}var _0x546e53=function(_0x4ef6e5,_0x10ff1a){var _0x3398cd=squel[_0x729e('0x33')]()['into']('cm_hopper')[_0x729e('0x34')](['phone',_0x729e('0x35'),'ContactId',_0x729e('0x26'),_0x10ff1a,_0x729e('0x36'),_0x729e('0x37')],squel[_0x729e('0x38')]()[_0x729e('0x39')](_0x729e('0x3a'),'phone')[_0x729e('0x39')](_0x729e('0x3b'),_0x729e('0x35'))[_0x729e('0x39')]('id',_0x729e('0x3c'))[_0x729e('0x39')](LISTID[_0x729e('0x3d')](),_0x729e('0x26'))['field'](_0x4ef6e5['id'][_0x729e('0x3d')](),_0x10ff1a)[_0x729e('0x39')]('NOW()',_0x729e('0x36'))['field'](_0x729e('0x3b'),_0x729e('0x37'))['from']('cm_contacts')[_0x729e('0x3e')](_0x729e('0x3f'))['where'](_0x729e('0x40'),LISTID[_0x729e('0x3d')]())[_0x729e('0x3e')](_0x729e('0x41'))[_0x729e('0x3e')]('phone\x20NOT\x20IN\x20(?)',squel[_0x729e('0x38')]()[_0x729e('0x39')](_0x729e('0x3a'))[_0x729e('0x42')]('cm_hopper')[_0x729e('0x3e')](_0x10ff1a+_0x729e('0x43'),_0x4ef6e5['id'][_0x729e('0x3d')]())))[_0x729e('0x3d')]();return _0x3398cd;};var _0x1e6280=function(_0x29dd30,_0x14481c){var _0x1b00db=squel[_0x729e('0x33')]()[_0x729e('0x44')](_0x729e('0x45'))[_0x729e('0x34')]([_0x729e('0x3a'),_0x729e('0x35'),_0x729e('0x3c'),'ListId',_0x14481c,'createdAt','updatedAt'],squel[_0x729e('0x38')]()[_0x729e('0x39')](_0x729e('0x3a'),_0x729e('0x3a'))[_0x729e('0x39')]('NOW()',_0x729e('0x35'))[_0x729e('0x39')]('id',_0x729e('0x3c'))['field'](LISTID[_0x729e('0x3d')](),_0x729e('0x26'))[_0x729e('0x39')](_0x29dd30['id'][_0x729e('0x3d')](),_0x14481c)[_0x729e('0x39')](_0x729e('0x3b'),_0x729e('0x36'))[_0x729e('0x39')](_0x729e('0x3b'),_0x729e('0x37'))[_0x729e('0x42')](_0x729e('0x46'))['where'](_0x729e('0x3f'))['where'](_0x729e('0x40'),LISTID['toString']())['where']('id\x20IN\x20?',squel['str'](hopperContacts))['where'](_0x729e('0x41'))[_0x729e('0x3e')](_0x729e('0x47'),squel['select']()[_0x729e('0x39')](_0x729e('0x48'))[_0x729e('0x42')](_0x729e('0x49'))[_0x729e('0x3e')](_0x14481c+_0x729e('0x43'),_0x29dd30['id'][_0x729e('0x3d')]()))[_0x729e('0x3e')](_0x729e('0x47'),squel[_0x729e('0x38')]()['field'](_0x729e('0x3a'))[_0x729e('0x42')](_0x729e('0x45'))[_0x729e('0x3e')](_0x14481c+_0x729e('0x43'),_0x29dd30['id']['toString']())))[_0x729e('0x3d')]();return _0x1b00db;};function _0x92ee73(_0x3e5c0f,_0x34e322){var _0x14106c=squel[_0x729e('0x33')]()[_0x729e('0x44')](_0x729e('0x45'))[_0x729e('0x34')]([_0x729e('0x3a'),_0x729e('0x35'),_0x729e('0x3c'),_0x729e('0x26'),_0x34e322,_0x729e('0x36'),_0x729e('0x37')],squel['select']()[_0x729e('0x39')](_0x729e('0x3a'),_0x729e('0x3a'))['field'](_0x729e('0x3b'),_0x729e('0x35'))[_0x729e('0x39')]('id',_0x729e('0x3c'))['field'](LISTID[_0x729e('0x3d')](),_0x729e('0x26'))['field'](_0x3e5c0f['id'][_0x729e('0x3d')](),_0x34e322)['field'](_0x729e('0x3b'),'createdAt')[_0x729e('0x39')](_0x729e('0x3b'),'updatedAt')['from']('cm_contacts')[_0x729e('0x3e')](_0x729e('0x3f'))[_0x729e('0x3e')](_0x729e('0x40'),LISTID[_0x729e('0x3d')]())['where'](_0x729e('0x4a'),squel['str'](hopperContacts))[_0x729e('0x3e')]('phone\x20IS\x20NOT\x20NULL'))[_0x729e('0x3d')]();return _0x14106c;}function _0x10d438(_0x313544,_0x119055){var _0x41fd3c=squel[_0x729e('0x33')]()[_0x729e('0x44')]('cm_hopper_black')[_0x729e('0x34')]([_0x729e('0x3a'),_0x729e('0x3c'),_0x729e('0x26'),_0x119055,_0x729e('0x36'),_0x729e('0x37')],squel[_0x729e('0x38')]()[_0x729e('0x39')]('phone',_0x729e('0x3a'))[_0x729e('0x39')]('id',_0x729e('0x3c'))[_0x729e('0x39')](LISTID[_0x729e('0x3d')](),_0x729e('0x26'))[_0x729e('0x39')](_0x313544['id'][_0x729e('0x3d')](),_0x119055)[_0x729e('0x39')](_0x729e('0x3b'),_0x729e('0x36'))[_0x729e('0x39')](_0x729e('0x3b'),'updatedAt')[_0x729e('0x42')]('cm_contacts')[_0x729e('0x3e')](_0x729e('0x3f'))['where'](_0x729e('0x40'),LISTID[_0x729e('0x3d')]())[_0x729e('0x3e')](_0x729e('0x4a'),squel[_0x729e('0x4b')](hopperContacts))[_0x729e('0x3e')](_0x729e('0x41')))[_0x729e('0x3d')]();return _0x41fd3c;}return db[_0x729e('0x4c')][_0x729e('0x4d')]({'where':{'type':'outbound'},'attributes':['id',_0x729e('0x4e')],'include':[{'model':db[_0x729e('0x4f')],'as':_0x729e('0x50'),'where':{'id':LISTID}}]})[_0x729e('0x2c')](function(_0x425326){var _0x470222=[];if(_0x425326){var _0x35f072;for(var _0x4d9105=0x0,_0x58d7c7;_0x4d9105<_0x425326['length'];_0x4d9105+=0x1){_0x58d7c7=_0x425326[_0x4d9105][_0x729e('0x51')]({'plain':!![]});switch(_0x58d7c7[_0x729e('0x4e')]){case _0x729e('0x52'):_0x470222[_0x729e('0x2d')](db['sequelize'][_0x729e('0x53')](_0x1e6280(_0x58d7c7,_0x729e('0x54')))['then'](function(){})[_0x729e('0x2f')](_0x1897e8()));break;case _0x729e('0x55'):_0x470222[_0x729e('0x2d')](db[_0x729e('0x56')]['query'](_0x546e53(_0x58d7c7,'VoiceQueueId'))['then'](function(){})[_0x729e('0x2f')](_0x1897e8()));break;default:_0x470222[_0x729e('0x2d')](db[_0x729e('0x56')]['query'](_0x92ee73(_0x58d7c7,'VoiceQueueId'))[_0x729e('0x2c')](function(){})[_0x729e('0x2f')](_0x1897e8()));}}}return _0x470222;})[_0x729e('0x57')]()[_0x729e('0x2c')](function(){return db['VoiceQueue']['findAll']({'where':{'type':_0x729e('0x58')},'attributes':['id'],'include':[{'model':db[_0x729e('0x4f')],'as':'BlackLists','where':{'id':LISTID}}]})[_0x729e('0x2c')](function(_0x50bb26){var _0x1f9fd2=[];if(_0x50bb26){var _0x2d4d01;for(var _0x202b57=0x0,_0x2a8c79;_0x202b57<_0x50bb26[_0x729e('0x19')];_0x202b57+=0x1){_0x2a8c79=_0x50bb26[_0x202b57][_0x729e('0x51')]({'plain':!![]});_0x1f9fd2['push'](db[_0x729e('0x56')][_0x729e('0x53')](_0x10d438(_0x2a8c79,'VoiceQueueId'))[_0x729e('0x2c')](function(){})[_0x729e('0x2f')](_0x1897e8()));}}return _0x1f9fd2;})[_0x729e('0x57')]();})[_0x729e('0x2c')](function(){return db[_0x729e('0x59')][_0x729e('0x4d')]({'attributes':['id',_0x729e('0x4e')],'include':[{'model':db[_0x729e('0x4f')],'as':_0x729e('0x50'),'where':{'id':LISTID}}]})[_0x729e('0x2c')](function(_0x16fa73){var _0x54b86b=[];if(_0x16fa73){for(var _0x215025=0x0,_0x47a9ef;_0x215025<_0x16fa73[_0x729e('0x19')];_0x215025+=0x1){_0x47a9ef=_0x16fa73[_0x215025][_0x729e('0x51')]({'plain':!![]});switch(_0x47a9ef[_0x729e('0x4e')]){case _0x729e('0x52'):_0x54b86b['push'](db['sequelize'][_0x729e('0x53')](_0x1e6280(_0x47a9ef,_0x729e('0x5a')))[_0x729e('0x2c')](function(){})['catch'](_0x1897e8()));break;case _0x729e('0x55'):_0x54b86b['push'](db[_0x729e('0x56')][_0x729e('0x53')](_0x546e53(_0x47a9ef,_0x729e('0x5a')))['then'](function(){})['catch'](_0x1897e8()));break;default:_0x54b86b[_0x729e('0x2d')](db[_0x729e('0x56')][_0x729e('0x53')](_0x92ee73(_0x47a9ef,'CampaignId'))['then'](function(){})[_0x729e('0x2f')](_0x1897e8()));}}}return _0x54b86b;})[_0x729e('0x57')]();})['then'](function(){return db[_0x729e('0x59')][_0x729e('0x4d')]({'attributes':['id'],'include':[{'model':db['CmList'],'as':_0x729e('0x5b'),'where':{'id':LISTID}}]})['then'](function(_0x1a334f){var _0x2e4fd0=[];if(_0x1a334f){for(var _0x4b6d18=0x0,_0x5d489d;_0x4b6d18<_0x1a334f['length'];_0x4b6d18+=0x1){_0x5d489d=_0x1a334f[_0x4b6d18][_0x729e('0x51')]({'plain':!![]});_0x2e4fd0[_0x729e('0x2d')](db[_0x729e('0x56')][_0x729e('0x53')](_0x10d438(_0x5d489d,'CampaignId'))['then'](function(){})[_0x729e('0x2f')](_0x1897e8()));}}return _0x2e4fd0;})[_0x729e('0x57')]();})['catch'](function(_0x51a54b){logger[_0x729e('0x16')](_0x729e('0x5c'),_0x729e('0x5d'),_0x51a54b['message']);});}var processPromises=function(_0x422e6a){return BPromise[_0x729e('0x57')](promises)[_0x729e('0x2c')](function(_0x219b40){})[_0x729e('0x2f')](function(_0x47bc11){logger[_0x729e('0x16')]('Error\x20processing\x20rows\x20block:',JSON['stringify'](_0x47bc11));})[_0x729e('0x5e')](function(){socket[_0x729e('0x5f')]('contact:csv_'+SOCKET_TIMESTAMP,{'success':success,'errors':errors,'duplicates':duplicates,'rows':rows});promises=[];success=0x0;errors=0x0;duplicates=0x0;rows=[];if(_0x422e6a){return _0x422e6a[_0x729e('0x60')]();}});};var endCsv=function(){return BPromise[_0x729e('0x61')]()[_0x729e('0x2c')](function(){if(hopperContacts){return checkHopper();}})['then'](function(){socket['emit'](_0x729e('0x62')+SOCKET_TIMESTAMP,{'finished':!![],'success':success,'errors':errors,'duplicates':duplicates,'rows':rows});try{fs[_0x729e('0x63')](FILEPATH);}catch(_0x5cf3e4){logger[_0x729e('0x16')](_0x729e('0x64'),JSON['stringify'](_0x5cf3e4));}finally{process[_0x729e('0x65')](0x0);}});};process['on'](_0x729e('0x66'),function(){logger[_0x729e('0x67')](_0x729e('0x68'));endCsv();});function main(){return BPromise['resolve']()[_0x729e('0x2c')](function(){if(DUPLICATES){DUPLICATES=DUPLICATES['split'](',');return db['CmContact']['findAll']({'where':{'ListId':LISTID},'attributes':DUPLICATES,'raw':!![]});}})[_0x729e('0x2c')](function(_0x163069){var _0x4eebc5=fs[_0x729e('0x69')](FILEPATH,{'highWaterMark':0xf*0x400*0x400});Papa[_0x729e('0x6a')](_0x4eebc5,{'header':!![],'skipEmptyLines':!![],'step':function(_0x4e3c13,_0x6fd259){total+=0x1;var _0xe4f45d=total;promises[_0x729e('0x2d')](checkRow(_0x4e3c13,_0x163069,_0xe4f45d)['then'](function(){success+=0x1;})[_0x729e('0x2f')](function(_0x5ca185){if(_0x5ca185[_0x729e('0x16')]){errors+=0x1;delete _0x5ca185['error'];}else if(_0x5ca185[_0x729e('0x6b')]){duplicates+=0x1;delete _0x5ca185[_0x729e('0x6b')];}rows[_0x729e('0x2d')](_0x5ca185);}));if(total%0xc8===0x0){_0x6fd259[_0x729e('0x6c')]();return processPromises(_0x6fd259);}},'complete':function(){return processPromises()[_0x729e('0x2c')](function(){logger['info']('CSV\x20parsed\x20correctly!');endCsv();});},'error':function(_0x3747db,_0x411a8b){logger[_0x729e('0x67')]('CSV\x20parse\x20error',JSON[_0x729e('0x6d')](_0x3747db));endCsv();}});})['catch'](function(_0xb67695){logger[_0x729e('0x16')](_0x729e('0x6e'),JSON[_0x729e('0x6d')](_0xb67695));});}main();