f390cf86b04ca180949b9101a3398879a3917ab1
[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 _0xe3ca=['id\x20IN\x20?','str','calleridnum','cm_hopper_final','\x20=\x20?','cm_hopper_black','findAll','outbound','dialCheckDuplicateType','CmList','Lists','get','always','push','query','VoiceQueueId','sequelize','VoiceQueue','BlackLists','all','Campaign','CampaignId','onlyIfOpen','cmContact,\x20%s,\x20%s','Error\x20processing\x20rows\x20block:','finally','emit','contact:csv_','resume','resolve','unlinkSync','Unable\x20to\x20delete\x20temp\x20file:','SIGINT','info','CSV\x20import\x20process\x20stopped!','CmContact','createReadStream','parse','pause','CSV\x20parsed\x20correctly!','Error\x20executing\x20contact\x20csv\x20import:','util','papaparse','ioredis','../../../config/environment','../../../config/logger','api','redis','defaults','localhost','socket.io-emitter','../../../api/cmContact/cmContact.socket','register','argv','Missing\x20filepath\x20parameter!','undefined','null','zipObject','split','Missing\x20ListId\x20parameter!','Missing\x20socket_timestamp\x20parameter!','error','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','phone','phone\x20not\x20specified!','YYYY-MM-DD','isValid','birthDate\x20format\x20is\x20invalid,\x20YYYY-MM-DD\x20format\x20is\x20supported!','email','email\x20format\x20is\x20not\x20valid!','ListId','CompanyId','find','duplicate','Duplicate\x20Contact','keys','then','pick','catch','Error\x20while\x20creating\x20contact:\x20','stringify','cmContact','checkHopper','inspect','insert','into','cm_hopper','fromQuery','ContactId','createdAt','updatedAt','select','field','NOW()','scheduledAt','toString','from','cm_contacts','where','deletedAt\x20IS\x20NULL','ListId\x20=\x20?','phone\x20IS\x20NOT\x20NULL','phone\x20NOT\x20IN\x20(?)'];(function(_0x3979bf,_0x167bfc){var _0x238dfa=function(_0x2cf3a0){while(--_0x2cf3a0){_0x3979bf['push'](_0x3979bf['shift']());}};_0x238dfa(++_0x167bfc);}(_0xe3ca,0x17f));var _0xae3c=function(_0x36eaaa,_0x326732){_0x36eaaa=_0x36eaaa-0x0;var _0x461349=_0xe3ca[_0x36eaaa];return _0x461349;};'use strict';var BPromise=require('bluebird');var util=require(_0xae3c('0x0'));var _=require('lodash');var fs=require('fs');var squel=require('squel');var Papa=require(_0xae3c('0x1'));var Redis=require(_0xae3c('0x2'));var db=require('../../../mysqldb')['db'];var config=require(_0xae3c('0x3'));var logger=require(_0xae3c('0x4'))(_0xae3c('0x5'));config[_0xae3c('0x6')]=_[_0xae3c('0x7')](config[_0xae3c('0x6')],{'host':_0xae3c('0x8'),'port':0x18eb});var socket=require(_0xae3c('0x9'))(new Redis(config[_0xae3c('0x6')]));require(_0xae3c('0xa'))[_0xae3c('0xb')](socket);try{if(!process['argv'][0x2]||process[_0xae3c('0xc')][0x2]==='undefined'||process[_0xae3c('0xc')][0x2]==='null'){throw new Error(_0xae3c('0xd'));}var FILEPATH=process[_0xae3c('0xc')][0x2];if(!process[_0xae3c('0xc')][0x3]||process[_0xae3c('0xc')][0x3]===_0xae3c('0xe')||process[_0xae3c('0xc')][0x3]===_0xae3c('0xf')||!process[_0xae3c('0xc')][0x4]||process['argv'][0x4]===_0xae3c('0xe')||process[_0xae3c('0xc')][0x4]==='null'){throw new Error('Missing\x20binding\x20parameters!');}var FIELDS=_[_0xae3c('0x10')](process['argv'][0x3]['split'](','),process[_0xae3c('0xc')][0x4][_0xae3c('0x11')](','));if(!process[_0xae3c('0xc')][0x5]||process['argv'][0x5]===_0xae3c('0xe')||process[_0xae3c('0xc')][0x5]===_0xae3c('0xf')){throw new Error(_0xae3c('0x12'));}var LISTID=process['argv'][0x5];var COMPANYID=process[_0xae3c('0xc')][0x6]&&process[_0xae3c('0xc')][0x6]!=='undefined'&&process[_0xae3c('0xc')][0x6]!==_0xae3c('0xf')?process['argv'][0x6]:null;var DUPLICATES=process['argv'][0x7]&&process[_0xae3c('0xc')][0x7]!=='undefined'&&process[_0xae3c('0xc')][0x7]!==_0xae3c('0xf')?process[_0xae3c('0xc')][0x7]:null;if(!process[_0xae3c('0xc')][0x8]||process[_0xae3c('0xc')][0x8]===_0xae3c('0xe')||process['argv'][0x8]===_0xae3c('0xf')){throw new Error(_0xae3c('0x13'));}var SOCKET_TIMESTAMP=process[_0xae3c('0xc')][0x8];}catch(_0x473f3b){logger[_0xae3c('0x14')](_0x473f3b);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(_0x343b03,_0x13e14,_0x18d676,_0x1c4abb){var _0x1b2391={'message':_0x13e14};_0x1b2391[_0x343b03]=!![];if(_0x18d676){_0x1b2391['contact']=_0x18d676;}if(_0x1c4abb){_0x1b2391[_0xae3c('0x15')]=_0x1c4abb;}return _0x1b2391;}function isEmail(_0x229b05){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))*$/[_0xae3c('0x16')](_0x229b05);}function checkRow(_0x4031f2,_0x520576,_0x1b200b){return new BPromise(function(_0x3aaa05,_0x32a718){if(_[_0xae3c('0x17')](_0x4031f2)){return _0x32a718(handleCheckRowError(_0xae3c('0x14'),_0xae3c('0x18'),null,_0x1b200b));}if(_0x4031f2[_0xae3c('0x19')]&&_0x4031f2['errors'][_0xae3c('0x1a')]){var _0x509aea=_[_0xae3c('0x1b')](_0x4031f2[_0xae3c('0x19')],_0xae3c('0x1c'))[_0xae3c('0x1d')](';');return _0x32a718(handleCheckRowError('error',_0x509aea,null,_0x1b200b));}var _0x362247={};for(var _0x46150f in FIELDS){if(FIELDS[_0xae3c('0x1e')](_0x46150f)&&FIELDS[_0x46150f]){_0x362247[_0x46150f]=_0x4031f2[_0xae3c('0x1f')][0x0][FIELDS[_0x46150f]]||_0x4031f2[_0xae3c('0x1f')][0x0]['\ufeff'+FIELDS[_0x46150f]];}}if(!_0x362247[_0xae3c('0x20')]){return _0x32a718(handleCheckRowError(_0xae3c('0x14'),'firstName\x20not\x20specified!',null,_0x1b200b));}if(!_0x362247[_0xae3c('0x21')]){return _0x32a718(handleCheckRowError(_0xae3c('0x14'),_0xae3c('0x22'),null,_0x1b200b));}if(_0x362247['birthDate']){var _0x1b97bb=moment(_0x362247['birthDate'],_0xae3c('0x23'));if(!_0x1b97bb[_0xae3c('0x24')]()){return _0x32a718(handleCheckRowError(_0xae3c('0x14'),_0xae3c('0x25'),null,_0x1b200b));}}if(_0x362247[_0xae3c('0x26')]){if(!isEmail(_0x362247[_0xae3c('0x26')])){return _0x32a718(handleCheckRowError(_0xae3c('0x14'),_0xae3c('0x27'),null,_0x1b200b));}}_0x362247[_0xae3c('0x28')]=LISTID;_0x362247[_0xae3c('0x29')]=COMPANYID||undefined;if(DUPLICATES&&DUPLICATES[_0xae3c('0x1a')]&&_0x520576){var _0x5f2620={};for(var _0x4063ac=0x0,_0x12e138=DUPLICATES[_0xae3c('0x1a')];_0x4063ac<_0x12e138;_0x4063ac+=0x1){_0x5f2620[DUPLICATES[_0x4063ac]]=_0x362247[DUPLICATES[_0x4063ac]];}var _0x9e4ada=_[_0xae3c('0x2a')](_0x520576,_0x5f2620);if(_0x9e4ada){return _0x32a718(handleCheckRowError(_0xae3c('0x2b'),_0xae3c('0x2c'),_0x9e4ada,_0x1b200b));}}return db['CmContact']['create'](_0x362247,{'raw':!![],'hooks':![],'fields':_[_0xae3c('0x2d')](_0x362247)})[_0xae3c('0x2e')](function(_0x44b120){if(DUPLICATES&&DUPLICATES[_0xae3c('0x1a')]&&_0x520576){_0x520576['push'](_[_0xae3c('0x2f')](_0x362247,DUPLICATES));}hopperContacts+=(hopperContacts?',':'')+_0x44b120['id'];return _0x3aaa05();})[_0xae3c('0x30')](function(_0x513d67){return _0x32a718(handleCheckRowError(_0xae3c('0x14'),_0xae3c('0x31')+(_0x513d67[_0xae3c('0x1c')]||JSON[_0xae3c('0x32')](_0x513d67)),null,_0x1b200b));});});}function checkHopper(){function _0x5a6beb(){return function(_0x16104e){logger[_0xae3c('0x14')](_0xae3c('0x33'),_0xae3c('0x34'),util[_0xae3c('0x35')](_0x16104e,{'showHidden':![],'depth':null}));};}var _0x309434=function(_0x4468ff,_0x574017){var _0x4f0fa8=squel[_0xae3c('0x36')]()[_0xae3c('0x37')](_0xae3c('0x38'))[_0xae3c('0x39')](['phone','scheduledAt',_0xae3c('0x3a'),'ListId',_0x574017,_0xae3c('0x3b'),_0xae3c('0x3c')],squel[_0xae3c('0x3d')]()[_0xae3c('0x3e')](_0xae3c('0x21'),_0xae3c('0x21'))['field'](_0xae3c('0x3f'),_0xae3c('0x40'))[_0xae3c('0x3e')]('id','ContactId')[_0xae3c('0x3e')](LISTID[_0xae3c('0x41')](),_0xae3c('0x28'))[_0xae3c('0x3e')](_0x4468ff['id']['toString'](),_0x574017)[_0xae3c('0x3e')](_0xae3c('0x3f'),'createdAt')[_0xae3c('0x3e')](_0xae3c('0x3f'),_0xae3c('0x3c'))[_0xae3c('0x42')](_0xae3c('0x43'))[_0xae3c('0x44')](_0xae3c('0x45'))['where'](_0xae3c('0x46'),LISTID['toString']())['where'](_0xae3c('0x47'))['where'](_0xae3c('0x48'),squel[_0xae3c('0x3d')]()['field']('phone')[_0xae3c('0x42')](_0xae3c('0x38'))[_0xae3c('0x44')](_0x574017+'\x20=\x20?',_0x4468ff['id'][_0xae3c('0x41')]())))[_0xae3c('0x41')]();return _0x4f0fa8;};var _0x17635b=function(_0x50fe8e,_0x7563b7){var _0x14a12c=squel['insert']()['into'](_0xae3c('0x38'))[_0xae3c('0x39')]([_0xae3c('0x21'),_0xae3c('0x40'),'ContactId','ListId',_0x7563b7,_0xae3c('0x3b'),_0xae3c('0x3c')],squel[_0xae3c('0x3d')]()['field']('phone',_0xae3c('0x21'))[_0xae3c('0x3e')](_0xae3c('0x3f'),_0xae3c('0x40'))[_0xae3c('0x3e')]('id',_0xae3c('0x3a'))[_0xae3c('0x3e')](LISTID[_0xae3c('0x41')](),_0xae3c('0x28'))[_0xae3c('0x3e')](_0x50fe8e['id'][_0xae3c('0x41')](),_0x7563b7)[_0xae3c('0x3e')](_0xae3c('0x3f'),_0xae3c('0x3b'))[_0xae3c('0x3e')](_0xae3c('0x3f'),'updatedAt')[_0xae3c('0x42')](_0xae3c('0x43'))['where'](_0xae3c('0x45'))['where']('ListId\x20=\x20?',LISTID[_0xae3c('0x41')]())[_0xae3c('0x44')](_0xae3c('0x49'),squel[_0xae3c('0x4a')](hopperContacts))[_0xae3c('0x44')]('phone\x20IS\x20NOT\x20NULL')['where']('phone\x20NOT\x20IN\x20(?)',squel[_0xae3c('0x3d')]()[_0xae3c('0x3e')](_0xae3c('0x4b'))[_0xae3c('0x42')](_0xae3c('0x4c'))['where'](_0x7563b7+'\x20=\x20?',_0x50fe8e['id'][_0xae3c('0x41')]()))[_0xae3c('0x44')](_0xae3c('0x48'),squel[_0xae3c('0x3d')]()[_0xae3c('0x3e')](_0xae3c('0x21'))[_0xae3c('0x42')]('cm_hopper')['where'](_0x7563b7+_0xae3c('0x4d'),_0x50fe8e['id'][_0xae3c('0x41')]())))[_0xae3c('0x41')]();return _0x14a12c;};function _0x1a0bd5(_0x365517,_0x28cab0){var _0xf67276=squel[_0xae3c('0x36')]()[_0xae3c('0x37')](_0xae3c('0x38'))[_0xae3c('0x39')](['phone',_0xae3c('0x40'),_0xae3c('0x3a'),_0xae3c('0x28'),_0x28cab0,_0xae3c('0x3b'),'updatedAt'],squel[_0xae3c('0x3d')]()[_0xae3c('0x3e')](_0xae3c('0x21'),'phone')[_0xae3c('0x3e')](_0xae3c('0x3f'),_0xae3c('0x40'))[_0xae3c('0x3e')]('id',_0xae3c('0x3a'))[_0xae3c('0x3e')](LISTID['toString'](),_0xae3c('0x28'))[_0xae3c('0x3e')](_0x365517['id'][_0xae3c('0x41')](),_0x28cab0)[_0xae3c('0x3e')](_0xae3c('0x3f'),_0xae3c('0x3b'))[_0xae3c('0x3e')](_0xae3c('0x3f'),_0xae3c('0x3c'))[_0xae3c('0x42')]('cm_contacts')[_0xae3c('0x44')]('deletedAt\x20IS\x20NULL')['where'](_0xae3c('0x46'),LISTID[_0xae3c('0x41')]())[_0xae3c('0x44')](_0xae3c('0x49'),squel[_0xae3c('0x4a')](hopperContacts))[_0xae3c('0x44')](_0xae3c('0x47')))['toString']();return _0xf67276;}function _0x5ebd84(_0x311077,_0x3d43a5){var _0x56a024=squel['insert']()[_0xae3c('0x37')](_0xae3c('0x4e'))[_0xae3c('0x39')](['phone',_0xae3c('0x3a'),_0xae3c('0x28'),_0x3d43a5,_0xae3c('0x3b'),_0xae3c('0x3c')],squel['select']()[_0xae3c('0x3e')](_0xae3c('0x21'),_0xae3c('0x21'))['field']('id',_0xae3c('0x3a'))[_0xae3c('0x3e')](LISTID['toString'](),_0xae3c('0x28'))[_0xae3c('0x3e')](_0x311077['id']['toString'](),_0x3d43a5)['field'](_0xae3c('0x3f'),_0xae3c('0x3b'))[_0xae3c('0x3e')](_0xae3c('0x3f'),'updatedAt')[_0xae3c('0x42')]('cm_contacts')[_0xae3c('0x44')](_0xae3c('0x45'))[_0xae3c('0x44')]('ListId\x20=\x20?',LISTID[_0xae3c('0x41')]())[_0xae3c('0x44')](_0xae3c('0x49'),squel['str'](hopperContacts))['where'](_0xae3c('0x47')))[_0xae3c('0x41')]();return _0x56a024;}return db['VoiceQueue'][_0xae3c('0x4f')]({'where':{'type':_0xae3c('0x50')},'attributes':['id',_0xae3c('0x51')],'include':[{'model':db[_0xae3c('0x52')],'as':_0xae3c('0x53'),'where':{'id':LISTID}}]})[_0xae3c('0x2e')](function(_0x14f385){var _0xfa85d9=[];if(_0x14f385){var _0x5bd0c9;for(var _0x5167f1=0x0,_0x569286;_0x5167f1<_0x14f385[_0xae3c('0x1a')];_0x5167f1+=0x1){_0x569286=_0x14f385[_0x5167f1][_0xae3c('0x54')]({'plain':!![]});switch(_0x569286['dialCheckDuplicateType']){case _0xae3c('0x55'):_0xfa85d9[_0xae3c('0x56')](db['sequelize'][_0xae3c('0x57')](_0x17635b(_0x569286,_0xae3c('0x58')))['then'](function(){})[_0xae3c('0x30')](_0x5a6beb()));break;case'onlyIfOpen':_0xfa85d9[_0xae3c('0x56')](db[_0xae3c('0x59')]['query'](_0x309434(_0x569286,_0xae3c('0x58')))[_0xae3c('0x2e')](function(){})[_0xae3c('0x30')](_0x5a6beb()));break;default:_0xfa85d9[_0xae3c('0x56')](db[_0xae3c('0x59')][_0xae3c('0x57')](_0x1a0bd5(_0x569286,_0xae3c('0x58')))[_0xae3c('0x2e')](function(){})[_0xae3c('0x30')](_0x5a6beb()));}}}return _0xfa85d9;})['all']()[_0xae3c('0x2e')](function(){return db[_0xae3c('0x5a')][_0xae3c('0x4f')]({'where':{'type':'outbound'},'attributes':['id'],'include':[{'model':db[_0xae3c('0x52')],'as':_0xae3c('0x5b'),'where':{'id':LISTID}}]})[_0xae3c('0x2e')](function(_0x32c753){var _0x5a89f1=[];if(_0x32c753){var _0x287d38;for(var _0x2b6ee3=0x0,_0x5738e0;_0x2b6ee3<_0x32c753[_0xae3c('0x1a')];_0x2b6ee3+=0x1){_0x5738e0=_0x32c753[_0x2b6ee3][_0xae3c('0x54')]({'plain':!![]});_0x5a89f1[_0xae3c('0x56')](db[_0xae3c('0x59')][_0xae3c('0x57')](_0x5ebd84(_0x5738e0,_0xae3c('0x58')))[_0xae3c('0x2e')](function(){})[_0xae3c('0x30')](_0x5a6beb()));}}return _0x5a89f1;})[_0xae3c('0x5c')]();})[_0xae3c('0x2e')](function(){return db[_0xae3c('0x5d')][_0xae3c('0x4f')]({'attributes':['id',_0xae3c('0x51')],'include':[{'model':db[_0xae3c('0x52')],'as':_0xae3c('0x53'),'where':{'id':LISTID}}]})[_0xae3c('0x2e')](function(_0x1c9e97){var _0x186caf=[];if(_0x1c9e97){for(var _0x7d7820=0x0,_0xbfd122;_0x7d7820<_0x1c9e97['length'];_0x7d7820+=0x1){_0xbfd122=_0x1c9e97[_0x7d7820][_0xae3c('0x54')]({'plain':!![]});switch(_0xbfd122['dialCheckDuplicateType']){case _0xae3c('0x55'):_0x186caf[_0xae3c('0x56')](db[_0xae3c('0x59')][_0xae3c('0x57')](_0x17635b(_0xbfd122,_0xae3c('0x5e')))[_0xae3c('0x2e')](function(){})['catch'](_0x5a6beb()));break;case _0xae3c('0x5f'):_0x186caf[_0xae3c('0x56')](db[_0xae3c('0x59')]['query'](_0x309434(_0xbfd122,'CampaignId'))[_0xae3c('0x2e')](function(){})[_0xae3c('0x30')](_0x5a6beb()));break;default:_0x186caf[_0xae3c('0x56')](db[_0xae3c('0x59')][_0xae3c('0x57')](_0x1a0bd5(_0xbfd122,'CampaignId'))[_0xae3c('0x2e')](function(){})[_0xae3c('0x30')](_0x5a6beb()));}}}return _0x186caf;})[_0xae3c('0x5c')]();})[_0xae3c('0x2e')](function(){return db[_0xae3c('0x5d')][_0xae3c('0x4f')]({'attributes':['id'],'include':[{'model':db[_0xae3c('0x52')],'as':_0xae3c('0x5b'),'where':{'id':LISTID}}]})[_0xae3c('0x2e')](function(_0x534010){var _0x32e5e0=[];if(_0x534010){for(var _0x3539aa=0x0,_0x3fc627;_0x3539aa<_0x534010['length'];_0x3539aa+=0x1){_0x3fc627=_0x534010[_0x3539aa][_0xae3c('0x54')]({'plain':!![]});_0x32e5e0[_0xae3c('0x56')](db['sequelize'][_0xae3c('0x57')](_0x5ebd84(_0x3fc627,_0xae3c('0x5e')))[_0xae3c('0x2e')](function(){})['catch'](_0x5a6beb()));}}return _0x32e5e0;})[_0xae3c('0x5c')]();})[_0xae3c('0x30')](function(_0x1902b6){logger[_0xae3c('0x14')](_0xae3c('0x60'),'generalCheckHopper',_0x1902b6['message']);});}var processPromises=function(_0xe34e10){return BPromise[_0xae3c('0x5c')](promises)[_0xae3c('0x2e')](function(_0x55fad2){})['catch'](function(_0x164f88){logger[_0xae3c('0x14')](_0xae3c('0x61'),JSON['stringify'](_0x164f88));})[_0xae3c('0x62')](function(){socket[_0xae3c('0x63')](_0xae3c('0x64')+SOCKET_TIMESTAMP,{'success':success,'errors':errors,'duplicates':duplicates,'rows':rows});promises=[];success=0x0;errors=0x0;duplicates=0x0;rows=[];if(_0xe34e10){return _0xe34e10[_0xae3c('0x65')]();}});};var endCsv=function(){return BPromise[_0xae3c('0x66')]()[_0xae3c('0x2e')](function(){if(hopperContacts){return checkHopper();}})['then'](function(){socket['emit'](_0xae3c('0x64')+SOCKET_TIMESTAMP,{'finished':!![],'success':success,'errors':errors,'duplicates':duplicates,'rows':rows});try{fs[_0xae3c('0x67')](FILEPATH);}catch(_0xf3db41){logger[_0xae3c('0x14')](_0xae3c('0x68'),JSON[_0xae3c('0x32')](_0xf3db41));}finally{process['exit'](0x0);}});};process['on'](_0xae3c('0x69'),function(){logger[_0xae3c('0x6a')](_0xae3c('0x6b'));endCsv();});function main(){return BPromise[_0xae3c('0x66')]()['then'](function(){if(DUPLICATES){DUPLICATES=DUPLICATES[_0xae3c('0x11')](',');return db[_0xae3c('0x6c')][_0xae3c('0x4f')]({'where':{'ListId':LISTID},'attributes':DUPLICATES,'raw':!![]});}})[_0xae3c('0x2e')](function(_0xe426d){var _0x3ffdbb=fs[_0xae3c('0x6d')](FILEPATH,{'highWaterMark':0xf*0x400*0x400});Papa[_0xae3c('0x6e')](_0x3ffdbb,{'header':!![],'skipEmptyLines':!![],'step':function(_0x1636bc,_0x31952b){total+=0x1;var _0x595a7f=total;promises[_0xae3c('0x56')](checkRow(_0x1636bc,_0xe426d,_0x595a7f)[_0xae3c('0x2e')](function(){success+=0x1;})['catch'](function(_0x5a5301){if(_0x5a5301['error']){errors+=0x1;delete _0x5a5301['error'];}else if(_0x5a5301[_0xae3c('0x2b')]){duplicates+=0x1;delete _0x5a5301[_0xae3c('0x2b')];}rows[_0xae3c('0x56')](_0x5a5301);}));if(total%0xc8===0x0){_0x31952b[_0xae3c('0x6f')]();return processPromises(_0x31952b);}},'complete':function(){return processPromises()[_0xae3c('0x2e')](function(){logger[_0xae3c('0x6a')](_0xae3c('0x70'));endCsv();});},'error':function(_0x3d0293,_0x1c1252){logger['info']('CSV\x20parse\x20error',JSON['stringify'](_0x3d0293));endCsv();}});})[_0xae3c('0x30')](function(_0xbbaabb){logger[_0xae3c('0x14')](_0xae3c('0x71'),JSON[_0xae3c('0x32')](_0xbbaabb));});}main();