de4a33d031a6f9e7037470ad25b8cd5ec1340330
[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 _0xcafe=['cm_hopper','fromQuery','scheduledAt','ContactId','createdAt','updatedAt','field','NOW()','toString','cm_contacts','where','deletedAt\x20IS\x20NULL','ListId\x20=\x20?','phone\x20IS\x20NOT\x20NULL','phone\x20NOT\x20IN\x20(?)','select','\x20=\x20?','from','id\x20IN\x20?','str','calleridnum','cm_hopper_final','cm_hopper_black','VoiceQueue','outbound','dialCheckDuplicateType','Lists','get','always','sequelize','query','onlyIfOpen','catch','VoiceQueueId','all','findAll','BlackLists','Campaign','CmList','CampaignId','cmContact,\x20%s,\x20%s','generalCheckHopper','resume','resolve','emit','contact:csv_','unlinkSync','exit','SIGINT','info','CSV\x20import\x20process\x20stopped!','parse','pause','CSV\x20parse\x20error','Error\x20executing\x20contact\x20csv\x20import:','bluebird','lodash','../../../mysqldb','../../../config/environment','api','defaults','redis','../../../api/cmContact/cmContact.socket','register','argv','undefined','null','Missing\x20filepath\x20parameter!','Missing\x20binding\x20parameters!','zipObject','split','Missing\x20ListId\x20parameter!','Missing\x20socket_timestamp\x20parameter!','error','index','test','isNil','errors','length','map','message','join','data','firstName','phone','phone\x20not\x20specified!','birthDate','YYYY-MM-DD','birthDate\x20format\x20is\x20invalid,\x20YYYY-MM-DD\x20format\x20is\x20supported!','email','ListId','CompanyId','find','duplicate','Duplicate\x20Contact','CmContact','create','keys','then','push','pick','stringify','cmContact','checkHopper','insert','into'];(function(_0x174cd6,_0x57f734){var _0xa7c4e9=function(_0x388053){while(--_0x388053){_0x174cd6['push'](_0x174cd6['shift']());}};_0xa7c4e9(++_0x57f734);}(_0xcafe,0x1df));var _0xecaf=function(_0x348d66,_0x5ba207){_0x348d66=_0x348d66-0x0;var _0xa3f877=_0xcafe[_0x348d66];return _0xa3f877;};'use strict';var BPromise=require(_0xecaf('0x0'));var util=require('util');var _=require(_0xecaf('0x1'));var fs=require('fs');var squel=require('squel');var Papa=require('papaparse');var Redis=require('ioredis');var db=require(_0xecaf('0x2'))['db'];var config=require(_0xecaf('0x3'));var logger=require('../../../config/logger')(_0xecaf('0x4'));config['redis']=_[_0xecaf('0x5')](config[_0xecaf('0x6')],{'host':'localhost','port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xecaf('0x6')]));require(_0xecaf('0x7'))[_0xecaf('0x8')](socket);try{if(!process[_0xecaf('0x9')][0x2]||process['argv'][0x2]===_0xecaf('0xa')||process[_0xecaf('0x9')][0x2]===_0xecaf('0xb')){throw new Error(_0xecaf('0xc'));}var FILEPATH=process[_0xecaf('0x9')][0x2];if(!process[_0xecaf('0x9')][0x3]||process[_0xecaf('0x9')][0x3]==='undefined'||process['argv'][0x3]===_0xecaf('0xb')||!process[_0xecaf('0x9')][0x4]||process['argv'][0x4]===_0xecaf('0xa')||process[_0xecaf('0x9')][0x4]===_0xecaf('0xb')){throw new Error(_0xecaf('0xd'));}var FIELDS=_[_0xecaf('0xe')](process[_0xecaf('0x9')][0x3]['split'](','),process[_0xecaf('0x9')][0x4][_0xecaf('0xf')](','));if(!process[_0xecaf('0x9')][0x5]||process[_0xecaf('0x9')][0x5]===_0xecaf('0xa')||process[_0xecaf('0x9')][0x5]===_0xecaf('0xb')){throw new Error(_0xecaf('0x10'));}var LISTID=process['argv'][0x5];var COMPANYID=process[_0xecaf('0x9')][0x6]&&process[_0xecaf('0x9')][0x6]!=='undefined'&&process['argv'][0x6]!=='null'?process[_0xecaf('0x9')][0x6]:null;var DUPLICATES=process[_0xecaf('0x9')][0x7]&&process[_0xecaf('0x9')][0x7]!==_0xecaf('0xa')&&process[_0xecaf('0x9')][0x7]!==_0xecaf('0xb')?process[_0xecaf('0x9')][0x7]:null;if(!process['argv'][0x8]||process[_0xecaf('0x9')][0x8]===_0xecaf('0xa')||process[_0xecaf('0x9')][0x8]===_0xecaf('0xb')){throw new Error(_0xecaf('0x11'));}var SOCKET_TIMESTAMP=process['argv'][0x8];}catch(_0x48f649){logger[_0xecaf('0x12')](_0x48f649);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(_0x15194a,_0x2fd8ff,_0x43bb3f,_0x3c8cd2){var _0x2a3bf4={'message':_0x2fd8ff};_0x2a3bf4[_0x15194a]=!![];if(_0x43bb3f){_0x2a3bf4['contact']=_0x43bb3f;}if(_0x3c8cd2){_0x2a3bf4[_0xecaf('0x13')]=_0x3c8cd2;}return _0x2a3bf4;}function isEmail(_0x2a1f84){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))*$/[_0xecaf('0x14')](_0x2a1f84);}function checkRow(_0x1eff37,_0x327087,_0x325f34){return new BPromise(function(_0x37447a,_0x457538){if(_[_0xecaf('0x15')](_0x1eff37)){return _0x457538(handleCheckRowError(_0xecaf('0x12'),'The\x20row\x20is\x20empty\x20or\x20the\x20number\x20of\x20parameters\x20does\x20not\x20match\x20the\x20columns!',null,_0x325f34));}if(_0x1eff37['errors']&&_0x1eff37[_0xecaf('0x16')][_0xecaf('0x17')]){var _0x22ff04=_[_0xecaf('0x18')](_0x1eff37['errors'],_0xecaf('0x19'))[_0xecaf('0x1a')](';');return _0x457538(handleCheckRowError('error',_0x22ff04,null,_0x325f34));}var _0xbe1feb={};for(var _0x3efbbd in FIELDS){if(FIELDS['hasOwnProperty'](_0x3efbbd)&&FIELDS[_0x3efbbd]){_0xbe1feb[_0x3efbbd]=_0x1eff37[_0xecaf('0x1b')][0x0][FIELDS[_0x3efbbd]]||_0x1eff37[_0xecaf('0x1b')][0x0]['\ufeff'+FIELDS[_0x3efbbd]];}}if(!_0xbe1feb[_0xecaf('0x1c')]){return _0x457538(handleCheckRowError(_0xecaf('0x12'),'firstName\x20not\x20specified!',null,_0x325f34));}if(!_0xbe1feb[_0xecaf('0x1d')]){return _0x457538(handleCheckRowError(_0xecaf('0x12'),_0xecaf('0x1e'),null,_0x325f34));}if(_0xbe1feb[_0xecaf('0x1f')]){var _0x327807=moment(_0xbe1feb['birthDate'],_0xecaf('0x20'));if(!_0x327807['isValid']()){return _0x457538(handleCheckRowError(_0xecaf('0x12'),_0xecaf('0x21'),null,_0x325f34));}}if(_0xbe1feb[_0xecaf('0x22')]){if(!isEmail(_0xbe1feb[_0xecaf('0x22')])){return _0x457538(handleCheckRowError(_0xecaf('0x12'),'email\x20format\x20is\x20not\x20valid!',null,_0x325f34));}}_0xbe1feb[_0xecaf('0x23')]=LISTID;_0xbe1feb[_0xecaf('0x24')]=COMPANYID||undefined;if(DUPLICATES&&DUPLICATES['length']&&_0x327087){var _0x2c3faf={};for(var _0x5eda3a=0x0,_0x135120=DUPLICATES[_0xecaf('0x17')];_0x5eda3a<_0x135120;_0x5eda3a+=0x1){_0x2c3faf[DUPLICATES[_0x5eda3a]]=_0xbe1feb[DUPLICATES[_0x5eda3a]];}var _0x2bb670=_[_0xecaf('0x25')](_0x327087,_0x2c3faf);if(_0x2bb670){return _0x457538(handleCheckRowError(_0xecaf('0x26'),_0xecaf('0x27'),_0x2bb670,_0x325f34));}}return db[_0xecaf('0x28')][_0xecaf('0x29')](_0xbe1feb,{'raw':!![],'hooks':![],'fields':_[_0xecaf('0x2a')](_0xbe1feb)})[_0xecaf('0x2b')](function(_0x42c338){if(DUPLICATES&&DUPLICATES[_0xecaf('0x17')]&&_0x327087){_0x327087[_0xecaf('0x2c')](_[_0xecaf('0x2d')](_0xbe1feb,DUPLICATES));}hopperContacts+=(hopperContacts?',':'')+_0x42c338['id'];return _0x37447a();})['catch'](function(_0x2c2f86){return _0x457538(handleCheckRowError('error','Error\x20while\x20creating\x20contact:\x20'+(_0x2c2f86[_0xecaf('0x19')]||JSON[_0xecaf('0x2e')](_0x2c2f86)),null,_0x325f34));});});}function checkHopper(){function _0x21652b(){return function(_0x2abae0){logger[_0xecaf('0x12')](_0xecaf('0x2f'),_0xecaf('0x30'),util['inspect'](_0x2abae0,{'showHidden':![],'depth':null}));};}var _0x4f269f=function(_0x5af1e6,_0x43a5b6){var _0x42346b=squel[_0xecaf('0x31')]()[_0xecaf('0x32')](_0xecaf('0x33'))[_0xecaf('0x34')]([_0xecaf('0x1d'),_0xecaf('0x35'),_0xecaf('0x36'),_0xecaf('0x23'),_0x43a5b6,_0xecaf('0x37'),_0xecaf('0x38')],squel['select']()[_0xecaf('0x39')](_0xecaf('0x1d'),_0xecaf('0x1d'))[_0xecaf('0x39')](_0xecaf('0x3a'),_0xecaf('0x35'))[_0xecaf('0x39')]('id',_0xecaf('0x36'))[_0xecaf('0x39')](LISTID[_0xecaf('0x3b')](),'ListId')[_0xecaf('0x39')](_0x5af1e6['id'][_0xecaf('0x3b')](),_0x43a5b6)['field'](_0xecaf('0x3a'),'createdAt')[_0xecaf('0x39')]('NOW()','updatedAt')['from'](_0xecaf('0x3c'))[_0xecaf('0x3d')](_0xecaf('0x3e'))[_0xecaf('0x3d')](_0xecaf('0x3f'),LISTID[_0xecaf('0x3b')]())['where'](_0xecaf('0x40'))[_0xecaf('0x3d')](_0xecaf('0x41'),squel[_0xecaf('0x42')]()[_0xecaf('0x39')](_0xecaf('0x1d'))['from'](_0xecaf('0x33'))[_0xecaf('0x3d')](_0x43a5b6+_0xecaf('0x43'),_0x5af1e6['id']['toString']())))[_0xecaf('0x3b')]();return _0x42346b;};var _0xe4d015=function(_0x29fce4,_0x3ab8bb){var _0x273fb3=squel[_0xecaf('0x31')]()[_0xecaf('0x32')](_0xecaf('0x33'))['fromQuery'](['phone',_0xecaf('0x35'),_0xecaf('0x36'),_0xecaf('0x23'),_0x3ab8bb,_0xecaf('0x37'),'updatedAt'],squel[_0xecaf('0x42')]()[_0xecaf('0x39')]('phone','phone')[_0xecaf('0x39')](_0xecaf('0x3a'),'scheduledAt')[_0xecaf('0x39')]('id',_0xecaf('0x36'))[_0xecaf('0x39')](LISTID['toString'](),_0xecaf('0x23'))['field'](_0x29fce4['id'][_0xecaf('0x3b')](),_0x3ab8bb)[_0xecaf('0x39')](_0xecaf('0x3a'),_0xecaf('0x37'))[_0xecaf('0x39')](_0xecaf('0x3a'),'updatedAt')[_0xecaf('0x44')](_0xecaf('0x3c'))['where'](_0xecaf('0x3e'))['where'](_0xecaf('0x3f'),LISTID[_0xecaf('0x3b')]())[_0xecaf('0x3d')](_0xecaf('0x45'),squel[_0xecaf('0x46')](hopperContacts))[_0xecaf('0x3d')](_0xecaf('0x40'))[_0xecaf('0x3d')](_0xecaf('0x41'),squel[_0xecaf('0x42')]()[_0xecaf('0x39')](_0xecaf('0x47'))[_0xecaf('0x44')](_0xecaf('0x48'))[_0xecaf('0x3d')](_0x3ab8bb+_0xecaf('0x43'),_0x29fce4['id'][_0xecaf('0x3b')]()))[_0xecaf('0x3d')](_0xecaf('0x41'),squel[_0xecaf('0x42')]()[_0xecaf('0x39')](_0xecaf('0x1d'))[_0xecaf('0x44')](_0xecaf('0x33'))[_0xecaf('0x3d')](_0x3ab8bb+_0xecaf('0x43'),_0x29fce4['id']['toString']())))['toString']();return _0x273fb3;};function _0x4cc133(_0x2e2f8c,_0x31a641){var _0x553871=squel['insert']()[_0xecaf('0x32')](_0xecaf('0x33'))['fromQuery']([_0xecaf('0x1d'),_0xecaf('0x35'),_0xecaf('0x36'),_0xecaf('0x23'),_0x31a641,_0xecaf('0x37'),_0xecaf('0x38')],squel[_0xecaf('0x42')]()[_0xecaf('0x39')](_0xecaf('0x1d'),_0xecaf('0x1d'))['field'](_0xecaf('0x3a'),_0xecaf('0x35'))[_0xecaf('0x39')]('id','ContactId')['field'](LISTID[_0xecaf('0x3b')](),_0xecaf('0x23'))[_0xecaf('0x39')](_0x2e2f8c['id'][_0xecaf('0x3b')](),_0x31a641)[_0xecaf('0x39')](_0xecaf('0x3a'),_0xecaf('0x37'))[_0xecaf('0x39')](_0xecaf('0x3a'),'updatedAt')[_0xecaf('0x44')](_0xecaf('0x3c'))['where'](_0xecaf('0x3e'))[_0xecaf('0x3d')]('ListId\x20=\x20?',LISTID[_0xecaf('0x3b')]())[_0xecaf('0x3d')]('id\x20IN\x20?',squel[_0xecaf('0x46')](hopperContacts))[_0xecaf('0x3d')](_0xecaf('0x40')))[_0xecaf('0x3b')]();return _0x553871;}function _0x120455(_0x11eb52,_0x3fbe51){var _0x293907=squel[_0xecaf('0x31')]()[_0xecaf('0x32')](_0xecaf('0x49'))[_0xecaf('0x34')]([_0xecaf('0x1d'),_0xecaf('0x36'),_0xecaf('0x23'),_0x3fbe51,'createdAt',_0xecaf('0x38')],squel[_0xecaf('0x42')]()['field'](_0xecaf('0x1d'),_0xecaf('0x1d'))[_0xecaf('0x39')]('id',_0xecaf('0x36'))[_0xecaf('0x39')](LISTID[_0xecaf('0x3b')](),_0xecaf('0x23'))['field'](_0x11eb52['id']['toString'](),_0x3fbe51)[_0xecaf('0x39')](_0xecaf('0x3a'),'createdAt')[_0xecaf('0x39')](_0xecaf('0x3a'),_0xecaf('0x38'))[_0xecaf('0x44')](_0xecaf('0x3c'))['where'](_0xecaf('0x3e'))['where']('ListId\x20=\x20?',LISTID['toString']())[_0xecaf('0x3d')](_0xecaf('0x45'),squel[_0xecaf('0x46')](hopperContacts))[_0xecaf('0x3d')]('phone\x20IS\x20NOT\x20NULL'))[_0xecaf('0x3b')]();return _0x293907;}return db[_0xecaf('0x4a')]['findAll']({'where':{'type':_0xecaf('0x4b')},'attributes':['id',_0xecaf('0x4c')],'include':[{'model':db['CmList'],'as':_0xecaf('0x4d'),'where':{'id':LISTID}}]})[_0xecaf('0x2b')](function(_0x2fdba0){var _0x3d5047=[];if(_0x2fdba0){var _0x4c37d6;for(var _0x414b5b=0x0,_0x22c6cc;_0x414b5b<_0x2fdba0[_0xecaf('0x17')];_0x414b5b+=0x1){_0x22c6cc=_0x2fdba0[_0x414b5b][_0xecaf('0x4e')]({'plain':!![]});switch(_0x22c6cc['dialCheckDuplicateType']){case _0xecaf('0x4f'):_0x3d5047[_0xecaf('0x2c')](db[_0xecaf('0x50')][_0xecaf('0x51')](_0xe4d015(_0x22c6cc,'VoiceQueueId'))[_0xecaf('0x2b')](function(){})['catch'](_0x21652b()));break;case _0xecaf('0x52'):_0x3d5047['push'](db[_0xecaf('0x50')][_0xecaf('0x51')](_0x4f269f(_0x22c6cc,'VoiceQueueId'))[_0xecaf('0x2b')](function(){})[_0xecaf('0x53')](_0x21652b()));break;default:_0x3d5047[_0xecaf('0x2c')](db['sequelize'][_0xecaf('0x51')](_0x4cc133(_0x22c6cc,_0xecaf('0x54')))[_0xecaf('0x2b')](function(){})[_0xecaf('0x53')](_0x21652b()));}}}return _0x3d5047;})[_0xecaf('0x55')]()['then'](function(){return db[_0xecaf('0x4a')][_0xecaf('0x56')]({'where':{'type':_0xecaf('0x4b')},'attributes':['id'],'include':[{'model':db['CmList'],'as':_0xecaf('0x57'),'where':{'id':LISTID}}]})[_0xecaf('0x2b')](function(_0x5b7378){var _0x5e6887=[];if(_0x5b7378){var _0x3f8e5c;for(var _0x1beb88=0x0,_0x49e53c;_0x1beb88<_0x5b7378[_0xecaf('0x17')];_0x1beb88+=0x1){_0x49e53c=_0x5b7378[_0x1beb88][_0xecaf('0x4e')]({'plain':!![]});_0x5e6887[_0xecaf('0x2c')](db['sequelize'][_0xecaf('0x51')](_0x120455(_0x49e53c,_0xecaf('0x54')))['then'](function(){})[_0xecaf('0x53')](_0x21652b()));}}return _0x5e6887;})[_0xecaf('0x55')]();})['then'](function(){return db[_0xecaf('0x58')][_0xecaf('0x56')]({'attributes':['id','dialCheckDuplicateType'],'include':[{'model':db[_0xecaf('0x59')],'as':_0xecaf('0x4d'),'where':{'id':LISTID}}]})[_0xecaf('0x2b')](function(_0xa7b375){var _0x4d49ca=[];if(_0xa7b375){for(var _0x5dbbc2=0x0,_0x28ab56;_0x5dbbc2<_0xa7b375[_0xecaf('0x17')];_0x5dbbc2+=0x1){_0x28ab56=_0xa7b375[_0x5dbbc2]['get']({'plain':!![]});switch(_0x28ab56[_0xecaf('0x4c')]){case _0xecaf('0x4f'):_0x4d49ca[_0xecaf('0x2c')](db[_0xecaf('0x50')]['query'](_0xe4d015(_0x28ab56,_0xecaf('0x5a')))[_0xecaf('0x2b')](function(){})[_0xecaf('0x53')](_0x21652b()));break;case'onlyIfOpen':_0x4d49ca['push'](db[_0xecaf('0x50')][_0xecaf('0x51')](_0x4f269f(_0x28ab56,'CampaignId'))[_0xecaf('0x2b')](function(){})[_0xecaf('0x53')](_0x21652b()));break;default:_0x4d49ca[_0xecaf('0x2c')](db[_0xecaf('0x50')][_0xecaf('0x51')](_0x4cc133(_0x28ab56,_0xecaf('0x5a')))[_0xecaf('0x2b')](function(){})[_0xecaf('0x53')](_0x21652b()));}}}return _0x4d49ca;})[_0xecaf('0x55')]();})[_0xecaf('0x2b')](function(){return db[_0xecaf('0x58')][_0xecaf('0x56')]({'attributes':['id'],'include':[{'model':db[_0xecaf('0x59')],'as':'BlackLists','where':{'id':LISTID}}]})[_0xecaf('0x2b')](function(_0x751557){var _0x2797d2=[];if(_0x751557){for(var _0x3d5fef=0x0,_0x2a47d8;_0x3d5fef<_0x751557[_0xecaf('0x17')];_0x3d5fef+=0x1){_0x2a47d8=_0x751557[_0x3d5fef][_0xecaf('0x4e')]({'plain':!![]});_0x2797d2['push'](db[_0xecaf('0x50')][_0xecaf('0x51')](_0x120455(_0x2a47d8,_0xecaf('0x5a')))['then'](function(){})[_0xecaf('0x53')](_0x21652b()));}}return _0x2797d2;})[_0xecaf('0x55')]();})['catch'](function(_0x2f1aaf){logger['error'](_0xecaf('0x5b'),_0xecaf('0x5c'),_0x2f1aaf[_0xecaf('0x19')]);});}var processPromises=function(_0x5b760b){return BPromise['all'](promises)[_0xecaf('0x2b')](function(_0x345d1c){})[_0xecaf('0x53')](function(_0x363d31){logger[_0xecaf('0x12')]('Error\x20processing\x20rows\x20block:',JSON[_0xecaf('0x2e')](_0x363d31));})['finally'](function(){socket['emit']('contact:csv_'+SOCKET_TIMESTAMP,{'success':success,'errors':errors,'duplicates':duplicates,'rows':rows});promises=[];success=0x0;errors=0x0;duplicates=0x0;rows=[];if(_0x5b760b){return _0x5b760b[_0xecaf('0x5d')]();}});};var endCsv=function(){return BPromise[_0xecaf('0x5e')]()[_0xecaf('0x2b')](function(){if(hopperContacts){return checkHopper();}})[_0xecaf('0x2b')](function(){socket[_0xecaf('0x5f')](_0xecaf('0x60')+SOCKET_TIMESTAMP,{'finished':!![],'success':success,'errors':errors,'duplicates':duplicates,'rows':rows});try{fs[_0xecaf('0x61')](FILEPATH);}catch(_0x32f693){logger[_0xecaf('0x12')]('Unable\x20to\x20delete\x20temp\x20file:',JSON[_0xecaf('0x2e')](_0x32f693));}finally{process[_0xecaf('0x62')](0x0);}});};process['on'](_0xecaf('0x63'),function(){logger[_0xecaf('0x64')](_0xecaf('0x65'));endCsv();});function main(){return BPromise[_0xecaf('0x5e')]()[_0xecaf('0x2b')](function(){if(DUPLICATES){DUPLICATES=DUPLICATES[_0xecaf('0xf')](',');return db[_0xecaf('0x28')][_0xecaf('0x56')]({'where':{'ListId':LISTID},'attributes':DUPLICATES,'raw':!![]});}})['then'](function(_0x10ef12){var _0x1b5571=fs['createReadStream'](FILEPATH,{'highWaterMark':0xf*0x400*0x400});Papa[_0xecaf('0x66')](_0x1b5571,{'header':!![],'skipEmptyLines':!![],'step':function(_0x3c869c,_0x3eee24){total+=0x1;var _0x1289a4=total;promises['push'](checkRow(_0x3c869c,_0x10ef12,_0x1289a4)[_0xecaf('0x2b')](function(){success+=0x1;})['catch'](function(_0xc4f153){if(_0xc4f153['error']){errors+=0x1;delete _0xc4f153[_0xecaf('0x12')];}else if(_0xc4f153[_0xecaf('0x26')]){duplicates+=0x1;delete _0xc4f153[_0xecaf('0x26')];}rows[_0xecaf('0x2c')](_0xc4f153);}));if(total%0xc8===0x0){_0x3eee24[_0xecaf('0x67')]();return processPromises(_0x3eee24);}},'complete':function(){return processPromises()[_0xecaf('0x2b')](function(){logger[_0xecaf('0x64')]('CSV\x20parsed\x20correctly!');endCsv();});},'error':function(_0x168ec1,_0x4f2baa){logger[_0xecaf('0x64')](_0xecaf('0x68'),JSON[_0xecaf('0x2e')](_0x168ec1));endCsv();}});})[_0xecaf('0x53')](function(_0x386225){logger[_0xecaf('0x12')](_0xecaf('0x69'),JSON[_0xecaf('0x2e')](_0x386225));});}main();