Built motion from commit 47436d59.|2.6.7
[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 _0xaf33=['info','CSV\x20import\x20process\x20stopped!','createReadStream','CSV\x20parse\x20error','bluebird','util','squel','papaparse','ioredis','../../../mysqldb','../../../config/environment','../../../config/logger','redis','defaults','localhost','../../../api/cmContact/cmContact.socket','register','argv','undefined','null','Missing\x20filepath\x20parameter!','Missing\x20binding\x20parameters!','zipObject','split','Missing\x20ListId\x20parameter!','Missing\x20socket_timestamp\x20parameter!','error','contact','index','isNil','The\x20row\x20is\x20empty\x20or\x20the\x20number\x20of\x20parameters\x20does\x20not\x20match\x20the\x20columns!','errors','join','data','firstName','firstName\x20not\x20specified!','phone','phone\x20not\x20specified!','birthDate','YYYY-MM-DD','isValid','birthDate\x20format\x20is\x20invalid,\x20YYYY-MM-DD\x20format\x20is\x20supported!','email','email\x20format\x20is\x20not\x20valid!','CompanyId','duplicate','Duplicate\x20Contact','CmContact','create','keys','then','length','pick','catch','message','stringify','cmContact','checkHopper','insert','into','cm_hopper','scheduledAt','updatedAt','select','field','NOW()','toString','ListId','createdAt','from','cm_contacts','where','ListId\x20=\x20?','phone\x20NOT\x20IN\x20(?)','\x20=\x20?','fromQuery','ContactId','str','phone\x20IS\x20NOT\x20NULL','calleridnum','cm_hopper_final','deletedAt\x20IS\x20NULL','id\x20IN\x20?','cm_hopper_black','VoiceQueue','outbound','dialCheckDuplicateType','CmList','Lists','get','always','sequelize','query','VoiceQueueId','onlyIfOpen','push','findAll','BlackLists','all','Campaign','CampaignId','cmContact,\x20%s,\x20%s','generalCheckHopper','Error\x20processing\x20rows\x20block:','finally','contact:csv_','resolve','unlinkSync','Unable\x20to\x20delete\x20temp\x20file:','SIGINT'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0xaf33,0x1bc));var _0x3af3=function(_0x49cec6,_0x25ea07){_0x49cec6=_0x49cec6-0x0;var _0x3c2ed3=_0xaf33[_0x49cec6];return _0x3c2ed3;};'use strict';var BPromise=require(_0x3af3('0x0'));var util=require(_0x3af3('0x1'));var _=require('lodash');var fs=require('fs');var squel=require(_0x3af3('0x2'));var Papa=require(_0x3af3('0x3'));var Redis=require(_0x3af3('0x4'));var db=require(_0x3af3('0x5'))['db'];var config=require(_0x3af3('0x6'));var logger=require(_0x3af3('0x7'))('api');config[_0x3af3('0x8')]=_[_0x3af3('0x9')](config[_0x3af3('0x8')],{'host':_0x3af3('0xa'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));require(_0x3af3('0xb'))[_0x3af3('0xc')](socket);try{if(!process[_0x3af3('0xd')][0x2]||process[_0x3af3('0xd')][0x2]===_0x3af3('0xe')||process[_0x3af3('0xd')][0x2]===_0x3af3('0xf')){throw new Error(_0x3af3('0x10'));}var FILEPATH=process['argv'][0x2];if(!process[_0x3af3('0xd')][0x3]||process[_0x3af3('0xd')][0x3]==='undefined'||process[_0x3af3('0xd')][0x3]==='null'||!process[_0x3af3('0xd')][0x4]||process[_0x3af3('0xd')][0x4]===_0x3af3('0xe')||process[_0x3af3('0xd')][0x4]==='null'){throw new Error(_0x3af3('0x11'));}var FIELDS=_[_0x3af3('0x12')](process[_0x3af3('0xd')][0x3][_0x3af3('0x13')](','),process[_0x3af3('0xd')][0x4][_0x3af3('0x13')](','));if(!process[_0x3af3('0xd')][0x5]||process['argv'][0x5]==='undefined'||process['argv'][0x5]===_0x3af3('0xf')){throw new Error(_0x3af3('0x14'));}var LISTID=process['argv'][0x5];var COMPANYID=process['argv'][0x6]&&process[_0x3af3('0xd')][0x6]!=='undefined'&&process['argv'][0x6]!==_0x3af3('0xf')?process[_0x3af3('0xd')][0x6]:null;var DUPLICATES=process[_0x3af3('0xd')][0x7]&&process[_0x3af3('0xd')][0x7]!==_0x3af3('0xe')&&process['argv'][0x7]!==_0x3af3('0xf')?process['argv'][0x7]:null;if(!process[_0x3af3('0xd')][0x8]||process[_0x3af3('0xd')][0x8]===_0x3af3('0xe')||process[_0x3af3('0xd')][0x8]==='null'){throw new Error(_0x3af3('0x15'));}var SOCKET_TIMESTAMP=process['argv'][0x8];}catch(_0xfca5e7){logger[_0x3af3('0x16')](_0xfca5e7);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(_0x3b7ed9,_0x433f18,_0x2658ad,_0x35c337){var _0x5490c1={'message':_0x433f18};_0x5490c1[_0x3b7ed9]=!![];if(_0x2658ad){_0x5490c1[_0x3af3('0x17')]=_0x2658ad;}if(_0x35c337){_0x5490c1[_0x3af3('0x18')]=_0x35c337;}return _0x5490c1;}function isEmail(_0x1ac598){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'](_0x1ac598);}function checkRow(_0x586569,_0x49280b,_0x176c89){return new BPromise(function(_0x24d850,_0x3c8421){if(_[_0x3af3('0x19')](_0x586569)){return _0x3c8421(handleCheckRowError(_0x3af3('0x16'),_0x3af3('0x1a'),null,_0x176c89));}if(_0x586569[_0x3af3('0x1b')]&&_0x586569['errors']['length']){var _0x4c84c9=_['map'](_0x586569[_0x3af3('0x1b')],'message')[_0x3af3('0x1c')](';');return _0x3c8421(handleCheckRowError(_0x3af3('0x16'),_0x4c84c9,null,_0x176c89));}var _0x9890e3={};for(var _0x4fa47e in FIELDS){if(FIELDS['hasOwnProperty'](_0x4fa47e)&&FIELDS[_0x4fa47e]){_0x9890e3[_0x4fa47e]=_0x586569[_0x3af3('0x1d')][0x0][FIELDS[_0x4fa47e]]||_0x586569[_0x3af3('0x1d')][0x0]['\ufeff'+FIELDS[_0x4fa47e]];}}if(!_0x9890e3[_0x3af3('0x1e')]){return _0x3c8421(handleCheckRowError(_0x3af3('0x16'),_0x3af3('0x1f'),null,_0x176c89));}if(!_0x9890e3[_0x3af3('0x20')]){return _0x3c8421(handleCheckRowError('error',_0x3af3('0x21'),null,_0x176c89));}if(_0x9890e3[_0x3af3('0x22')]){var _0x5cc431=moment(_0x9890e3[_0x3af3('0x22')],_0x3af3('0x23'));if(!_0x5cc431[_0x3af3('0x24')]()){return _0x3c8421(handleCheckRowError('error',_0x3af3('0x25'),null,_0x176c89));}}if(_0x9890e3[_0x3af3('0x26')]){if(!isEmail(_0x9890e3[_0x3af3('0x26')])){return _0x3c8421(handleCheckRowError(_0x3af3('0x16'),_0x3af3('0x27'),null,_0x176c89));}}_0x9890e3['ListId']=LISTID;_0x9890e3[_0x3af3('0x28')]=COMPANYID||undefined;if(DUPLICATES&&DUPLICATES['length']&&_0x49280b){var _0x51ac6b={};for(var _0x134b3b=0x0,_0x37e979=DUPLICATES['length'];_0x134b3b<_0x37e979;_0x134b3b+=0x1){_0x51ac6b[DUPLICATES[_0x134b3b]]=_0x9890e3[DUPLICATES[_0x134b3b]];}var _0xadc9f8=_['find'](_0x49280b,_0x51ac6b);if(_0xadc9f8){return _0x3c8421(handleCheckRowError(_0x3af3('0x29'),_0x3af3('0x2a'),_0xadc9f8,_0x176c89));}}return db[_0x3af3('0x2b')][_0x3af3('0x2c')](_0x9890e3,{'raw':!![],'hooks':![],'fields':_[_0x3af3('0x2d')](_0x9890e3)})[_0x3af3('0x2e')](function(_0x589be1){if(DUPLICATES&&DUPLICATES[_0x3af3('0x2f')]&&_0x49280b){_0x49280b['push'](_[_0x3af3('0x30')](_0x9890e3,DUPLICATES));}hopperContacts+=(hopperContacts?',':'')+_0x589be1['id'];return _0x24d850();})[_0x3af3('0x31')](function(_0x15e3aa){return _0x3c8421(handleCheckRowError('error','Error\x20while\x20creating\x20contact:\x20'+(_0x15e3aa[_0x3af3('0x32')]||JSON[_0x3af3('0x33')](_0x15e3aa)),null,_0x176c89));});});}function checkHopper(){function _0x31d8bb(){return function(_0x2e3c69){logger['error'](_0x3af3('0x34'),_0x3af3('0x35'),util['inspect'](_0x2e3c69,{'showHidden':![],'depth':null}));};}var _0x3529aa=function(_0x2115fd,_0x525e8f){var _0x35a788=squel[_0x3af3('0x36')]()[_0x3af3('0x37')](_0x3af3('0x38'))['fromQuery']([_0x3af3('0x20'),_0x3af3('0x39'),'ContactId','ListId',_0x525e8f,'createdAt',_0x3af3('0x3a')],squel[_0x3af3('0x3b')]()[_0x3af3('0x3c')](_0x3af3('0x20'),_0x3af3('0x20'))[_0x3af3('0x3c')](_0x3af3('0x3d'),_0x3af3('0x39'))[_0x3af3('0x3c')]('id','ContactId')[_0x3af3('0x3c')](LISTID[_0x3af3('0x3e')](),_0x3af3('0x3f'))['field'](_0x2115fd['id'][_0x3af3('0x3e')](),_0x525e8f)[_0x3af3('0x3c')](_0x3af3('0x3d'),_0x3af3('0x40'))[_0x3af3('0x3c')](_0x3af3('0x3d'),_0x3af3('0x3a'))[_0x3af3('0x41')](_0x3af3('0x42'))[_0x3af3('0x43')]('deletedAt\x20IS\x20NULL')[_0x3af3('0x43')](_0x3af3('0x44'),LISTID[_0x3af3('0x3e')]())[_0x3af3('0x43')]('phone\x20IS\x20NOT\x20NULL')[_0x3af3('0x43')](_0x3af3('0x45'),squel[_0x3af3('0x3b')]()[_0x3af3('0x3c')]('phone')[_0x3af3('0x41')](_0x3af3('0x38'))['where'](_0x525e8f+_0x3af3('0x46'),_0x2115fd['id'][_0x3af3('0x3e')]())))[_0x3af3('0x3e')]();return _0x35a788;};var _0x4de2f2=function(_0x33b36a,_0x3ff9cd){var _0x28cc53=squel[_0x3af3('0x36')]()['into'](_0x3af3('0x38'))[_0x3af3('0x47')]([_0x3af3('0x20'),_0x3af3('0x39'),_0x3af3('0x48'),_0x3af3('0x3f'),_0x3ff9cd,_0x3af3('0x40'),_0x3af3('0x3a')],squel['select']()['field']('phone',_0x3af3('0x20'))[_0x3af3('0x3c')](_0x3af3('0x3d'),_0x3af3('0x39'))[_0x3af3('0x3c')]('id','ContactId')[_0x3af3('0x3c')](LISTID[_0x3af3('0x3e')](),_0x3af3('0x3f'))[_0x3af3('0x3c')](_0x33b36a['id'][_0x3af3('0x3e')](),_0x3ff9cd)['field'](_0x3af3('0x3d'),_0x3af3('0x40'))[_0x3af3('0x3c')](_0x3af3('0x3d'),_0x3af3('0x3a'))[_0x3af3('0x41')](_0x3af3('0x42'))[_0x3af3('0x43')]('deletedAt\x20IS\x20NULL')['where'](_0x3af3('0x44'),LISTID['toString']())[_0x3af3('0x43')]('id\x20IN\x20?',squel[_0x3af3('0x49')](hopperContacts))[_0x3af3('0x43')](_0x3af3('0x4a'))[_0x3af3('0x43')]('phone\x20NOT\x20IN\x20(?)',squel[_0x3af3('0x3b')]()[_0x3af3('0x3c')](_0x3af3('0x4b'))[_0x3af3('0x41')](_0x3af3('0x4c'))[_0x3af3('0x43')](_0x3ff9cd+'\x20=\x20?',_0x33b36a['id']['toString']()))[_0x3af3('0x43')](_0x3af3('0x45'),squel[_0x3af3('0x3b')]()[_0x3af3('0x3c')](_0x3af3('0x20'))[_0x3af3('0x41')](_0x3af3('0x38'))[_0x3af3('0x43')](_0x3ff9cd+_0x3af3('0x46'),_0x33b36a['id'][_0x3af3('0x3e')]())))['toString']();return _0x28cc53;};function _0x574578(_0x26e18b,_0x1aea11){var _0x4a03dc=squel[_0x3af3('0x36')]()[_0x3af3('0x37')](_0x3af3('0x38'))[_0x3af3('0x47')]([_0x3af3('0x20'),_0x3af3('0x39'),_0x3af3('0x48'),_0x3af3('0x3f'),_0x1aea11,_0x3af3('0x40'),_0x3af3('0x3a')],squel[_0x3af3('0x3b')]()[_0x3af3('0x3c')](_0x3af3('0x20'),_0x3af3('0x20'))['field'](_0x3af3('0x3d'),_0x3af3('0x39'))[_0x3af3('0x3c')]('id',_0x3af3('0x48'))['field'](LISTID['toString'](),_0x3af3('0x3f'))['field'](_0x26e18b['id']['toString'](),_0x1aea11)[_0x3af3('0x3c')](_0x3af3('0x3d'),_0x3af3('0x40'))['field'](_0x3af3('0x3d'),'updatedAt')[_0x3af3('0x41')]('cm_contacts')[_0x3af3('0x43')](_0x3af3('0x4d'))[_0x3af3('0x43')](_0x3af3('0x44'),LISTID['toString']())[_0x3af3('0x43')](_0x3af3('0x4e'),squel['str'](hopperContacts))[_0x3af3('0x43')](_0x3af3('0x4a')))[_0x3af3('0x3e')]();return _0x4a03dc;}function _0x2f3551(_0x23f4a2,_0x4023de){var _0x36d9ff=squel[_0x3af3('0x36')]()[_0x3af3('0x37')](_0x3af3('0x4f'))[_0x3af3('0x47')]([_0x3af3('0x20'),_0x3af3('0x48'),'ListId',_0x4023de,_0x3af3('0x40'),_0x3af3('0x3a')],squel[_0x3af3('0x3b')]()[_0x3af3('0x3c')](_0x3af3('0x20'),_0x3af3('0x20'))[_0x3af3('0x3c')]('id',_0x3af3('0x48'))['field'](LISTID[_0x3af3('0x3e')](),_0x3af3('0x3f'))[_0x3af3('0x3c')](_0x23f4a2['id'][_0x3af3('0x3e')](),_0x4023de)[_0x3af3('0x3c')](_0x3af3('0x3d'),_0x3af3('0x40'))[_0x3af3('0x3c')](_0x3af3('0x3d'),_0x3af3('0x3a'))[_0x3af3('0x41')](_0x3af3('0x42'))[_0x3af3('0x43')](_0x3af3('0x4d'))['where'](_0x3af3('0x44'),LISTID[_0x3af3('0x3e')]())[_0x3af3('0x43')](_0x3af3('0x4e'),squel[_0x3af3('0x49')](hopperContacts))[_0x3af3('0x43')](_0x3af3('0x4a')))[_0x3af3('0x3e')]();return _0x36d9ff;}return db[_0x3af3('0x50')]['findAll']({'where':{'type':_0x3af3('0x51')},'attributes':['id',_0x3af3('0x52')],'include':[{'model':db[_0x3af3('0x53')],'as':_0x3af3('0x54'),'where':{'id':LISTID}}]})[_0x3af3('0x2e')](function(_0x3ee0f8){var _0x2a50d6=[];if(_0x3ee0f8){var _0x32413b;for(var _0x592029=0x0,_0x3d3cae;_0x592029<_0x3ee0f8['length'];_0x592029+=0x1){_0x3d3cae=_0x3ee0f8[_0x592029][_0x3af3('0x55')]({'plain':!![]});switch(_0x3d3cae[_0x3af3('0x52')]){case _0x3af3('0x56'):_0x2a50d6['push'](db[_0x3af3('0x57')][_0x3af3('0x58')](_0x4de2f2(_0x3d3cae,_0x3af3('0x59')))[_0x3af3('0x2e')](function(){})[_0x3af3('0x31')](_0x31d8bb()));break;case _0x3af3('0x5a'):_0x2a50d6[_0x3af3('0x5b')](db[_0x3af3('0x57')][_0x3af3('0x58')](_0x3529aa(_0x3d3cae,'VoiceQueueId'))[_0x3af3('0x2e')](function(){})['catch'](_0x31d8bb()));break;default:_0x2a50d6[_0x3af3('0x5b')](db[_0x3af3('0x57')][_0x3af3('0x58')](_0x574578(_0x3d3cae,_0x3af3('0x59')))[_0x3af3('0x2e')](function(){})[_0x3af3('0x31')](_0x31d8bb()));}}}return _0x2a50d6;})['all']()[_0x3af3('0x2e')](function(){return db[_0x3af3('0x50')][_0x3af3('0x5c')]({'where':{'type':'outbound'},'attributes':['id'],'include':[{'model':db[_0x3af3('0x53')],'as':_0x3af3('0x5d'),'where':{'id':LISTID}}]})[_0x3af3('0x2e')](function(_0x2e78e9){var _0x4c24c2=[];if(_0x2e78e9){var _0x13f5c5;for(var _0x256783=0x0,_0x1f9295;_0x256783<_0x2e78e9[_0x3af3('0x2f')];_0x256783+=0x1){_0x1f9295=_0x2e78e9[_0x256783][_0x3af3('0x55')]({'plain':!![]});_0x4c24c2[_0x3af3('0x5b')](db[_0x3af3('0x57')]['query'](_0x2f3551(_0x1f9295,_0x3af3('0x59')))['then'](function(){})['catch'](_0x31d8bb()));}}return _0x4c24c2;})[_0x3af3('0x5e')]();})[_0x3af3('0x2e')](function(){return db[_0x3af3('0x5f')][_0x3af3('0x5c')]({'attributes':['id','dialCheckDuplicateType'],'include':[{'model':db['CmList'],'as':'Lists','where':{'id':LISTID}}]})[_0x3af3('0x2e')](function(_0x300f8d){var _0x776a16=[];if(_0x300f8d){for(var _0xb67124=0x0,_0x55397c;_0xb67124<_0x300f8d[_0x3af3('0x2f')];_0xb67124+=0x1){_0x55397c=_0x300f8d[_0xb67124][_0x3af3('0x55')]({'plain':!![]});switch(_0x55397c[_0x3af3('0x52')]){case _0x3af3('0x56'):_0x776a16[_0x3af3('0x5b')](db[_0x3af3('0x57')][_0x3af3('0x58')](_0x4de2f2(_0x55397c,_0x3af3('0x60')))['then'](function(){})['catch'](_0x31d8bb()));break;case _0x3af3('0x5a'):_0x776a16[_0x3af3('0x5b')](db[_0x3af3('0x57')][_0x3af3('0x58')](_0x3529aa(_0x55397c,'CampaignId'))[_0x3af3('0x2e')](function(){})[_0x3af3('0x31')](_0x31d8bb()));break;default:_0x776a16['push'](db['sequelize'][_0x3af3('0x58')](_0x574578(_0x55397c,_0x3af3('0x60')))['then'](function(){})[_0x3af3('0x31')](_0x31d8bb()));}}}return _0x776a16;})['all']();})[_0x3af3('0x2e')](function(){return db[_0x3af3('0x5f')][_0x3af3('0x5c')]({'attributes':['id'],'include':[{'model':db[_0x3af3('0x53')],'as':'BlackLists','where':{'id':LISTID}}]})[_0x3af3('0x2e')](function(_0x2105d8){var _0x574b60=[];if(_0x2105d8){for(var _0x123dac=0x0,_0x3f17c4;_0x123dac<_0x2105d8[_0x3af3('0x2f')];_0x123dac+=0x1){_0x3f17c4=_0x2105d8[_0x123dac][_0x3af3('0x55')]({'plain':!![]});_0x574b60[_0x3af3('0x5b')](db[_0x3af3('0x57')]['query'](_0x2f3551(_0x3f17c4,_0x3af3('0x60')))[_0x3af3('0x2e')](function(){})[_0x3af3('0x31')](_0x31d8bb()));}}return _0x574b60;})[_0x3af3('0x5e')]();})[_0x3af3('0x31')](function(_0x551f28){logger[_0x3af3('0x16')](_0x3af3('0x61'),_0x3af3('0x62'),_0x551f28[_0x3af3('0x32')]);});}var processPromises=function(_0x57ad23){return BPromise[_0x3af3('0x5e')](promises)[_0x3af3('0x2e')](function(_0x2d0ee9){})['catch'](function(_0x565e69){logger['error'](_0x3af3('0x63'),JSON[_0x3af3('0x33')](_0x565e69));})[_0x3af3('0x64')](function(){socket['emit'](_0x3af3('0x65')+SOCKET_TIMESTAMP,{'success':success,'errors':errors,'duplicates':duplicates,'rows':rows});promises=[];success=0x0;errors=0x0;duplicates=0x0;rows=[];if(_0x57ad23){return _0x57ad23['resume']();}});};var endCsv=function(){return BPromise[_0x3af3('0x66')]()[_0x3af3('0x2e')](function(){if(hopperContacts){return checkHopper();}})[_0x3af3('0x2e')](function(){socket['emit'](_0x3af3('0x65')+SOCKET_TIMESTAMP,{'finished':!![],'success':success,'errors':errors,'duplicates':duplicates,'rows':rows});try{fs[_0x3af3('0x67')](FILEPATH);}catch(_0x595362){logger[_0x3af3('0x16')](_0x3af3('0x68'),JSON[_0x3af3('0x33')](_0x595362));}finally{process['exit'](0x0);}});};process['on'](_0x3af3('0x69'),function(){logger[_0x3af3('0x6a')](_0x3af3('0x6b'));endCsv();});function main(){return BPromise[_0x3af3('0x66')]()[_0x3af3('0x2e')](function(){if(DUPLICATES){DUPLICATES=DUPLICATES[_0x3af3('0x13')](',');return db[_0x3af3('0x2b')][_0x3af3('0x5c')]({'where':{'ListId':LISTID},'attributes':DUPLICATES,'raw':!![]});}})[_0x3af3('0x2e')](function(_0x1825ce){var _0x4bf7a0=fs[_0x3af3('0x6c')](FILEPATH,{'highWaterMark':0xf*0x400*0x400});Papa['parse'](_0x4bf7a0,{'header':!![],'skipEmptyLines':!![],'step':function(_0x101c8d,_0x49e39b){total+=0x1;var _0x4525c1=total;promises[_0x3af3('0x5b')](checkRow(_0x101c8d,_0x1825ce,_0x4525c1)[_0x3af3('0x2e')](function(){success+=0x1;})[_0x3af3('0x31')](function(_0x407301){if(_0x407301[_0x3af3('0x16')]){errors+=0x1;delete _0x407301['error'];}else if(_0x407301['duplicate']){duplicates+=0x1;delete _0x407301[_0x3af3('0x29')];}rows[_0x3af3('0x5b')](_0x407301);}));if(total%0xc8===0x0){_0x49e39b['pause']();return processPromises(_0x49e39b);}},'complete':function(){return processPromises()[_0x3af3('0x2e')](function(){logger['info']('CSV\x20parsed\x20correctly!');endCsv();});},'error':function(_0x5be5a0,_0x2eb82b){logger[_0x3af3('0x6a')](_0x3af3('0x6d'),JSON['stringify'](_0x5be5a0));endCsv();}});})[_0x3af3('0x31')](function(_0x5d5190){logger[_0x3af3('0x16')]('Error\x20executing\x20contact\x20csv\x20import:',JSON[_0x3af3('0x33')](_0x5d5190));});}main();