Built motion from commit e02f907f.|2.6.14
[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 _0x8ebc=['push','catch','stringify','cmContact','cm_hopper','fromQuery','phone','scheduledAt','ContactId','createdAt','updatedAt','select','field','NOW()','toString','from','where','deletedAt\x20IS\x20NULL','phone\x20IS\x20NOT\x20NULL','insert','into','cm_contacts','id\x20IN\x20?','phone\x20NOT\x20IN\x20(?)','cm_hopper_final','\x20=\x20?','ListId\x20=\x20?','str','VoiceQueue','outbound','CmList','Lists','then','get','dialCheckDuplicateType','query','VoiceQueueId','onlyIfOpen','sequelize','BlackLists','Campaign','findAll','CampaignId','all','cmContact,\x20%s,\x20%s','finally','emit','contact:csv_','resume','resolve','Unable\x20to\x20delete\x20temp\x20file:','exit','info','CSV\x20import\x20process\x20stopped!','createReadStream','parse','pause','CSV\x20parsed\x20correctly!','CSV\x20parse\x20error','Error\x20executing\x20contact\x20csv\x20import:','bluebird','util','lodash','squel','../../../mysqldb','../../../config/logger','api','redis','defaults','localhost','socket.io-emitter','../../../api/cmContact/cmContact.socket','register','argv','undefined','null','Missing\x20filepath\x20parameter!','Missing\x20binding\x20parameters!','zipObject','split','Missing\x20ListId\x20parameter!','Missing\x20socket_timestamp\x20parameter!','contact','index','test','isNil','error','errors','length','map','message','join','hasOwnProperty','data','firstName','firstName\x20not\x20specified!','phone\x20not\x20specified!','birthDate','isValid','email\x20format\x20is\x20not\x20valid!','ListId','find','duplicate','Duplicate\x20Contact','create','keys'];(function(_0x350213,_0x5d71f8){var _0x3fcae2=function(_0x141c8e){while(--_0x141c8e){_0x350213['push'](_0x350213['shift']());}};_0x3fcae2(++_0x5d71f8);}(_0x8ebc,0x110));var _0xc8eb=function(_0x4e175a,_0x2bae34){_0x4e175a=_0x4e175a-0x0;var _0x2ff2c4=_0x8ebc[_0x4e175a];return _0x2ff2c4;};'use strict';var BPromise=require(_0xc8eb('0x0'));var util=require(_0xc8eb('0x1'));var _=require(_0xc8eb('0x2'));var fs=require('fs');var squel=require(_0xc8eb('0x3'));var Papa=require('papaparse');var Redis=require('ioredis');var db=require(_0xc8eb('0x4'))['db'];var config=require('../../../config/environment');var logger=require(_0xc8eb('0x5'))(_0xc8eb('0x6'));config[_0xc8eb('0x7')]=_[_0xc8eb('0x8')](config['redis'],{'host':_0xc8eb('0x9'),'port':0x18eb});var socket=require(_0xc8eb('0xa'))(new Redis(config[_0xc8eb('0x7')]));require(_0xc8eb('0xb'))[_0xc8eb('0xc')](socket);try{if(!process[_0xc8eb('0xd')][0x2]||process[_0xc8eb('0xd')][0x2]===_0xc8eb('0xe')||process['argv'][0x2]===_0xc8eb('0xf')){throw new Error(_0xc8eb('0x10'));}var FILEPATH=process['argv'][0x2];if(!process[_0xc8eb('0xd')][0x3]||process[_0xc8eb('0xd')][0x3]===_0xc8eb('0xe')||process[_0xc8eb('0xd')][0x3]===_0xc8eb('0xf')||!process[_0xc8eb('0xd')][0x4]||process['argv'][0x4]===_0xc8eb('0xe')||process[_0xc8eb('0xd')][0x4]===_0xc8eb('0xf')){throw new Error(_0xc8eb('0x11'));}var FIELDS=_[_0xc8eb('0x12')](process[_0xc8eb('0xd')][0x3][_0xc8eb('0x13')](','),process[_0xc8eb('0xd')][0x4][_0xc8eb('0x13')](','));if(!process['argv'][0x5]||process[_0xc8eb('0xd')][0x5]===_0xc8eb('0xe')||process[_0xc8eb('0xd')][0x5]==='null'){throw new Error(_0xc8eb('0x14'));}var LISTID=process['argv'][0x5];var COMPANYID=process[_0xc8eb('0xd')][0x6]&&process[_0xc8eb('0xd')][0x6]!==_0xc8eb('0xe')&&process['argv'][0x6]!==_0xc8eb('0xf')?process[_0xc8eb('0xd')][0x6]:null;var DUPLICATES=process[_0xc8eb('0xd')][0x7]&&process['argv'][0x7]!==_0xc8eb('0xe')&&process[_0xc8eb('0xd')][0x7]!==_0xc8eb('0xf')?process[_0xc8eb('0xd')][0x7]:null;if(!process[_0xc8eb('0xd')][0x8]||process[_0xc8eb('0xd')][0x8]===_0xc8eb('0xe')||process[_0xc8eb('0xd')][0x8]==='null'){throw new Error(_0xc8eb('0x15'));}var SOCKET_TIMESTAMP=process[_0xc8eb('0xd')][0x8];}catch(_0x4490b0){logger['error'](_0x4490b0);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(_0x5c61f8,_0x16fcd2,_0x33339e,_0x31676f){var _0x273aca={'message':_0x16fcd2};_0x273aca[_0x5c61f8]=!![];if(_0x33339e){_0x273aca[_0xc8eb('0x16')]=_0x33339e;}if(_0x31676f){_0x273aca[_0xc8eb('0x17')]=_0x31676f;}return _0x273aca;}function isEmail(_0x49c305){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))*$/[_0xc8eb('0x18')](_0x49c305);}function checkRow(_0x30befc,_0x185f17,_0x239efd){return new BPromise(function(_0x1cfb7f,_0x580b40){if(_[_0xc8eb('0x19')](_0x30befc)){return _0x580b40(handleCheckRowError(_0xc8eb('0x1a'),'The\x20row\x20is\x20empty\x20or\x20the\x20number\x20of\x20parameters\x20does\x20not\x20match\x20the\x20columns!',null,_0x239efd));}if(_0x30befc['errors']&&_0x30befc[_0xc8eb('0x1b')][_0xc8eb('0x1c')]){var _0x36624d=_[_0xc8eb('0x1d')](_0x30befc[_0xc8eb('0x1b')],_0xc8eb('0x1e'))[_0xc8eb('0x1f')](';');return _0x580b40(handleCheckRowError('error',_0x36624d,null,_0x239efd));}var _0x19b3b6={};for(var _0x4386c8 in FIELDS){if(FIELDS[_0xc8eb('0x20')](_0x4386c8)&&FIELDS[_0x4386c8]){_0x19b3b6[_0x4386c8]=_0x30befc[_0xc8eb('0x21')][0x0][FIELDS[_0x4386c8]]||_0x30befc[_0xc8eb('0x21')][0x0]['\ufeff'+FIELDS[_0x4386c8]];}}if(!_0x19b3b6[_0xc8eb('0x22')]){return _0x580b40(handleCheckRowError(_0xc8eb('0x1a'),_0xc8eb('0x23'),null,_0x239efd));}if(!_0x19b3b6['phone']){return _0x580b40(handleCheckRowError(_0xc8eb('0x1a'),_0xc8eb('0x24'),null,_0x239efd));}if(_0x19b3b6[_0xc8eb('0x25')]){var _0x5ddf3d=moment(_0x19b3b6[_0xc8eb('0x25')],'YYYY-MM-DD');if(!_0x5ddf3d[_0xc8eb('0x26')]()){return _0x580b40(handleCheckRowError('error','birthDate\x20format\x20is\x20invalid,\x20YYYY-MM-DD\x20format\x20is\x20supported!',null,_0x239efd));}}if(_0x19b3b6['email']){if(!isEmail(_0x19b3b6['email'])){return _0x580b40(handleCheckRowError(_0xc8eb('0x1a'),_0xc8eb('0x27'),null,_0x239efd));}}_0x19b3b6[_0xc8eb('0x28')]=LISTID;_0x19b3b6['CompanyId']=COMPANYID||undefined;if(DUPLICATES&&DUPLICATES[_0xc8eb('0x1c')]&&_0x185f17){var _0xdd4afd={};for(var _0x337ea1=0x0,_0x491169=DUPLICATES['length'];_0x337ea1<_0x491169;_0x337ea1+=0x1){_0xdd4afd[DUPLICATES[_0x337ea1]]=_0x19b3b6[DUPLICATES[_0x337ea1]];}var _0x47c7a1=_[_0xc8eb('0x29')](_0x185f17,_0xdd4afd);if(_0x47c7a1){return _0x580b40(handleCheckRowError(_0xc8eb('0x2a'),_0xc8eb('0x2b'),_0x47c7a1,_0x239efd));}}return db['CmContact'][_0xc8eb('0x2c')](_0x19b3b6,{'raw':!![],'hooks':![],'fields':_[_0xc8eb('0x2d')](_0x19b3b6)})['then'](function(_0x3eacb8){if(DUPLICATES&&DUPLICATES['length']&&_0x185f17){_0x185f17[_0xc8eb('0x2e')](_['pick'](_0x19b3b6,DUPLICATES));}hopperContacts+=(hopperContacts?',':'')+_0x3eacb8['id'];return _0x1cfb7f();})[_0xc8eb('0x2f')](function(_0x48ad83){return _0x580b40(handleCheckRowError(_0xc8eb('0x1a'),'Error\x20while\x20creating\x20contact:\x20'+(_0x48ad83[_0xc8eb('0x1e')]||JSON[_0xc8eb('0x30')](_0x48ad83)),null,_0x239efd));});});}function checkHopper(){function _0x5edb2a(){return function(_0x52ac18){logger[_0xc8eb('0x1a')](_0xc8eb('0x31'),'checkHopper',util['inspect'](_0x52ac18,{'showHidden':![],'depth':null}));};}var _0x264899=function(_0x16ce3b,_0x30875d){var _0x3e5d8c=squel['insert']()['into'](_0xc8eb('0x32'))[_0xc8eb('0x33')]([_0xc8eb('0x34'),_0xc8eb('0x35'),_0xc8eb('0x36'),'ListId',_0x30875d,_0xc8eb('0x37'),_0xc8eb('0x38')],squel[_0xc8eb('0x39')]()[_0xc8eb('0x3a')](_0xc8eb('0x34'),_0xc8eb('0x34'))[_0xc8eb('0x3a')](_0xc8eb('0x3b'),_0xc8eb('0x35'))[_0xc8eb('0x3a')]('id',_0xc8eb('0x36'))[_0xc8eb('0x3a')](LISTID[_0xc8eb('0x3c')](),'ListId')['field'](_0x16ce3b['id'][_0xc8eb('0x3c')](),_0x30875d)[_0xc8eb('0x3a')](_0xc8eb('0x3b'),'createdAt')['field']('NOW()','updatedAt')[_0xc8eb('0x3d')]('cm_contacts')[_0xc8eb('0x3e')](_0xc8eb('0x3f'))['where']('ListId\x20=\x20?',LISTID[_0xc8eb('0x3c')]())[_0xc8eb('0x3e')](_0xc8eb('0x40'))[_0xc8eb('0x3e')]('phone\x20NOT\x20IN\x20(?)',squel[_0xc8eb('0x39')]()[_0xc8eb('0x3a')](_0xc8eb('0x34'))[_0xc8eb('0x3d')]('cm_hopper')['where'](_0x30875d+'\x20=\x20?',_0x16ce3b['id']['toString']())))['toString']();return _0x3e5d8c;};var _0x246c13=function(_0x374115,_0x419979){var _0x10f878=squel[_0xc8eb('0x41')]()[_0xc8eb('0x42')](_0xc8eb('0x32'))[_0xc8eb('0x33')]([_0xc8eb('0x34'),'scheduledAt','ContactId','ListId',_0x419979,_0xc8eb('0x37'),_0xc8eb('0x38')],squel['select']()[_0xc8eb('0x3a')](_0xc8eb('0x34'),_0xc8eb('0x34'))['field'](_0xc8eb('0x3b'),'scheduledAt')['field']('id',_0xc8eb('0x36'))[_0xc8eb('0x3a')](LISTID[_0xc8eb('0x3c')](),_0xc8eb('0x28'))[_0xc8eb('0x3a')](_0x374115['id'][_0xc8eb('0x3c')](),_0x419979)['field'](_0xc8eb('0x3b'),_0xc8eb('0x37'))[_0xc8eb('0x3a')](_0xc8eb('0x3b'),_0xc8eb('0x38'))['from'](_0xc8eb('0x43'))['where']('deletedAt\x20IS\x20NULL')[_0xc8eb('0x3e')]('ListId\x20=\x20?',LISTID['toString']())[_0xc8eb('0x3e')](_0xc8eb('0x44'),squel['str'](hopperContacts))[_0xc8eb('0x3e')]('phone\x20IS\x20NOT\x20NULL')['where'](_0xc8eb('0x45'),squel[_0xc8eb('0x39')]()[_0xc8eb('0x3a')]('calleridnum')['from'](_0xc8eb('0x46'))[_0xc8eb('0x3e')](_0x419979+_0xc8eb('0x47'),_0x374115['id'][_0xc8eb('0x3c')]()))[_0xc8eb('0x3e')](_0xc8eb('0x45'),squel[_0xc8eb('0x39')]()[_0xc8eb('0x3a')]('phone')[_0xc8eb('0x3d')](_0xc8eb('0x32'))[_0xc8eb('0x3e')](_0x419979+_0xc8eb('0x47'),_0x374115['id']['toString']())))[_0xc8eb('0x3c')]();return _0x10f878;};function _0x4660b3(_0xcfa64b,_0x2fcb73){var _0x588353=squel['insert']()[_0xc8eb('0x42')]('cm_hopper')['fromQuery']([_0xc8eb('0x34'),_0xc8eb('0x35'),_0xc8eb('0x36'),'ListId',_0x2fcb73,'createdAt','updatedAt'],squel['select']()[_0xc8eb('0x3a')](_0xc8eb('0x34'),_0xc8eb('0x34'))[_0xc8eb('0x3a')](_0xc8eb('0x3b'),_0xc8eb('0x35'))[_0xc8eb('0x3a')]('id',_0xc8eb('0x36'))[_0xc8eb('0x3a')](LISTID[_0xc8eb('0x3c')](),'ListId')['field'](_0xcfa64b['id'][_0xc8eb('0x3c')](),_0x2fcb73)[_0xc8eb('0x3a')]('NOW()','createdAt')['field'](_0xc8eb('0x3b'),'updatedAt')[_0xc8eb('0x3d')](_0xc8eb('0x43'))[_0xc8eb('0x3e')]('deletedAt\x20IS\x20NULL')['where'](_0xc8eb('0x48'),LISTID['toString']())['where'](_0xc8eb('0x44'),squel[_0xc8eb('0x49')](hopperContacts))[_0xc8eb('0x3e')](_0xc8eb('0x40')))['toString']();return _0x588353;}function _0x404017(_0x127825,_0x30112b){var _0x2652a9=squel['insert']()['into']('cm_hopper_black')[_0xc8eb('0x33')]([_0xc8eb('0x34'),_0xc8eb('0x36'),'ListId',_0x30112b,'createdAt',_0xc8eb('0x38')],squel['select']()[_0xc8eb('0x3a')](_0xc8eb('0x34'),_0xc8eb('0x34'))[_0xc8eb('0x3a')]('id',_0xc8eb('0x36'))[_0xc8eb('0x3a')](LISTID[_0xc8eb('0x3c')](),_0xc8eb('0x28'))[_0xc8eb('0x3a')](_0x127825['id']['toString'](),_0x30112b)[_0xc8eb('0x3a')](_0xc8eb('0x3b'),_0xc8eb('0x37'))['field'](_0xc8eb('0x3b'),_0xc8eb('0x38'))[_0xc8eb('0x3d')](_0xc8eb('0x43'))[_0xc8eb('0x3e')](_0xc8eb('0x3f'))[_0xc8eb('0x3e')]('ListId\x20=\x20?',LISTID[_0xc8eb('0x3c')]())[_0xc8eb('0x3e')](_0xc8eb('0x44'),squel[_0xc8eb('0x49')](hopperContacts))[_0xc8eb('0x3e')](_0xc8eb('0x40')))[_0xc8eb('0x3c')]();return _0x2652a9;}return db[_0xc8eb('0x4a')]['findAll']({'where':{'type':_0xc8eb('0x4b')},'attributes':['id','dialCheckDuplicateType'],'include':[{'model':db[_0xc8eb('0x4c')],'as':_0xc8eb('0x4d'),'where':{'id':LISTID}}]})[_0xc8eb('0x4e')](function(_0x2c755c){var _0x4aab19=[];if(_0x2c755c){var _0x38d22f;for(var _0x34f18c=0x0,_0x42212c;_0x34f18c<_0x2c755c['length'];_0x34f18c+=0x1){_0x42212c=_0x2c755c[_0x34f18c][_0xc8eb('0x4f')]({'plain':!![]});switch(_0x42212c[_0xc8eb('0x50')]){case'always':_0x4aab19[_0xc8eb('0x2e')](db['sequelize'][_0xc8eb('0x51')](_0x246c13(_0x42212c,_0xc8eb('0x52')))[_0xc8eb('0x4e')](function(){})[_0xc8eb('0x2f')](_0x5edb2a()));break;case _0xc8eb('0x53'):_0x4aab19[_0xc8eb('0x2e')](db[_0xc8eb('0x54')][_0xc8eb('0x51')](_0x264899(_0x42212c,_0xc8eb('0x52')))[_0xc8eb('0x4e')](function(){})[_0xc8eb('0x2f')](_0x5edb2a()));break;default:_0x4aab19[_0xc8eb('0x2e')](db[_0xc8eb('0x54')][_0xc8eb('0x51')](_0x4660b3(_0x42212c,_0xc8eb('0x52')))['then'](function(){})['catch'](_0x5edb2a()));}}}return _0x4aab19;})['all']()['then'](function(){return db[_0xc8eb('0x4a')]['findAll']({'where':{'type':_0xc8eb('0x4b')},'attributes':['id'],'include':[{'model':db[_0xc8eb('0x4c')],'as':_0xc8eb('0x55'),'where':{'id':LISTID}}]})[_0xc8eb('0x4e')](function(_0x33066e){var _0x32290c=[];if(_0x33066e){var _0x37b762;for(var _0x602d6a=0x0,_0x16166c;_0x602d6a<_0x33066e[_0xc8eb('0x1c')];_0x602d6a+=0x1){_0x16166c=_0x33066e[_0x602d6a][_0xc8eb('0x4f')]({'plain':!![]});_0x32290c[_0xc8eb('0x2e')](db[_0xc8eb('0x54')][_0xc8eb('0x51')](_0x404017(_0x16166c,_0xc8eb('0x52')))['then'](function(){})[_0xc8eb('0x2f')](_0x5edb2a()));}}return _0x32290c;})['all']();})[_0xc8eb('0x4e')](function(){return db[_0xc8eb('0x56')][_0xc8eb('0x57')]({'attributes':['id',_0xc8eb('0x50')],'include':[{'model':db[_0xc8eb('0x4c')],'as':'Lists','where':{'id':LISTID}}]})['then'](function(_0x1cc78e){var _0x59df45=[];if(_0x1cc78e){for(var _0x234b3b=0x0,_0x15cedf;_0x234b3b<_0x1cc78e['length'];_0x234b3b+=0x1){_0x15cedf=_0x1cc78e[_0x234b3b][_0xc8eb('0x4f')]({'plain':!![]});switch(_0x15cedf[_0xc8eb('0x50')]){case'always':_0x59df45[_0xc8eb('0x2e')](db[_0xc8eb('0x54')][_0xc8eb('0x51')](_0x246c13(_0x15cedf,_0xc8eb('0x58')))['then'](function(){})[_0xc8eb('0x2f')](_0x5edb2a()));break;case _0xc8eb('0x53'):_0x59df45[_0xc8eb('0x2e')](db[_0xc8eb('0x54')][_0xc8eb('0x51')](_0x264899(_0x15cedf,_0xc8eb('0x58')))[_0xc8eb('0x4e')](function(){})['catch'](_0x5edb2a()));break;default:_0x59df45['push'](db['sequelize'][_0xc8eb('0x51')](_0x4660b3(_0x15cedf,_0xc8eb('0x58')))['then'](function(){})[_0xc8eb('0x2f')](_0x5edb2a()));}}}return _0x59df45;})[_0xc8eb('0x59')]();})['then'](function(){return db[_0xc8eb('0x56')][_0xc8eb('0x57')]({'attributes':['id'],'include':[{'model':db['CmList'],'as':_0xc8eb('0x55'),'where':{'id':LISTID}}]})['then'](function(_0x217599){var _0x49e59c=[];if(_0x217599){for(var _0x3580c8=0x0,_0x571f61;_0x3580c8<_0x217599[_0xc8eb('0x1c')];_0x3580c8+=0x1){_0x571f61=_0x217599[_0x3580c8][_0xc8eb('0x4f')]({'plain':!![]});_0x49e59c['push'](db['sequelize']['query'](_0x404017(_0x571f61,_0xc8eb('0x58')))[_0xc8eb('0x4e')](function(){})['catch'](_0x5edb2a()));}}return _0x49e59c;})['all']();})[_0xc8eb('0x2f')](function(_0x3722ef){logger[_0xc8eb('0x1a')](_0xc8eb('0x5a'),'generalCheckHopper',_0x3722ef[_0xc8eb('0x1e')]);});}var processPromises=function(_0x4026e8){return BPromise[_0xc8eb('0x59')](promises)[_0xc8eb('0x4e')](function(_0x262c4e){})[_0xc8eb('0x2f')](function(_0x2b54af){logger[_0xc8eb('0x1a')]('Error\x20processing\x20rows\x20block:',JSON['stringify'](_0x2b54af));})[_0xc8eb('0x5b')](function(){socket[_0xc8eb('0x5c')](_0xc8eb('0x5d')+SOCKET_TIMESTAMP,{'success':success,'errors':errors,'duplicates':duplicates,'rows':rows});promises=[];success=0x0;errors=0x0;duplicates=0x0;rows=[];if(_0x4026e8){return _0x4026e8[_0xc8eb('0x5e')]();}});};var endCsv=function(){return BPromise[_0xc8eb('0x5f')]()[_0xc8eb('0x4e')](function(){if(hopperContacts){return checkHopper();}})[_0xc8eb('0x4e')](function(){socket['emit'](_0xc8eb('0x5d')+SOCKET_TIMESTAMP,{'finished':!![],'success':success,'errors':errors,'duplicates':duplicates,'rows':rows});try{fs['unlinkSync'](FILEPATH);}catch(_0x1b96c5){logger[_0xc8eb('0x1a')](_0xc8eb('0x60'),JSON['stringify'](_0x1b96c5));}finally{process[_0xc8eb('0x61')](0x0);}});};process['on']('SIGINT',function(){logger[_0xc8eb('0x62')](_0xc8eb('0x63'));endCsv();});function main(){return BPromise['resolve']()[_0xc8eb('0x4e')](function(){if(DUPLICATES){DUPLICATES=DUPLICATES['split'](',');return db['CmContact'][_0xc8eb('0x57')]({'where':{'ListId':LISTID},'attributes':DUPLICATES,'raw':!![]});}})[_0xc8eb('0x4e')](function(_0x146f43){var _0x4ee9a6=fs[_0xc8eb('0x64')](FILEPATH,{'highWaterMark':0xf*0x400*0x400});Papa[_0xc8eb('0x65')](_0x4ee9a6,{'header':!![],'skipEmptyLines':!![],'step':function(_0x3789cf,_0x49e603){total+=0x1;var _0x360525=total;promises['push'](checkRow(_0x3789cf,_0x146f43,_0x360525)[_0xc8eb('0x4e')](function(){success+=0x1;})[_0xc8eb('0x2f')](function(_0x596d48){if(_0x596d48[_0xc8eb('0x1a')]){errors+=0x1;delete _0x596d48['error'];}else if(_0x596d48[_0xc8eb('0x2a')]){duplicates+=0x1;delete _0x596d48[_0xc8eb('0x2a')];}rows[_0xc8eb('0x2e')](_0x596d48);}));if(total%0xc8===0x0){_0x49e603[_0xc8eb('0x66')]();return processPromises(_0x49e603);}},'complete':function(){return processPromises()['then'](function(){logger[_0xc8eb('0x62')](_0xc8eb('0x67'));endCsv();});},'error':function(_0x3063f3,_0x28eb4b){logger[_0xc8eb('0x62')](_0xc8eb('0x68'),JSON['stringify'](_0x3063f3));endCsv();}});})[_0xc8eb('0x2f')](function(_0x3c289b){logger[_0xc8eb('0x1a')](_0xc8eb('0x69'),JSON[_0xc8eb('0x30')](_0x3c289b));});}main();