Built motion from commit 1ea47bf4.|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 _0x559c=['cmContact,\x20%s,\x20%s','generalCheckHopper','Error\x20processing\x20rows\x20block:','finally','emit','contact:csv_','resume','resolve','unlinkSync','Unable\x20to\x20delete\x20temp\x20file:','SIGINT','info','CSV\x20import\x20process\x20stopped!','parse','pause','CSV\x20parse\x20error','Error\x20executing\x20contact\x20csv\x20import:','bluebird','util','squel','papaparse','../../../config/logger','api','redis','defaults','localhost','../../../api/cmContact/cmContact.socket','register','argv','undefined','null','Missing\x20filepath\x20parameter!','Missing\x20binding\x20parameters!','zipObject','split','contact','error','The\x20row\x20is\x20empty\x20or\x20the\x20number\x20of\x20parameters\x20does\x20not\x20match\x20the\x20columns!','errors','length','message','join','hasOwnProperty','data','firstName','firstName\x20not\x20specified!','phone','phone\x20not\x20specified!','birthDate','YYYY-MM-DD','birthDate\x20format\x20is\x20invalid,\x20YYYY-MM-DD\x20format\x20is\x20supported!','email','email\x20format\x20is\x20not\x20valid!','ListId','CompanyId','duplicate','Duplicate\x20Contact','CmContact','keys','then','pick','Error\x20while\x20creating\x20contact:\x20','stringify','cmContact','checkHopper','inspect','cm_hopper','fromQuery','scheduledAt','updatedAt','select','field','NOW()','ContactId','toString','createdAt','from','cm_contacts','where','ListId\x20=\x20?','phone\x20IS\x20NOT\x20NULL','phone\x20NOT\x20IN\x20(?)','\x20=\x20?','insert','into','deletedAt\x20IS\x20NULL','id\x20IN\x20?','str','calleridnum','cm_hopper_final','cm_hopper_black','VoiceQueue','dialCheckDuplicateType','CmList','Lists','get','push','sequelize','query','VoiceQueueId','catch','all','findAll','outbound','BlackLists','Campaign','always','CampaignId'];(function(_0x575374,_0x48341f){var _0x1403c1=function(_0x244c1e){while(--_0x244c1e){_0x575374['push'](_0x575374['shift']());}};_0x1403c1(++_0x48341f);}(_0x559c,0x155));var _0xc559=function(_0x11c331,_0x523ccf){_0x11c331=_0x11c331-0x0;var _0x1b89e1=_0x559c[_0x11c331];return _0x1b89e1;};'use strict';var BPromise=require(_0xc559('0x0'));var util=require(_0xc559('0x1'));var _=require('lodash');var fs=require('fs');var squel=require(_0xc559('0x2'));var Papa=require(_0xc559('0x3'));var Redis=require('ioredis');var db=require('../../../mysqldb')['db'];var config=require('../../../config/environment');var logger=require(_0xc559('0x4'))(_0xc559('0x5'));config[_0xc559('0x6')]=_[_0xc559('0x7')](config['redis'],{'host':_0xc559('0x8'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));require(_0xc559('0x9'))[_0xc559('0xa')](socket);try{if(!process[_0xc559('0xb')][0x2]||process[_0xc559('0xb')][0x2]===_0xc559('0xc')||process[_0xc559('0xb')][0x2]===_0xc559('0xd')){throw new Error(_0xc559('0xe'));}var FILEPATH=process['argv'][0x2];if(!process['argv'][0x3]||process['argv'][0x3]===_0xc559('0xc')||process['argv'][0x3]===_0xc559('0xd')||!process[_0xc559('0xb')][0x4]||process[_0xc559('0xb')][0x4]===_0xc559('0xc')||process[_0xc559('0xb')][0x4]===_0xc559('0xd')){throw new Error(_0xc559('0xf'));}var FIELDS=_[_0xc559('0x10')](process[_0xc559('0xb')][0x3][_0xc559('0x11')](','),process[_0xc559('0xb')][0x4]['split'](','));if(!process['argv'][0x5]||process[_0xc559('0xb')][0x5]===_0xc559('0xc')||process[_0xc559('0xb')][0x5]===_0xc559('0xd')){throw new Error('Missing\x20ListId\x20parameter!');}var LISTID=process[_0xc559('0xb')][0x5];var COMPANYID=process[_0xc559('0xb')][0x6]&&process[_0xc559('0xb')][0x6]!==_0xc559('0xc')&&process['argv'][0x6]!=='null'?process[_0xc559('0xb')][0x6]:null;var DUPLICATES=process['argv'][0x7]&&process[_0xc559('0xb')][0x7]!==_0xc559('0xc')&&process['argv'][0x7]!==_0xc559('0xd')?process[_0xc559('0xb')][0x7]:null;if(!process['argv'][0x8]||process['argv'][0x8]==='undefined'||process[_0xc559('0xb')][0x8]==='null'){throw new Error('Missing\x20socket_timestamp\x20parameter!');}var SOCKET_TIMESTAMP=process[_0xc559('0xb')][0x8];}catch(_0x45b853){logger['error'](_0x45b853);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(_0x50ddd5,_0x469220,_0x4e07dc,_0x26bdbc){var _0x538ba4={'message':_0x469220};_0x538ba4[_0x50ddd5]=!![];if(_0x4e07dc){_0x538ba4[_0xc559('0x12')]=_0x4e07dc;}if(_0x26bdbc){_0x538ba4['index']=_0x26bdbc;}return _0x538ba4;}function isEmail(_0xd6e7e9){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'](_0xd6e7e9);}function checkRow(_0x195c62,_0x3935c4,_0x3686ad){return new BPromise(function(_0x4c5220,_0x2c58c3){if(_['isNil'](_0x195c62)){return _0x2c58c3(handleCheckRowError(_0xc559('0x13'),_0xc559('0x14'),null,_0x3686ad));}if(_0x195c62[_0xc559('0x15')]&&_0x195c62[_0xc559('0x15')][_0xc559('0x16')]){var _0x2122c0=_['map'](_0x195c62[_0xc559('0x15')],_0xc559('0x17'))[_0xc559('0x18')](';');return _0x2c58c3(handleCheckRowError('error',_0x2122c0,null,_0x3686ad));}var _0x453264={};for(var _0x50dbe9 in FIELDS){if(FIELDS[_0xc559('0x19')](_0x50dbe9)&&FIELDS[_0x50dbe9]){_0x453264[_0x50dbe9]=_0x195c62[_0xc559('0x1a')][0x0][FIELDS[_0x50dbe9]]||_0x195c62[_0xc559('0x1a')][0x0]['\ufeff'+FIELDS[_0x50dbe9]];}}if(!_0x453264[_0xc559('0x1b')]){return _0x2c58c3(handleCheckRowError('error',_0xc559('0x1c'),null,_0x3686ad));}if(!_0x453264[_0xc559('0x1d')]){return _0x2c58c3(handleCheckRowError(_0xc559('0x13'),_0xc559('0x1e'),null,_0x3686ad));}if(_0x453264[_0xc559('0x1f')]){var _0x182013=moment(_0x453264['birthDate'],_0xc559('0x20'));if(!_0x182013['isValid']()){return _0x2c58c3(handleCheckRowError('error',_0xc559('0x21'),null,_0x3686ad));}}if(_0x453264[_0xc559('0x22')]){if(!isEmail(_0x453264[_0xc559('0x22')])){return _0x2c58c3(handleCheckRowError(_0xc559('0x13'),_0xc559('0x23'),null,_0x3686ad));}}_0x453264[_0xc559('0x24')]=LISTID;_0x453264[_0xc559('0x25')]=COMPANYID||undefined;if(DUPLICATES&&DUPLICATES['length']&&_0x3935c4){var _0x3986b1={};for(var _0x4cdaa4=0x0,_0x4aff68=DUPLICATES[_0xc559('0x16')];_0x4cdaa4<_0x4aff68;_0x4cdaa4+=0x1){_0x3986b1[DUPLICATES[_0x4cdaa4]]=_0x453264[DUPLICATES[_0x4cdaa4]];}var _0x471f20=_['find'](_0x3935c4,_0x3986b1);if(_0x471f20){return _0x2c58c3(handleCheckRowError(_0xc559('0x26'),_0xc559('0x27'),_0x471f20,_0x3686ad));}}return db[_0xc559('0x28')]['create'](_0x453264,{'raw':!![],'hooks':![],'fields':_[_0xc559('0x29')](_0x453264)})[_0xc559('0x2a')](function(_0x383a38){if(DUPLICATES&&DUPLICATES[_0xc559('0x16')]&&_0x3935c4){_0x3935c4['push'](_[_0xc559('0x2b')](_0x453264,DUPLICATES));}hopperContacts+=(hopperContacts?',':'')+_0x383a38['id'];return _0x4c5220();})['catch'](function(_0x16e30e){return _0x2c58c3(handleCheckRowError(_0xc559('0x13'),_0xc559('0x2c')+(_0x16e30e['message']||JSON[_0xc559('0x2d')](_0x16e30e)),null,_0x3686ad));});});}function checkHopper(){function _0x42c51c(){return function(_0x2155e1){logger[_0xc559('0x13')](_0xc559('0x2e'),_0xc559('0x2f'),util[_0xc559('0x30')](_0x2155e1,{'showHidden':![],'depth':null}));};}var _0x54f4f1=function(_0x20349b,_0xecef72){var _0x5c8d1b=squel['insert']()['into'](_0xc559('0x31'))[_0xc559('0x32')]([_0xc559('0x1d'),_0xc559('0x33'),'ContactId',_0xc559('0x24'),_0xecef72,'createdAt',_0xc559('0x34')],squel[_0xc559('0x35')]()[_0xc559('0x36')](_0xc559('0x1d'),_0xc559('0x1d'))[_0xc559('0x36')](_0xc559('0x37'),_0xc559('0x33'))[_0xc559('0x36')]('id',_0xc559('0x38'))[_0xc559('0x36')](LISTID[_0xc559('0x39')](),'ListId')[_0xc559('0x36')](_0x20349b['id'][_0xc559('0x39')](),_0xecef72)['field'](_0xc559('0x37'),_0xc559('0x3a'))['field'](_0xc559('0x37'),'updatedAt')[_0xc559('0x3b')](_0xc559('0x3c'))[_0xc559('0x3d')]('deletedAt\x20IS\x20NULL')[_0xc559('0x3d')](_0xc559('0x3e'),LISTID[_0xc559('0x39')]())['where'](_0xc559('0x3f'))[_0xc559('0x3d')](_0xc559('0x40'),squel[_0xc559('0x35')]()[_0xc559('0x36')](_0xc559('0x1d'))[_0xc559('0x3b')](_0xc559('0x31'))[_0xc559('0x3d')](_0xecef72+_0xc559('0x41'),_0x20349b['id'][_0xc559('0x39')]())))['toString']();return _0x5c8d1b;};var _0x3e0cd1=function(_0x289b70,_0x2b18c3){var _0x29e952=squel[_0xc559('0x42')]()[_0xc559('0x43')](_0xc559('0x31'))[_0xc559('0x32')]([_0xc559('0x1d'),'scheduledAt','ContactId',_0xc559('0x24'),_0x2b18c3,_0xc559('0x3a'),_0xc559('0x34')],squel[_0xc559('0x35')]()[_0xc559('0x36')](_0xc559('0x1d'),_0xc559('0x1d'))[_0xc559('0x36')](_0xc559('0x37'),_0xc559('0x33'))[_0xc559('0x36')]('id',_0xc559('0x38'))[_0xc559('0x36')](LISTID[_0xc559('0x39')](),_0xc559('0x24'))['field'](_0x289b70['id']['toString'](),_0x2b18c3)[_0xc559('0x36')](_0xc559('0x37'),'createdAt')['field'](_0xc559('0x37'),_0xc559('0x34'))[_0xc559('0x3b')](_0xc559('0x3c'))['where'](_0xc559('0x44'))[_0xc559('0x3d')](_0xc559('0x3e'),LISTID[_0xc559('0x39')]())[_0xc559('0x3d')](_0xc559('0x45'),squel[_0xc559('0x46')](hopperContacts))[_0xc559('0x3d')]('phone\x20IS\x20NOT\x20NULL')[_0xc559('0x3d')](_0xc559('0x40'),squel[_0xc559('0x35')]()[_0xc559('0x36')](_0xc559('0x47'))[_0xc559('0x3b')](_0xc559('0x48'))[_0xc559('0x3d')](_0x2b18c3+_0xc559('0x41'),_0x289b70['id'][_0xc559('0x39')]()))['where'](_0xc559('0x40'),squel[_0xc559('0x35')]()[_0xc559('0x36')]('phone')[_0xc559('0x3b')]('cm_hopper')['where'](_0x2b18c3+_0xc559('0x41'),_0x289b70['id'][_0xc559('0x39')]())))[_0xc559('0x39')]();return _0x29e952;};function _0x355043(_0x253bf7,_0x5b64a1){var _0x4b5c32=squel['insert']()[_0xc559('0x43')]('cm_hopper')[_0xc559('0x32')]([_0xc559('0x1d'),_0xc559('0x33'),_0xc559('0x38'),_0xc559('0x24'),_0x5b64a1,_0xc559('0x3a'),'updatedAt'],squel[_0xc559('0x35')]()['field'](_0xc559('0x1d'),'phone')[_0xc559('0x36')](_0xc559('0x37'),_0xc559('0x33'))[_0xc559('0x36')]('id',_0xc559('0x38'))['field'](LISTID[_0xc559('0x39')](),_0xc559('0x24'))[_0xc559('0x36')](_0x253bf7['id'][_0xc559('0x39')](),_0x5b64a1)['field'](_0xc559('0x37'),'createdAt')[_0xc559('0x36')](_0xc559('0x37'),'updatedAt')[_0xc559('0x3b')]('cm_contacts')[_0xc559('0x3d')](_0xc559('0x44'))[_0xc559('0x3d')](_0xc559('0x3e'),LISTID[_0xc559('0x39')]())[_0xc559('0x3d')](_0xc559('0x45'),squel[_0xc559('0x46')](hopperContacts))['where'](_0xc559('0x3f')))[_0xc559('0x39')]();return _0x4b5c32;}function _0x339de8(_0x441fc0,_0x3098c3){var _0x3d1d5a=squel[_0xc559('0x42')]()[_0xc559('0x43')](_0xc559('0x49'))['fromQuery']([_0xc559('0x1d'),_0xc559('0x38'),_0xc559('0x24'),_0x3098c3,_0xc559('0x3a'),_0xc559('0x34')],squel['select']()[_0xc559('0x36')](_0xc559('0x1d'),_0xc559('0x1d'))[_0xc559('0x36')]('id',_0xc559('0x38'))[_0xc559('0x36')](LISTID[_0xc559('0x39')](),_0xc559('0x24'))['field'](_0x441fc0['id'][_0xc559('0x39')](),_0x3098c3)[_0xc559('0x36')](_0xc559('0x37'),'createdAt')[_0xc559('0x36')]('NOW()',_0xc559('0x34'))[_0xc559('0x3b')](_0xc559('0x3c'))[_0xc559('0x3d')](_0xc559('0x44'))[_0xc559('0x3d')]('ListId\x20=\x20?',LISTID[_0xc559('0x39')]())[_0xc559('0x3d')]('id\x20IN\x20?',squel[_0xc559('0x46')](hopperContacts))['where']('phone\x20IS\x20NOT\x20NULL'))[_0xc559('0x39')]();return _0x3d1d5a;}return db[_0xc559('0x4a')]['findAll']({'where':{'type':'outbound'},'attributes':['id',_0xc559('0x4b')],'include':[{'model':db[_0xc559('0x4c')],'as':_0xc559('0x4d'),'where':{'id':LISTID}}]})[_0xc559('0x2a')](function(_0x37fd53){var _0x26b065=[];if(_0x37fd53){var _0x881096;for(var _0x9efc0b=0x0,_0x134484;_0x9efc0b<_0x37fd53['length'];_0x9efc0b+=0x1){_0x134484=_0x37fd53[_0x9efc0b][_0xc559('0x4e')]({'plain':!![]});switch(_0x134484['dialCheckDuplicateType']){case'always':_0x26b065[_0xc559('0x4f')](db[_0xc559('0x50')][_0xc559('0x51')](_0x3e0cd1(_0x134484,'VoiceQueueId'))[_0xc559('0x2a')](function(){})['catch'](_0x42c51c()));break;case'onlyIfOpen':_0x26b065['push'](db[_0xc559('0x50')][_0xc559('0x51')](_0x54f4f1(_0x134484,'VoiceQueueId'))[_0xc559('0x2a')](function(){})['catch'](_0x42c51c()));break;default:_0x26b065[_0xc559('0x4f')](db[_0xc559('0x50')][_0xc559('0x51')](_0x355043(_0x134484,_0xc559('0x52')))[_0xc559('0x2a')](function(){})[_0xc559('0x53')](_0x42c51c()));}}}return _0x26b065;})[_0xc559('0x54')]()[_0xc559('0x2a')](function(){return db[_0xc559('0x4a')][_0xc559('0x55')]({'where':{'type':_0xc559('0x56')},'attributes':['id'],'include':[{'model':db[_0xc559('0x4c')],'as':_0xc559('0x57'),'where':{'id':LISTID}}]})[_0xc559('0x2a')](function(_0x311bf5){var _0x11dac8=[];if(_0x311bf5){var _0x5c1b93;for(var _0x508bc2=0x0,_0x3c052b;_0x508bc2<_0x311bf5['length'];_0x508bc2+=0x1){_0x3c052b=_0x311bf5[_0x508bc2][_0xc559('0x4e')]({'plain':!![]});_0x11dac8[_0xc559('0x4f')](db[_0xc559('0x50')][_0xc559('0x51')](_0x339de8(_0x3c052b,_0xc559('0x52')))['then'](function(){})[_0xc559('0x53')](_0x42c51c()));}}return _0x11dac8;})[_0xc559('0x54')]();})[_0xc559('0x2a')](function(){return db[_0xc559('0x58')][_0xc559('0x55')]({'attributes':['id','dialCheckDuplicateType'],'include':[{'model':db[_0xc559('0x4c')],'as':_0xc559('0x4d'),'where':{'id':LISTID}}]})[_0xc559('0x2a')](function(_0x3c54bb){var _0x27752c=[];if(_0x3c54bb){for(var _0x4dd253=0x0,_0x9b4019;_0x4dd253<_0x3c54bb[_0xc559('0x16')];_0x4dd253+=0x1){_0x9b4019=_0x3c54bb[_0x4dd253][_0xc559('0x4e')]({'plain':!![]});switch(_0x9b4019['dialCheckDuplicateType']){case _0xc559('0x59'):_0x27752c[_0xc559('0x4f')](db[_0xc559('0x50')][_0xc559('0x51')](_0x3e0cd1(_0x9b4019,_0xc559('0x5a')))['then'](function(){})[_0xc559('0x53')](_0x42c51c()));break;case'onlyIfOpen':_0x27752c[_0xc559('0x4f')](db[_0xc559('0x50')][_0xc559('0x51')](_0x54f4f1(_0x9b4019,_0xc559('0x5a')))[_0xc559('0x2a')](function(){})['catch'](_0x42c51c()));break;default:_0x27752c['push'](db[_0xc559('0x50')][_0xc559('0x51')](_0x355043(_0x9b4019,_0xc559('0x5a')))[_0xc559('0x2a')](function(){})[_0xc559('0x53')](_0x42c51c()));}}}return _0x27752c;})[_0xc559('0x54')]();})[_0xc559('0x2a')](function(){return db[_0xc559('0x58')][_0xc559('0x55')]({'attributes':['id'],'include':[{'model':db[_0xc559('0x4c')],'as':_0xc559('0x57'),'where':{'id':LISTID}}]})['then'](function(_0x381bee){var _0xff15a4=[];if(_0x381bee){for(var _0x404d33=0x0,_0xa4b53e;_0x404d33<_0x381bee[_0xc559('0x16')];_0x404d33+=0x1){_0xa4b53e=_0x381bee[_0x404d33][_0xc559('0x4e')]({'plain':!![]});_0xff15a4[_0xc559('0x4f')](db[_0xc559('0x50')][_0xc559('0x51')](_0x339de8(_0xa4b53e,_0xc559('0x5a')))[_0xc559('0x2a')](function(){})[_0xc559('0x53')](_0x42c51c()));}}return _0xff15a4;})[_0xc559('0x54')]();})['catch'](function(_0x1cb044){logger['error'](_0xc559('0x5b'),_0xc559('0x5c'),_0x1cb044[_0xc559('0x17')]);});}var processPromises=function(_0x45ad65){return BPromise[_0xc559('0x54')](promises)[_0xc559('0x2a')](function(_0x2b4c8a){})[_0xc559('0x53')](function(_0x121316){logger[_0xc559('0x13')](_0xc559('0x5d'),JSON[_0xc559('0x2d')](_0x121316));})[_0xc559('0x5e')](function(){socket[_0xc559('0x5f')](_0xc559('0x60')+SOCKET_TIMESTAMP,{'success':success,'errors':errors,'duplicates':duplicates,'rows':rows});promises=[];success=0x0;errors=0x0;duplicates=0x0;rows=[];if(_0x45ad65){return _0x45ad65[_0xc559('0x61')]();}});};var endCsv=function(){return BPromise[_0xc559('0x62')]()['then'](function(){if(hopperContacts){return checkHopper();}})[_0xc559('0x2a')](function(){socket[_0xc559('0x5f')](_0xc559('0x60')+SOCKET_TIMESTAMP,{'finished':!![],'success':success,'errors':errors,'duplicates':duplicates,'rows':rows});try{fs[_0xc559('0x63')](FILEPATH);}catch(_0x56b4e3){logger[_0xc559('0x13')](_0xc559('0x64'),JSON['stringify'](_0x56b4e3));}finally{process['exit'](0x0);}});};process['on'](_0xc559('0x65'),function(){logger[_0xc559('0x66')](_0xc559('0x67'));endCsv();});function main(){return BPromise[_0xc559('0x62')]()[_0xc559('0x2a')](function(){if(DUPLICATES){DUPLICATES=DUPLICATES[_0xc559('0x11')](',');return db[_0xc559('0x28')]['findAll']({'where':{'ListId':LISTID},'attributes':DUPLICATES,'raw':!![]});}})['then'](function(_0x1063b6){var _0xcd3538=fs['createReadStream'](FILEPATH,{'highWaterMark':0xf*0x400*0x400});Papa[_0xc559('0x68')](_0xcd3538,{'header':!![],'skipEmptyLines':!![],'step':function(_0x9fd497,_0x4289ba){total+=0x1;var _0x1bbc59=total;promises[_0xc559('0x4f')](checkRow(_0x9fd497,_0x1063b6,_0x1bbc59)[_0xc559('0x2a')](function(){success+=0x1;})[_0xc559('0x53')](function(_0x4167eb){if(_0x4167eb[_0xc559('0x13')]){errors+=0x1;delete _0x4167eb[_0xc559('0x13')];}else if(_0x4167eb[_0xc559('0x26')]){duplicates+=0x1;delete _0x4167eb[_0xc559('0x26')];}rows['push'](_0x4167eb);}));if(total%0xc8===0x0){_0x4289ba[_0xc559('0x69')]();return processPromises(_0x4289ba);}},'complete':function(){return processPromises()[_0xc559('0x2a')](function(){logger[_0xc559('0x66')]('CSV\x20parsed\x20correctly!');endCsv();});},'error':function(_0x35c6f8,_0x393dad){logger[_0xc559('0x66')](_0xc559('0x6a'),JSON['stringify'](_0x35c6f8));endCsv();}});})[_0xc559('0x53')](function(_0x3e86f7){logger['error'](_0xc559('0x6b'),JSON[_0xc559('0x2d')](_0x3e86f7));});}main();