795522c58bc325700c8e4632b88667dce9d65738
[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 _0x67cb=['pause','CSV\x20parse\x20error','util','ioredis','../../../mysqldb','../../../config/logger','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','contact','index','test','isNil','The\x20row\x20is\x20empty\x20or\x20the\x20number\x20of\x20parameters\x20does\x20not\x20match\x20the\x20columns!','errors','length','map','message','join','hasOwnProperty','data','firstName','firstName\x20not\x20specified!','phone','birthDate','email','email\x20format\x20is\x20not\x20valid!','find','duplicate','Duplicate\x20Contact','keys','then','pick','catch','stringify','cmContact','checkHopper','inspect','cm_hopper','fromQuery','scheduledAt','ContactId','ListId','select','field','NOW()','toString','createdAt','updatedAt','cm_contacts','where','deletedAt\x20IS\x20NULL','ListId\x20=\x20?','phone\x20IS\x20NOT\x20NULL','into','from','id\x20IN\x20?','str','phone\x20NOT\x20IN\x20(?)','calleridnum','cm_hopper_final','\x20=\x20?','insert','cm_hopper_black','VoiceQueue','findAll','CmList','Lists','get','push','sequelize','VoiceQueueId','onlyIfOpen','outbound','BlackLists','query','all','Campaign','dialCheckDuplicateType','CampaignId','cmContact,\x20%s,\x20%s','generalCheckHopper','Error\x20processing\x20rows\x20block:','finally','emit','contact:csv_','resume','resolve','unlinkSync','exit','SIGINT','info','CSV\x20import\x20process\x20stopped!','CmContact','createReadStream','parse'];(function(_0x1d7605,_0x14e4b2){var _0x199c18=function(_0x3080c7){while(--_0x3080c7){_0x1d7605['push'](_0x1d7605['shift']());}};_0x199c18(++_0x14e4b2);}(_0x67cb,0x149));var _0xb67c=function(_0x36ed3c,_0x44a00a){_0x36ed3c=_0x36ed3c-0x0;var _0x52a2e0=_0x67cb[_0x36ed3c];return _0x52a2e0;};'use strict';var BPromise=require('bluebird');var util=require(_0xb67c('0x0'));var _=require('lodash');var fs=require('fs');var squel=require('squel');var Papa=require('papaparse');var Redis=require(_0xb67c('0x1'));var db=require(_0xb67c('0x2'))['db'];var config=require('../../../config/environment');var logger=require(_0xb67c('0x3'))('api');config[_0xb67c('0x4')]=_[_0xb67c('0x5')](config[_0xb67c('0x4')],{'host':_0xb67c('0x6'),'port':0x18eb});var socket=require(_0xb67c('0x7'))(new Redis(config[_0xb67c('0x4')]));require(_0xb67c('0x8'))[_0xb67c('0x9')](socket);try{if(!process['argv'][0x2]||process['argv'][0x2]===_0xb67c('0xa')||process[_0xb67c('0xb')][0x2]==='null'){throw new Error(_0xb67c('0xc'));}var FILEPATH=process['argv'][0x2];if(!process['argv'][0x3]||process[_0xb67c('0xb')][0x3]===_0xb67c('0xa')||process[_0xb67c('0xb')][0x3]==='null'||!process[_0xb67c('0xb')][0x4]||process[_0xb67c('0xb')][0x4]===_0xb67c('0xa')||process[_0xb67c('0xb')][0x4]===_0xb67c('0xd')){throw new Error(_0xb67c('0xe'));}var FIELDS=_[_0xb67c('0xf')](process[_0xb67c('0xb')][0x3][_0xb67c('0x10')](','),process[_0xb67c('0xb')][0x4][_0xb67c('0x10')](','));if(!process[_0xb67c('0xb')][0x5]||process[_0xb67c('0xb')][0x5]===_0xb67c('0xa')||process[_0xb67c('0xb')][0x5]==='null'){throw new Error(_0xb67c('0x11'));}var LISTID=process['argv'][0x5];var COMPANYID=process[_0xb67c('0xb')][0x6]&&process[_0xb67c('0xb')][0x6]!==_0xb67c('0xa')&&process[_0xb67c('0xb')][0x6]!==_0xb67c('0xd')?process[_0xb67c('0xb')][0x6]:null;var DUPLICATES=process[_0xb67c('0xb')][0x7]&&process['argv'][0x7]!==_0xb67c('0xa')&&process[_0xb67c('0xb')][0x7]!==_0xb67c('0xd')?process[_0xb67c('0xb')][0x7]:null;if(!process['argv'][0x8]||process['argv'][0x8]===_0xb67c('0xa')||process[_0xb67c('0xb')][0x8]===_0xb67c('0xd')){throw new Error(_0xb67c('0x12'));}var SOCKET_TIMESTAMP=process['argv'][0x8];}catch(_0x103f3f){logger[_0xb67c('0x13')](_0x103f3f);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(_0x5b8f59,_0x1bf904,_0x4dfc5d,_0x1ed92b){var _0x5e58ed={'message':_0x1bf904};_0x5e58ed[_0x5b8f59]=!![];if(_0x4dfc5d){_0x5e58ed[_0xb67c('0x14')]=_0x4dfc5d;}if(_0x1ed92b){_0x5e58ed[_0xb67c('0x15')]=_0x1ed92b;}return _0x5e58ed;}function isEmail(_0x26ab27){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))*$/[_0xb67c('0x16')](_0x26ab27);}function checkRow(_0x43c97a,_0x58b00c,_0x681e7e){return new BPromise(function(_0x21c39f,_0x2d7d7a){if(_[_0xb67c('0x17')](_0x43c97a)){return _0x2d7d7a(handleCheckRowError(_0xb67c('0x13'),_0xb67c('0x18'),null,_0x681e7e));}if(_0x43c97a[_0xb67c('0x19')]&&_0x43c97a[_0xb67c('0x19')][_0xb67c('0x1a')]){var _0x24bea8=_[_0xb67c('0x1b')](_0x43c97a['errors'],_0xb67c('0x1c'))[_0xb67c('0x1d')](';');return _0x2d7d7a(handleCheckRowError('error',_0x24bea8,null,_0x681e7e));}var _0x22156b={};for(var _0x306c93 in FIELDS){if(FIELDS[_0xb67c('0x1e')](_0x306c93)&&FIELDS[_0x306c93]){_0x22156b[_0x306c93]=_0x43c97a[_0xb67c('0x1f')][0x0][FIELDS[_0x306c93]]||_0x43c97a[_0xb67c('0x1f')][0x0]['\ufeff'+FIELDS[_0x306c93]];}}if(!_0x22156b[_0xb67c('0x20')]){return _0x2d7d7a(handleCheckRowError(_0xb67c('0x13'),_0xb67c('0x21'),null,_0x681e7e));}if(!_0x22156b[_0xb67c('0x22')]){return _0x2d7d7a(handleCheckRowError(_0xb67c('0x13'),'phone\x20not\x20specified!',null,_0x681e7e));}if(_0x22156b[_0xb67c('0x23')]){var _0x5d91bc=moment(_0x22156b['birthDate'],'YYYY-MM-DD');if(!_0x5d91bc['isValid']()){return _0x2d7d7a(handleCheckRowError(_0xb67c('0x13'),'birthDate\x20format\x20is\x20invalid,\x20YYYY-MM-DD\x20format\x20is\x20supported!',null,_0x681e7e));}}if(_0x22156b[_0xb67c('0x24')]){if(!isEmail(_0x22156b['email'])){return _0x2d7d7a(handleCheckRowError(_0xb67c('0x13'),_0xb67c('0x25'),null,_0x681e7e));}}_0x22156b['ListId']=LISTID;_0x22156b['CompanyId']=COMPANYID||undefined;if(DUPLICATES&&DUPLICATES[_0xb67c('0x1a')]&&_0x58b00c){var _0x5b6d57={};for(var _0x2f6501=0x0,_0x5782b1=DUPLICATES[_0xb67c('0x1a')];_0x2f6501<_0x5782b1;_0x2f6501+=0x1){_0x5b6d57[DUPLICATES[_0x2f6501]]=_0x22156b[DUPLICATES[_0x2f6501]];}var _0x359e15=_[_0xb67c('0x26')](_0x58b00c,_0x5b6d57);if(_0x359e15){return _0x2d7d7a(handleCheckRowError(_0xb67c('0x27'),_0xb67c('0x28'),_0x359e15,_0x681e7e));}}return db['CmContact']['create'](_0x22156b,{'raw':!![],'hooks':![],'fields':_[_0xb67c('0x29')](_0x22156b)})[_0xb67c('0x2a')](function(_0x51fb9c){if(DUPLICATES&&DUPLICATES[_0xb67c('0x1a')]&&_0x58b00c){_0x58b00c['push'](_[_0xb67c('0x2b')](_0x22156b,DUPLICATES));}hopperContacts+=(hopperContacts?',':'')+_0x51fb9c['id'];return _0x21c39f();})[_0xb67c('0x2c')](function(_0x318767){return _0x2d7d7a(handleCheckRowError(_0xb67c('0x13'),'Error\x20while\x20creating\x20contact:\x20'+(_0x318767[_0xb67c('0x1c')]||JSON[_0xb67c('0x2d')](_0x318767)),null,_0x681e7e));});});}function checkHopper(){function _0x5b4aae(){return function(_0x386e46){logger[_0xb67c('0x13')](_0xb67c('0x2e'),_0xb67c('0x2f'),util[_0xb67c('0x30')](_0x386e46,{'showHidden':![],'depth':null}));};}var _0x18ed7c=function(_0x1fa102,_0x2f1e15){var _0xed62df=squel['insert']()['into'](_0xb67c('0x31'))[_0xb67c('0x32')]([_0xb67c('0x22'),_0xb67c('0x33'),_0xb67c('0x34'),_0xb67c('0x35'),_0x2f1e15,'createdAt','updatedAt'],squel[_0xb67c('0x36')]()[_0xb67c('0x37')](_0xb67c('0x22'),_0xb67c('0x22'))['field'](_0xb67c('0x38'),'scheduledAt')['field']('id',_0xb67c('0x34'))[_0xb67c('0x37')](LISTID[_0xb67c('0x39')](),_0xb67c('0x35'))[_0xb67c('0x37')](_0x1fa102['id'][_0xb67c('0x39')](),_0x2f1e15)[_0xb67c('0x37')]('NOW()',_0xb67c('0x3a'))[_0xb67c('0x37')](_0xb67c('0x38'),_0xb67c('0x3b'))['from'](_0xb67c('0x3c'))[_0xb67c('0x3d')](_0xb67c('0x3e'))[_0xb67c('0x3d')](_0xb67c('0x3f'),LISTID[_0xb67c('0x39')]())[_0xb67c('0x3d')](_0xb67c('0x40'))[_0xb67c('0x3d')]('phone\x20NOT\x20IN\x20(?)',squel['select']()['field'](_0xb67c('0x22'))['from']('cm_hopper')[_0xb67c('0x3d')](_0x2f1e15+'\x20=\x20?',_0x1fa102['id'][_0xb67c('0x39')]())))[_0xb67c('0x39')]();return _0xed62df;};var _0x527c07=function(_0x57c364,_0x3bf3da){var _0x38f3fa=squel['insert']()[_0xb67c('0x41')](_0xb67c('0x31'))[_0xb67c('0x32')]([_0xb67c('0x22'),'scheduledAt',_0xb67c('0x34'),'ListId',_0x3bf3da,_0xb67c('0x3a'),_0xb67c('0x3b')],squel['select']()[_0xb67c('0x37')]('phone',_0xb67c('0x22'))[_0xb67c('0x37')]('NOW()',_0xb67c('0x33'))[_0xb67c('0x37')]('id','ContactId')['field'](LISTID[_0xb67c('0x39')](),'ListId')[_0xb67c('0x37')](_0x57c364['id'][_0xb67c('0x39')](),_0x3bf3da)[_0xb67c('0x37')](_0xb67c('0x38'),_0xb67c('0x3a'))[_0xb67c('0x37')](_0xb67c('0x38'),_0xb67c('0x3b'))[_0xb67c('0x42')](_0xb67c('0x3c'))['where'](_0xb67c('0x3e'))[_0xb67c('0x3d')](_0xb67c('0x3f'),LISTID[_0xb67c('0x39')]())[_0xb67c('0x3d')](_0xb67c('0x43'),squel[_0xb67c('0x44')](hopperContacts))[_0xb67c('0x3d')]('phone\x20IS\x20NOT\x20NULL')['where'](_0xb67c('0x45'),squel[_0xb67c('0x36')]()[_0xb67c('0x37')](_0xb67c('0x46'))[_0xb67c('0x42')](_0xb67c('0x47'))[_0xb67c('0x3d')](_0x3bf3da+_0xb67c('0x48'),_0x57c364['id'][_0xb67c('0x39')]()))['where'](_0xb67c('0x45'),squel[_0xb67c('0x36')]()[_0xb67c('0x37')](_0xb67c('0x22'))['from']('cm_hopper')['where'](_0x3bf3da+'\x20=\x20?',_0x57c364['id']['toString']())))[_0xb67c('0x39')]();return _0x38f3fa;};function _0x1eedcd(_0x29478f,_0xd3c175){var _0x2448e7=squel['insert']()[_0xb67c('0x41')]('cm_hopper')[_0xb67c('0x32')]([_0xb67c('0x22'),'scheduledAt',_0xb67c('0x34'),_0xb67c('0x35'),_0xd3c175,_0xb67c('0x3a'),_0xb67c('0x3b')],squel['select']()[_0xb67c('0x37')]('phone',_0xb67c('0x22'))[_0xb67c('0x37')](_0xb67c('0x38'),_0xb67c('0x33'))[_0xb67c('0x37')]('id',_0xb67c('0x34'))['field'](LISTID[_0xb67c('0x39')](),'ListId')[_0xb67c('0x37')](_0x29478f['id'][_0xb67c('0x39')](),_0xd3c175)[_0xb67c('0x37')](_0xb67c('0x38'),_0xb67c('0x3a'))[_0xb67c('0x37')](_0xb67c('0x38'),_0xb67c('0x3b'))[_0xb67c('0x42')](_0xb67c('0x3c'))[_0xb67c('0x3d')]('deletedAt\x20IS\x20NULL')[_0xb67c('0x3d')](_0xb67c('0x3f'),LISTID[_0xb67c('0x39')]())['where'](_0xb67c('0x43'),squel[_0xb67c('0x44')](hopperContacts))['where'](_0xb67c('0x40')))[_0xb67c('0x39')]();return _0x2448e7;}function _0x5c78e8(_0x145cd4,_0x2573a6){var _0x19536a=squel[_0xb67c('0x49')]()[_0xb67c('0x41')](_0xb67c('0x4a'))[_0xb67c('0x32')]([_0xb67c('0x22'),_0xb67c('0x34'),_0xb67c('0x35'),_0x2573a6,_0xb67c('0x3a'),'updatedAt'],squel[_0xb67c('0x36')]()[_0xb67c('0x37')](_0xb67c('0x22'),_0xb67c('0x22'))['field']('id','ContactId')['field'](LISTID[_0xb67c('0x39')](),'ListId')[_0xb67c('0x37')](_0x145cd4['id'][_0xb67c('0x39')](),_0x2573a6)[_0xb67c('0x37')](_0xb67c('0x38'),'createdAt')[_0xb67c('0x37')](_0xb67c('0x38'),'updatedAt')[_0xb67c('0x42')](_0xb67c('0x3c'))[_0xb67c('0x3d')]('deletedAt\x20IS\x20NULL')[_0xb67c('0x3d')](_0xb67c('0x3f'),LISTID['toString']())[_0xb67c('0x3d')](_0xb67c('0x43'),squel[_0xb67c('0x44')](hopperContacts))[_0xb67c('0x3d')]('phone\x20IS\x20NOT\x20NULL'))[_0xb67c('0x39')]();return _0x19536a;}return db[_0xb67c('0x4b')][_0xb67c('0x4c')]({'where':{'type':'outbound'},'attributes':['id','dialCheckDuplicateType'],'include':[{'model':db[_0xb67c('0x4d')],'as':_0xb67c('0x4e'),'where':{'id':LISTID}}]})[_0xb67c('0x2a')](function(_0xb76ac4){var _0xb9fa3e=[];if(_0xb76ac4){var _0x792381;for(var _0x780527=0x0,_0x1f0ae4;_0x780527<_0xb76ac4[_0xb67c('0x1a')];_0x780527+=0x1){_0x1f0ae4=_0xb76ac4[_0x780527][_0xb67c('0x4f')]({'plain':!![]});switch(_0x1f0ae4['dialCheckDuplicateType']){case'always':_0xb9fa3e[_0xb67c('0x50')](db[_0xb67c('0x51')]['query'](_0x527c07(_0x1f0ae4,_0xb67c('0x52')))[_0xb67c('0x2a')](function(){})[_0xb67c('0x2c')](_0x5b4aae()));break;case _0xb67c('0x53'):_0xb9fa3e[_0xb67c('0x50')](db[_0xb67c('0x51')]['query'](_0x18ed7c(_0x1f0ae4,_0xb67c('0x52')))[_0xb67c('0x2a')](function(){})[_0xb67c('0x2c')](_0x5b4aae()));break;default:_0xb9fa3e['push'](db[_0xb67c('0x51')]['query'](_0x1eedcd(_0x1f0ae4,_0xb67c('0x52')))[_0xb67c('0x2a')](function(){})[_0xb67c('0x2c')](_0x5b4aae()));}}}return _0xb9fa3e;})['all']()['then'](function(){return db[_0xb67c('0x4b')][_0xb67c('0x4c')]({'where':{'type':_0xb67c('0x54')},'attributes':['id'],'include':[{'model':db['CmList'],'as':_0xb67c('0x55'),'where':{'id':LISTID}}]})['then'](function(_0x136da1){var _0x219188=[];if(_0x136da1){var _0x46f29b;for(var _0x528e4b=0x0,_0x52fbf7;_0x528e4b<_0x136da1[_0xb67c('0x1a')];_0x528e4b+=0x1){_0x52fbf7=_0x136da1[_0x528e4b][_0xb67c('0x4f')]({'plain':!![]});_0x219188[_0xb67c('0x50')](db[_0xb67c('0x51')][_0xb67c('0x56')](_0x5c78e8(_0x52fbf7,_0xb67c('0x52')))[_0xb67c('0x2a')](function(){})[_0xb67c('0x2c')](_0x5b4aae()));}}return _0x219188;})[_0xb67c('0x57')]();})[_0xb67c('0x2a')](function(){return db[_0xb67c('0x58')]['findAll']({'attributes':['id','dialCheckDuplicateType'],'include':[{'model':db[_0xb67c('0x4d')],'as':_0xb67c('0x4e'),'where':{'id':LISTID}}]})[_0xb67c('0x2a')](function(_0x4a4827){var _0x1b1ceb=[];if(_0x4a4827){for(var _0x2c6261=0x0,_0x1c88e2;_0x2c6261<_0x4a4827[_0xb67c('0x1a')];_0x2c6261+=0x1){_0x1c88e2=_0x4a4827[_0x2c6261]['get']({'plain':!![]});switch(_0x1c88e2[_0xb67c('0x59')]){case'always':_0x1b1ceb[_0xb67c('0x50')](db['sequelize'][_0xb67c('0x56')](_0x527c07(_0x1c88e2,_0xb67c('0x5a')))[_0xb67c('0x2a')](function(){})[_0xb67c('0x2c')](_0x5b4aae()));break;case _0xb67c('0x53'):_0x1b1ceb[_0xb67c('0x50')](db[_0xb67c('0x51')][_0xb67c('0x56')](_0x18ed7c(_0x1c88e2,'CampaignId'))[_0xb67c('0x2a')](function(){})['catch'](_0x5b4aae()));break;default:_0x1b1ceb[_0xb67c('0x50')](db[_0xb67c('0x51')]['query'](_0x1eedcd(_0x1c88e2,_0xb67c('0x5a')))[_0xb67c('0x2a')](function(){})[_0xb67c('0x2c')](_0x5b4aae()));}}}return _0x1b1ceb;})['all']();})[_0xb67c('0x2a')](function(){return db['Campaign'][_0xb67c('0x4c')]({'attributes':['id'],'include':[{'model':db[_0xb67c('0x4d')],'as':_0xb67c('0x55'),'where':{'id':LISTID}}]})[_0xb67c('0x2a')](function(_0x5b5282){var _0x3d5a67=[];if(_0x5b5282){for(var _0xe448fc=0x0,_0x121517;_0xe448fc<_0x5b5282[_0xb67c('0x1a')];_0xe448fc+=0x1){_0x121517=_0x5b5282[_0xe448fc][_0xb67c('0x4f')]({'plain':!![]});_0x3d5a67[_0xb67c('0x50')](db[_0xb67c('0x51')]['query'](_0x5c78e8(_0x121517,'CampaignId'))[_0xb67c('0x2a')](function(){})[_0xb67c('0x2c')](_0x5b4aae()));}}return _0x3d5a67;})[_0xb67c('0x57')]();})[_0xb67c('0x2c')](function(_0x20db8a){logger[_0xb67c('0x13')](_0xb67c('0x5b'),_0xb67c('0x5c'),_0x20db8a[_0xb67c('0x1c')]);});}var processPromises=function(_0x2ce10d){return BPromise[_0xb67c('0x57')](promises)[_0xb67c('0x2a')](function(_0x2334da){})['catch'](function(_0x538fde){logger[_0xb67c('0x13')](_0xb67c('0x5d'),JSON[_0xb67c('0x2d')](_0x538fde));})[_0xb67c('0x5e')](function(){socket[_0xb67c('0x5f')](_0xb67c('0x60')+SOCKET_TIMESTAMP,{'success':success,'errors':errors,'duplicates':duplicates,'rows':rows});promises=[];success=0x0;errors=0x0;duplicates=0x0;rows=[];if(_0x2ce10d){return _0x2ce10d[_0xb67c('0x61')]();}});};var endCsv=function(){return BPromise[_0xb67c('0x62')]()[_0xb67c('0x2a')](function(){if(hopperContacts){return checkHopper();}})[_0xb67c('0x2a')](function(){socket[_0xb67c('0x5f')](_0xb67c('0x60')+SOCKET_TIMESTAMP,{'finished':!![],'success':success,'errors':errors,'duplicates':duplicates,'rows':rows});try{fs[_0xb67c('0x63')](FILEPATH);}catch(_0x36a469){logger[_0xb67c('0x13')]('Unable\x20to\x20delete\x20temp\x20file:',JSON['stringify'](_0x36a469));}finally{process[_0xb67c('0x64')](0x0);}});};process['on'](_0xb67c('0x65'),function(){logger[_0xb67c('0x66')](_0xb67c('0x67'));endCsv();});function main(){return BPromise[_0xb67c('0x62')]()[_0xb67c('0x2a')](function(){if(DUPLICATES){DUPLICATES=DUPLICATES['split'](',');return db[_0xb67c('0x68')][_0xb67c('0x4c')]({'where':{'ListId':LISTID},'attributes':DUPLICATES,'raw':!![]});}})['then'](function(_0x41e833){var _0x44a790=fs[_0xb67c('0x69')](FILEPATH,{'highWaterMark':0xf*0x400*0x400});Papa[_0xb67c('0x6a')](_0x44a790,{'header':!![],'skipEmptyLines':!![],'step':function(_0x53b09a,_0x201801){total+=0x1;var _0xc04260=total;promises[_0xb67c('0x50')](checkRow(_0x53b09a,_0x41e833,_0xc04260)[_0xb67c('0x2a')](function(){success+=0x1;})['catch'](function(_0x3f6bab){if(_0x3f6bab[_0xb67c('0x13')]){errors+=0x1;delete _0x3f6bab[_0xb67c('0x13')];}else if(_0x3f6bab['duplicate']){duplicates+=0x1;delete _0x3f6bab[_0xb67c('0x27')];}rows['push'](_0x3f6bab);}));if(total%0xc8===0x0){_0x201801[_0xb67c('0x6b')]();return processPromises(_0x201801);}},'complete':function(){return processPromises()[_0xb67c('0x2a')](function(){logger['info']('CSV\x20parsed\x20correctly!');endCsv();});},'error':function(_0x4c6589,_0x407202){logger['info'](_0xb67c('0x6c'),JSON[_0xb67c('0x2d')](_0x4c6589));endCsv();}});})[_0xb67c('0x2c')](function(_0x360f85){logger[_0xb67c('0x13')]('Error\x20executing\x20contact\x20csv\x20import:',JSON[_0xb67c('0x2d')](_0x360f85));});}main();